").parent().html()),$("#main-row").append("
"),$("#player").removeClass("player_bottom"),$("#main-row").removeClass("frontpage_modified_heights"),$("#main_section_frontpage").remove(),$("#closePlayer").remove(),$("#player_bottom_overlay").remove()}$("#search").attr("placeholder","Find song on YouTube..."),$(".page-footer").addClass("padding-bottom-novideo"),1==$("#alreadychannel").length?e():(Oe=!0,e()),0===$("#alreadyfp").length&&$("head").append("
")}})}};String.prototype.capitalizeFirstLetter=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var Je={loaded:!0,before_load:"",after_load:"",player:"",stopInterval:!1,youtube_listener:function(e){Je.loaded=!1,A.log("--------youtube_listener--------"),A.log("Received: "),A.log(e),A.log("paused variable: "+K),A.log("mobile_beginning variable: "+xe);try{A.log("getVideoUrl(): "+Je.player.getVideoUrl().split("v=")[1])}catch(e){}if(A.log("video_id variable: "+Me),A.log("---------------------------------"),e.np){if(K)Je.getTitle(e.np[0].title,X),Je.notifyUser(e.np[0].id,e.np[0].title),Je.stopVideo();else if(!K){void 0===Ve?Ve=e.np[0].id:Ve!=Me&&(Ve=Me),Me=e.np[0].id,F=e.conf[0],time=e.time,Pe=time-F.startTime,ze=e.np[0].title,duration=e.np[0].duration,xe&&A.mobilecheck()&&0===Pe&&(Pe=1);try{Te[0].id==Me&&P.song_change(Te[0].added),Ze.fetchYoutubeSuggests(Me)}catch(e){}if(Je.getTitle(ze,X),Je.setBGimage(Me),Q&&!window.MSStream)try{Je.player.getVideoUrl().split("v=")[1]!=Me&&(Je.loadVideoById(Me),Je.notifyUser(Me,ze),Je.seekTo(Pe),K&&Je.pauseVideo()),K||(xe||Je.playVideo(),re||Je.durationSetter()),(Je.player.getDuration()>Pe||0===Je.player.getDuration()||be)&&Je.seekTo(Pe),Je.after_load=Me,Je.loaded||setTimeout(function(){Je.loaded=!0},500)}catch(e){re||Je.durationSetter()}else Je.getTitle(ze,X)}}else{document.getElementById("song-title").innerHTML="Empty channel. Add some songs!",$("#player_overlay").height($("#player").height()),window.MSStream||be||$("#player_overlay").toggleClass("hide");try{Je.stopVideo()}catch(e){}}},onPlayerStateChange:function(e){A.log("-------onPlayerStateChange------"),A.log("New state\nState: "),A.log(e);try{A.log("Duration: "+Je.player.getDuration(),"Current time: "+Je.player.getCurrentTime()),A.log("getVideoUrl(): "+Je.player.getVideoUrl().split("v=")[1])}catch(e){}switch(A.log("video_id variable: "+Me),A.log("---------------------------------"),e.data){case-1:break;case 0:ee=!1,K=!1,De.emit("end",{id:Me,channel:z.toLowerCase()});break;case 1:ee=!0,beginning&&A.mobilecheck()&&(Je.pauseVideo(),beginning=!1,xe=!1),se||"/"==window.location.pathname||be||A.addClass("#player_overlay","hide"),"/"!=window.location.pathname&&(1==document.getElementById("play").className.split(" ").length&&$("#play").toggleClass("hide"),2==document.getElementById("pause").className.split(" ").length&&$("#pause").toggleClass("hide")),K&&(be||De.emit("pos",{channel:z.toLowerCase()}),K=!1);break;case 2:be||(K=!0,"/"!=window.location.pathname&&Ge.play_pause_show(),xe=!0);break;case 3:}},playVideo:function(){be?(M.sendMessage("urn:x-cast:zoff.no",{type:"playVideo"}),De.emit("pos",{channel:z.toLowerCase()})):Je.player.playVideo()},pauseVideo:function(){be?M.sendMessage("urn:x-cast:zoff.no",{type:"pauseVideo"}):Je.player.pauseVideo()},seekTo:function(e){be?M.sendMessage("urn:x-cast:zoff.no",{type:"seekTo",seekTo:e}):Je.player.seekTo(e)},loadVideoById:function(e){be?M.sendMessage("urn:x-cast:zoff.no",{type:"loadVideo",videoId:e}):Je.player.loadVideoById(e)},stopVideo:function(){be?M.sendMessage("urn:x-cast:zoff.no",{type:"stopVideo"}):Je.player.stopVideo()},sendNext:function(e){be&&M.sendMessage("urn:x-cast:zoff.no",{type:"nextVideo",title:e.title,videoId:e.videoId})},getTitle:function(e,t){var a=t>1?"viewers":"viewer",o=decodeURIComponent(e);if("/"!=window.location.pathname){var n=document.getElementById("song-title"),i=document.getElementById("viewers");n.innerHTML=o,i.innerHTML=t+" "+a,n.title=o}document.title=o+" • Zöff / "+z},errorHandler:function(e){5==e.data||100==e.data||101==e.data||150==e.data?(curr_playing=Je.player.getVideoUrl().replace("https://www.youtube.com/watch?v=",""),De.emit("skip",{error:e.data,id:Me,pass:W,channel:z.toLowerCase})):void 0!==Me&&Je.loadVideoById(Me)},onPlayerReady:function(e){$("#channel-load").css("display","none");try{beginning=!0,Q=!0,window.MSStream||($("#player").css("opacity","1"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),Je.loadVideoById(Me),le&&!A.mobilecheck()&&Je.playVideo(),re||Je.durationSetter(),se?setTimeout(function(){Je.seekTo(Pe),le||(Je.pauseVideo(),Ge.play_pause_show())},1e3):Je.seekTo(Pe)),Je.readyLooks(),Ge.initYoutubeControls(Je.player),Ge.initSlider(),Je.player.setVolume(L.get_volume()),$(".video-container").removeClass("no-opacity")}catch(e){}},readyLooks:function(){Je.setBGimage(Me)},setBGimage:function(e){if(void 0!==e&&!se){var t=new Image;t.onload=function(){var e=new ColorThief,a=e.getColor(t);"/"!=window.location.pathname&&(document.getElementsByTagName("body")[0].style.backgroundColor=A.rgbToHsl(a,!0),$("meta[name=theme-color]").attr("content",A.rgbToHex(a[0],a[1],a[2])))},t.crossOrigin="Anonymous",t.src="https://zoff.no:8080/https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}},set_width:function(e){$(".video-container").width(e);
-},notifyUser:function(e,t){if(t=t.replace(/\\\'/g,"'").replace(/"/g,"'").replace(/&/g,"&"),"granted"===Notification.permission&&document.hidden){var a=new Notification("Now Playing",{body:t,icon:"https://i.ytimg.com/vi/"+e+"/mqdefault.jpg",iconUrl:"http://i.ytimg.com/vi/"+e+"/mqdefault.jpg"});a.onclick=function(e){window.focus(),this.cancel()},setTimeout(function(){a.close()},5e3)}},setup_all_listeners:function(){i(),n(),c(),d(),p()},onYouTubeIframeAPIReady:function(){Je.player=new YT.Player("player",{videoId:Me,playerVars:{rel:"0",wmode:"transparent",controls:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:Je.onPlayerReady,onStateChange:Je.onPlayerStateChange,onError:Je.errorHandler}})},durationSetter:function(){if(void 0!==duration)try{Je.stopInterval||(re=!0),dMinutes=Math.floor(duration/60),dSeconds=duration-60*dMinutes,currDurr=void 0!==Je.player.getCurrentTime()?Math.floor(Je.player.getCurrentTime()):Pe,currDurr>duration&&(currDurr=duration),minutes=Math.floor(currDurr/60),seconds=currDurr-60*minutes,document.getElementById("duration").innerHTML=A.pad(minutes)+":"+A.pad(seconds)+"
/ "+A.pad(dMinutes)+":"+A.pad(dSeconds),per=100/duration*currDurr,per>=100?per=100:0===duration&&(per=0),$("#bar").width(per+"%")}catch(e){}Je.stopInterval||setTimeout(Je.durationSetter,1e3)},loadPlayer:function(){if(1==$("script[src='https://www.youtube.com/iframe_api']").length)try{Je.onYouTubeIframeAPIReady()}catch(e){console.error("Seems YouTube iFrame script isn't correctly loaded. Please reload the page.")}else Be=document.createElement("script"),Be.src="https://www.youtube.com/iframe_api",Le=document.getElementsByTagName("script")[0],Le.parentNode.insertBefore(Be,Le)}},Ge={stopInterval:!1,initYoutubeControls:function(){!A.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||$("#controls").appendTo("#playbar"),Ge.initControls()},initControls:function(){document.getElementById("volume-button").addEventListener("click",Ge.mute_video),document.getElementById("playpause").addEventListener("click",Ge.play_pause),document.getElementById("volume-button-overlay").addEventListener("click",Ge.mute_video),document.getElementById("playpause-overlay").addEventListener("click",Ge.play_pause),document.getElementById("fullscreen").addEventListener("click",Ge.fullscreen)},initSlider:function(){try{vol=L.get_volume()}catch(e){}$("#volume").slider({min:0,max:100,value:vol,range:"min",animate:!0,slide:function(e,t){Ge.setVolume(t.value);try{L.set_volume(t.value)}catch(e){}}}),Ge.choose_button(vol,!1)},fullscreen:function(){var e=document.getElementById("player"),t=e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullScreen;t&&t.bind(e)()},play_pause:function(){1==Je.player.getPlayerState()?(Je.pauseVideo(),!A.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||(document.getElementById("player").style.display="none",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra"))):2!=Je.player.getPlayerState()&&0!==Je.player.getPlayerState()||(Je.playVideo(),!A.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||(document.getElementById("player").style.display="block",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra")))},play_pause_show:function(){1==document.getElementById("pause").className.split(" ").length&&($("#pause").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")),2==document.getElementById("play").className.split(" ").length&&($("#play").toggleClass("hide"),$("#play-overlay").toggleClass("hide"))},settings:function(){$("#qS").toggleClass("hide")},changeQuality:function(e){Je.player.getPlaybackQuality!=e&&(Je.player.setPlaybackQuality(e),Je.player.getPlaybackQuality()),$("#qS").toggleClass("hide")},mute_video:function(){Je.player.isMuted()?(be&&M.sendMessage("urn:x-cast:zoff.no",{type:"unMute"}),Je.player.unMute(),Ge.choose_button(Je.player.getVolume(),!1)):(be&&M.sendMessage("urn:x-cast:zoff.no",{type:"mute"}),Ge.choose_button(0,!0),Je.player.mute())},setVolume:function(e){Je.player.setVolume(e),Ge.choose_button(e,!1),Je.player.isMuted()&&Je.player.unMute()},choose_button:function(e,t){t?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),2==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=0&&e<=33?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),2==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=34&&e<=66?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),2==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=67&&e<=100&&(2==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide")))},playPause:function(){state=Je.player.getPlayerState(),button=document.getElementById("playpause"),1==state?Je.pauseVideo():2==state&&Je.playVideo()},volumeOptions:function(){be||(Je.player.isMuted()?(Je.player.unMute(),vol=Je.player.getVolume(),$("#volume").slider("value",Je.player.getVolume())):(Je.player.mute(),$("#volume").slider("value",0)))},hoverMute:function(e){vol=Je.player.getVolume()}},We={submitArray:[],submitArrayExpected:null,showSearch:function(){$("#search-wrapper").toggleClass("hide"),A.mobilecheck()&&$(".search_input").focus(),$("#song-title").toggleClass("hide"),$("#results").toggleClass("hide"),$("#results").empty(),$("#search-btn i").toggleClass("mdi-navigation-close"),$("#search-btn i").toggleClass("mdi-action-search"),$("#search").focus()},search:function(e){if(void 0!==ke&&void 0!==Ce||(ke=$("#temp-results-container"),Ce=$("#empty-results-container").html()),$(".search_results").html(""),""!==e){H=!0;var t=encodeURIComponent(e),a="https://www.googleapis.com/youtube/v3/search?key="+U+"&videoEmbeddable=true&part=id&fields=items(id)&type=video&order=viewCount&safeSearch=none&maxResults=25";a+="&q="+t,J&&(a+="&videoCategoryId=10");var o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+U+"&id=";A.contains($("#search_loader").attr("class").split(" "),"hide")&&$("#search_loader").removeClass("hide"),A.contains($("#results").attr("class").split(" "),"hide")&&$("#results").removeClass("hide"),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){0===e.items.length?($("
"+Ce+"
").appendTo($("#results")).show("blind",83.33),A.contains($("#search_loader").attr("class").split(" "),"hide")||$("#search_loader").addClass("hide")):e.items&&($.each(e.items,function(e,t){o+=t.id.videoId+","}),$.ajax({type:"GET",url:o,dataType:"jsonp",success:function(e){var t="",a=$(ke);$.each(e.items,function(e,o){var n=o.contentDetails.duration;if(secs=We.durationToSeconds(n),!longsongs||secs<720){Ae=o.snippet.title,enc_title=Ae,Ie=o.id,n=n.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),thumb=o.snippet.thumbnails.medium.url;var i=a;i.find(".search-title").text(Ae),i.find(".result_info").text(n),i.find(".thumb").attr("data-original",thumb),i.find("#add-many").attr("data-video-id",Ie),i.find("#add-many").attr("data-video-title",enc_title),i.find("#add-many").attr("data-video-length",secs),i.find("#temp-results").attr("data-video-id",Ie),i.find("#temp-results").attr("data-video-title",enc_title),i.find("#temp-results").attr("data-video-length",secs),t+=i.html()}}),$("
"+t+"
").appendTo($("#results")).show("blind",83.33*(e.items.length-1)),setTimeout(function(){$(".thumb").lazyload({container:$("#results")})},250),A.contains($("#search_loader").attr("class").split(" "),"hide")||$("#search_loader").addClass("hide"),$(".add-many").click(function(e){return e.preventDefault(),e.stopPropagation(),!1})}}))}})}else $(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},backgroundSearch:function(e,t,a,o,n){var i=encodeURIComponent(e+" "+t),s="https://www.googleapis.com/youtube/v3/search?key="+U+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10";s+="&q="+i;var l="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+U+"&id=";t=t.split(" ");var r=e.split("-");r=r.join(" ").split(" "),$.ajax({type:"GET",url:s,dataType:"jsonp",success:function(n){if(0===n.items.length){We.readySubmit(!1,{totalLength:o-1}),A.log("------------------------------"),A.log("NO MATCH FOR:"),A.log("Spotify title: "+e+" "+t.join(" ")),A.log("Spotify length: "+a),A.log("------------------------------");var i=$("
"+me+"
");i.find(".extra-add-text").text(e+" - "+t.join(" ")),i.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),i.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(i.html()),$(".not-imported").removeClass("hide")}else n.items.length>0&&($.each(n.items,function(e,t){l+=t.id.videoId+","}),$.ajax({type:"GET",url:l,dataType:"jsonp",success:function(n){if(n.items.length>0){var i=!1;if($.each(n.items,function(a,n){var s=We.durationToSeconds(n.contentDetails.duration),l=!1;if($.each(r,function(a,o){return n.snippet.title.toLowerCase().indexOf(o.toLowerCase())!=-1&&n.snippet.title.toLowerCase().indexOf("cover")==-1&&e.toLowerCase().indexOf("cover")==-1&&(n.snippet.title.toLowerCase().indexOf("remix")==-1&&e.toLowerCase().indexOf("remix")==-1||n.snippet.title.toLowerCase().indexOf("remix")!=-1&&e.toLowerCase().indexOf("remix")!=-1||n.snippet.title.toLowerCase().indexOf(t[0].toLowerCase())!=-1||n.snippet.channelTitle.toLowerCase().indexOf(t[0].toLowerCase())!=-1||n.snippet.channelTitle.toLowerCase().indexOf("vevo")!=-1)||(l=!0),!1}),!l)return i=!0,We.readySubmit(!0,{id:n.id,title:n.snippet.title,duration:s,totalLength:o-1}),!1}),!i){We.readySubmit(!1,{totalLength:o-1}),A.log("------------------------------"),A.log("NO MATCH FOR:"),A.log("Spotify title: "+e+" "+t.join(" ")),A.log("Spotify length: "+a),A.log("------------------------------");var s=$("
"+me+"
");s.find(".extra-add-text").text(e+" - "+t.join(" ")),s.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),s.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(s.html()),$(".not-imported").removeClass("hide")}}}}))}})},readySubmit:function(e,t){null===We.submitArrayExpected&&(We.submitArrayExpected=t.totalLength),e?We.submitArray.push(t):We.submitArrayExpected-=1,We.submitArray.length-1==We.submitArrayExpected&&($.each(We.submitArray,function(e,t){We.submit(t.id,t.title,t.duration,!0,e,We.submitArray.length-1)}),document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),We.submitArray=[],We.submitArrayExpected=null)},submitAndClose:function(e,t,a){We.submit(e,t,a,!1,0,1),$("#results").html(""),We.showSearch(),document.getElementById("search").value="",$("#results").html="",$(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},importPlaylist:function(e,t){token="";var a,o;void 0!==t&&(token="&pageToken="+t),playlist_url="https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+U+"&playlistId="+e+token,we?(o="html",a={"Content-Type":"application/json",Authorization:"Bearer "+$e.access_token}):(a={},o="jsonp"),$.ajax({type:"GET",url:playlist_url,dataType:o,headers:a,success:function(a){if(a.error)if("playlistItemsNotAccessible"==a.error.errors[0].reason){var o=w(29);window.callback=function(a){$e=a,$e.state==o?(we=!0,setTimeout(function(){we=!1,$e={}},1e3*$e.expires_in),We.importPlaylist(e,t)):($e="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+o,"","width=600, height=600")}else A.log(a.error),document.getElementById("import").disabled=!1,$("#playlist_loader").addClass("hide"),$("#import").removeClass("hide"),Materialize.toast("It seems you've entered a invalid url.",4e3);else{var n="";"string"==typeof a&&(a=$.parseJSON(a)),$.each(a.items,function(e,t){n+=t.contentDetails.videoId+","}),We.addVideos(n,!0),a.nextPageToken&&We.importPlaylist(e,a.nextPageToken),document.getElementById("import").value=""}}})},importSpotifyPlaylist:function(e){$.ajax({url:e,headers:{Authorization:"Bearer "+ue.access_token},success:function(e){$.each(e.items,function(t,a){We.backgroundSearch(a.track.name,a.track.artists.map(function(e){return e.name}).join(" "),Math.floor(a.track.duration_ms/1e3),e.total,t+e.offset)}),e.next&&We.importSpotifyPlaylist(e.next)},error:function(){document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),Materialize.toast("It seems you've entered a invalid url.",4e3)}})},addVideos:function(e,t){var a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key=***REMOVED***&id=";a+=e,$.ajax({type:"POST",url:a,dataType:"jsonp",success:function(e){var a=0,o=[];$.each(e.items,function(e,n){var i=We.durationToSeconds(n.contentDetails.duration);(!longsongs||i<720)&&(enc_title=n.snippet.title,a+=1,o.push({id:n.id,enc_title:enc_title,duration:i,playlist:t}))}),$.each(o,function(e,t){We.submit(t.id,t.enc_title,t.duration,t.playlist,e,a)})}})},submit:function(e,t,a,o,n,i){De.emit("add",{id:e,title:decodeURIComponent(t),adminpass:W,list:z.toLowerCase(),duration:a,playlist:o,num:n,total:i})},durationToSeconds:function(e){var t=e.match(q);return hours=parseInt(t[12])||0,minutes=parseInt(t[14])||0,seconds=parseInt(t[16])||0,60*hours*60+60*minutes+seconds}},Ze={catchUserSuggests:function(e,t){if(t)Ze.createSuggested(e);else for(var a in e)Ze.createSuggested(e[a]);Ze.checkUserEmpty()},createSuggested:function(e){var t=e.duration,a=e.id,o=e.title,n=Math.floor(t/60),i=t-60*n;duration=n+"m "+i+"s";var s=P.generateSong({id:a,title:o,length:t,duration:duration},!1,!1,!1,!0);$("#user-suggest-html").append(s)},fetchYoutubeSuggests:function(e){var t="https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+e+"&type=video&key="+U,a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+U+"&id=";$.ajax({type:"GET",url:t,dataType:"jsonp",success:function(e){$.each(e.items.slice(0,5),function(e,t){a+=t.id.videoId+","}),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){$("#suggest-song-html").empty(),$.each(e.items,function(e,t){var a=t.contentDetails.duration,o=We.durationToSeconds(a),n=t.id,i=t.snippet.title;a=a.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),$("#suggest-song-html").append(P.generateSong({id:n,title:i,length:o,duration:a},!1,!1,!1))})}})}})},checkUserEmpty:function(){var e=$("#user-suggest-html").children().length;0===e?A.contains($("#user_suggests").attr("class").split(" "),"hide")||$("#user_suggests").addClass("hide"):$("#user_suggests").removeClass("hide")}}}();
\ No newline at end of file
+$(".prev_page").toggleClass("hide"),$(".next_page").toggleClass("hide"),$(".next_page_hide").css("display","inline-block"),$(".prev_page_hide").css("display","inline-block"))):(P.empty=!0,$("#wrapper").append("
The playlist is empty. "),$("#pageButtons").length||($('
').insertAfter("#wrapper"),$(".prev_page").toggleClass("hide"),$(".next_page").toggleClass("hide"),$(".next_page_hide").css("display","inline-block"),$(".prev_page_hide").css("display","inline-block"))),$("#settings").css("visibility","visible"),$("#settings").css("opacity","1"),$("#wrapper").css("opacity","1")},dynamicContentPage:function(e){1==e?($("#wrapper").children().slice(P.page,P.page+20).hide(),P.page=P.page+20,$("#wrapper").children().slice(P.page,P.page+20).show(),P.page>0&&$(".prev_page").hasClass("hide")&&($(".prev_page").toggleClass("hide"),$(".prev_page_hide").css("display","none")),P.page+20>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-block"),$(".next_page").css("display","none"))):($("#wrapper").children().slice(P.page-20,P.page).show(),$("#wrapper").children().slice(P.page,P.page+20).hide(),P.page=P.page-20,0!=P.page||$(".prev_page").hasClass("hide")?$(".prev_page").hasClass("hide")?$(".prev_page_hide").css("display","inline-block"):$(".prev_page_hide").css("display","none"):($(".prev_page").toggleClass("hide"),$(".prev_page_hide").css("display","inline-block")),P.page+20<$("#wrapper").children().length&&($(".next_page_hide").css("display","none"),$(".next_page").css("display","inline-block"))),$("#pageNumber").html(P.page/20+1)},added_song:function(e){var t;0!==Te.length&&(t=Te.pop()),Te.push(e),P.sortList(),t&&Te.push(t),$("#suggested-"+e.id).remove(),P.empty&&(P.empty=!1),$("#empty-channel-message").remove(),P.insertAtIndex(e,!0),$("#wrapper").children().length>P.page+20?($(".next_page_hide").css("display","none"),$(".next_page").removeClass("hide"),$(".next_page").css("display","inline-block")):($(".next_page_hide").css("display","inline-block"),$(".next_page").css("display","none"))},deleted_song:function(e){var t=P.getIndexOfSong(e),a=$("#wrapper").children()[t];try{a.style.height=0,setTimeout(function(){$("#"+e).remove(),Te.splice(P.getIndexOfSong(e),1),t
=0?$($("#wrapper").children()[P.page-1]).css("display","block"):$("#wrapper").children().length>P.page+19&&$($("#wrapper").children()[P.page+19]).css("display","block"),P.page>=$("#wrapper").children().length?P.dynamicContentPage(-1):P.page+20>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-block"),$(".next_page").css("display","none")),be&&Je.sendNext({title:Te[0].title,videoId:Te[0].id})},305)}catch(a){Te.splice(P.getIndexOfSong(e),1),P.empty||($("#wrapper").children()[$("#wrapper").children().length-1].remove(),t=0?$($("#wrapper").children()[P.page-1]).css("display","block"):$("#wrapper").children().length>P.page+20&&$($("#wrapper").children()[P.page+19]).css("display","block"),be&&Je.sendNext({title:Te[0].title,videoId:Te[0].id}))}Te.length<=2&&(P.empty=!0,$("#wrapper").append("The playlist is empty. ")),$("#suggested-"+e).remove(),P.page+20<$("#wrapper").children().length&&($(".next_page_hide").css("display","none"),$(".next_page").css("display","inline-block")),P.page>=$("#wrapper").children().length&&P.dynamicContentPage(-1),Ze.checkUserEmpty()},voted_song:function(e,t){var a=P.getIndexOfSong(e),o=Te[a];Te[a].votes+=1,Te[a].added=t,P.sortList(),$("#"+e).remove(),P.insertAtIndex(o,!1)},song_change:function(e){var t=Te.length-1;Te[0].now_playing=!0,Te[0].votes=0,Te[0].guids=[],Te[0].added=e,Te[t].now_playing=!1,A.log("---------------------------"),A.log("---SONG ON FIRST INDEX-----"),A.log(Te[0]),A.log("---------------------------");try{Te.push(Te.shift()),P.empty||$("#wrapper").children()[0].remove(),0===$("#wrapper").children().length&&(P.empty=!0,$("#wrapper").append("The playlist is empty. ")),P.insertAtIndex(Te[t-1],!1),$("#wrapper").children().length>=P.page+20&&$($("#wrapper").children()[P.page+20]).css("display","block")}catch(e){}},vote:function(e,t){return De.emit("vote",{channel:z,id:e,type:t,adminpass:W}),!0},skip:function(){return De.emit("skip",{pass:W,id:Me,channel:z.toLowerCase()}),!0},exportToYoutube:function(){var e="https://www.googleapis.com/youtube/v3/playlists?part=snippet";$.ajax({type:"POST",url:e,headers:{Authorization:"Bearer "+$e.access_token,"Content-Type":"application/json"},data:JSON.stringify({snippet:{title:z.toLowerCase(),description:"Playlist exported from zoff"}}),success:function(e){var t=0,a=e.id;$.each(Te,function(e,o){var n="https://www.googleapis.com/youtube/v3/playlistItems?part=snippet";$.ajax({type:"POST",url:n,headers:{Authorization:"Bearer "+$e.access_token,"Content-Type":"application/json"},data:JSON.stringify({snippet:{playlistId:a,resourceId:{kind:"youtube#video",videoId:o.id}}}),success:function(e){A.log("Added video: "+o.id+" to playlist id "+a),t==Te.length-1&&(A.log("All videoes added!"),A.log("url: https://www.youtube.com/playlist?list="+a),$(".exported-list").append("Exported URL: "),$(".exported-list").append(""+z+" "),$("#playlist_loader_export").addClass("hide"),$(".exported-list-container").removeClass("hide")),t+=1}})})},error:function(e){A.log(e)}})},importOldList:function(e){var t="",a=0;playlist_url="lists/"+e+".json",Ne=$.parseJSON($.ajax({type:"GET",url:playlist_url,async:!1}).responseText),$.each(Ne.songs,function(e,o){t+=o.id+",",a>45&&(We.addVideos(t),t="",a=0),a++}),We.addVideos(t),document.getElementById("search").value=""},sortList:function(){Te.sort(A.predicate({name:"votes",reverse:!0},{name:"added",reverse:!1},{name:"title",reverse:!1}))},show:function(){A.mobilecheck()||(j?(j=!1,$("#toptitle").empty(),$("#chan").addClass("bigChan"),$("#chan").html("zoff.no/"+z.toLowerCase())):(j=!0,$("#toptitle").html("Zöff"),$("#chan").removeClass("bigChan"),$("#chan").html(z)))},generateSong:function(e,t,a,o,n,i,s){void 0===O&&(O=$("#list-song-html").html());var l,r,c=e.id,d=e.title,p=e.votes,u="background-image:url('//img.youtube.com/vi/"+c+"/mqdefault.jpg');",g=$(""+O+"
"),m="style";return t&&g.find("#list-song").css("height",0),V||g.find(".card-action").removeClass("hide"),1==p&&g.find(".vote-text").text("vote"),a&&(u="//img.youtube.com/vi/"+c+"/mqdefault.jpg",m="data-original"),o?(g.find(".list-votes").text(p),g.find("#list-song").attr("id",c),g.find(".vote-container").attr("title",d),($("#wrapper").children().length>=20&&s||"none"==i)&&g.find(".card").css("display","none"),l=".vote-container",r="del"):o||(g.find(".vote-text").text(e.duration),l=".add-suggested",r=n?"del_user_suggested":"del_suggested",g.find(".vote-container").attr("class","clickable add-suggested"),g.find(".add-suggested").attr("title",d),g.find("#del").attr("id",r),g.find(l).attr("data-video-title",d),g.find(l).attr("data-video-length",e.length),g.find("#list-song").attr("id","suggested-"+c),g.find(".list-image").attr("class",g.find(".list-image").attr("class").replace("list-image","list-suggested-image"))),g.find(".list-title").text(d),g.find(".list-title").attr("title",d),g.find(l).attr("data-video-id",c),g.find(".list-image").attr(m,u),g.find(".list-suggested-image").attr(m,u),g.find("#"+r).attr("data-video-id",c),g.html()},getIndexOfSong:function(e){return indexes=$.map(Te,function(t,a){if(t.id==e)return a}),indexes[0]},scrollTop:function(){$("#wrapper").scrollTop(0)},scrollBottom:function(){$("#wrapper").scrollTop($("#wrapper")[0].scrollHeight)}},z=void 0===window.chan?$("#chan").html():window.chan,V=!0,D=0,j=!0,O=$("#list-song-html").html(),R=!1,Y=!1,U="***REMOVED***",H=!1,q=/P((([0-9]*\.?[0-9]*)Y)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)W)?(([0-9]*\.?[0-9]*)D)?)?(T(([0-9]*\.?[0-9]*)H)?(([0-9]*\.?[0-9]*)M)?(([0-9]*\.?[0-9]*)S)?)?/,F=[],J=0,G=1,W="",Z="",Q=!1,X=1,K=!1,ee=!1,te=6e3,ae=Date.now(),oe=!1,ne=-1,ie=!1,se=!1,le=!0,re=!1,ce=!1,de=!1,pe=!1,ue={},ge=!1,me="",he=300,fe=600,ye="&autoplay",ve=!1,$e={},we=!1,be=!1;if(void 0===localStorage.debug){var _e=!1;localStorage.debug=_e}var ke,Ce,xe,Se,Ie,Te,F,Ee,Be,Le,Ae,X,Me,Ne,Pe,ze,Ve,De,je={"sync disconnect on unload":!0,secure:!0,"force new connection":!0},Oe=!1,Re=!1;navigator.serviceWorker?navigator.serviceWorker.register("/service-worker.js",{scope:"/"}).then(function(e){A.log(e)}).catch(function(e){console.error(e)}):A.log("Service Worker is not supported in this browser."),$().ready(function(){Oe||"/"==window.location.pathname?Re||"/"!=window.location.pathname||T():e(),De.on("connect",function(){ve&&(ve=!1,$(".connect_error").fadeOut(function(){$(".connect_error").remove(),Materialize.toast("Connected!",2e3,"green lighten")}))}),o();try{Ue=$.ajax({type:"GET",url:"https://api.github.com/repos/zoff-music/zoff/commits",async:!1}).responseText,Ue=$.parseJSON(Ue),$("#latest-commit").html("Latest Commit: "+Ue[0].commit.author.date.substring(0,10)+": "+Ue[0].committer.login+""+Ue[0].sha.substring(0,10)+" : "+Ue[0].commit.message+" =48&&$("#wrapper").scrollTop()>0?($("#top-button").removeClass("hide"),A.addClass("#bottom-button","hide")):t>=$("#playlist").height()-59&&t<=$("#playlist").height()-32&&$("#wrapper").scrollTop()<$("#wrapper")[0].scrollHeight-$("#wrapper").height()-1?($("#bottom-button").removeClass("hide"),A.addClass("#top-button","hide")):(A.addClass("#bottom-button","hide"),A.addClass("#top-button","hide"))}),$(document).on("mouseleave","#playlist",function(){A.addClass("#bottom-button","hide"),A.addClass("#top-button","hide")}),$(document).on("click","#top-button",function(){P.scrollTop()}),$(document).on("click","#bottom-button",function(){P.scrollBottom()});var Ye,Ue,De,He,qe={id:"",get_input:function(e){""===qe.id?qe.set_id(e.toLowerCase()):qe.set_channel(e.toLowerCase())},set_id:function(e){qe.id=e,$("#pausebutton_remote").attr("disabled",!1),$("#skipbutton_remote").attr("disabled",!1),$("#playbutton_remote").attr("disabled",!1),$("#skipbutton_remote").attr("disabled",!1),$("#remote_channel").val(""),$("#remote_channel").attr("placeholder","Change channel"),$("#remote_header").html("Controlling "+e),$("#volume-control-remote").css("display","block")},set_channel:function(e){De.emit("id",{id:qe.id,type:"channel",value:e})},play_remote:function(){De.emit("id",{id:qe.id,type:"play",value:"mock"})},pause_remote:function(){De.emit("id",{id:qe.id,type:"pause",value:"mock"})},skip_remote:function(){De.emit("id",{id:qe.id,type:"skip",value:"mock"})},initiate_volume:function(){$("#volume-control-remote").slider({min:0,max:100,value:100,range:"min",animate:!0,stop:function(e,t){De.emit("id",{id:qe.id,type:"volume",value:t.value}),A.log("volume")}})}},G=!0,Fe={blob_list:[],winter:!1,times_rotated:0,frontpage_function:function(e){$("#channels").empty(),G=!0,Fe.populate_channels(e.channels),Fe.set_viewers(e.viewers)},populate_channels:function(e){var t,a="",o=0;1==e[0].pinned&&(t=e.shift()),e.sort(Fe.sortFunction),void 0!==t&&e.unshift(t),pre_card=$(Ye),A.mobilecheck()||Fe.add_backdrop(e,0);for(var n in e){var i=e[n].channel;if(o<12){var s=e[n].id,l=e[n].viewers,r="background-image:url('https://img.youtube.com/vi/"+s+"/hqdefault.jpg');",c=e[n].count,d=pre_card;1==e[n].pinned?(d.find(".pin").attr("style","display:block;"),d.find(".card").attr("title","Pinned!")):(d.find(".pin").attr("style","display:none;"),d.find(".card").attr("title","")),d.find(".chan-name").text(i),d.find(".chan-name").attr("title",i),d.find(".chan-views").text(l),d.find(".chan-songs").text(c),d.find(".chan-bg").attr("style",r),d.find(".chan-link").attr("href",i),$("#channels").append(d.html())}a+=" ",o++}document.getElementById("preloader").style.display="none",document.getElementById("searches").innerHTML=a,document.getElementById("searches_mobile").innerHTML=a,$("#channels").fadeIn(800),$("#searchFrontpage").focus()},sortFunction:function(e,t){var a=e.viewers,o=t.viewers,n=e.count,i=t.count;return ao?-1:ni?-1:0},getCookie:function(e){for(var t=e+"=",a=document.cookie.split(";"),o=0;o=e.length||t>=8)&&(t=0);var a=e[t].id;if(void 0!==Fe.blob_list[t])setTimeout(function(){G&&($("#mega-background").css("background","url(data:image/png;base64,"+Fe.blob_list[t]+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$("#searchFrontpage").attr("placeholder",e[t].channel))},500);else{var o=new Image;o.src="/static/images/thumbnails/"+a+".jpg",o.onerror=function(){$.ajax({type:"POST",data:{id:a},url:"/php/imageblob.php",success:function(a){Fe.blob_list.push(a),setTimeout(function(){$("#mega-background").css("background","url(data:image/png;base64,"+a+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$("#searchFrontpage").attr("placeholder",e[t].channel)},500)}})},o.onload=function(){$("#mega-background").css("background","url("+o.src+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$("#searchFrontpage").attr("placeholder",e[t].channel)}}He=setTimeout(function(){50==Fe.times_rotated&&G?(Fe.times_rotated=0,t=0,De.emit("frontpage_lists")):G&&(Fe.times_rotated+=1,Fe.add_backdrop(e,t+1))},6e3)},start_snowfall:function(){setTimeout(function(){var e=Math.floor(Math.random()*window.innerWidth+1),t=document.createElement("div"),a=document.getElementsByClassName("mega")[0];t.className="snow",t.style.left=e+"px",t.style.top="0px",a.appendChild(t),Fe.fall_snow(t),Fe.start_snowfall()},800)},fall_snow:function(e){e.style.top=parseInt(e.style.top.replace("px",""))+2+"px",parseInt(e.style.top.replace("px",""))0){var t=e>1?"listeners":"listener";$("#frontpage-viewer-counter").html(e+" "+t)}},to_channel:function(t,a){$("#channel-load").css("display","block"),window.scrollTo(0,0),G=!1,clearTimeout(He),A.mobilecheck()&&De.removeAllListeners(),$("body").css("background-color","#2d2d2d"),$.ajax({url:t+"/php/index.php",success:function(o){if(""!==Je.player&&De.emit("change_channel",{channel:z.toLowerCase()}),$("#frontpage_player").empty(),A.mobilecheck()&&De.disconnect(),a||(window.history.pushState("to the channel!","Title","/"+t),window.chan=t),$(".mega").remove(),$(".mobile-search").remove(),$("main").attr("class","container center-align main"),$("body").attr("id","channelpage"),$("header").html($($(o)[59]).html()),0===$("#alreadychannel").length||A.mobilecheck()||void 0===Je.player)$("main").html($($(o)[63]).html());else{var n=$($($($($(o)[63]).html())[0]).html());$("#main-row").append($(n[2]).wrap("").parent().html()),$("#video-container").append($($($(n[0]).html())[4]).wrap("
").parent().html()),$("#main-row").append("
"),$("#player").removeClass("player_bottom"),$("#main-row").removeClass("frontpage_modified_heights"),$("#main_section_frontpage").remove(),$("#closePlayer").remove(),$("#player_bottom_overlay").remove()}$("#search").attr("placeholder","Find song on YouTube..."),$(".page-footer").addClass("padding-bottom-novideo"),1==$("#alreadychannel").length?e():(Oe=!0,e()),0===$("#alreadyfp").length&&$("head").append("
")}})}};String.prototype.capitalizeFirstLetter=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var Je={loaded:!0,before_load:"",after_load:"",player:"",stopInterval:!1,youtube_listener:function(e){Je.loaded=!1,A.log("--------youtube_listener--------"),A.log("Received: "),A.log(e),A.log("paused variable: "+K),A.log("mobile_beginning variable: "+xe);try{A.log("getVideoUrl(): "+Je.player.getVideoUrl().split("v=")[1])}catch(e){}if(A.log("video_id variable: "+Me),A.log("---------------------------------"),e.np){if(K)Je.getTitle(e.np[0].title,X),Je.notifyUser(e.np[0].id,e.np[0].title),Je.stopVideo();else if(!K){void 0===Ve?Ve=e.np[0].id:Ve!=Me&&(Ve=Me),Me=e.np[0].id,F=e.conf[0],time=e.time,Pe=time-F.startTime,ze=e.np[0].title,duration=e.np[0].duration,xe&&A.mobilecheck()&&0===Pe&&(Pe=1);try{Te[0].id==Me&&P.song_change(Te[0].added),Ze.fetchYoutubeSuggests(Me)}catch(e){}if(Je.getTitle(ze,X),Je.setBGimage(Me),Q&&!window.MSStream)try{Je.player.getVideoUrl().split("v=")[1]!=Me&&(Je.loadVideoById(Me),Je.notifyUser(Me,ze),Je.seekTo(Pe),K&&Je.pauseVideo()),K||(xe||Je.playVideo(),re||Je.durationSetter()),(Je.player.getDuration()>Pe||0===Je.player.getDuration()||be)&&Je.seekTo(Pe),Je.after_load=Me,Je.loaded||setTimeout(function(){Je.loaded=!0},500)}catch(e){re||Je.durationSetter()}else Je.getTitle(ze,X)}}else{document.getElementById("song-title").innerHTML="Empty channel. Add some songs!",$("#player_overlay").height($("#player").height()),window.MSStream||be||$("#player_overlay").toggleClass("hide");try{Je.stopVideo()}catch(e){}}},onPlayerStateChange:function(e){A.log("-------onPlayerStateChange------"),A.log("New state\nState: "),A.log(e);try{A.log("Duration: "+Je.player.getDuration(),"Current time: "+Je.player.getCurrentTime()),A.log("getVideoUrl(): "+Je.player.getVideoUrl().split("v=")[1])}catch(e){}switch(A.log("video_id variable: "+Me),A.log("---------------------------------"),e.data){case-1:break;case 0:ee=!1,K=!1,De.emit("end",{id:Me,channel:z.toLowerCase()});break;case 1:ee=!0,beginning&&A.mobilecheck()&&(Je.pauseVideo(),beginning=!1,xe=!1),se||"/"==window.location.pathname||be||A.addClass("#player_overlay","hide"),"/"!=window.location.pathname&&(1==document.getElementById("play").className.split(" ").length&&$("#play").toggleClass("hide"),2==document.getElementById("pause").className.split(" ").length&&$("#pause").toggleClass("hide")),K&&(De.emit("pos",{channel:z.toLowerCase()}),K=!1);break;case 2:be||(K=!0,"/"!=window.location.pathname&&Ge.play_pause_show(),xe=!0);break;case 3:}},playVideo:function(){be?M.sendMessage("urn:x-cast:zoff.no",{type:"playVideo"}):Je.player.playVideo()},pauseVideo:function(){be?M.sendMessage("urn:x-cast:zoff.no",{type:"pauseVideo"}):Je.player.pauseVideo()},seekTo:function(e){be?M.sendMessage("urn:x-cast:zoff.no",{type:"seekTo",seekTo:e}):Je.player.seekTo(e)},loadVideoById:function(e){be?M.sendMessage("urn:x-cast:zoff.no",{type:"loadVideo",videoId:e}):Je.player.loadVideoById(e)},stopVideo:function(){be?M.sendMessage("urn:x-cast:zoff.no",{type:"stopVideo"}):Je.player.stopVideo()},sendNext:function(e){be&&M.sendMessage("urn:x-cast:zoff.no",{type:"nextVideo",title:e.title,videoId:e.videoId})},getTitle:function(e,t){var a=t>1?"viewers":"viewer",o=decodeURIComponent(e);if("/"!=window.location.pathname){var n=document.getElementById("song-title"),i=document.getElementById("viewers");n.innerHTML=o,i.innerHTML=t+" "+a,n.title=o}document.title=o+" • Zöff / "+z},errorHandler:function(e){5==e.data||100==e.data||101==e.data||150==e.data?(curr_playing=Je.player.getVideoUrl().replace("https://www.youtube.com/watch?v=",""),De.emit("skip",{error:e.data,id:Me,pass:W,channel:z.toLowerCase})):void 0!==Me&&Je.loadVideoById(Me)},onPlayerReady:function(e){$("#channel-load").css("display","none");try{beginning=!0,Q=!0,window.MSStream||($("#player").css("opacity","1"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),Je.loadVideoById(Me),le&&!A.mobilecheck()&&Je.playVideo(),re||Je.durationSetter(),se?setTimeout(function(){Je.seekTo(Pe),le||(Je.pauseVideo(),Ge.play_pause_show())},1e3):Je.seekTo(Pe)),Je.readyLooks(),Ge.initYoutubeControls(Je.player),Ge.initSlider(),Je.player.setVolume(L.get_volume()),$(".video-container").removeClass("no-opacity")}catch(e){}},readyLooks:function(){Je.setBGimage(Me)},setBGimage:function(e){if(void 0!==e&&!se){var t=new Image;t.onload=function(){var e=new ColorThief,a=e.getColor(t);"/"!=window.location.pathname&&(document.getElementsByTagName("body")[0].style.backgroundColor=A.rgbToHsl(a,!0),$("meta[name=theme-color]").attr("content",A.rgbToHex(a[0],a[1],a[2])))},t.crossOrigin="Anonymous",t.src="https://zoff.no:8080/https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}},set_width:function(e){$(".video-container").width(e)},notifyUser:function(e,t){if(t=t.replace(/\\\'/g,"'").replace(/"/g,"'").replace(/&/g,"&"),
+"granted"===Notification.permission&&document.hidden){var a=new Notification("Now Playing",{body:t,icon:"https://i.ytimg.com/vi/"+e+"/mqdefault.jpg",iconUrl:"http://i.ytimg.com/vi/"+e+"/mqdefault.jpg"});a.onclick=function(e){window.focus(),this.cancel()},setTimeout(function(){a.close()},5e3)}},setup_all_listeners:function(){i(),n(),c(),d(),p()},onYouTubeIframeAPIReady:function(){Je.player=new YT.Player("player",{videoId:Me,playerVars:{rel:"0",wmode:"transparent",controls:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:Je.onPlayerReady,onStateChange:Je.onPlayerStateChange,onError:Je.errorHandler}})},durationSetter:function(){if(void 0!==duration)try{Je.stopInterval||(re=!0),dMinutes=Math.floor(duration/60),dSeconds=duration-60*dMinutes,currDurr=void 0!==Je.player.getCurrentTime()?Math.floor(Je.player.getCurrentTime()):Pe,currDurr>duration&&(currDurr=duration),minutes=Math.floor(currDurr/60),seconds=currDurr-60*minutes,document.getElementById("duration").innerHTML=A.pad(minutes)+":"+A.pad(seconds)+"
/ "+A.pad(dMinutes)+":"+A.pad(dSeconds),per=100/duration*currDurr,per>=100?per=100:0===duration&&(per=0),$("#bar").width(per+"%")}catch(e){}Je.stopInterval||setTimeout(Je.durationSetter,1e3)},loadPlayer:function(){if(1==$("script[src='https://www.youtube.com/iframe_api']").length)try{Je.onYouTubeIframeAPIReady()}catch(e){console.error("Seems YouTube iFrame script isn't correctly loaded. Please reload the page.")}else Be=document.createElement("script"),Be.src="https://www.youtube.com/iframe_api",Le=document.getElementsByTagName("script")[0],Le.parentNode.insertBefore(Be,Le)}},Ge={stopInterval:!1,initYoutubeControls:function(){!A.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||$("#controls").appendTo("#playbar"),Ge.initControls()},initControls:function(){document.getElementById("volume-button").addEventListener("click",Ge.mute_video),document.getElementById("playpause").addEventListener("click",Ge.play_pause),document.getElementById("volume-button-overlay").addEventListener("click",Ge.mute_video),document.getElementById("playpause-overlay").addEventListener("click",Ge.play_pause),document.getElementById("fullscreen").addEventListener("click",Ge.fullscreen)},initSlider:function(){try{vol=L.get_volume()}catch(e){}$("#volume").slider({min:0,max:100,value:vol,range:"min",animate:!0,slide:function(e,t){Ge.setVolume(t.value);try{L.set_volume(t.value)}catch(e){}}}),Ge.choose_button(vol,!1)},fullscreen:function(){var e=document.getElementById("player"),t=e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullScreen;t&&t.bind(e)()},play_pause:function(){1==Je.player.getPlayerState()?(Je.pauseVideo(),!A.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||(document.getElementById("player").style.display="none",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra"))):2!=Je.player.getPlayerState()&&0!==Je.player.getPlayerState()||(Je.playVideo(),!A.mobilecheck()||/iPad|iPhone|iPod/.test(navigator.userAgent)||window.MSStream||(document.getElementById("player").style.display="block",$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra")))},play_pause_show:function(){1==document.getElementById("pause").className.split(" ").length&&($("#pause").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")),2==document.getElementById("play").className.split(" ").length&&($("#play").toggleClass("hide"),$("#play-overlay").toggleClass("hide"))},settings:function(){$("#qS").toggleClass("hide")},changeQuality:function(e){Je.player.getPlaybackQuality!=e&&(Je.player.setPlaybackQuality(e),Je.player.getPlaybackQuality()),$("#qS").toggleClass("hide")},mute_video:function(){Je.player.isMuted()?(be&&M.sendMessage("urn:x-cast:zoff.no",{type:"unMute"}),Je.player.unMute(),Ge.choose_button(Je.player.getVolume(),!1)):(be&&M.sendMessage("urn:x-cast:zoff.no",{type:"mute"}),Ge.choose_button(0,!0),Je.player.mute())},setVolume:function(e){Je.player.setVolume(e),Ge.choose_button(e,!1),Je.player.isMuted()&&Je.player.unMute()},choose_button:function(e,t){t?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),2==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=0&&e<=33?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),2==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=34&&e<=66?(1==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),2==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=67&&e<=100&&(2==document.getElementById("v-full").className.split(" ").length&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),1==document.getElementById("v-medium").className.split(" ").length&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),1==document.getElementById("v-low").className.split(" ").length&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),1==document.getElementById("v-mute").className.split(" ").length&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide")))},playPause:function(){state=Je.player.getPlayerState(),button=document.getElementById("playpause"),1==state?Je.pauseVideo():2==state&&Je.playVideo()},volumeOptions:function(){be||(Je.player.isMuted()?(Je.player.unMute(),vol=Je.player.getVolume(),$("#volume").slider("value",Je.player.getVolume())):(Je.player.mute(),$("#volume").slider("value",0)))},hoverMute:function(e){vol=Je.player.getVolume()}},We={submitArray:[],submitArrayExpected:null,showSearch:function(){$("#search-wrapper").toggleClass("hide"),A.mobilecheck()&&$(".search_input").focus(),$("#song-title").toggleClass("hide"),$("#results").toggleClass("hide"),$("#results").empty(),$("#search-btn i").toggleClass("mdi-navigation-close"),$("#search-btn i").toggleClass("mdi-action-search"),$("#search").focus()},search:function(e){if(void 0!==ke&&void 0!==Ce||(ke=$("#temp-results-container"),Ce=$("#empty-results-container").html()),$(".search_results").html(""),""!==e){H=!0;var t=encodeURIComponent(e),a="https://www.googleapis.com/youtube/v3/search?key="+U+"&videoEmbeddable=true&part=id&fields=items(id)&type=video&order=viewCount&safeSearch=none&maxResults=25";a+="&q="+t,J&&(a+="&videoCategoryId=10");var o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+U+"&id=";A.contains($("#search_loader").attr("class").split(" "),"hide")&&$("#search_loader").removeClass("hide"),A.contains($("#results").attr("class").split(" "),"hide")&&$("#results").removeClass("hide"),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){0===e.items.length?($("
"+Ce+"
").appendTo($("#results")).show("blind",83.33),A.contains($("#search_loader").attr("class").split(" "),"hide")||$("#search_loader").addClass("hide")):e.items&&($.each(e.items,function(e,t){o+=t.id.videoId+","}),$.ajax({type:"GET",url:o,dataType:"jsonp",success:function(e){var t="",a=$(ke);$.each(e.items,function(e,o){var n=o.contentDetails.duration;if(secs=We.durationToSeconds(n),!longsongs||secs<720){Ae=o.snippet.title,enc_title=Ae,Ie=o.id,n=n.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),thumb=o.snippet.thumbnails.medium.url;var i=a;i.find(".search-title").text(Ae),i.find(".result_info").text(n),i.find(".thumb").attr("data-original",thumb),i.find("#add-many").attr("data-video-id",Ie),i.find("#add-many").attr("data-video-title",enc_title),i.find("#add-many").attr("data-video-length",secs),i.find("#temp-results").attr("data-video-id",Ie),i.find("#temp-results").attr("data-video-title",enc_title),i.find("#temp-results").attr("data-video-length",secs),t+=i.html()}}),$("
"+t+"
").appendTo($("#results")).show("blind",83.33*(e.items.length-1)),setTimeout(function(){$(".thumb").lazyload({container:$("#results")})},250),A.contains($("#search_loader").attr("class").split(" "),"hide")||$("#search_loader").addClass("hide"),$(".add-many").click(function(e){return e.preventDefault(),e.stopPropagation(),!1})}}))}})}else $(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},backgroundSearch:function(e,t,a,o,n){var i=encodeURIComponent(e+" "+t),s="https://www.googleapis.com/youtube/v3/search?key="+U+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10";s+="&q="+i;var l="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+U+"&id=";t=t.split(" ");var r=e.split("-");r=r.join(" ").split(" "),$.ajax({type:"GET",url:s,dataType:"jsonp",success:function(n){if(0===n.items.length){We.readySubmit(!1,{totalLength:o-1}),A.log("------------------------------"),A.log("NO MATCH FOR:"),A.log("Spotify title: "+e+" "+t.join(" ")),A.log("Spotify length: "+a),A.log("------------------------------");var i=$("
"+me+"
");i.find(".extra-add-text").text(e+" - "+t.join(" ")),i.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),i.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(i.html()),$(".not-imported").removeClass("hide")}else n.items.length>0&&($.each(n.items,function(e,t){l+=t.id.videoId+","}),$.ajax({type:"GET",url:l,dataType:"jsonp",success:function(n){if(n.items.length>0){var i=!1;if($.each(n.items,function(a,n){var s=We.durationToSeconds(n.contentDetails.duration),l=!1;if($.each(r,function(a,o){return n.snippet.title.toLowerCase().indexOf(o.toLowerCase())!=-1&&n.snippet.title.toLowerCase().indexOf("cover")==-1&&e.toLowerCase().indexOf("cover")==-1&&(n.snippet.title.toLowerCase().indexOf("remix")==-1&&e.toLowerCase().indexOf("remix")==-1||n.snippet.title.toLowerCase().indexOf("remix")!=-1&&e.toLowerCase().indexOf("remix")!=-1||n.snippet.title.toLowerCase().indexOf(t[0].toLowerCase())!=-1||n.snippet.channelTitle.toLowerCase().indexOf(t[0].toLowerCase())!=-1||n.snippet.channelTitle.toLowerCase().indexOf("vevo")!=-1)||(l=!0),!1}),!l)return i=!0,We.readySubmit(!0,{id:n.id,title:n.snippet.title,duration:s,totalLength:o-1}),!1}),!i){We.readySubmit(!1,{totalLength:o-1}),A.log("------------------------------"),A.log("NO MATCH FOR:"),A.log("Spotify title: "+e+" "+t.join(" ")),A.log("Spotify length: "+a),A.log("------------------------------");var s=$("
"+me+"
");s.find(".extra-add-text").text(e+" - "+t.join(" ")),s.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),s.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(s.html()),$(".not-imported").removeClass("hide")}}}}))}})},readySubmit:function(e,t){null===We.submitArrayExpected&&(We.submitArrayExpected=t.totalLength),e?We.submitArray.push(t):We.submitArrayExpected-=1,We.submitArray.length-1==We.submitArrayExpected&&($.each(We.submitArray,function(e,t){We.submit(t.id,t.title,t.duration,!0,e,We.submitArray.length-1)}),document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),We.submitArray=[],We.submitArrayExpected=null)},submitAndClose:function(e,t,a){We.submit(e,t,a,!1,0,1),$("#results").html(""),We.showSearch(),document.getElementById("search").value="",$("#results").html="",$(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},importPlaylist:function(e,t){token="";var a,o;void 0!==t&&(token="&pageToken="+t),playlist_url="https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+U+"&playlistId="+e+token,we?(o="html",a={"Content-Type":"application/json",Authorization:"Bearer "+$e.access_token}):(a={},o="jsonp"),$.ajax({type:"GET",url:playlist_url,dataType:o,headers:a,success:function(a){if(a.error)if("playlistItemsNotAccessible"==a.error.errors[0].reason){var o=w(29);window.callback=function(a){$e=a,$e.state==o?(we=!0,setTimeout(function(){we=!1,$e={}},1e3*$e.expires_in),We.importPlaylist(e,t)):($e="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+o,"","width=600, height=600")}else A.log(a.error),document.getElementById("import").disabled=!1,$("#playlist_loader").addClass("hide"),$("#import").removeClass("hide"),Materialize.toast("It seems you've entered a invalid url.",4e3);else{var n="";"string"==typeof a&&(a=$.parseJSON(a)),$.each(a.items,function(e,t){n+=t.contentDetails.videoId+","}),We.addVideos(n,!0),a.nextPageToken&&We.importPlaylist(e,a.nextPageToken),document.getElementById("import").value=""}}})},importSpotifyPlaylist:function(e){$.ajax({url:e,headers:{Authorization:"Bearer "+ue.access_token},success:function(e){$.each(e.items,function(t,a){We.backgroundSearch(a.track.name,a.track.artists.map(function(e){return e.name}).join(" "),Math.floor(a.track.duration_ms/1e3),e.total,t+e.offset)}),e.next&&We.importSpotifyPlaylist(e.next)},error:function(){document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),Materialize.toast("It seems you've entered a invalid url.",4e3)}})},addVideos:function(e,t){var a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key=***REMOVED***&id=";a+=e,$.ajax({type:"POST",url:a,dataType:"jsonp",success:function(e){var a=0,o=[];$.each(e.items,function(e,n){var i=We.durationToSeconds(n.contentDetails.duration);(!longsongs||i<720)&&(enc_title=n.snippet.title,a+=1,o.push({id:n.id,enc_title:enc_title,duration:i,playlist:t}))}),$.each(o,function(e,t){We.submit(t.id,t.enc_title,t.duration,t.playlist,e,a)})}})},submit:function(e,t,a,o,n,i){De.emit("add",{id:e,title:decodeURIComponent(t),adminpass:W,list:z.toLowerCase(),duration:a,playlist:o,num:n,total:i})},durationToSeconds:function(e){var t=e.match(q);return hours=parseInt(t[12])||0,minutes=parseInt(t[14])||0,seconds=parseInt(t[16])||0,60*hours*60+60*minutes+seconds}},Ze={catchUserSuggests:function(e,t){if(t)Ze.createSuggested(e);else for(var a in e)Ze.createSuggested(e[a]);Ze.checkUserEmpty()},createSuggested:function(e){var t=e.duration,a=e.id,o=e.title,n=Math.floor(t/60),i=t-60*n;duration=n+"m "+i+"s";var s=P.generateSong({id:a,title:o,length:t,duration:duration},!1,!1,!1,!0);$("#user-suggest-html").append(s)},fetchYoutubeSuggests:function(e){var t="https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+e+"&type=video&key="+U,a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+U+"&id=";$.ajax({type:"GET",url:t,dataType:"jsonp",success:function(e){$.each(e.items.slice(0,5),function(e,t){a+=t.id.videoId+","}),$.ajax({type:"GET",url:a,dataType:"jsonp",success:function(e){$("#suggest-song-html").empty(),$.each(e.items,function(e,t){var a=t.contentDetails.duration,o=We.durationToSeconds(a),n=t.id,i=t.snippet.title;a=a.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),$("#suggest-song-html").append(P.generateSong({id:n,title:i,length:o,duration:a},!1,!1,!1))})}})}})},checkUserEmpty:function(){var e=$("#user-suggest-html").children().length;0===e?A.contains($("#user_suggests").attr("class").split(" "),"hide")||$("#user_suggests").addClass("hide"):$("#user_suggests").removeClass("hide")}}}();
\ No newline at end of file
diff --git a/static/js/player.js b/static/js/player.js
index ee03df52..51f58bc1 100755
--- a/static/js/player.js
+++ b/static/js/player.js
@@ -132,7 +132,7 @@ var Player = {
}
if(paused)
{
- if(!chromecastAvailable) socket.emit('pos', {channel: chan.toLowerCase()});
+ socket.emit('pos', {channel: chan.toLowerCase()});
paused = false;
}
break;
@@ -157,7 +157,7 @@ var Player = {
playVideo: function(){
if(chromecastAvailable){
castSession.sendMessage("urn:x-cast:zoff.no", {type: "playVideo"});
- socket.emit('pos', {channel: chan.toLowerCase()});
+ //socket.emit('pos', {channel: chan.toLowerCase()});
} else {
Player.player.playVideo();
}