visibility"+e)},to_channel:function(e,t){$("#channel-load").css("display","block"),window.scrollTo(0,0),j=!1,e=e.toLowerCase(),clearTimeout(z),q.mobilecheck()&&(q.log("removing all listeners"),B.removeAllListeners()),$("#main-container").css("background-color","#2d2d2d"),q.mobilecheck()||($("#frontpage-viewer-counter").tooltip("remove"),$("#offline-mode").tooltip("remove")),be=1,clearTimeout(G),$.ajax({url:"/"+e,method:"get",data:{channel:e},success:function(n){""!==St.player&&B.emit("change_channel",{channel:X.toLowerCase()}),$("#frontpage_player").empty(),q.mobilecheck()&&(q.log("disconnecting"),B.disconnect()),t||(window.history.pushState("to the channel!","Title","/"+e),""==tt&&(tt=e),""==at&&(at=e),window.chan=e);var i=$(""+n+"
");$("select").material_select("destroy"),$(".mega").remove(),$(".mobile-search").remove(),$("main").attr("class","container center-align main"),$("#main-container").addClass("channelpage"),$("header").html($(i.find("header")).html()),0===$("#alreadychannel").length||q.mobilecheck()||void 0===St.player?$("main").html($(i.find("main")).html()):($("#main-row").append($(i.find("#playlist").wrap("").parent().html())),$("#video-container").append($(i.find("#main_components").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"),ze=!0,1==$("#alreadychannel").length?a():(kt=!0,a()),0===$("#alreadyfp").length&&$("head").append("
")}})}};String.prototype.capitalizeFirstLetter=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var q={log:function(e){"true"===localStorage.debug&&console.log(e)},rnd:function(e){return e[Math.floor(Math.random()*e.length)]},mobilecheck:function(){var e=!1;return(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4)))&&(e=!0),e},predicate:function(){for(var e,t,a,n=[],i=arguments.length,o=function(e,t){return void 0==e&&(e=0),void 0==t&&(t=0),e===t?0:e
>24&255).toString(16)+(e>>16&255).toString(16)+(e>>8&255).toString(16)+(255&e).toString(16)},hexToRgb:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},hslToRgb:function(e,t,a){function n(e,t,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?e+6*(t-e)*a:a<.5?t:a<2/3?e+(t-e)*(2/3-a)*6:e}var i,o,s;if(0==t)i=o=s=a;else{var l=a<.5?a*(1+t):a+t-a*t,r=2*a-l;i=n(r,l,e+1/3),o=n(r,l,e),s=n(r,l,e-1/3)}return[255*i,255*o,255*s]},pad:function(e){return e<10?"0"+Math.floor(e):Math.floor(e)},contains:function(e,t){for(var a=e.length;a--;)if(e[a]===t)return!0;return!1},sample:function(){Date.now()-xe>=2*Ce&&(B.removeAllListeners(),B.disconnect(),B.connect(),St.setup_all_listeners()),xe=Date.now(),setTimeout(q.sample,Ce)},msieversion:function(){return!!(window.navigator.userAgent.indexOf("MSIE ")>0||navigator.userAgent.match(/Trident.*rv\:11\./))},getRandomInt:function(e,t){return Math.floor(Math.random()*(t-e))+e},secondsToOther:function(e){var t=e,a=Math.floor(t/60);return t-=60*a,[a,t]},rgbToHsl:function(e,t){r=e[0],g=e[1],b=e[2],r/=255,g/=255,b/=255;var a,n,i=Math.max(r,g,b),o=Math.min(r,g,b),s=(i+o)/2;if(i==o)a=n=0;else{var l=i-o;switch(n=s>.5?l/(2-i-o):l/(i+o),i){case r:a=(g-b)/l+(g.5&&t?s=.4:s<.65&&!t&&(s=.65),"hsl("+Math.floor(360*a)+", "+Math.floor(100*n)+"%, "+Math.floor(100*s)+"%)"},componentToHex:function(e){var t=e.toString(16);return 1==t.length?"0"+t:t},rgbToHex:function(e,t,a){return"#"+q.componentToHex(e)+q.componentToHex(t)+q.componentToHex(a)},upperFirst:function(e){return e.substring(0,1).toUpperCase()+e.substring(1).toLowerCase()},addClass:function(e,t){q.contains($(e).attr("class").split(" "),t)||$(e).addClass(t)},send_mail:function(e,t){""!==e&&""!==t&&($("#submit-contact-form").addClass("hide"),$("#send-loader").removeClass("hide"),$("#contact-form-from").attr("disabled","true"),$("#contact-form-message").attr("disabled","true"),$.ajax({type:"POST",data:{from:e,message:t},url:"/api/mail",success:function(e){"success"==e?($("#contact-container").empty(),$("#contact-container").html("Mail has been sent, we'll be back with you shortly.")):($("#contact-container").empty(),$("#contact-container").html("Something went wrong, sorry about that. You could instead try with your own mail-client: contact@zoff.no"))}}))},firstY:null,lastY:null,currentY:null,vertScroll:!1,initAdjustment:0,touchstart:function(e){q.lastY=q.currentY=q.firstY=e.originalEvent.touches[0].pageY},touchmove:function(e){q.currentY=e.originalEvent.touches[0].pageY;var t=q.lastY-q.currentY;!q.vertScroll&&Math.abs(q.currentY-q.firstY)>30&&(q.vertScroll=!0,q.initAdjustment=q.currentY-q.firstY),q.vertScroll&&(window.scrollBy(0,t+q.initAdjustment),q.lastY=q.currentY+t)},touchend:function(e){q.vertScroll=!1,q.firstY=null,q.currentY=null,q.vertScroll=!1,q.initAdjustment=0,q.currentY=null},invertColor:function(e){if(0===e.indexOf("#")&&(e=e.slice(1)),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6!==e.length)throw new Error("Invalid HEX color.");var t=(255-parseInt(e.slice(0,2),16)).toString(16),a=(255-parseInt(e.slice(2,4),16)).toString(16),n=(255-parseInt(e.slice(4,6),16)).toString(16);return"#"+padZero(t)+padZero(a)+padZero(n)},padZero:function(e,t){return t=t||2,(new Array(t).join("0")+e).slice(-t)}};Element.prototype.remove=function(){this.parentElement.removeChild(this)},NodeList.prototype.remove=HTMLCollection.prototype.remove=function(){for(var e=0,t=this.length;e0&&St.sendNext({title:ht[0].title,videoId:ht[0].id})):(tt=X,W.populate_list(e.playlist),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}));break;case"added":W.added_song(e.value),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}),ot=[],st=0;break;case"deleted":W.deleted_song(e.value,e.removed),ot=[],st=0;break;case"vote":Qe||(W.voted_song(e.value,e.time),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id})),ot=[],st=0;break;case"song_change":"/"!=window.location.pathname&&W.song_change(e.time,e.remove),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}),ot=[],st=0;break;case"song_change_prev":"/"!=window.location.pathname&&W.song_change_prev(e.time),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}),ot=[],st=0}},insertAtBeginning:function(e,t){var a=0==W.page?"":"none",n=W.generateSong(e,t,!1,!0,!1,a,!1);$("#wrapper").append(n)},insertAtIndex:function(e,t,a){var n=W.getIndexOfSong(e.id),i="none";if(!e.now_playing){n>=W.page&&n div:nth-child("+n+")").after(o);var s=$("#wrapper").children()[n];$(s).css("display",i),"inline-block"==i&&$("#wrapper").children().length>=W.page+W.can_fit+1?$($("#wrapper").children()[W.page+W.can_fit]).css("display","none"):n=0?$($("#wrapper").children()[W.page]).css("display","inline-block"):$("#wrapper").children().length>W.page+W.can_fit&&$($("#wrapper").children()[W.page+W.can_fit-1]).css("display","inline-block"),a&&W.page>0&&$($("#wrapper").children()[W.page-1]).css("display","none"),t&&setTimeout(function(){$(s).css("transform","translateX(0%)"),setTimeout(function(){$(s).removeClass("side_away")},300)},5)}},populate_list:function(e,t){if(q.mobilecheck()||Me?Me?(W.can_fit=Math.round($("#wrapper").height()/91)+1,W.element_height=$("#wrapper").height()/W.can_fit-4):(W.can_fit=Math.round(($(window).height()-$(".tabs").height()-$("header").height()-64-8)/71)+1,W.element_height=($(window).height()-$(".tabs").height()-$("header").height()-64-8)/W.can_fit-5):(W.can_fit=Math.round($("#wrapper").height()/71)+1,W.element_height=$("#wrapper").height()/W.can_fit-5.3),W.element_height<55.2&&(W.can_fit=W.can_fit-1,W.element_height=55.2,W.can_fit=Math.round(($(window).height()-$(".tabs").height()-$("header").height()-64-8)/71),W.element_height=($(window).height()-$(".tabs").height()-$("header").height()-64-8)/W.can_fit-5),void 0===te&&(te=$("#list-song-html").html()),ht=e,Qe&&!t)for(var a=0;a1?($.each(ht,function(e,t){if(!t.now_playing){var a=W.generateSong(t,!1,Ee,!0,!1,"",!0);$("#wrapper").append(a)}}),$("#wrapper").children().length>W.can_fit&&!$("#pageButtons").length?($('').insertAfter("#wrapper"),$(".prev_page").css("display","none"),$(".first_page").css("display","none"),$(".next_page_hide").css("display","none"),$(".last_page_hide").css("display","none")):$("#pageButtons").length||($('').insertAfter("#wrapper"),$(".prev_page").css("display","none"),$(".next_page").css("display","none"),$(".last_page").css("display","none"),$(".first_page").css("display","none"),$(".next_page_hide").css("display","inline-flex"),$(".prev_page_hide").css("display","inline-flex")),W.dynamicContentPage(-10)):(W.empty=!0,$("#wrapper").html("The playlist is empty."),$("#pageButtons").length||$('').insertAfter("#wrapper"),$(".prev_page").css("display","none"),$(".next_page").css("display","none"),$(".last_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".first_page").css("display","none"),$(".next_page_hide").css("display","inline-flex"),$(".prev_page_hide").css("display","inline-flex")),$("#settings").css("visibility","visible"),$("#settings").css("opacity","1"),$("#wrapper").css("opacity","1")},dynamicContentPageJumpTo:function(e){((e*=W.can_fit)>W.page||e0&&"none"==$(".prev_page").css("display")&&($(".prev_page").css("display","inline-flex"),$(".prev_page_hide").css("display","none"),$(".first_page").css("display","inline-flex"),$(".first_page_hide").css("display","none")),W.page+W.can_fit>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none")),$("#pageNumber").html(W.page/W.can_fit+1))},dynamicContentPage:function(e){1==e?($("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=W.page+W.can_fit,$("#wrapper").children().slice(W.page,W.page+W.can_fit).css("display","inline-block"),W.page>0&&"none"==$(".prev_page").css("display")&&($(".prev_page").css("display","inline-flex"),$(".prev_page_hide").css("display","none"),$(".first_page").css("display","inline-flex"),$(".first_page_hide").css("display","none")),W.page+W.can_fit>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none"))):10==e?($("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=Math.floor(($("#wrapper").children().length-1)/W.can_fit)*W.can_fit,$("#wrapper").children().slice(W.page,W.page+W.can_fit).css("display","inline-block"),W.page>0&&"none"==$(".prev_page").css("display")&&($(".prev_page").css("display","inline-flex"),$(".prev_page_hide").css("display","none"),$(".first_page").css("display","inline-flex"),$(".first_page_hide").css("display","none")),W.page+W.can_fit>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none"))):-10==e?($("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=0,$("#wrapper").children().slice(W.page,W.page+W.can_fit).css("display","inline-block"),0==W.page&&"none"!=$(".prev_page").css("display")?($(".prev_page").css("display","none"),$(".prev_page_hide").css("display","inline-flex"),$(".first_page").css("display","none"),$(".first_page_hide").css("display","inline-flex")):"none"==$(".prev_page").css("display")?($(".prev_page_hide").css("display","inline-flex"),$(".first_page_hide").css("display","inline-flex")):($(".prev_page_hide").css("display","none"),$(".first_page_hide").css("display","none")),W.page+W.can_fit<$("#wrapper").children().length&&($(".next_page_hide").css("display","none"),$(".next_page").css("display","inline-flex"),$(".last_page_hide").css("display","none"),$(".last_page").css("display","inline-flex"))):($("#wrapper").children().slice(W.page-W.can_fit,W.page).css("display","inline-block"),$("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=W.page-W.can_fit<0?0:W.page-W.can_fit,0==W.page&&"none"!=$(".prev_page").css("display")?($(".prev_page").css("display","none"),$(".prev_page_hide").css("display","inline-flex"),$(".first_page").css("display","none"),$(".first_page_hide").css("display","inline-flex")):"none"==$(".prev_page").css("display")?($(".prev_page_hide").css("display","inline-flex"),$(".first_page_hide").css("display","inline-flex")):($(".prev_page_hide").css("display","none"),$(".first_page_hide").css("display","none")),W.page+W.can_fit<$("#wrapper").children().length&&($(".next_page_hide").css("display","none"),$(".next_page").css("display","inline-flex"),$(".last_page_hide").css("display","none"),$(".last_page").css("display","inline-flex"))),$("#pageNumber").html(W.page/W.can_fit+1)},added_song:function(e){var t;if(void 0!=e){if(0!==ht.length&&(t=ht.pop()),ht.push(e),W.sortList(),t&&ht.push(t),$("#suggested-"+e.id).length>0){et-=1,et<0&&(et=0);var a=et>9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=a||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(a)}$("#suggested-"+e.id).remove(),W.empty&&(W.empty=!1),$("#empty-channel-message").remove(),W.insertAtIndex(e,!0),$($("#wrapper").children()[W.page+W.can_fit]).css("display","none"),$("#wrapper").children().length>W.page+W.can_fit?($(".next_page_hide").css("display","none"),$(".next_page").removeClass("hide"),$(".last_page_hide").css("display","none"),$(".next_page").css("display","inline-flex"),$(".last_page").css("display","inline-flex")):($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"))}},deleted_song:function(e,t){try{var a=W.getIndexOfSong(e);a=0?($($("#wrapper").children()[W.page]).css("height",0),$($("#wrapper").children()[W.page]).css("display","inline-block"),$($("#wrapper").children()[W.page]).css("height",W.element_height)):$("#wrapper").children().length>W.page+W.can_fit&&($($("#wrapper").children()[W.page+W.can_fit]).css("height",0),$($("#wrapper").children()[W.page+W.can_fit]).css("display","inline-block"),$($("#wrapper").children()[W.page+W.can_fit]).css("height",W.element_height)),W.page>=$("#wrapper").children().length-1?(W.dynamicContentPage(-1),$(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none")):W.page+W.can_fit+1>=$("#wrapper").children().length-1&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none")),W.page<=a&&W.page-W.can_fit<=a?($("#"+e).addClass("side_away"),$("#"+e).find(".mobile-delete").remove(),$("#"+e).css("transform","translateX(-100%)"),setTimeout(function(){$("#"+e).remove()},300)):$("#"+e).remove(),ht.splice(W.getIndexOfSong(e),1),St.sendNext({title:ht[0].title,videoId:ht[0].id})}catch(t){ht.splice(W.getIndexOfSong(e),1),W.empty||($("#"+e).remove(),a=0?$($("#wrapper").children()[W.page-1]).css("display","inline-block"):$("#wrapper").children().length>W.page+W.can_fit&&$($("#wrapper").children()[W.page+(W.can_fit-1)]).css("display","inline-block"),St.sendNext({title:ht[0].title,videoId:ht[0].id}))}ht.length<=2&&(W.empty=!0,$("#wrapper").html("The playlist is empty.")),$("#suggested-"+e).remove(),W.page,W.can_fit,$("#wrapper").children().length,W.page>=$("#wrapper").children().length&&W.dynamicContentPage(-1),Lt.checkUserEmpty()},voted_song:function(e,t){var a=W.getIndexOfSong(e),n=ht[a];ht[a].votes+=1,ht[a].added=t,W.sortList(),$("#"+e).remove(),W.insertAtIndex(n,!1)},song_change_prev:function(e){ht[ht.length-1].now_playing=!1,ht[ht.length-1].votes=ht[0].votes,ht[ht.length-1].guids=[],ht[ht.length-1].added=ht[0].added-1,ht.unshift(ht.pop()),ht[ht.length-1].now_playing=!0,$("#wrapper").children()[$("#wrapper").children().length-1].remove();var t=ht.length-2;t<0&&(t=0),W.insertAtIndex(ht[0],!1,!0)},song_change:function(e,t){try{var a=ht.length-1;$("#wrapper").children()[0].remove(),ht.length<=1&&(W.empty=!0,$("#wrapper").html("The playlist is empty.")),ht[0].now_playing=!0,ht[0].votes=0,ht[0].guids=[],ht[0].added=e,t?delete ht[a]:ht[a].now_playing=!1,q.log("---------------------------"),q.log("---SONG ON FIRST INDEX-----"),q.log(ht[0]),q.log("---------------------------"),ht.push(ht.shift()),t||W.insertAtIndex(ht[$("#wrapper").children().length],!1,!0)}catch(e){}},vote:function(e,t){return!Qe||"del"==t&&K&&!Q&&""!=ce?B.emit("vote",{channel:X,id:e,type:t,adminpass:""==ce?"":Y.crypt_pass(ce),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}):"pos"==t?W.voted_song(e,(new Date).getTime()/1e3):W.deleted_song(e),!0},skip:function(e){return Qe?e?St.playNext():St.playPrev():B.emit("skip",{pass:""==ce?"":Y.crypt_pass(ce),id:vt,channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),!0},exportToSpotify:function(){$.ajax({type:"GET",url:"https://api.spotify.com/v1/me",headers:{Authorization:"Bearer "+Ne.access_token},success:function(e){var t=e.id;$("#playlist_loader_export").removeClass("hide"),$(".exported-list-container").removeClass("hide"),$.ajax({type:"POST",url:"https://api.spotify.com/v1/users/"+t+"/playlists",headers:{Authorization:"Bearer "+Ne.access_token,"Content-Type":"application/json"},data:JSON.stringify({name:X.toLowerCase()+" - Zoff",public:!0}),success:function(e){var a=e.id;$.each(ht,function(e,n){W.searchSpotify(n,a,t)})}})}})},searchSpotify:function(e,t,a){var n=e.title,i=e.title.toLowerCase().replace("-"," ");i.startsWith("the")&&(i=i.replace("the","")),i=i.replace(" hd",""),i=i.replace("official hd video",""),i=i.replace("unofficial video",""),i=i.replace("studio footage",""),i=i.replace("great song",""),i=i.replace("-"," "),i=i.replace("-"," "),i=i.replace(" hq"," "),i=i.replace("lyric video",""),i=i.replace("lyrics video",""),i=i.replace("album version",""),i=i.replace("drive original movie soundtrack",""),i=i.replace("original movie soundtrack",""),i=i.replace("live sessions",""),i=i.replace("audio only",""),i=i.replace("audio",""),i=i.replace("(new)",""),i=i.replace(" by "," "),i=i.replace(" vs "," "),i=i.replace("(full)"," "),i=i.replace("(video)"," "),i=i.replace("&"," "),i=i.replace("with lyrics",""),i=i.replace("lyrics",""),i=i.replace("w/",""),i=i.replace("w/",""),i=i.replace("official video",""),i=i.replace("studio version",""),i=i.replace("official music video",""),i=i.replace("music video",""),i=i.replace("musicvideo",""),i=i.replace("original video",""),i=i.replace("full version",""),i=i.replace("full song",""),i=i.replace("(official)",""),i=i.replace("official",""),i=i.replace("(original)",""),i=i.replace("("," "),i=i.replace(")"," "),i=i.replace("|",""),i=i.replace("feat."," "),i=i.replace("feat"," "),i=i.replace("ft."," "),i=i.replace("["," "),i=i.replace("]"," "),i=i.replace(" free ",""),i=i.replace(" hd",""),i=i.replace("original mix"," "),i=i.replace("radio edit"," "),i=i.replace("pop version"," "),i=i.replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," "),i=encodeURIComponent(i),$.ajax({type:"GET",url:"https://api.spotify.com/v1/search?q="+i+"&type=track",headers:{Authorization:"Bearer "+Ne.access_token},async:!0,statusCode:{429:function(n){q.log(n.getAllResponseHeaders());var i=n.getResponseHeader("Retry-After");q.log(i),i||(i=5),i=parseInt(i,10),q.log("Retry-After",i),setTimeout(function(){W.searchSpotify(e,t,a)},1e3*i)}},error:function(n){if(429==n.status){q.log(n.getAllResponseHeaders());var i=n.getResponseHeader("Retry-After");q.log(i),i||(i=5),i=parseInt(i,10),q.log("Retry-After",i),setTimeout(function(){W.searchSpotify(e,t,a)},1e3*i)}},success:function(e){var o=!1;if($.each(e.tracks.items,function(e,t){if(t.name=t.name.toLowerCase(),t.name=t.name.replace("("," "),t.name=t.name.replace(")"," "),t.name=t.name.replace("["," "),t.name=t.name.replace("]"," "),t.name=t.name.replace("-"," "),t.name=t.name.replace("-"," "),t.name=t.name.replace("-"," "),t.name=t.name.replace("original mix"," "),t.name=t.name.replace("album version"," "),t.name=t.name.replace("abum version"," "),t.name=t.name.replace("feat."," "),t.artists[0].name=t.artists[0].name.replace("feat."," "),t.artists[0].name=t.artists[0].name.replace("feat"," "),t.name=t.name.replace("feat"," "),t.name=t.name.replace("ft."," "),t.name=t.name.replace("radio edit"," "),t.name=t.name.replace("pop version"," "),t.name=t.name.replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," "),t.artists[0].name=t.artists[0].name.replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ")," "==t.name.substring(t.name.length-1)&&(t.name=t.name.substring(0,t.name.length-1)),"."==t.name.substring(t.name.length-1)&&"."!=i.substring(i.length-1)&&(t.name=t.name.substring(0,t.name.length-1)),decodeURIComponent(i).indexOf(t.artists[0].name.toLowerCase())>=0&&decodeURIComponent(i).indexOf(t.name.toLowerCase())>=0)return o=!0,W.uris.push(t.uri),q.log("Found",i),!1;for(var a=t.name.split(" "),e=0;e=0||"&"==a[e]&&i.indexOf("and")>=0)&&i.indexOf(a[e])<0)return!0;return o=!0,W.uris.push(t.uri),q.log("Found",i),!1}),o||(W.not_found.push(n),W.num_songs=W.num_songs+1,q.log("Didn't find",n)),W.num_songs+W.uris.length==ht.length){if(W.uris.length>100){for(;W.uris.length>100;)W.addToSpotifyPlaylist(W.uris.slice(0,100),t,a),W.uris=W.uris.slice(100,W.uris.length);W.addToSpotifyPlaylist(W.uris,t,a),$("#playlist_loader_export").addClass("hide")}else W.addToSpotifyPlaylist(W.uris,t,a),$("#playlist_loader_export").addClass("hide");0==$(".exported-spotify-list").length&&$(".exported-list").append(""+X+""),$.each(W.not_found,function(e,t){var a=$(""+je+"
");a.find(".extra-add-text").attr("value",t),a.find(".extra-add-text").attr("title",t),$(".not-exported-container").append(a.html())}),$(".not-exported").removeClass("hide"),$(".spotify_export_button").css("display","block")}}})},addToSpotifyPlaylist:function(e,t,a){$.ajax({type:"POST",url:"https://api.spotify.com/v1/users/"+a+"/playlists/"+t+"/tracks",headers:{Authorization:"Bearer "+Ne.access_token,"Content-Type":"application/json"},data:JSON.stringify({uris:e}),error:function(n){var i=t,o=e,s=a;setTimeout(function(){W.addToSpotifyPlaylist(o,i,s)},3e3)},success:function(e){q.log("Added songs")}})},exportToYoutube:function(){$(".exported-list-container").removeClass("hide"),$("#playlist_loader_export").removeClass("hide"),$.ajax({type:"POST",url:"https://www.googleapis.com/youtube/v3/playlists?part=snippet",headers:{Authorization:"Bearer "+Ue.access_token,"Content-Type":"application/json"},data:JSON.stringify({snippet:{title:q.upperFirst(X.toLowerCase()),description:"Playlist exported from zoff"}}),success:function(e){var t=e.id;W.addToYoutubePlaylist(t,ht,0,"https://www.googleapis.com/youtube/v3/playlistItems?part=snippet")},error:function(e){q.log(e)}})},addToYoutubePlaylist:function(e,t,a,n){var i=JSON.stringify({snippet:{playlistId:e,resourceId:{kind:"youtube#video",videoId:t[a].id}}});$.ajax({type:"POST",url:n,headers:{Authorization:"Bearer "+Ue.access_token,"Content-Type":"application/json"},data:i,success:function(i){q.log("Added video: "+t[a].id+" to playlist id "+e),a==t.length-1?(q.log("All videoes added!"),q.log("url: https://www.youtube.com/playlist?list="+e),$(".exported-list").append(""+X+""),$("#playlist_loader_export").addClass("hide"),$(".current_number").addClass("hide")):($(".current_number").removeClass("hide"),$(".current_number").text(a+1+" of "+t.length),W.addToYoutubePlaylist(e,t,a+1,n))}})},sortList:function(){ht.sort(q.predicate({name:"votes",reverse:!0},{name:"added",reverse:!1},{name:"title",reverse:!1}))},show:function(){q.mobilecheck()||(ee?(ee=!1,$("#toptitle").empty(),$("#chan").addClass("bigChan"),$("#chan").html("zoff.me/"+X.toLowerCase())):(ee=!0,$("#toptitle").html("Zoff"),$("#chan").removeClass("bigChan"),$("#chan").html(X)))},generateSong:function(e,t,a,n,i,o,s){void 0===te&&(te=$("#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=$(""+te+"
"),h="style";if(t&&(g.find(".list-song").css("transform","translateX(100%)"),g.find(".list-song").addClass("side_away")),g.find(".list-song").css("height",W.element_height),Q||g.find(".card-action").removeClass("hide"),1==p&&g.find(".vote-text").text("vote"),a&&(u="//img.youtube.com/vi/"+c+"/mqdefault.jpg",h="data-original"),n){g.find(".list-votes").text(p),g.find("#list-song").attr("data-video-id",c),g.find("#list-song").attr("data-video-type","song"),g.find("#list-song").attr("id",c),g.find(".vote-container").attr("title",d),($("#wrapper").children().length>=W.can_fit&&s||"none"==o)&&g.find(".card").css("display","none"),l=".vote-container",r="delete_button";var m=q.secondsToOther(e.duration);g.find(".card-duration").text(q.pad(m[0])+":"+q.pad(m[1]))}else if(!n){g.find(".suggested_remove").removeClass("hide"),g.find(".vote-text").text(""),g.find(".card-duration").text(q.pad(e.duration[0])+":"+q.pad(e.duration[1]));var f="user";l=".add-suggested",i?r="del_user_suggested":(r="del_suggested",f="system"),g.find(".vote-container").attr("class","clickable add-suggested"),g.find(".add-suggested").attr("title",d),g.find(".delete_button").addClass(r),g.find(l).attr("data-video-title",d),g.find(l).attr("data-video-length",e.length),g.find(l).attr("data-added-by",f),g.find("#list-song").attr("data-video-type","suggested"),g.find("#list-song").attr("data-video-id",c),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"))}return g.find(".mobile-delete").remove(),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(h,u),g.find(".list-suggested-image").attr(h,u),g.find("."+r).attr("data-video-id",c),g.html()},getIndexOfSong:function(e){try{return indexes=$.map(ht,function(t,a){if(t.id==e)return a}),indexes[0]}catch(e){}},scrollTop:function(){$("#wrapper").scrollTop(0)},scrollBottom:function(){$("#wrapper").scrollTop($("#wrapper")[0].scrollHeight)}},Z=3,X=void 0===window.chan?$("#chan").html():window.chan,Q=!0,K=0,ee=!0,te=$("#list-song-html").html(),ae=!1,ne="***REMOVED***",ie=!1,oe=/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)?)?/,se=[],le=!1,re=0,j=1,ce="",de=!1,pe="",ue="",ge=!1,he=1,me="",fe=!1,ye=!1,ve=!1,_e=!1,$e=!1,we=!1,be=1,ke=!1,Ce=6e3,xe=Date.now(),Se=!1,Te=!1,Ie="",Le=-1,Ee=!1,Me=!1,Ae=!0,Pe=!1,De=!1,Ve=!1,Be=!1,ze=!1,Ne={},Oe=!1,Ye="",je="",Re=300,qe=600,Ge="&autoplay",He=!1,Ue={},Fe=!1,Je=!1,We="808080",Ze=!1,Xe=!1,Qe=!1,Ke=!1,et=0,tt="",at="",nt=!1,it="",ot=[],st=0,lt="";if(void 0===localStorage.debug){localStorage.debug=!1}var rt,ct,dt,pt,ut,gt,ht,se,mt,ft,yt,he,vt,_t,$t,wt,B,bt={"sync disconnect on unload":!0,secure:!0,"force new connection":!0},kt=!1,Ct=!1;try{navigator.serviceWorker.getRegistration("/").then(function(e){e&&e.unregister()})}catch(e){}$.ajaxPrefilter(function(e,t,a){e.async=!0}),$().ready(function(){localStorage.getItem("VERSION")&&parseInt(localStorage.getItem("VERSION"))==Z||localStorage.setItem("VERSION",Z),kt||"/"==window.location.pathname?Ct||"/"!=window.location.pathname||t():a(),q.mobilecheck()&&B.on("guid",function(e){lt=e}),B.on("connect",function(){He&&(He=!1,$(".connect_error").fadeOut(function(){$(".connect_error").remove(),Materialize.toast("Connected!",2e3,"green lighten"),Qe&&B.emit("offline",{status:!0,channel:void 0!=X?X.toLowerCase():""}),void 0!=X&&void 0!==Y.get_pass(X.toLowerCase())&&""!==Y.get_pass(X.toLowerCase())&&B.emit("password",{password:Y.crypt_pass(Y.get_pass(X.toLowerCase())),channel:X.toLowerCase()}),void 0!=X&&void 0!==conf_arr.name&&""!==conf_arr.name&&void 0!==conf_arr.chat_pass&&""!==conf_arr.chat_pass&&setTimeout(function(){O.namechange(conf_arr.name+" "+conf_arr.chat_pass,!0)},100)}))}),B.on("name",function(e){"name"==e.type&&e.accepted?(Y.set_name(pe,ue),pe="",ue=""):(pe="",ue="")}),B.on("self_ping",function(){void 0!=X&&""!=X.toLowerCase()&&B.emit("self_ping",{channel:X.toLowerCase()})}),s()}),initializeCastApi=function(){cast.framework.CastContext.getInstance().setOptions({receiverApplicationId:"E6856E24",autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED});var e=cast.framework.CastContext.getInstance();nt=!0,e.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(e){switch(q.log("session state"),q.log(e.sessionState),e.sessionState){case cast.framework.SessionState.SESSION_STARTED:H=cast.framework.CastContext.getInstance().getCurrentSession(),H.addMessageListener("urn:x-cast:zoff.me",i),chrome.cast.media.GenericMediaMetadata({title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"),Je=!0,we=!1,pt=!1;var t;try{t=St.player.getCurrentTime()}catch(e){t=_t}H.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,seekTo:t,channel:X.toLowerCase()}),H.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",videoId:ht[0].id,title:ht[0].title}),q.mobilecheck()&&!fe&&(fe=!0,H.sendMessage("urn:x-cast:zoff.me",{type:"mobilespecs",guid:lt,socketid:B.id,adminpass:""==ce?"":Y.crypt_pass(ce),channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})),n(1);break;case cast.framework.SessionState.SESSION_RESUMED:H=cast.framework.CastContext.getInstance().getCurrentSession(),H.addMessageListener("urn:x-cast:zoff.me",i),chrome.cast.media.GenericMediaMetadata({title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"),Je=!0,we=!1,pt=!1;var t;try{t=St.player.getCurrentTime()}catch(e){t=_t}H.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,seekTo:t,channel:X.toLowerCase()}),H.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",videoId:ht[0].id,title:ht[0].title}),n(1);break;case cast.framework.SessionState.SESSION_ENDED:Je=!1,n(0)}}),e.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(e){q.log("cast state"),q.log(e.castState),"NOT_CONNECTED"==e.castState?($(".castButton").css("display","block"),$(".volume-container").hasClass("volume-container-cast")||$(".volume-container").addClass("volume-container-cast"),Ke=!0,localStorage.getItem("_chSeen")&&"seen"==localStorage.getItem("_chSeen")||($(".castButton").css("display","block"),de=!0,$(".tap-target").tapTarget("open"),F=setTimeout(function(){$(".tap-target").tapTarget("close")},4e3),localStorage.setItem("_chSeen","seen"),$(".castButton").removeClass("castButton-white-active"))):"NO_DEVICES_AVAILABLE"==e.castState&&(Ke=!1,$(".volume-container").removeClass("volume-container-cast"))}),"NOT_CONNECTED"==e.getCastState()&&($(".castButton").css("display","block"),$(".castButton").removeClass("castButton-white-active"),Ke=!0)},window.zoff={enable_debug:_,disable_debug:w},$(document).on("click",".accept-delete",function(e){e.preventDefault();var t=$(this).attr("data-video-id");t&&W.vote(t,"del"),$("#delete_song_alert").modal("close")}),$(document).keyup(function(e){27==e.keyCode?($("#results").html(""),0==$("#search-wrapper").length||q.contains($("#search-wrapper").attr("class").split(" "),"hide")||$("#search-wrapper").toggleClass("hide"),0!=$("#song-title").length&&q.contains($("#song-title").attr("class").split(" "),"hide")&&$("#song-title").toggleClass("hide"),"close"==$("#search-btn i").html()&&$("#search-btn i").html("search"),0==$(".search-container").length||q.contains($(".search-container").attr("class").split(" "),"hide")||$("#results").toggleClass("hide")):13!=e.keyCode||"fireplace"!=$("#search").val()||$(".search-container").hasClass("hide")||"/"==window.location.pathname||(clearTimeout(ut),$("#results").html(""),$("#search").val(""),0==$("#search-wrapper").length||q.contains($("#search-wrapper").attr("class").split(" "),"hide")||$("#search-wrapper").toggleClass("hide"),0!=$("#song-title").length&&q.contains($("#song-title").attr("class").split(" "),"hide")&&$("#song-title").toggleClass("hide"),"close"==$("#search-btn i").html()&&$("#search-btn i").html("search"),0==$(".search-container").length||q.contains($(".search-container").attr("class").split(" "),"hide")||$("#results").toggleClass("hide"),Se?(Se=!1,St.fireplace.destroy(),$("#fireplace_player").css("display","none")):(Se=!0,$("#fireplace_player").css("display","block"),St.createFireplacePlayer()))}),$(document).on("mouseenter",".card.sticky-action",function(e){var t=this;$(t).find(".card-reveal").attr("style","display: block;"),clearTimeout(rt),rt=setTimeout(function(){$(t).find(".card-reveal").attr("style","display: block;transform: translateY(-100%);")},50)}),$(document).on("click","#chat_submit",function(e){e.preventDefault(),$("#chatForm").submit()}),$(document).on("click",".list-remove",function(e){e.preventDefault(),$("#"+$(this).parent().attr("id")).contextMenu()}),$(document).on("mouseleave",".card.sticky-action",function(e){var t=this;$(t).find(".card-reveal").attr("style","display: block;transform: translateY(0%);"),clearTimeout(rt),rt=setTimeout(function(){$(t).find(".card-reveal").attr("style","display: none;")},100)}),$(document).on("click","#offline-mode",function(e){e.preventDefault(),Y.get_offline()?T(!1,Qe):T(!0,Qe)}),$(document).on("submit","#thumbnail_form",function(e){e.preventDefault(),B.emit("suggest_thumbnail",{channel:X,thumbnail:$("#chan_thumbnail").val(),adminpass:Y.crypt_pass(Y.get_pass(X.toLowerCase())),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),$("#chan_thumbnail").val("")}),$(document).on("submit","#description_form",function(e){e.preventDefault(),B.emit("suggest_description",{channel:X,description:$("#chan_description").val(),adminpass:Y.crypt_pass(Y.get_pass(X.toLowerCase())),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),$("#chan_description").val("")}),$(document).on("click","#playpause-overlay",function(){$("#play-overlay").hasClass("hide")?(St.pauseVideo(),$("#play-overlay").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")):$("#pause-overlay").hasClass("hide")&&(St.playVideo(),$("#play-overlay").toggleClass("hide"),$("#pause-overlay").toggleClass("hide"))}),$(document).on("click","#cookieok",function(){$(this).fadeOut(function(){$(this).remove(),localStorage.ok_cookie=!0})}),$(document).on("click",".connect_error",function(e){e.preventDefault(),$(this).fadeOut(function(){$(this).remove(),He=!1})}),$(document).on("click",".extra-button-search",function(e){e.preventDefault(),$("#search").val($(this).attr("data-text")),It.search($(this).attr("data-text"))}),$(document).on("click",".extra-button-delete",function(e){e.preventDefault(),$(this).parent().remove(),0===$(".not-imported-container").children().length&&$(".not-imported").toggleClass("hide")}),$(document).on("click","#closePlayer",function(e){e.preventDefault(),B.emit("change_channel");try{if(Je){cast.framework.CastContext.getInstance().getCurrentSession().endSession(!0)}St.player.destroy(),$("#player_bottom_overlay").toggleClass("hide"),$("#player").remove()}catch(e){}B.removeEventListener("np"),B.removeEventListener("id"),B.removeEventListener(gt),$("#alreadychannel").remove(),St.player="",document.title="Zoff - the shared YouTube based radio",$("#closePlayer").remove()}),$(document).on("click",".prev_page",function(e){e.preventDefault(),W.dynamicContentPage(-1)}),$(document).on("click",".modal-close",function(e){e.preventDefault()}),$(document).on("change",".password_protected",function(e){e.preventDefault(),this.checked?($("#user_password").modal("open"),$("#user-pass-input").focus()):(Ie="",$(".change_user_pass").hasClass("hide")||$(".change_user_pass").addClass("hide"),N.save(!0))}),$(document).on("submit","#user-password-channel-form",function(e){e.preventDefault(),ve?(me=CryptoJS.SHA256($("#user-pass-input").val()).toString(),$("#user-pass-input").val(""),B.emit("list",{version:parseInt(localStorage.getItem("VERSION")),channel:X.toLowerCase(),pass:Y.crypt_pass(me)})):($("#user_password").modal("close"),Ie=$("#user-pass-input").val(),$e=!1,$("#user-pass-input").val(""),N.save(!0))}),$(document).on("click",".change_user_pass_btn",function(e){e.preventDefault(),$e=!0,$("#user_password").modal("open"),$("#user-pass-input").focus()}),$(document).on("click",".submit-user-password",function(e){e.preventDefault(),ve?(me=CryptoJS.SHA256($("#user-pass-input").val()).toString(),$("#user-pass-input").val(""),B.emit("list",{version:parseInt(localStorage.getItem("VERSION")),channel:X.toLowerCase(),pass:Y.crypt_pass(me)})):($("#user_password").modal("close"),Ie=$("#user-pass-input").val(),$e=!1,$("#user-pass-input").val(""),N.save(!0))}),$(document).on("click",".close-user-password",function(){ve?(St.stopInterval=!0,_e=!0,q.mobilecheck()||($(".castButton").tooltip("remove"),$("#viewers").tooltip("remove"),$("#offline-mode").tooltip("remove"),$("#chan_thumbnail").tooltip("remove"),$("#admin-lock").tooltip("remove")),window.history.pushState("to the frontpage!","Title","/"),D()):($("#user-pass-input").val(""),$e||$(".password_protected").prop("checked",!1),$e=!1)}),$(document).on("click",".delete-all-songs",function(e){e.preventDefault(),B.emit("delete_all",{channel:X.toLowerCase(),adminpass:""==ce?"":Y.crypt_pass(ce),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})}),$(document).on("click",".not-exported-container .not-exported-element #extra-export-container-text .extra-add-text",function(){this.select()}),$(document).on("click",".next_page",function(e){e.preventDefault(),W.dynamicContentPage(1)}),$(document).on("click",".last_page",function(e){e.preventDefault(),W.dynamicContentPage(10)}),$(document).on("click",".first_page",function(e){e.preventDefault(),W.dynamicContentPage(-10)}),$(document).on("click","#toast-container",function(){Materialize.Toast.removeAll()}),$(document).on("click","#aprilfools",function(){$(".mega").css("-webkit-transform","rotate(0deg)"),$(".mega").css("-moz-transform","rotate(0deg)")}),$(document).on("change","#view_channels_select",function(e){var t=this;be!=parseInt(t.value)&&R.populate_channels(R.all_channels,1==parseInt(t.value)),be=parseInt(t.value)}),$(document).on("keyup mouseup","#width_embed",function(){var e=$(this);qe=e.val(),$("#embed-area").val(k(Ge,qe,Re,We))}),$(document).on("keyup mouseup","#height_embed",function(){var e=$(this);Re=e.val(),$("#embed-area").val(k(Ge,qe,Re,We))}),$(document).on("input","#color_embed",function(){var e=$(this);We=e.val().substring(1),$("#embed-area").val(k(Ge,qe,Re,We))}),$(document).on("click",".chan-link",function(e){e.preventDefault(),R.to_channel($(this).attr("href"),!1)}),$(document).on("click",".listen-button",function(e){""===$(".room-namer").val()&&(e.preventDefault(),R.to_channel($(".room-namer").attr("placeholder")))}),$(document).on("submit",".channel-finder",function(e){return e.preventDefault(),R.to_channel($(".room-namer").val()),!1}),$(document).on("submit",".channel-finder-mobile",function(e){return e.preventDefault(),R.to_channel($("#searchFrontpage").val()),!1}),$(document).on("change","input[class=remote_switch_class]",function(){J.change_enabled(document.getElementsByName("remote_switch")[0].checked),Y.set_remote(enabled)}),$(document).on("change","input[class=offline_switch_class]",function(){Qe=document.getElementsByName("offline_switch")[0].checked,T(Qe,!Qe)}),$(document).on("change","input[class=conf]",function(){N.save(!1)}),$("#clickme").click(function(){St.playVideo()}),$(document).on("click","#listExport",function(e){if(e.preventDefault(),q.log(ht),Fe)W.exportToYoutube();else{var t=S(29);window.callback=function(e){Ue=e,Ue.state==t?(Fe=!0,$("#playlist_loader_export").removeClass("hide"),$(".youtube_export_button").addClass("hide"),setTimeout(function(){Fe=!1,Ue={}},1e3*Ue.expires_in),W.exportToYoutube()):(Ue="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+t,"","width=600, height=600")}}),$(document).on("click",".export-spotify-auth",function(e){e.preventDefault();var t=S(29);window.callback=function(e){Ne=e,Ne.state==t?(Oe=!0,I(!0),setTimeout(function(){Oe=!1,Ne={},I(!1)},1e3*Ne.expires_in),$(".spotify_export_button").css("display","none"),W.exportToSpotify()):(Ne={},console.error("States doesn't match")),spotify_window.close(),window.callback=""},spotify_window=window.open("/o_callback#spotify=true&nonce="+t,"","width=600, height=600")}),$(document).on("submit","#listImport",function(e){e.preventDefault();var t=$("#import").val().split("https://www.youtube.com/playlist?list=");""!==$("#import").val()&&2==t.length?(It.importPlaylist(t[1]),document.getElementById("import").value="",document.getElementById("import").disabled=!0,$("#import").addClass("hide"),$("#playlist_loader").removeClass("hide")):(P(),Materialize.toast("It seems you've entered a invalid url.",4e3)),document.getElementById("import").value=""}),$(document).on("submit","#listImportSpotify",function(e){if(e.preventDefault(),Oe&&""!==$("#import_spotify").val()){var t=$("#import_spotify").val().split("https://open.spotify.com/user/");if(2==t.length){t=t[1].split("/");var a=t[0],n=t[2];document.getElementById("import_spotify").disabled=!0,$("#import_spotify").addClass("hide"),$("#playlist_loader_spotify").removeClass("hide"),It.importSpotifyPlaylist("https://api.spotify.com/v1/users/"+a+"/playlists/"+n+"/tracks")}else P(),Materialize.toast("It seems you've entered a invalid url.",4e3)}document.getElementById("import_spotify").value=""}),$(window).focus(function(){$("#favicon").attr("href","/assets/images/favicon.png"),ae=!1}),$(document).on("change","#autoplay",function(){Ge=this.checked?"&autoplay":"",$("#embed-area").val(k(Ge,qe,Re,We))}),$(document).on("click","#playbutton_remote",function(e){e.preventDefault(),xt.play_remote()}),$(document).on("click","#pausebutton_remote",function(e){e.preventDefault(),xt.pause_remote()}),$(document).on("click","#skipbutton_remote",function(e){e.preventDefault(),xt.skip_remote()}),$(document).on("submit","#remoteform",function(e){e.preventDefault(),xt.get_input($("#remote_channel").val())}),$(document).on("click",".chat-link",function(){$("#text-chat-input").focus(),$("#chat-btn i").css("opacity",1),O.channel_received=0,O.all_received=0,$(".chat-link span.badge.new.white").hasClass("hide")||$(".chat-link span.badge.new.white").addClass("hide"),ae=!1,$("#favicon").attr("href","/assets/images/favicon.png")}),$(document).on("keyup",".search_input",function(e){M(e)}),$(document).on("click",".chat-tab",function(){$("#text-chat-input").focus()}),$(document).on("click",".prev",function(e){e.preventDefault(),W.skip(!1)}),$(document).on("click",".skip",function(e){e.preventDefault(),W.skip(!0)}),$(document).on("click","#chan",function(e){e.preventDefault(),W.show()}),$(document).on("submit","#adminForm",function(e){e.preventDefault(),N.pass_save()}),$(document).on("click",".chat-link",function(e){De=!0,ae=!1,Ve=!1,$(".chat-link").attr("style","color: white !important;"),Be=!1,$("#favicon").attr("href","/assets/images/favicon.png"),$("#chat-container").css("display","block"),$("#wrapper").css("display","none"),$("#suggestions").css("display","none"),$("#text-chat-input").focus(),$("#pageButtons").css("display","none")}),$(document).on("click",".playlist-link",function(e){De=!1,$("#chat-container").css("display","none"),$("#wrapper").css("display","block"),$("#suggestions").css("display","none"),$("#pageButtons").css("display","flex")}),$(document).on("click",".suggested-link",function(e){De=!1,$("#chat-container").css("display","none"),$("#wrapper").css("display","none"),$("#suggestions").css("display","block"),$("#pageButtons").css("display","none")}),$(document).on("click",".import-spotify-auth",function(e){e.preventDefault();var t=S(29);window.callback=function(e){Ne=e,Ne.state==t?(Oe=!0,I(!0),setTimeout(function(){Oe=!1,Ne={},I(!1),$(".spotify_authenticated").css("display","none"),$(".spotify_unauthenticated").css("display","block")},1e3*Ne.expires_in)):(Ne={},console.error("States doesn't match")),spotify_window.close(),window.callback=""},spotify_window=window.open("/o_callback#spotify=true&nonce="+t,"","width=600, height=600")}),$(document).on("click",".import-youtube",function(e){e.preventDefault(),$(".youtube_unclicked").css("display","none"),$(".youtube_clicked").css("display","block")}),$(document).on("submit","#chatForm",function(e){e.preventDefault(),O.chat(document.getElementById("chatForm").input)}),$(document).on("click","#shuffle",function(e){e.preventDefault(),N.shuffle()}),$(document).on("click","#search-btn",function(e){e.preventDefault(),It.showSearch()}),$(document).on("click","#song-title",function(e){e.preventDefault(),It.showSearch()}),$(document).on("click","#admin-lock",function(e){e.preventDefault(),N.log_out()}),$(document).on("click","#closeSettings",function(e){e.preventDefault(),N.hide_settings()}),$(window).resize(function(){if(X&&!q.mobilecheck()){var e=Math.round($("#wrapper").height()/71)+1;(e>W.can_fit||ee&&$($("#wrapper").children()[W.page+e]).css("display","none"),W.can_fit=e,W.element_height=$("#wrapper").height()/W.can_fit-5.3,$(".list-song").css("height",W.element_height+"px"),C(),$("#controls").length>0&&!q.mobilecheck()?$("#seekToDuration").css("top",$("#controls").position().top-55):$("#controls").length>0&&$("#seekToDuration").css("top",$("#controls").position().top-20)}}),$(document).on("click",".result-object",function(e){var t=$(e.target);if("9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=o||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(o)}$("#suggested-"+t).remove()}),$(document).on("click",".del_suggested",function(e){var t=$(this).attr("data-video-id");$("#suggested-"+t).remove()}),$(document).on("click",".del_user_suggested",function(e){var t=$(this).attr("data-video-id");$("#suggested-"+t).remove(),(et-=1)<0&&(et=0);var a=et>9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=a||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(a),W.vote(t,"del")}),$(document).on("click","#toast-container",function(){$(this).fadeOut(function(){$(this).remove()})}),$(document).on("click","#embed-area",function(){this.select()}),$(document).on("click",".brand-logo-navigate",function(e){e.preventDefault(),window.history.pushState("to the frontpage!","Title","/"),D()}),$(document).on("click","#player_bottom_overlay",function(){R.to_channel(X.toLowerCase(),!1)}),$(document).keydown(function(e){if("/"!=window.location.pathname)if(91==e.keyCode||17==e.keyCode)Ze=!0;else if(Ze&&70==e.keyCode)Ze=!1,Xe=!Xe,e.preventDefault(),Xe?($("#find_div").toggleClass("hide"),$("#find_input").focus(),it=""):($("#find_div").toggleClass("hide"),$("#find_input").val(""),$("#find_input").blur(),$(".highlight").removeClass("highlight"),ot=[],st=0,it="");else if(32!=e.keyCode||!$(".search-container").hasClass("hide")||"/"==window.location.pathname||$("#text-chat-input").is(":focus")||$("#password").is(":focus")||$("#user-pass-input").is(":focus")||$("#chan_thumbnail").is(":focus")||$("#chan_description").is(":focus")||$("#contact-form-from").is(":focus")||$("#contact-form-message").is(":focus")||$("#remote_channel").is(":focus")||$("#import").is(":focus")||$("#find_input").is(":focus")||$("#import_spotify").is(":focus"))Ze=!1;else{if(1==St.player.getPlayerState())return e.preventDefault(),St.player.pauseVideo(),!1;if(2==St.player.getPlayerState()||5==St.player.getPlayerState())return e.preventDefault(),St.player.playVideo(),!1}}),$(document).on("click","#close_find_form_button",function(e){e.preventDefault(),Ze=!1,Xe=!1,$("#find_div").toggleClass("hide"),$("#find_input").val(""),$("#find_input").blur(),$(".highlight").removeClass("highlight"),ot=[],st=0,it=""}),$(document).keyup(function(e){91!=e.keyCode&&17!=e.keyCode||Xe||(Ze=!1)}),$(document).on("submit","#find_form",function(e){if(e.preventDefault(),this.find_value.value!=it&&(it=this.find_value.value,ot=[],st=0),0==ot.length){var t=this;st=0,ot=$.map(ht,function(e,a){if(e.title.toLowerCase().indexOf(t.find_value.value.toLowerCase())>=0&&a!=ht.length-1)return a}),$("#num_found").text(st+1),$("#of_total_found").text(ot.length)}else st+=1,ot.length-10&&ot[st]!=ht.length-1){$(".highlight").removeClass("highlight");var a=Math.floor(ot[st]/W.can_fit);$($("#wrapper").children()[ot[st]]).addClass("highlight"),W.dynamicContentPageJumpTo(a)}else $(".highlight").removeClass("highlight"),q.log("none found")});var xt={id:"",get_input:function(e){""===xt.id?xt.set_id(e.toLowerCase()):xt.set_channel(e.toLowerCase())},set_id:function(e){xt.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","inline-block"),$(".slider-vol-mobile").attr("style","display: inline-block !important")},set_channel:function(e){B.emit("id",{id:xt.id,type:"channel",value:e})},play_remote:function(){B.emit("id",{id:xt.id,type:"play",value:"mock"})},pause_remote:function(){B.emit("id",{id:xt.id,type:"pause",value:"mock"})},skip_remote:function(){B.emit("id",{id:xt.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){B.emit("id",{id:xt.id,type:"volume",value:t.value}),q.log("volume")}})}},St={loaded:!0,before_load:"",after_load:"",player:"",stopInterval:!1,fireplace:"",youtube_listener:function(e){var t;Me&&e.np&&window.parentWindow&&window.parentOrigin&&(window.parentWindow.postMessage({type:"np",title:e.np[0].title},window.parentOrigin),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}));try{t=St.player.getPlayerState()}catch(e){t=null}if((!Qe&&(null!=t||ze)||Qe&&(null==t||ze)||!Qe&&(null==t||ze)||Qe&&-1==t)&&(!Qe||at!=X)||Qe&&void 0==vt){at=X,ze=!1,St.loaded=!1,q.log("--------youtube_listener--------"),q.log("Received: "),q.log(e),q.log("paused variable: "+we),q.log("mobile_beginning variable: "+pt);try{q.log("getVideoUrl(): "+St.player.getVideoUrl().split("v=")[1])}catch(e){}if(q.log("video_id variable: "+vt),q.log("---------------------------------"),e.np){if(we)St.getTitle(e.np[0].title,he),q.mobilecheck()||St.notifyUser(e.np[0].id,e.np[0].title),Je||St.stopVideo(),vt=e.np[0].id,se=e.conf[0],time=e.time,_t=time-se.startTime,$t=e.np[0].title,duration=e.np[0].duration,St.setBGimage(vt);else if(!we){void 0===wt?wt=e.np[0].id:wt!=vt&&(wt=vt),vt=e.np[0].id,se=e.conf[0],time=e.time,_t=time-se.startTime,$t=e.np[0].title,duration=e.np[0].duration,pt&&q.mobilecheck()&&0===_t&&!Je&&(_t=1);try{ht[0].id!=vt||pt||W.song_change(ht[0].added),Lt.fetchYoutubeSuggests(vt)}catch(e){}if(St.getTitle($t,he),St.setBGimage(vt),ge&&!window.MSStream)try{var a;try{a=St.player.getVideoUrl().split("v=")[1]!=vt}catch(e){a=!0}(a||Je)&&(St.loadVideoById(vt,duration),q.mobilecheck()||St.notifyUser(vt,$t),St.seekTo(_t),we&&!Je&&St.pauseVideo()),we||(pt&&!Je||St.playVideo(),Pe||St.durationSetter()),(St.player.getDuration()>_t||0===St.player.getDuration()||Je||St.player.getCurrentTime()!=_t)&&St.seekTo(_t),St.after_load=vt,St.loaded||setTimeout(function(){St.loaded=!0},500)}catch(e){Je&&(St.loadVideoById(vt,duration),St.seekTo(_t)),Pe||Je||St.durationSetter()}else St.getTitle($t,he)}}else{document.getElementById("song-title").innerHTML="Empty channel. Add some songs!",document.title="Zoff - the shared YouTube based radio",$("#channel-load").css("display","none"),window.MSStream||Je||$("#player_overlay").hasClass("hide")&&$("#player_overlay").removeClass("hide");try{Je||St.stopVideo()}catch(e){}}}else Pe||St.durationSetter(),duration=St.player.getDuration()},onPlayerStateChange:function(e){q.log("-------onPlayerStateChange------"),q.log("New state\nState: "),q.log(e);try{q.log("Duration: "+St.player.getDuration(),"Current time: "+St.player.getCurrentTime()),q.log("getVideoUrl(): "+St.player.getVideoUrl().split("v=")[1])}catch(e){}switch(q.log("video_id variable: "+vt),q.log("---------------------------------"),e.data){case YT.PlayerState.UNSTARTED:break;case YT.PlayerState.ENDED:ke=!1,we=!1,Qe?St.playNext():B.emit("end",{id:vt,channel:X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))});break;case YT.PlayerState.PLAYING:window.MSStream||($("#player").css("opacity","1"),q.mobilecheck()||$("#channel-load").css("display","none")),ke=!0,beginning&&q.mobilecheck()&&!Je&&(beginning=!1,pt=!1),Me||"/"==window.location.pathname||Je||q.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")),we&&!Qe&&(B.emit("pos",{channel:X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),we=!1);break;case YT.PlayerState.PAUSED:Je||(beginning&&pt&&($("#playpause").css("visibility","visible"),$("#playpause").css("pointer-events","all"),$("#channel-load").css("display","none")),we=!0,"/"!=window.location.pathname&&Tt.play_pause_show(),pt=!0);break;case YT.PlayerState.BUFFERING:}},playVideo:function(){Je?(H.sendMessage("urn:x-cast:zoff.me",{type:"playVideo"}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"),$("#pause").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide"))):St.player.playVideo()},pauseVideo:function(){Je?(H.sendMessage("urn:x-cast:zoff.me",{type:"pauseVideo"}),$("#play").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide"))):St.player.pauseVideo()},seekTo:function(e){Je?H.sendMessage("urn:x-cast:zoff.me",{type:"seekTo",seekTo:e}):Qe?St.player.seekTo(0):St.player.seekTo(e)},loadVideoById:function(e,t){Je?(H.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:e,channel:X.toLowerCase()}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+e+"/mqdefault.jpg")):St.player.loadVideoById({videoId:e,startSeconds:0,endSeconds:t})},stopVideo:function(){if(Je)H.sendMessage("urn:x-cast:zoff.me",{type:"stopVideo"});else try{St.player.stopVideo()}catch(e){}},setVolume:function(e){Je?H.setVolume(e/100):St.player.setVolume(e)},playNext:function(){var e=ht[0];vt=e.id,time=(new Date).getTime(),$t=e.title,duration=e.duration,St.getTitle($t,he),St.setBGimage(vt),Je?(H.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,channel:X.toLowerCase()}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg")):St.loadVideoById(vt,duration),W.channel_function({type:"song_change",time:time})},playPrev:function(){var e=ht.length-2;e<0&&(e=0);var t=ht[e];vt=t.id,time=(new Date).getTime(),$t=t.title,duration=t.duration,St.getTitle($t,he),St.setBGimage(vt),Je?(H.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,channel:X.toLowerCase()}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg")):St.loadVideoById(vt,duration),W.channel_function({type:"song_change_prev",time:time})},sendNext:function(e){Je&&H.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",title:e.title,videoId:e.videoId}),Me&&window.parentWindow&&window.parentOrigin&&window.parentWindow.postMessage({type:"nextVideo",title:e.title},window.parentOrigin)},getTitle:function(e,t){var a=decodeURIComponent(e);if("/"!=window.location.pathname){var n=document.getElementById("song-title"),i=document.getElementById("viewers");n.innerHTML=a,i.innerHTML="visibility "+t,n.title=a,Je&&($("#player_overlay").css("background","url(https://img.youtube.com/vi/"+vt+"/hqdefault.jpg)"),$("#player_overlay").css("background-position","center"),$("#player_overlay").css("background-size","100%"),$("#player_overlay").css("background-color","black"),$("#player_overlay").css("background-repeat","no-repeat"))}document.title=a+" • Zoff / "+X},errorHandler:function(e){ve||(5==e.data||100==e.data||101==e.data||150==e.data?(curr_playing=St.player.getVideoUrl().replace("https://www.youtube.com/watch?v=",""),B.emit("skip",{error:e.data,id:vt,pass:""==ce?"":Y.crypt_pass(ce),channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})):void 0!==vt&&St.loadVideoById(vt,duration))},onPlayerReady:function(e){try{beginning=!0,ge=!0,window.MSStream||(q.mobilecheck()&&($("#playpause").css("visibility","hidden"),$("#playpause").css("pointer-events","none"),$("#player").css("opacity","1")),$(".video-container").removeClass("no-opacity"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),St.loadVideoById(vt,duration),!Ae||q.mobilecheck()&&!Je||St.playVideo(),Pe||St.durationSetter(),Me?setTimeout(function(){St.player.seekTo(_t),Ae||(St.player.pauseVideo(),Tt.play_pause_show())},1e3):St.seekTo(_t)),St.readyLooks(),Tt.initYoutubeControls(St.player),Tt.initSlider(),St.player.setVolume(Y.get_volume())}catch(e){}},readyLooks:function(){St.setBGimage(vt)},setBGimage:function(e){if(void 0!==e&&!Me){var t=new Image;t.onload=function(){var e=new ColorThief,a=e.getColor(t);"/"!=window.location.pathname&&(document.getElementById("main-container").style.backgroundColor=q.rgbToHsl(a,!0),$("meta[name=theme-color]").attr("content",q.rgbToHex(a[0],a[1],a[2])))},t.crossOrigin="Anonymous",t.src="https://zoff.me:8081/https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}},set_width:function(e){if($(".video-container").width(e),!q.mobilecheck())if($(window).width()>769){var t=$(window).width()-$(".control-list").width()-$(".zbrand").outerWidth()-$(".brand-logo-navigate").outerWidth()-66;title_width=t,$(".title-container").width(title_width)}else $(".title-container").width("100%")},notifyUser:function(e,t){if(t=t.replace(/\\\'/g,"'").replace(/"/g,"'").replace(/&/g,"&"),"granted"===Notification.permission&&document.hidden&&!Me){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(){c(),l(),u(),h(),m()},onYouTubeIframeAPIReady:function(){St.player=new YT.Player("player",{videoId:vt,playerVars:{rel:"0",wmode:"transparent",controls:"0",fs:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:St.onPlayerReady,onStateChange:St.onPlayerStateChange,onError:St.errorHandler}})},createFireplacePlayer:function(){St.fireplace=new YT.Player("fireplace_player",{videoId:"L_LUpnjgPso",playerVars:{rel:"0",wmode:"transparent",controls:"0",fs:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:St.onFireplaceReady,onStateChange:St.onFireplaceChange}})},onFireplaceReady:function(){St.fireplace.playVideo()},onFireplaceChange:function(e){switch(e.data){case 0:St.fireplace.seekTo(0),St.fireplace.playVideo();break;case 2:St.fireplace.playVideo()}},durationSetter:function(){try{_e||void 0===duration||(St.stopInterval||(Pe=!0),dMinutes=Math.floor(duration/60),dSeconds=duration-60*dMinutes,currDurr=void 0!==St.player.getCurrentTime()?Math.floor(St.player.getCurrentTime()):_t,currDurr>duration&&(currDurr=duration),minutes=Math.floor(currDurr/60),seconds=currDurr-60*minutes,document.getElementById("duration").innerHTML=q.pad(minutes)+":"+q.pad(seconds)+" / "+q.pad(dMinutes)+":"+q.pad(dSeconds),per=100/duration*currDurr,per>=100?per=100:0===duration&&(per=0),Me&&window.parentWindow&&window.parentOrigin&&window.parentWindow.postMessage({type:"duration",duration:St.player.getCurrentTime(),full_duration:St.player.getDuration(),percent:per},window.parentOrigin),ye||$("#bar").width(per+"%"))}catch(e){}St.stopInterval||setTimeout(St.durationSetter,1e3)},loadPlayer:function(){if(1==$("script[src='https://www.youtube.com/iframe_api']").length)try{St.onYouTubeIframeAPIReady()}catch(e){console.error("Seems YouTube iFrame script isn't correctly loaded. Please reload the page.")}else mt=document.createElement("script"),mt.src="https://www.youtube.com/iframe_api",ft=document.getElementsByTagName("script")[0],ft.parentNode.insertBefore(mt,ft)}},Tt={stopInterval:!1,initYoutubeControls:function(){q.mobilecheck()&&!window.MSStream&&$("#controls").appendTo("#playbar"),Tt.initControls()},initControls:function(){$("#volume-button").on("click",Tt.mute_video),$("#playpause").on("click",Tt.play_pause),$("#volume-button-overlay").on("click",Tt.mute_video),$("#playpause-overlay").on("click",Tt.play_pause),$("#fullscreen").on("click",Tt.fullscreen)},initSlider:function(){try{vol=Y.get_volume()}catch(e){}var e={min:0,max:100,value:vol,range:"min",animate:!0,slide:function(e,t){Tt.setVolume(t.value);try{Y.set_volume(t.value)}catch(e){}}};q.mobilecheck()&&(e.orientation="vertical",$(".volume-container").toggleClass("hide")),$("#volume").slider(e),Tt.choose_button(vol,!1)},fullscreen:function(){var e=$("#player"),t=e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullScreen;t&&t.bind(e)()},play_pause:function(){Je?Tt.play_pause_show():St.player.getPlayerState()==YT.PlayerState.PLAYING?(St.pauseVideo(),q.mobilecheck()&&!window.MSStream&&($("#player").css("display","none"),$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra"))):St.player.getPlayerState()!=YT.PlayerState.PAUSED&&St.player.getPlayerState()!==YT.PlayerState.ENDED&&St.player.getPlayerState()!==YT.PlayerState.CUED||(St.playVideo(),q.mobilecheck()&&!window.MSStream&&($("#player").css("display","block"),$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra")))},play_pause_show:function(){Je?$("#play").hasClass("hide")?St.pauseVideo():$("#pause").hasClass("hide")&&St.playVideo():($("#pause").hasClass("hide")||($("#pause").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")),$("#play").hasClass("hide")&&($("#play").toggleClass("hide"),$("#play-overlay").toggleClass("hide")))},settings:function(){$("#qS").toggleClass("hide")},changeQuality:function(e){St.player.getPlaybackQuality!=e&&(St.player.setPlaybackQuality(e),St.player.getPlaybackQuality()),$("#qS").toggleClass("hide")},mute_video:function(){q.mobilecheck()?$(".volume-container").toggleClass("hide"):St.player.isMuted()?(Je&&H.sendMessage("urn:x-cast:zoff.me",{type:"unMute"}),St.player.unMute(),Tt.choose_button(St.player.getVolume(),!1)):(Je&&H.sendMessage("urn:x-cast:zoff.me",{type:"mute"}),Tt.choose_button(0,!0),St.player.mute())},setVolume:function(e){St.setVolume(e),Tt.choose_button(e,!1),St.player.isMuted()&&St.player.unMute()},choose_button:function(e,t){t?($("#v-full").hasClass("hide")||($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")||($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")||($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=0&&e<=33?($("#v-full").hasClass("hide")||($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")||($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")||($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=34&&e<=66?($("#v-full").hasClass("hide")||($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")||($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")||($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=67&&e<=100&&($("#v-full").hasClass("hide")&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")||($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")||($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")||($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide")))},playPause:function(){state=St.player.getPlayerState(),button=document.getElementById("playpause"),state==YT.PlayerState.PLAYING?St.pauseVideo():state==YT.PlayerState.PAUSED&&St.playVideo()},volumeOptions:function(){Je||(St.player.isMuted()?(St.player.unMute(),vol=St.player.getVolume(),$("#volume").slider("value",St.player.getVolume())):(St.player.mute(),$("#volume").slider("value",0)))},hoverMute:function(e){vol=St.player.getVolume()}},It={submitArray:[],submitArrayExpected:null,showSearch:function(){$("#search-wrapper").toggleClass("hide"),q.mobilecheck()&&$(".search_input").focus(),$("#song-title").toggleClass("hide"),$("#results").empty(),"close"==$("#search-btn i").html()?$("#search-btn i").html("search"):$("#search-btn i").html("close"),$("#search").focus()},search:function(e,t,a){if(void 0!==ct&&void 0!==dt||(ct=$("#temp-results-container"),dt=$("#empty-results-container").html()),$(".search_results").html(""),""!==e){ie=!0;var n=encodeURIComponent(e),i="https://www.googleapis.com/youtube/v3/search?key="+ne+"&videoEmbeddable=true&part=id&fields=items(id)&type=video&order=viewCount&safeSearch=none&maxResults=25";i+="&q="+n,re&&(i+="&videoCategoryId=10");var o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&id=";if(a)var i="https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&relatedToVideoId="+n+"&type=video&key="+ne,o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&id=";q.contains($(".search_loader_spinner").attr("class").split(" "),"active")||$(".search_loader_spinner").addClass("active"),q.contains($("#results").attr("class").split(" "),"hide")&&$("#results").removeClass("hide"),$.ajax({type:"GET",url:i,dataType:"jsonp",success:function(a){0===a.items.length?($(""+dt+"
").appendTo($("#results")).show("blind",83.33),q.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active")):a.items&&($.each(a.items,function(e,t){o+=t.id.videoId+","}),$.ajax({type:"GET",url:o,dataType:"jsonp",success:function(a){var n="",i=$(ct);$.each(a.items,function(e,t){var a=t.contentDetails.duration;if(secs=It.durationToSeconds(a),!longsongs||secs<720){yt=t.snippet.title,enc_title=yt,gt=t.id,a=a.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),thumb=t.snippet.thumbnails.medium.url;var o=i;o.find(".search-title").text(yt),o.find(".result_info").text(a),o.find(".thumb").attr("src",thumb),o.find("#add-many").attr("data-video-id",gt),o.find("#add-many").attr("data-video-title",enc_title),o.find("#add-many").attr("data-video-length",secs),o.find("#temp-results").attr("data-video-id",gt),o.find("#temp-results").attr("data-video-title",enc_title),o.find("#temp-results").attr("data-video-length",secs),o.find(".open-externally").attr("href","https://www.youtube.com/watch?v="+gt),void 0!=o.html()&&(n+=o.html())}}),n.length>0?($(""+n+"
").appendTo($("#results")).show("blind",83.33*(a.items.length-1)),q.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active"),$(".add-many").click(function(e){return e.preventDefault(),e.stopPropagation(),!1})):t?($(""+dt+"
").appendTo($("#results")).show("blind",83.33),q.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active")):It.search(e,!0)}}))}})}else $(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},backgroundSearch:function(e,t,a,n,i){var o=encodeURIComponent(e+" "+t),s="https://www.googleapis.com/youtube/v3/search?key="+ne+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10";s+="&q="+o;var l="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&id=";t=t.split(" ");var r=e.split("-");r=r.join(" ").split(" "),$.ajax({type:"GET",url:s,dataType:"jsonp",success:function(i){if(0===i.items.length){It.readySubmit(!1,{totalLength:n-1}),q.log("------------------------------"),q.log("NO MATCH FOR:"),q.log("Spotify title: "+e+" "+t.join(" ")),q.log("Spotify length: "+a),q.log("------------------------------");var o=$(""+Ye+"
");o.find(".extra-add-text").text(e+" - "+t.join(" ")),o.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),o.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(o.html()),$(".not-imported").removeClass("hide")}else i.items.length>0&&($.each(i.items,function(e,t){l+=t.id.videoId+","}),$.ajax({type:"GET",url:l,dataType:"jsonp",success:function(i){if(i.items.length>0){var o=!1;if($.each(i.items,function(a,i){var s=It.durationToSeconds(i.contentDetails.duration),l=!1;if($.each(r,function(a,n){return-1!=i.snippet.title.toLowerCase().indexOf(n.toLowerCase())&&-1==i.snippet.title.toLowerCase().indexOf("cover")&&-1==e.toLowerCase().indexOf("cover")&&(-1==i.snippet.title.toLowerCase().indexOf("remix")&&-1==e.toLowerCase().indexOf("remix")||-1!=i.snippet.title.toLowerCase().indexOf("remix")&&-1!=e.toLowerCase().indexOf("remix")||-1!=i.snippet.title.toLowerCase().indexOf(t[0].toLowerCase())||-1!=i.snippet.channelTitle.toLowerCase().indexOf(t[0].toLowerCase())||-1!=i.snippet.channelTitle.toLowerCase().indexOf("vevo"))||(l=!0),!1}),!l)return o=!0,It.readySubmit(!0,{id:i.id,title:i.snippet.title,duration:s,totalLength:n-1}),!1}),!o){It.readySubmit(!1,{totalLength:n-1}),q.log("------------------------------"),q.log("NO MATCH FOR:"),q.log("Spotify title: "+e+" "+t.join(" ")),q.log("Spotify length: "+a),q.log("------------------------------");var s=$(""+Ye+"
");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===It.submitArrayExpected&&(It.submitArrayExpected=t.totalLength),e?It.submitArray.push(t):It.submitArrayExpected-=1,It.submitArray.length-1==It.submitArrayExpected&&($.each(It.submitArray,function(e,t){It.submit(t.id,t.title,t.duration,!0,e,It.submitArray.length-1)}),document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),It.submitArray=[],It.submitArrayExpected=null)},submitAndClose:function(e,t,a){It.submit(e,t,a,!1,0,1),$("#results").html(""),It.showSearch(),document.getElementById("search").value="",$("#results").html="",$(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},importPlaylist:function(e,t){token="";var a,n;void 0!==t&&(token="&pageToken="+t),playlist_url="https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+ne+"&playlistId="+e+token,Fe?(n="html",a={"Content-Type":"application/json",Authorization:"Bearer "+Ue.access_token}):(a={},n="jsonp"),$.ajax({type:"GET",url:playlist_url,dataType:n,headers:a,success:function(a){if(a.error)if("playlistItemsNotAccessible"==a.error.errors[0].reason){var n=S(29);window.callback=function(a){Ue=a,Ue.state==n?(Fe=!0,setTimeout(function(){Fe=!1,Ue={}},1e3*Ue.expires_in),It.importPlaylist(e,t)):(Ue="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+n,"","width=600, height=600")}else q.log(a.error),document.getElementById("import").disabled=!1,$("#playlist_loader").addClass("hide"),$("#import").removeClass("hide"),P(),Materialize.toast("It seems you've entered a invalid url.",4e3);else{var i="";"string"==typeof a&&(a=$.parseJSON(a)),$.each(a.items,function(e,t){i+=t.contentDetails.videoId+","}),It.addVideos(i,!0),a.nextPageToken&&It.importPlaylist(e,a.nextPageToken),document.getElementById("import").value=""}}})},importSpotifyPlaylist:function(e){$.ajax({url:e,headers:{Authorization:"Bearer "+Ne.access_token},success:function(e){$.each(e.items,function(t,a){It.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&&It.importSpotifyPlaylist(e.next)},error:function(){document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),P(),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,n=[];$.each(e.items,function(e,i){var o=It.durationToSeconds(i.contentDetails.duration);(!longsongs||o<720)&&(enc_title=i.snippet.title,a+=1,n.push({id:i.id,enc_title:enc_title,duration:o,playlist:t}))}),$.each(n,function(e,t){It.submit(t.id,t.enc_title,t.duration,t.playlist,e,a)})}})},submit:function(e,t,a,n,i,o){if(Qe&&document.getElementsByName("addsongs")[0].checked&&document.getElementsByName("addsongs")[0].disabled){var s=[];s=$.map(ht,function(t,a){if(t.id==e)return a}),0==s.length?W.channel_function({type:"added",value:{added:(new Date).getTime()/1e3,guids:[1],id:e,title:t,duration:a,playlist:!1,now_playing:!1,votes:1}}):W.vote(e,"pos")}else B.emit("add",{id:e,title:t,adminpass:""==ce?"":Y.crypt_pass(ce),list:X.toLowerCase(),duration:a,playlist:n,num:i,total:o,pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})},durationToSeconds:function(e){var t=e.match(oe);return hours=parseInt(t[12])||0,minutes=parseInt(t[14])||0,seconds=parseInt(t[16])||0,60*hours*60+60*minutes+seconds}},Lt={catchUserSuggests:function(e,t){et+=t?1:e.length;var a=et>9?"9+":et;if($(".suggested-link span.badge.new.white").hasClass("hide")&&et>0&&$(".suggested-link span.badge.new.white").removeClass("hide"),$(".suggested-link span.badge.new.white").text(a),t)Lt.createSuggested(e);else for(var n in e)Lt.createSuggested(e[n]);Lt.checkUserEmpty()},createSuggested:function(e){var t=q.secondsToOther(e.duration),a=e.id,n=e.title,i=W.generateSong({id:a,title:n,length:e.duration,duration:t},!1,!1,!1,!0);$("#user-suggest-html").append(i)},fetchYoutubeSuggests:function(e){var t="https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+e+"&type=video&key="+ne,a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&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,n=It.durationToSeconds(a);a=q.secondsToOther(It.durationToSeconds(a));var i=t.id,o=t.snippet.title;$("#suggest-song-html").append(W.generateSong({id:i,title:o,length:n,duration:a},!1,!1,!1))})}})}})},checkUserEmpty:function(){0===$("#user-suggest-html").children().length?q.contains($("#user_suggests").attr("class").split(" "),"hide")||$("#user_suggests").addClass("hide"):$("#user_suggests").removeClass("hide")}}}();
\ No newline at end of file
+!function(){function e(){$("#facebook-code-link").attr("href","https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/"),$("#facebook-code-link").attr("onclick","window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/', 'Share Zoff','width=600,height=300'); return false;"),$("#twitter-code-link").attr("href","https://twitter.com/intent/tweet?url=https://zoff.me/&text=Check%20out%20Zoff!&via=zoffmusic"),$("#twitter-code-link").attr("onclick","window.open('https://twitter.com/intent/tweet?url=https://zoff.me/&text=Check%20out%20Zoff!&via=zoffmusic','Share Playlist','width=600,height=300'); return false;"),$("#qr-code-image-link").attr("src","//chart.googleapis.com/chart?chs=150x150&cht=qr&chl=https://zoff.me/&choe=UTF-8&chld=L%7C1")}function t(){var t=new Date;R.blob_list=[],3==t.getMonth()&&1==t.getDate()&&($(".mega").css("-webkit-transform","rotate(180deg)"),$(".mega").css("-moz-transform","rotate(180deg)")),window.onpopstate=function(e){var t=window.location.href.split("/");""!==t[3]&&"#"!=t[3].substring(0,1)&&R.to_channel(t[3],!0)},"fb.zoff.me"==window.location.hostname&&$("footer").addClass("hide"),V=$("#channel-list-container").clone().html(),"fb.zoff.me"!=window.location.hostname&&e(),"zoff.me"==window.location.hostname||"fb.zoff.me"==window.location.hostname?add="https://zoff.me":add=window.location.hostname,(void 0===B||q.mobilecheck()||_e)&&(B=io.connect(add+":8080",bt),B.on("update_required",function(){window.location.reload(!0)})),(0===$("#alreadyfp").length||q.mobilecheck()||!B._callbacks.$playlists||_e)&&f(),$("#about").modal(),$("#help").modal(),$("#contact").modal(),$("select").material_select(),q.log("----"),q.log("Sending frontpage_lists"),q.log("Socket",B),q.log("-----"),Y.init(),Y.get_offline()?T(!0,Qe):q.mobilecheck()||$("#offline-mode").tooltip({delay:5,position:"bottom",tooltip:"Enable local mode"}),q.mobilecheck()||$("#frontpage-viewer-counter").tooltip({delay:5,position:"bottom",tooltip:"Total Viewers"}),R.get_frontpage_lists(),$("#channel-load").css("display","none"),"#donation"==window.location.hash&&(window.location.hash="#",$("#donation").modal(),$("#donation").modal("open")),localStorage.ok_cookie||(P(),Materialize.toast("We're using cookies to enhance your experience!   ok",1e4));var a=0;document.getElementById("zicon").addEventListener("click",function(){a+=10,document.getElementById("zicon").style.paddingLeft=a+"%",a>=100&&(window.location.href="http://etys.no")}),!q.mobilecheck()&&R.winter&&$(".mega").prepend(''),q.mobilecheck()&&$("input#searchFrontpage").characterCounter(),window.__onGCastApiAvailable=function(e,t){e&&(nt=!0)}}function a(){et=0;var e=!0;X=$("#chan").html(),pt=q.mobilecheck();var t=q.mobilecheck()?"left":"right";if(window.onpopstate=function(e){D()},"fb.zoff.me"==window.location.hostname&&$("footer").addClass("hide"),"fb.zoff.me"!=window.location.hostname&&A(),i="zoff.me"==window.location.hostname||"fb.zoff.me"==window.location.hostname?"https://zoff.me":window.location.hostname,void 0!==St&&(St.stopInterval=!1),$("ul.playlist-tabs").tabs(),$("ul.playlist-tabs-loggedIn").tabs(),$("ul.chatTabs").tabs(),$("#settings").sideNav({menuWidth:310,edge:t,closeOnClick:!1,onOpen:function(e){$(".hamburger-sidenav").hasClass("open")||$(".hamburger-sidenav").addClass("open"),$("*[id*=sidenav-overlay]:visible").each(function(e){e>0&&this.remove()})},onClose:function(e){$(".hamburger-sidenav").removeClass("open"),$("*[id*=sidenav-overlay]:visible").each(function(e){e>0&&this.remove()})}}),$(".collapsible").collapsible({accordion:!0}),$("#help").modal(),$("#contact").modal(),$("#embed").modal(),$("#delete_song_alert").modal({dismissible:!1}),$("#user_password").modal({dismissible:!1}),I(Oe),ct=$("#temp-results-container"),dt=$("#empty-results-container").html(),Ye=$(".not-imported-container").html(),je=$(".not-exported-container").html(),$(".not-imported-container").empty(),$(".not-exported-container").empty(),$(".video-container").resizable({start:function(e,t){$("iframe").css("pointer-events","none")},stop:function(e,t){$("iframe").css("pointer-events","auto"),Y.set_width($(this).width()),C()},handles:"e",minWidth:350,maxWidth:$(window).width()-241}),(void 0===B||q.mobilecheck())&&(e=!1,B=io.connect(i+":8080",bt),B.on("update_required",function(){window.location.reload(!0)})),Y.init(),o(),Y.get_offline()&&($(".offline_switch_class")[0].checked=!0,T(!0,Qe)),0===$("#alreadychannel").length||q.mobilecheck())l(),c(),d(),p();else{$("#channel-load").css("display","none"),$("#player").css("opacity","1"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),St.readyLooks(),Tt.initYoutubeControls(St.player),Tt.initSlider(),St.player.setVolume(Y.get_volume()),$(".video-container").removeClass("no-opacity");var a="https://remote."+window.location.hostname+"/"+gt;$("#code-text").text(gt),$("#code-qr").attr("src","https://chart.googleapis.com/chart?chs=221x221&cht=qr&choe=UTF-8&chld=L|1&chl="+a),$("#code-link").attr("href",a)}if(e){var i="";le&&(i=Y.getCookie("_uI")+"_"),B.emit("list",{version:parseInt(localStorage.getItem("VERSION")),channel:i+X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})}q.mobilecheck()||($("#viewers").tooltip({delay:5,position:"top",tooltip:"Viewers"}),$("#fullscreen").tooltip({delay:5,position:"top",tooltip:"Fullscreen"}),$("#search-btn").tooltip({delay:5,position:"bottom",tooltip:"Search"}),$("#shuffle").tooltip({delay:5,position:"bottom",tooltip:"Shuffle"}),$("#settings").tooltip({delay:5,position:"bottom",tooltip:"Settings"})),window.onYouTubeIframeAPIReady=St.onYouTubeIframeAPIReady,(""===St.player||void 0===St.player||q.mobilecheck())&&St.loadPlayer(),q.mobilecheck()?xt.initiate_volume():$("input#chan_description").characterCounter(),u(),m(),h(),B.emit("get_history",{channel:X.toLowerCase(),all:!1}),B.emit("get_history",{channel:X.toLowerCase(),all:!0}),q.mobilecheck()||0!==$("#alreadychannel").length||y(),q.msieversion()||q.mobilecheck()||Notification.requestPermission(),$(".search_input").focus(),q.sample(),q.mobilecheck()||$(".castButton").tooltip({delay:5,position:"top",tooltip:"Cast Zoff to TV"}),$("#results").hover(function(){$("div.result").removeClass("hoverResults"),Le=0},function(){}),$("#search").focus(),$("#embed-button").css("display","inline-block"),$("#embed-area").val(k(Ue,qe,Re,We)),$("#search").attr("placeholder","Find song on YouTube..."),$("footer").hasClass("padding-bottom-novideo")||$("footer").addClass("padding-bottom-novideo"),/chrom(e|ium)/.test(navigator.userAgent.toLowerCase())||q.mobilecheck()||$(".castButton").css("display","none"),q.log("chromecastAvailable"+Je),q.log("chromecastAvailable"+nt),Je?n(1):nt?initializeCastApi():window.__onGCastApiAvailable=function(e,t){e?setTimeout(function(){nt=!0,initializeCastApi()},1e3):nt=!0},$.contextMenu({selector:".playlist-element",reposition:!0,autoHide:!0,items:{copy:{name:"Copy link",callback:function(e,t){var a=$(this[0]).attr("data-video-id"),n="https://www.youtube.com/watch?v="+a;$(".copy_video_id").css("display","block"),$(".copy_video_id").text(n),document.querySelector(".copy_video_id").select(),document.execCommand("copy")?Materialize.toast("Copied!",2e3,"green lighten"):Materialize.toast("Error copying..",2e3,"red lighten"),$(".copy_video_id").css("display","none")}},similar:{name:"Find Similar",callback:function(e,t){var a=$(this[0]).attr("data-video-id");It.search(a,!1,!0),q.contains($(".search-container").attr("class").split(" "),"hide")&&It.showSearch()}},sep1:"---------",delete:{name:"Delete",callback:function(e,t){var a=$(this[0]).attr("data-video-id");if("suggested"==$(this[0]).attr("data-video-type")){(et-=1)<0&&(et=0);var n=et>9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=n||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(n)}W.vote(a,"del")},disabled:function(e,t){return Q}}}}),q.mobilecheck()||null!=navigator.userAgent.match(/iPad/i)||setTimeout(function(){C()},100)}function n(e){if(1==e){$(".castButton").hasClass("castButton-white-active")||$(".castButton").addClass("castButton-white-active"),q.mobilecheck()||($(".castButton").tooltip("remove"),$(".castButton").tooltip({delay:5,position:"top",tooltip:"Stop casting"})),$("#duration").toggleClass("hide"),$("#fullscreen").toggleClass("hide");try{St.player.stopVideo()}catch(e){}St.stopInterval=!0,$("#player_overlay").removeClass("hide"),$("#player_overlay").css("display","block"),q.mobilecheck()?$("#pause").hasClass("hide")?($("#play").toggleClass("hide"),$("#pause").toggleClass("hide")):$("#play").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide")):$("#volume").slider("value",100),$("#player_overlay").css("background","url(https://i.ytimg.com/vi/"+vt+"/maxresdefault.jpg)"),$("#player_overlay").css("background-position","center"),$("#player_overlay").css("background-size","100%"),$("#player_overlay").css("background-color","black"),$("#player_overlay").css("background-repeat","no-repeat"),$("#playing_on").css("display","flex"),$("#chromecast_text").html("Playing on
"+G.La.friendlyName),St.player.setVolume(100),$("#player_overlay_text").toggleClass("hide")}else 0==e&&(q.mobilecheck()||($(".castButton").tooltip("remove"),$(".castButton").tooltip({delay:5,position:"top",tooltip:"Cast Zoff to TV"})),$(".castButton").removeClass("castButton-white-active"),$("#duration").toggleClass("hide"),$("#fullscreen").toggleClass("hide"),St.player.playVideo(),St.stopInterval=!1,duration=St.player.getDuration(),St.durationSetter(),q.mobilecheck()||(St.player.setVolume(Y.get_volume()),$("#volume").slider("value",Y.get_volume())),$("#player_overlay").addClass("hide"),$("#player_overlay_text").toggleClass("hide"),$("#chromecast_text").html(""),$("#playing_on").css("display","none"),Qe?St.loadVideoById(vt):B.emit("pos",{channel:X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}))}function i(e,t){var a=JSON.parse(t);switch(a.type){case-1:Qe?St.playNext():B.emit("end",{id:a.videoId,channel:X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))});break;case 0:Qe?St.playNext():B.emit("skip",{error:a.data_code,id:a.videoId,pass:""==ce?"":Y.crypt_pass(ce),channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})}}function o(){B.on("auth_required",function(){ve=!0,$("#player_overlay").removeClass("hide"),$("#player_overlay").css("display","block"),$("#user_password").modal("open"),Y.remove_userpass(X.toLowerCase()),P(),Materialize.toast("That is not the correct password, try again..",4e3)}),B.on("auth_accepted",function(e){e.hasOwnProperty("value")&&e.value&&""!=me&&(Ie=me,Y.set_userpass(X.toLowerCase(),Ie))})}function s(){B.on("connect_failed",function(){q.log("Connection Failed"),Ge||(Ge=!0,Materialize.toast("Error connecting to server, please wait..",1e8,"red lighten connect_error"))}),B.on("connect_error",function(){q.log("Connection Failed."),Ge||(Ge=!0,Materialize.toast("Error connecting to server, please wait..",1e8,"red lighten connect_error"))})}function l(){B.on("np",St.youtube_listener)}function c(){B.on("get_list",function(){var e="";le&&(e=Y.getCookie("_uI")+"_"),B.emit("list",{version:parseInt(localStorage.getItem("VERSION")),channel:e+X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})})}function d(){B.on("suggested",function(e){var t=!0;void 0===e.id&&(t=!1),Lt.catchUserSuggests(e,t)})}function p(){B.on("viewers",function(e){he=e,$("#viewers").html("visibility "+e),void 0!==$t&&St.getTitle($t,he)})}function u(){B.on("toast",N.toast),B.on("pw",N.pw),B.on("conf",N.conf)}function h(){B.on("chat_history",function(e){for(var t=e.data,a=0;a'}function C(e){if($(window).width()>760){var t=$(".brand-logo").outerWidth();e&&(t=.15*$(window).width());var a=$(window).width()-$(".control-list").width()-t-33;title_width=a,$(".title-container").width(title_width)}else $(".title-container").width("100%")}function S(e){for(var t="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_",n=0;n"+te+""),te=te.html()),$("#viewers").addClass("hide"),$(".margin-playbar").removeClass("margin-playbar"),$(".prev.playbar").addClass("margin-playbar"),$(".prev.playbar").removeClass("hide"),$("#offline-mode").removeClass("waves-cyan"),$("#offline-mode").addClass("cyan"),q.mobilecheck()||$("#offline-mode").tooltip({delay:5,position:"bottom",tooltip:"Disable local mode"}),"/"!=window.location.pathname?($("#controls").on("mouseenter",function(e){$("#seekToDuration").hasClass("hide")&&$("#seekToDuration").removeClass("hide")}),$("#controls").on("mouseleave",function(e){ye=!1,$("#seekToDuration").hasClass("hide")||$("#seekToDuration").addClass("hide")}),$("#controls").on("mousedown",function(e){["bar","controls","duration"].indexOf($(e.target).attr("id"))>=0&&(ye=!0)}),$("#controls").on("mouseup",function(e){ye=!1}),$("#controls").on("mousemove",L),$("#controls").on("click",E),$("#main_components").append("
00:00/01:00
"),q.mobilecheck()?q.mobilecheck()&&$("#seekToDuration").css("top",$("#controls").position().top-20):$("#seekToDuration").css("top",$("#controls").position().top-55),$("#controls").hasClass("ewresize")||$("#controls").addClass("ewresize")):($("#controls").off("mouseenter"),$("#controls").off("mouseleave"),$("#controls").off("mousemove"),$("#controls").off("click")),void 0!=ht&&!t){for(var a=0;a
"+te+""+e+"
");$(".drag-target").remove(),$("#sidenav-overlay").remove(),$("main").attr("class","center-align container"),$("#main-container").removeClass("channelpage"),$("#main-container").attr("style",""),$("header").html($(a.find("header")).html()),$($(a.find(".section.mega"))).insertAfter("header"),$($(a.find(".section.mobile-search"))).insertAfter(".mega"),q.mobilecheck()||_e?$("main").html($(a.find("main")).html()):$("main").append($(a.find("#main_section_frontpage")).wrap("").parent().html()),$(".page-footer").removeClass("padding-bottom-extra"),$(".page-footer").removeClass("padding-bottom-novideo"),$("#favicon").attr("href","/assets/images/favicon-32x32.png"),$(".context-menu-list").remove(),q.log(B),1==$("#alreadyfp").length?t():(Ct=!0,j=!0,t()),0!==$("#alreadychannel").length||_e?_e&&$("#alreadychannel").remove():$("head").append("
"),void 0!=e.description&&""!=e.description&&$("#description_area").html(e.description)},submitAdmin:function(e,t){voting=e.vote.checked,addsongs=e.addsongs.checked,longsongs=e.longsongs.checked,j=e.frontpage.checked,allvideos=e.allvideos.checked,removeplay=e.removeplay.checked,skipping=e.skip.checked,shuffling=e.shuffle.checked;var a=""==Ie?Ie:CryptoJS.SHA256(Ie).toString();configs={channel:X.toLowerCase(),voting:voting,addsongs:addsongs,longsongs:longsongs,frontpage:j,allvideos:allvideos,removeplay:removeplay,adminpass:""==ce?"":Y.crypt_pass(ce),skipping:skipping,shuffling:shuffling,userpass:Y.crypt_pass(a),userpass_changed:t},Y.set_userpass(X.toLowerCase(),CryptoJS.SHA256(Ie).toString()),B.emit("conf",configs)},hide_settings:function(){$("#settings").sideNav("hide")},shuffle:function(){if(Qe){for(var e=0;e
  to register and save a password for a nickname","/name    to change the password on a nickname","/removename to logout"],namechange:function(e,t){var a=e.split(" ");if(2==a.length){var n=a[0],i=a[1];pe=n,ue=i,i=Y.crypt_pass(i),B.emit("namechange",{name:n,channel:X.toLowerCase(),password:i,first:t})}else if(3==a.length){var n=a[0],o=a[1],s=a[2];pe=n,ue=i,o=Y.crypt_pass(o),s=Y.crypt_pass(s),B.emit("namechange",{name:n,channel:X.toLowerCase(),new_password:o,old_password:s})}},removename:function(){B.emit("removename",{channel:X.toLowerCase()}),Y.remove_name()},chat:function(e){if(!(e.value.length>150)){if(e.value.startsWith("/name "))O.namechange(e.value.substring(6),!1);else if(e.value.startsWith("/help"))if("#all_chat"==$(".chat-tab-li a.active").attr("href")){$("#chatall").children().length>100&&$("#chatall").children()[0].remove();for(var t=0;tSystem: ");var i=document.createTextNode(O.chat_help[t]);$("#chatall li:last")[0].appendChild(i),document.getElementById("chatall").scrollTop=document.getElementById("chatall").scrollHeight}}else{$("#chatchannel").children().length>100&&$("#chatchannel").children()[0].remove();for(var t=0;tSystem: ");var i=document.createTextNode(O.chat_help[t]);$("#chatchannel li:last")[0].appendChild(i),document.getElementById("chatchannel").scrollTop=document.getElementById("chatchannel").scrollHeight}}else e.value.startsWith("/removename")?O.removename():"#all_chat"==$(".chat-tab-li a.active").attr("href")?B.emit("all,chat",{channel:X.toLowerCase(),data:e.value}):B.emit("chat",{channel:X.toLowerCase(),data:e.value,pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))});e.value=""}},allchat:function(e,t,a){if(":"==e.msg.substring(0,1)&&!De&&!a){O.all_received+=1,$("#favicon").attr("href","/assets/images/highlogo.png"),ae=!0,Ve=!0,$(".chat-link span.badge.new.white").hasClass("hide")&&$(".chat-link span.badge.new.white").removeClass("hide");var n=O.channel_received+O.all_received>9?"9+":O.channel_received+O.all_received;$(".chat-link span.badge.new.white").html(n)}document.hidden&&$("#favicon").attr("href","/assets/images/highlogo.png"),$("#chatall").children().length>100&&$("#chatall").children()[0].remove();var i=q.intToARGB(q.hashCode(e.from));if(i.length<6)for(x=i.length;x<6;x++)i="0"+i;var o="";e.hasOwnProperty("icon")&&!e.icon&&""!=e.icon&&(o=" "),i=q.hexToRgb(i.substring(0,6));var s=q.rgbToHsl([i.r,i.g,i.b],!1),l=new Date;t&&(l=new Date(t));var r=q.pad(l.getHours())+":"+q.pad(l.getMinutes());$("#chatall").append(""+r+" "+o+""+e.from+" "+e.channel+" ");var c=document.createTextNode(e.msg);$("#chatall li:last")[0].appendChild(c),document.getElementById("chatall").scrollTop=document.getElementById("chatall").scrollHeight},channelchat:function(e,t,a){if(":"==e.msg.substring(0,1)&&!De&&!a){$("#favicon").attr("href","/assets/images/highlogo.png"),ae=!0,Ve=!0,O.channel_received+=1,$(".chat-link span.badge.new.white").hasClass("hide")&&$(".chat-link span.badge.new.white").removeClass("hide");var n=O.channel_received+O.all_received>9?"9+":O.channel_received+O.all_received;$(".chat-link span.badge.new.white").html(n)}$("#chatchannel").children().length>100&&$("#chatchannel").children()[0].remove();var i="";e.hasOwnProperty("icon")&&!e.icon&&""!=e.icon&&(i="
"),i=q.hexToRgb(i.substring(0,6));var s=q.rgbToHsl([i.r,i.g,i.b],!1),l=new Date;t&&(l=new Date(t));var r=q.pad(l.getHours())+":"+q.pad(l.getMinutes());$("#chatall").append(""+r+" "+o+""+e.from+" "+e.channel+" ");var c=document.createTextNode(e.msg);$("#chatall li:last")[0].appendChild(c),document.getElementById("chatall").scrollTop=document.getElementById("chatall").scrollHeight},channelchat:function(e,t,a){if(":"==e.msg.substring(0,1)&&!De&&!a){$("#favicon").attr("href","/assets/images/highlogo.png"),ae=!0,Ve=!0,O.channel_received+=1,$(".chat-link span.badge.new.white").hasClass("hide")&&$(".chat-link span.badge.new.white").removeClass("hide");var n=O.channel_received+O.all_received>9?"9+":O.channel_received+O.all_received;$(".chat-link span.badge.new.white").html(n)}$("#chatchannel").children().length>100&&$("#chatchannel").children()[0].remove();var i="";e.hasOwnProperty("icon")&&!e.icon&&""!=e.icon&&(i=" ");var o=q.intToARGB(q.hashCode(e.from));if(o.length<6)for(x=o.length;x<6;x++)o="0"+o;o=q.hexToRgb(o.substring(0,6));var s=q.rgbToHsl([o.r,o.g,o.b],!1),l=new Date;t&&(l=new Date(t));var r=q.pad(l.getHours())+":"+q.pad(l.getMinutes());$("#chatchannel").append(""+r+" "+i+""+e.from+"");var c=document.createTextNode(e.msg);$("#chatchannel li:last")[0].appendChild(c),document.getElementById("chatchannel").scrollTop=document.getElementById("chatchannel").scrollHeight},chat_blink:function(){Be=!0,$(".chat-link").attr("style","color: grey !important;"),setTimeout(function(){$(".chat-link").attr("style","color: white !important;"),setTimeout(function(){Be&&O.chat_blink()},1e3)},1e3)}},Y={conf_pass:void 0,user_pass:void 0,tmp_pass:"",init:function(){"/"!=window.location.pathname&&("https:"!=location.protocol?document.cookie=X.toLowerCase()+"=;path=/"+X.toLowerCase()+";expires="+new Date(0).toUTCString():document.cookie=X.toLowerCase()+"=;path=/"+X.toLowerCase()+";secure;expires="+new Date(0).toUTCString());try{conf_arr=Y.decrypt(Y.getCookie("_opt"),"_opt")}catch(e){conf_arr=Y.decrypt(Y.create_cookie("_opt"),"_opt")}if("/"!=window.location.pathname){try{Y.conf_pass=Y.decrypt(Y.getCookie(X.toLowerCase()),X.toLowerCase())}catch(e){Y.conf_pass=Y.decrypt(Y.create_cookie(X.toLowerCase()),X.toLowerCase())}J.change_enabled(conf_arr.remote),100!=conf_arr.width&&St.set_width(conf_arr.width),void 0!==conf_arr.name&&""!==conf_arr.name&&void 0!==conf_arr.chat_pass&&""!==conf_arr.chat_pass&&setTimeout(function(){O.namechange(conf_arr.name+" "+conf_arr.chat_pass,!0)},100)}},decrypt:function(e,t){void 0===Y.getCookie(t)&&(e=Y.create_cookie(t));var a=btoa("0103060703080703080701")+btoa("0103060703080703080701");a=a.substring(0,32),a=btoa(a);var n=CryptoJS.AES.decrypt(e,a,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7});return $.parseJSON(n.toString(CryptoJS.enc.Utf8))},decrypt_pass:function(e){var t=btoa(B.id)+btoa(B.id);return t=t.substring(0,32),t=btoa(t),CryptoJS.AES.decrypt(e,t,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)},encrypt:function(e,t){var a=JSON.stringify(e),n=btoa("0103060703080703080701")+btoa("0103060703080703080701");n=n.substring(0,32),n=btoa(n);var i=CryptoJS.AES.encrypt(a,n,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}),o=new Date;o.setFullYear(o.getFullYear()+1),"https:"!=location.protocol?document.cookie=t+"="+i.toString()+";expires="+o.toGMTString()+";path=/;":document.cookie=t+"="+i.toString()+";secure;expires="+o.toGMTString()+";path=/;"},get_volume:function(){return Y.decrypt(Y.getCookie("_opt"),"_opt").volume},get_offline:function(){return void 0!=Y.decrypt(Y.getCookie("_opt"),"_opt").offline?Y.decrypt(Y.getCookie("_opt"),"_opt").offline:(Y.set_offline(!1),!1)},set_volume:function(e){conf_arr.volume=e,Y.encrypt(conf_arr,"_opt")},create_cookie:function(e){cookie_object="_opt"==e?{volume:100,width:100,remote:!0,name:"",offline:!1}:{passwords:{}};var t=JSON.stringify(cookie_object),a=btoa("0103060703080703080701")+btoa("0103060703080703080701");a=a.substring(0,32),a=btoa(a);var n=CryptoJS.AES.encrypt(t,a,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}),i=new Date;return i.setFullYear(i.getFullYear()+1),"https:"!=location.protocol?document.cookie=e+"="+n.toString()+";expires="+i.toGMTString()+";path=/;":document.cookie=e+"="+n.toString()+";secure;expires="+i.toGMTString()+";path=/;",Y.getCookie(e)},set_pass:function(e,t){Y.conf_pass.passwords[e]=t,Y.encrypt(Y.conf_pass,e)},remove_pass:function(e){delete Y.conf_pass.passwords[e],Y.encrypt(Y.conf_pass,e.toLowerCase())},set_userpass:function(e,t){Y.conf_pass.passwords.userpass=t,Y.encrypt(Y.conf_pass,e)},remove_userpass:function(e){delete Y.conf_pass.passwords.userpass,Y.encrypt(Y.conf_pass,e.toLowerCase())},set_name:function(e,t){conf_arr.name=encodeURIComponent(e).replace(/\W/g,""),conf_arr.chat_pass=t,Y.encrypt(conf_arr,"_opt")},set_offline:function(e){conf_arr.offline=e,Y.encrypt(conf_arr,"_opt")},remove_name:function(){conf_arr.name="",conf_arr.chat_pass="",Y.encrypt(conf_arr,"_opt")},get_pass:function(e){if(void 0!==Y.conf_pass)return Y.conf_pass.passwords[e]},get_userpass:function(e){return void 0!==Y.conf_pass?Y.conf_pass.passwords.userpass:""},set_remote:function(e){conf_arr.remote=e,Y.encrypt(conf_arr,"_opt")},get_remote:function(e){return conf_arr.remote},crypt_pass:function(e){Y.tmp_pass=e;var t=btoa(B.id)+btoa(B.id);t=t.substring(0,32),t=btoa(t);var a=btoa(Y.makeiv()),n=CryptoJS.AES.encrypt(e,CryptoJS.enc.Base64.parse(t),{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7,iv:CryptoJS.enc.Base64.parse(a)});return window.encrypted=n,n.toString()+"$"+a},makeiv:function(){for(var e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",a=0;a<16;a++)e+=t.charAt(Math.floor(Math.random()*t.length));return e},get_width:function(){return conf_arr.width},set_width:function(e){conf_arr.width=e,Y.encrypt(conf_arr,"_opt")},getCookie:function(e){var t="; "+document.cookie,a=t.split("; "+e+"=");if(2==a.length)return a.pop().split(";").shift()}},j=!0,R={blob_list:[],winter:(new Date).getMonth()>=10,times_rotated:0,all_channels:[],frontpage_function:function(e){j=!0,q.log("-----------"),q.log("Frontpage fetch"),q.log(e),q.log("------------"),R.all_channels=e.channels,R.populate_channels(e.channels,!0),R.set_viewers(e.viewers)},populate_channels:function(e,t){$("#channels").empty();var a=0;e=t?e.sort(q.predicate({name:"pinned",reverse:!0},{name:"viewers",reverse:!0},{name:"accessed",reverse:!0},{name:"count",reverse:!0})):e.sort(q.predicate({name:"viewers",reverse:!0},{name:"count",reverse:!0})),q.mobilecheck()||(clearTimeout(z),R.add_backdrop(e,0)),pre_card=$(V),q.log("------------"),q.log(pre_card),q.log("-------------");for(var n in e){var i=e[n]._id;if(a<12||!t){var o=e[n].id,s=e[n].viewers,l=e[n].description,r="background-image:url('https://img.youtube.com/vi/"+o+"/hqdefault.jpg');";e[n].thumbnail&&(r="background-image:url('"+e[n].thumbnail+"');");var c=e[n].count,d=pre_card.clone();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(s),d.find(".chan-songs").text(c),d.find(".chan-bg").attr("style",r),d.find(".chan-link").attr("href",i+"/"),""==l||void 0==l||q.mobilecheck()?(d.find(".card-reveal").remove(),d.find(".card").removeClass("sticky-action")):(d.find(".card-title").text(i),d.find(".description_text").text(l),l=""),$("#channels").append(d.html())}a++}var p=e.slice();p=p.sort(R.sortFunction_active);var u={};for(var n in p)u[p[n]._id]=null;var g="input.desktop-search";q.mobilecheck()&&(g="input.mobile-search"),$(g).autocomplete({data:u,limit:5,onAutocomplete:function(e){R.to_channel(e,!1)}}),document.getElementById("preloader").style.display="none",$("#channels").fadeIn(800),$("#searchFrontpage").focus(),a=0},sortFunction:function(e,t){var a=e.viewers,n=t.viewers,i=e.count,o=t.count;return an?-1:io?-1:0},sortFunction_active:function(e,t){var a=e.accessed,n=t.accessed,i=e.count,o=t.count;return an?-1:io?-1:0},getCookie:function(e){for(var t=e+"=",a=document.cookie.split(";"),n=0;n=e.length||t>=20)&&(t=0);var a=e[t].id;if(void 0!==R.blob_list[t])setTimeout(function(){j&&($("#mega-background").css("background","url(data:image/png;base64,"+R.blob_list[t]+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$(".desktop-search").attr("placeholder",e[t]._id))},500);else{var n=new Image;n.src="/assets/images/thumbnails/"+a+".jpg",n.onerror=function(n){var i="";"fb.zoff.me"==window.location.hostname&&(i="https://zoff.me"),$.ajax({type:"POST",data:{id:a},url:i+"/api/imageblob",success:function(a){setTimeout(function(){$("#mega-background").css("background","url(/assets/images/thumbnails/"+a+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$(".desktop-search").attr("placeholder",e[t]._id)},500)}})},n.onload=function(){$("#mega-background").css("background","url("+n.src+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$(".desktop-search").attr("placeholder",e[t]._id)}}z=setTimeout(function(){50==R.times_rotated&&j?(R.times_rotated=0,t=0,R.get_frontpage_lists()):j&&(R.times_rotated+=1,R.add_backdrop(e,t+1))},6e3)},get_frontpage_lists:function(){var e="";"fb.zoff.me"==window.location.hostname&&(e="https://zoff.me"),$.ajax({url:e+"/api/frontpages",method:"get",success:function(e){R.frontpage_function(e)},error:function(){Materialize.toast("Couldn't fetch lists, trying again in 3 seconds..",3e3,"red lighten connect_error"),U=setTimeout(function(){R.get_frontpage_lists()},3e3)}})},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),R.fall_snow(t),R.start_snowfall()},800)},fall_snow:function(e){e.style.top=parseInt(e.style.top.replace("px",""))+2+"px",parseInt(e.style.top.replace("px",""))visibility"+e)},to_channel:function(e,t){$("#channel-load").css("display","block"),window.scrollTo(0,0),j=!1,e=e.toLowerCase(),clearTimeout(z),q.mobilecheck()&&(q.log("removing all listeners"),B.removeAllListeners()),$("#main-container").css("background-color","#2d2d2d"),q.mobilecheck()||($("#frontpage-viewer-counter").tooltip("remove"),$("#offline-mode").tooltip("remove")),be=1,clearTimeout(U),$.ajax({url:"/"+e,method:"get",data:{channel:e},success:function(n){""!==St.player&&B.emit("change_channel",{channel:X.toLowerCase()}),$("#frontpage_player").empty(),q.mobilecheck()&&(q.log("disconnecting"),B.disconnect()),t||(window.history.pushState("to the channel!","Title","/"+e),""==tt&&(tt=e),""==at&&(at=e),window.chan=e);var i=$("
");var o=q.intToARGB(q.hashCode(e.from));if(o.length<6)for(x=o.length;x<6;x++)o="0"+o;o=q.hexToRgb(o.substring(0,6));var s=q.rgbToHsl([o.r,o.g,o.b],!1),l=new Date;t&&(l=new Date(t));var r=q.pad(l.getHours())+":"+q.pad(l.getMinutes());$("#chatchannel").append(""+r+" "+i+""+e.from+"");var c=document.createTextNode(e.msg);$("#chatchannel li:last")[0].appendChild(c),document.getElementById("chatchannel").scrollTop=document.getElementById("chatchannel").scrollHeight},chat_blink:function(){Be=!0,$(".chat-link").attr("style","color: grey !important;"),setTimeout(function(){$(".chat-link").attr("style","color: white !important;"),setTimeout(function(){Be&&O.chat_blink()},1e3)},1e3)}},Y={conf_pass:void 0,user_pass:void 0,tmp_pass:"",init:function(){"/"!=window.location.pathname&&("https:"!=location.protocol?document.cookie=X.toLowerCase()+"=;path=/"+X.toLowerCase()+";expires="+new Date(0).toUTCString():document.cookie=X.toLowerCase()+"=;path=/"+X.toLowerCase()+";secure;expires="+new Date(0).toUTCString());try{conf_arr=Y.decrypt(Y.getCookie("_opt"),"_opt")}catch(e){conf_arr=Y.decrypt(Y.create_cookie("_opt"),"_opt")}if("/"!=window.location.pathname){try{Y.conf_pass=Y.decrypt(Y.getCookie(X.toLowerCase()),X.toLowerCase())}catch(e){Y.conf_pass=Y.decrypt(Y.create_cookie(X.toLowerCase()),X.toLowerCase())}J.change_enabled(conf_arr.remote),100!=conf_arr.width&&St.set_width(conf_arr.width),void 0!==conf_arr.name&&""!==conf_arr.name&&void 0!==conf_arr.chat_pass&&""!==conf_arr.chat_pass&&setTimeout(function(){O.namechange(conf_arr.name+" "+conf_arr.chat_pass,!0)},100)}},decrypt:function(e,t){void 0===Y.getCookie(t)&&(e=Y.create_cookie(t));var a=btoa("0103060703080703080701")+btoa("0103060703080703080701");a=a.substring(0,32),a=btoa(a);var n=CryptoJS.AES.decrypt(e,a,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7});return $.parseJSON(n.toString(CryptoJS.enc.Utf8))},decrypt_pass:function(e){var t=btoa(B.id)+btoa(B.id);return t=t.substring(0,32),t=btoa(t),CryptoJS.AES.decrypt(e,t,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8)},encrypt:function(e,t){var a=JSON.stringify(e),n=btoa("0103060703080703080701")+btoa("0103060703080703080701");n=n.substring(0,32),n=btoa(n);var i=CryptoJS.AES.encrypt(a,n,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}),o=new Date;o.setFullYear(o.getFullYear()+1),"https:"!=location.protocol?document.cookie=t+"="+i.toString()+";expires="+o.toGMTString()+";path=/;":document.cookie=t+"="+i.toString()+";secure;expires="+o.toGMTString()+";path=/;"},get_volume:function(){return Y.decrypt(Y.getCookie("_opt"),"_opt").volume},get_offline:function(){return void 0!=Y.decrypt(Y.getCookie("_opt"),"_opt").offline?Y.decrypt(Y.getCookie("_opt"),"_opt").offline:(Y.set_offline(!1),!1)},set_volume:function(e){conf_arr.volume=e,Y.encrypt(conf_arr,"_opt")},create_cookie:function(e){cookie_object="_opt"==e?{volume:100,width:100,remote:!0,name:"",offline:!1}:{passwords:{}};var t=JSON.stringify(cookie_object),a=btoa("0103060703080703080701")+btoa("0103060703080703080701");a=a.substring(0,32),a=btoa(a);var n=CryptoJS.AES.encrypt(t,a,{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}),i=new Date;return i.setFullYear(i.getFullYear()+1),"https:"!=location.protocol?document.cookie=e+"="+n.toString()+";expires="+i.toGMTString()+";path=/;":document.cookie=e+"="+n.toString()+";secure;expires="+i.toGMTString()+";path=/;",Y.getCookie(e)},set_pass:function(e,t){Y.conf_pass.passwords[e]=t,Y.encrypt(Y.conf_pass,e)},remove_pass:function(e){delete Y.conf_pass.passwords[e],Y.encrypt(Y.conf_pass,e.toLowerCase())},set_userpass:function(e,t){Y.conf_pass.passwords.userpass=t,Y.encrypt(Y.conf_pass,e)},remove_userpass:function(e){delete Y.conf_pass.passwords.userpass,Y.encrypt(Y.conf_pass,e.toLowerCase())},set_name:function(e,t){conf_arr.name=encodeURIComponent(e).replace(/\W/g,""),conf_arr.chat_pass=t,Y.encrypt(conf_arr,"_opt")},set_offline:function(e){conf_arr.offline=e,Y.encrypt(conf_arr,"_opt")},remove_name:function(){conf_arr.name="",conf_arr.chat_pass="",Y.encrypt(conf_arr,"_opt")},get_pass:function(e){if(void 0!==Y.conf_pass)return Y.conf_pass.passwords[e]},get_userpass:function(e){return void 0!==Y.conf_pass?Y.conf_pass.passwords.userpass:""},set_remote:function(e){conf_arr.remote=e,Y.encrypt(conf_arr,"_opt")},get_remote:function(e){return conf_arr.remote},crypt_pass:function(e){Y.tmp_pass=e;var t=btoa(B.id)+btoa(B.id);t=t.substring(0,32),t=btoa(t);var a=btoa(Y.makeiv()),n=CryptoJS.AES.encrypt(e,CryptoJS.enc.Base64.parse(t),{mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7,iv:CryptoJS.enc.Base64.parse(a)});return window.encrypted=n,n.toString()+"$"+a},makeiv:function(){for(var e="",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",a=0;a<16;a++)e+=t.charAt(Math.floor(Math.random()*t.length));return e},get_width:function(){return conf_arr.width},set_width:function(e){conf_arr.width=e,Y.encrypt(conf_arr,"_opt")},getCookie:function(e){var t="; "+document.cookie,a=t.split("; "+e+"=");if(2==a.length)return a.pop().split(";").shift()}},j=!0,R={blob_list:[],winter:(new Date).getMonth()>=10,times_rotated:0,all_channels:[],frontpage_function:function(e){j=!0,q.log("-----------"),q.log("Frontpage fetch"),q.log(e),q.log("------------"),R.all_channels=e.channels,R.populate_channels(e.channels,!0),R.set_viewers(e.viewers)},populate_channels:function(e,t){$("#channels").empty();var a=0;e=t?e.sort(q.predicate({name:"pinned",reverse:!0},{name:"viewers",reverse:!0},{name:"accessed",reverse:!0},{name:"count",reverse:!0})):e.sort(q.predicate({name:"viewers",reverse:!0},{name:"count",reverse:!0})),q.mobilecheck()||(clearTimeout(z),R.add_backdrop(e,0)),pre_card=$(V),q.log("------------"),q.log(pre_card),q.log("-------------");for(var n in e){var i=e[n]._id;if(a<12||!t){var o=e[n].id,s=e[n].viewers,l=e[n].description,r="background-image:url('https://img.youtube.com/vi/"+o+"/hqdefault.jpg');";e[n].thumbnail&&(r="background-image:url('"+e[n].thumbnail+"');");var c=e[n].count,d=pre_card.clone();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(s),d.find(".chan-songs").text(c),d.find(".chan-bg").attr("style",r),d.find(".chan-link").attr("href",i+"/"),""==l||void 0==l||q.mobilecheck()?(d.find(".card-reveal").remove(),d.find(".card").removeClass("sticky-action")):(d.find(".card-title").text(i),d.find(".description_text").text(l),l=""),$("#channels").append(d.html())}a++}var p=e.slice();p=p.sort(R.sortFunction_active);var u={};for(var n in p)u[p[n]._id]=null;var g="input.desktop-search";q.mobilecheck()&&(g="input.mobile-search"),$(g).autocomplete({data:u,limit:5,onAutocomplete:function(e){R.to_channel(e,!1)}}),document.getElementById("preloader").style.display="none",$("#channels").fadeIn(800),$("#searchFrontpage").focus(),a=0},sortFunction:function(e,t){var a=e.viewers,n=t.viewers,i=e.count,o=t.count;return an?-1:io?-1:0},sortFunction_active:function(e,t){var a=e.accessed,n=t.accessed,i=e.count,o=t.count;return an?-1:io?-1:0},getCookie:function(e){for(var t=e+"=",a=document.cookie.split(";"),n=0;n=e.length||t>=20)&&(t=0);var a=e[t].id;if(void 0!==R.blob_list[t])setTimeout(function(){j&&($("#mega-background").css("background","url(data:image/png;base64,"+R.blob_list[t]+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$(".desktop-search").attr("placeholder",e[t]._id))},500);else{var n=new Image;n.src="/assets/images/thumbnails/"+a+".jpg",n.onerror=function(n){var i="";"fb.zoff.me"==window.location.hostname&&(i="https://zoff.me"),$.ajax({type:"POST",data:{id:a},url:i+"/api/imageblob",success:function(a){setTimeout(function(){$("#mega-background").css("background","url(/assets/images/thumbnails/"+a+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$(".desktop-search").attr("placeholder",e[t]._id)},500)}})},n.onload=function(){$("#mega-background").css("background","url("+n.src+")"),$("#mega-background").css("background-size","200%"),$("#mega-background").css("opacity",1),$(".desktop-search").attr("placeholder",e[t]._id)}}z=setTimeout(function(){50==R.times_rotated&&j?(R.times_rotated=0,t=0,R.get_frontpage_lists()):j&&(R.times_rotated+=1,R.add_backdrop(e,t+1))},6e3)},get_frontpage_lists:function(){var e="";"fb.zoff.me"==window.location.hostname&&(e="https://zoff.me"),$.ajax({url:e+"/api/frontpages",method:"get",success:function(e){R.frontpage_function(e)},error:function(){Materialize.toast("Couldn't fetch lists, trying again in 3 seconds..",3e3,"red lighten connect_error"),U=setTimeout(function(){R.get_frontpage_lists()},3e3)}})},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),R.fall_snow(t),R.start_snowfall()},800)},fall_snow:function(e){e.style.top=parseInt(e.style.top.replace("px",""))+2+"px",parseInt(e.style.top.replace("px",""))visibility"+e)},to_channel:function(e,t){$("#channel-load").css("display","block"),window.scrollTo(0,0),j=!1,e=e.toLowerCase(),clearTimeout(z),q.mobilecheck()&&(q.log("removing all listeners"),B.removeAllListeners()),$("#main-container").css("background-color","#2d2d2d"),q.mobilecheck()||($("#frontpage-viewer-counter").tooltip("remove"),$("#offline-mode").tooltip("remove")),be=1,clearTimeout(U),$.ajax({url:"/"+e,method:"get",data:{channel:e},success:function(n){""!==St.player&&B.emit("change_channel",{channel:X.toLowerCase()}),$("#frontpage_player").empty(),q.mobilecheck()&&(q.log("disconnecting"),B.disconnect()),t||(window.history.pushState("to the channel!","Title","/"+e),""==tt&&(tt=e),""==at&&(at=e),window.chan=e);var i=$(""+n+"
");$("select").material_select("destroy"),$(".mega").remove(),$(".mobile-search").remove(),$("main").attr("class","container center-align main"),$("#main-container").addClass("channelpage"),$("header").html($(i.find("header")).html()),0===$("#alreadychannel").length||q.mobilecheck()||void 0===St.player?$("main").html($(i.find("main")).html()):($("#main-row").append($(i.find("#playlist").wrap("").parent().html())),$("#video-container").append($(i.find("#main_components").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"),ze=!0,1==$("#alreadychannel").length?a():(kt=!0,a()),0===$("#alreadyfp").length&&$("head").append("
")}})}};String.prototype.capitalizeFirstLetter=function(){return this.charAt(0).toUpperCase()+this.slice(1)};var q={log:function(e){"true"===localStorage.debug&&console.log(e)},rnd:function(e){return e[Math.floor(Math.random()*e.length)]},mobilecheck:function(){var e=!1;return(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4)))&&(e=!0),e},predicate:function(){for(var e,t,a,n=[],i=arguments.length,o=function(e,t){return void 0==e&&(e=0),void 0==t&&(t=0),e===t?0:e
>24&255).toString(16)+(e>>16&255).toString(16)+(e>>8&255).toString(16)+(255&e).toString(16)},hexToRgb:function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},hslToRgb:function(e,t,a){function n(e,t,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?e+6*(t-e)*a:a<.5?t:a<2/3?e+(t-e)*(2/3-a)*6:e}var i,o,s;if(0==t)i=o=s=a;else{var l=a<.5?a*(1+t):a+t-a*t,r=2*a-l;i=n(r,l,e+1/3),o=n(r,l,e),s=n(r,l,e-1/3)}return[255*i,255*o,255*s]},pad:function(e){return e<10?"0"+Math.floor(e):Math.floor(e)},contains:function(e,t){for(var a=e.length;a--;)if(e[a]===t)return!0;return!1},sample:function(){Date.now()-xe>=2*Ce&&(B.removeAllListeners(),B.disconnect(),B.connect(),St.setup_all_listeners()),xe=Date.now(),setTimeout(q.sample,Ce)},msieversion:function(){return!!(window.navigator.userAgent.indexOf("MSIE ")>0||navigator.userAgent.match(/Trident.*rv\:11\./))},getRandomInt:function(e,t){return Math.floor(Math.random()*(t-e))+e},secondsToOther:function(e){var t=e,a=Math.floor(t/60);return t-=60*a,[a,t]},rgbToHsl:function(e,t){r=e[0],g=e[1],b=e[2],r/=255,g/=255,b/=255;var a,n,i=Math.max(r,g,b),o=Math.min(r,g,b),s=(i+o)/2;if(i==o)a=n=0;else{var l=i-o;switch(n=s>.5?l/(2-i-o):l/(i+o),i){case r:a=(g-b)/l+(g.5&&t?s=.4:s<.65&&!t&&(s=.65),"hsl("+Math.floor(360*a)+", "+Math.floor(100*n)+"%, "+Math.floor(100*s)+"%)"},componentToHex:function(e){var t=e.toString(16);return 1==t.length?"0"+t:t},rgbToHex:function(e,t,a){return"#"+q.componentToHex(e)+q.componentToHex(t)+q.componentToHex(a)},upperFirst:function(e){return e.substring(0,1).toUpperCase()+e.substring(1).toLowerCase()},addClass:function(e,t){q.contains($(e).attr("class").split(" "),t)||$(e).addClass(t)},send_mail:function(e,t){""!==e&&""!==t&&($("#submit-contact-form").addClass("hide"),$("#send-loader").removeClass("hide"),$("#contact-form-from").attr("disabled","true"),$("#contact-form-message").attr("disabled","true"),$.ajax({type:"POST",data:{from:e,message:t},url:"/api/mail",success:function(e){"success"==e?($("#contact-container").empty(),$("#contact-container").html("Mail has been sent, we'll be back with you shortly.")):($("#contact-container").empty(),$("#contact-container").html("Something went wrong, sorry about that. You could instead try with your own mail-client: contact@zoff.no"))}}))},firstY:null,lastY:null,currentY:null,vertScroll:!1,initAdjustment:0,touchstart:function(e){q.lastY=q.currentY=q.firstY=e.originalEvent.touches[0].pageY},touchmove:function(e){q.currentY=e.originalEvent.touches[0].pageY;var t=q.lastY-q.currentY;!q.vertScroll&&Math.abs(q.currentY-q.firstY)>30&&(q.vertScroll=!0,q.initAdjustment=q.currentY-q.firstY),q.vertScroll&&(window.scrollBy(0,t+q.initAdjustment),q.lastY=q.currentY+t)},touchend:function(e){q.vertScroll=!1,q.firstY=null,q.currentY=null,q.vertScroll=!1,q.initAdjustment=0,q.currentY=null},invertColor:function(e){if(0===e.indexOf("#")&&(e=e.slice(1)),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),6!==e.length)throw new Error("Invalid HEX color.");var t=(255-parseInt(e.slice(0,2),16)).toString(16),a=(255-parseInt(e.slice(2,4),16)).toString(16),n=(255-parseInt(e.slice(4,6),16)).toString(16);return"#"+padZero(t)+padZero(a)+padZero(n)},padZero:function(e,t){return t=t||2,(new Array(t).join("0")+e).slice(-t)}};Element.prototype.remove=function(){this.parentElement.removeChild(this)},NodeList.prototype.remove=HTMLCollection.prototype.remove=function(){for(var e=0,t=this.length;e0&&St.sendNext({title:ht[0].title,videoId:ht[0].id})):(tt=X,W.populate_list(e.playlist),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}));break;case"added":W.added_song(e.value),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}),ot=[],st=0;break;case"deleted":W.deleted_song(e.value,e.removed),ot=[],st=0;break;case"vote":Qe||(W.voted_song(e.value,e.time),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id})),ot=[],st=0;break;case"song_change":"/"!=window.location.pathname&&W.song_change(e.time,e.remove),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}),ot=[],st=0;break;case"song_change_prev":"/"!=window.location.pathname&&W.song_change_prev(e.time),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}),ot=[],st=0}},insertAtBeginning:function(e,t){var a=0==W.page?"":"none",n=W.generateSong(e,t,!1,!0,!1,a,!1);$("#wrapper").append(n)},insertAtIndex:function(e,t,a){var n=W.getIndexOfSong(e.id),i="none";if(!e.now_playing){n>=W.page&&n div:nth-child("+n+")").after(o);var s=$("#wrapper").children()[n];$(s).css("display",i),"inline-block"==i&&$("#wrapper").children().length>=W.page+W.can_fit+1?$($("#wrapper").children()[W.page+W.can_fit]).css("display","none"):n=0?$($("#wrapper").children()[W.page]).css("display","inline-block"):$("#wrapper").children().length>W.page+W.can_fit&&$($("#wrapper").children()[W.page+W.can_fit-1]).css("display","inline-block"),a&&W.page>0&&$($("#wrapper").children()[W.page-1]).css("display","none"),t&&setTimeout(function(){$(s).css("transform","translateX(0%)"),setTimeout(function(){$(s).removeClass("side_away")},300)},5)}},populate_list:function(e,t){if(q.mobilecheck()||Me?Me?(W.can_fit=Math.round($("#wrapper").height()/91)+1,W.element_height=$("#wrapper").height()/W.can_fit-4):(W.can_fit=Math.round(($(window).height()-$(".tabs").height()-$("header").height()-64-8)/71)+1,W.element_height=($(window).height()-$(".tabs").height()-$("header").height()-64-8)/W.can_fit-5):(W.can_fit=Math.round($("#wrapper").height()/71)+1,W.element_height=$("#wrapper").height()/W.can_fit-5.3),W.element_height<55.2&&(W.can_fit=W.can_fit-1,W.element_height=55.2,W.can_fit=Math.round(($(window).height()-$(".tabs").height()-$("header").height()-64-8)/71),W.element_height=($(window).height()-$(".tabs").height()-$("header").height()-64-8)/W.can_fit-5),void 0===te&&(te=$("#list-song-html").html()),ht=e,Qe&&!t)for(var a=0;a1?($.each(ht,function(e,t){if(!t.now_playing){var a=W.generateSong(t,!1,Ee,!0,!1,"",!0);$("#wrapper").append(a)}}),$("#wrapper").children().length>W.can_fit&&!$("#pageButtons").length?($('').insertAfter("#wrapper"),$(".prev_page").css("display","none"),$(".first_page").css("display","none"),$(".next_page_hide").css("display","none"),$(".last_page_hide").css("display","none")):$("#pageButtons").length||($('').insertAfter("#wrapper"),$(".prev_page").css("display","none"),$(".next_page").css("display","none"),$(".last_page").css("display","none"),$(".first_page").css("display","none"),$(".next_page_hide").css("display","inline-flex"),$(".prev_page_hide").css("display","inline-flex")),W.dynamicContentPage(-10)):(W.empty=!0,$("#wrapper").html("The playlist is empty."),$("#pageButtons").length||$('').insertAfter("#wrapper"),$(".prev_page").css("display","none"),$(".next_page").css("display","none"),$(".last_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".first_page").css("display","none"),$(".next_page_hide").css("display","inline-flex"),$(".prev_page_hide").css("display","inline-flex")),$("#settings").css("visibility","visible"),$("#settings").css("opacity","1"),$("#wrapper").css("opacity","1")},dynamicContentPageJumpTo:function(e){((e*=W.can_fit)>W.page||e0&&"none"==$(".prev_page").css("display")&&($(".prev_page").css("display","inline-flex"),$(".prev_page_hide").css("display","none"),$(".first_page").css("display","inline-flex"),$(".first_page_hide").css("display","none")),W.page+W.can_fit>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none")),$("#pageNumber").html(W.page/W.can_fit+1))},dynamicContentPage:function(e){1==e?($("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=W.page+W.can_fit,$("#wrapper").children().slice(W.page,W.page+W.can_fit).css("display","inline-block"),W.page>0&&"none"==$(".prev_page").css("display")&&($(".prev_page").css("display","inline-flex"),$(".prev_page_hide").css("display","none"),$(".first_page").css("display","inline-flex"),$(".first_page_hide").css("display","none")),W.page+W.can_fit>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none"))):10==e?($("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=Math.floor(($("#wrapper").children().length-1)/W.can_fit)*W.can_fit,$("#wrapper").children().slice(W.page,W.page+W.can_fit).css("display","inline-block"),W.page>0&&"none"==$(".prev_page").css("display")&&($(".prev_page").css("display","inline-flex"),$(".prev_page_hide").css("display","none"),$(".first_page").css("display","inline-flex"),$(".first_page_hide").css("display","none")),W.page+W.can_fit>=$("#wrapper").children().length&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none"))):-10==e?($("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=0,$("#wrapper").children().slice(W.page,W.page+W.can_fit).css("display","inline-block"),0==W.page&&"none"!=$(".prev_page").css("display")?($(".prev_page").css("display","none"),$(".prev_page_hide").css("display","inline-flex"),$(".first_page").css("display","none"),$(".first_page_hide").css("display","inline-flex")):"none"==$(".prev_page").css("display")?($(".prev_page_hide").css("display","inline-flex"),$(".first_page_hide").css("display","inline-flex")):($(".prev_page_hide").css("display","none"),$(".first_page_hide").css("display","none")),W.page+W.can_fit<$("#wrapper").children().length&&($(".next_page_hide").css("display","none"),$(".next_page").css("display","inline-flex"),$(".last_page_hide").css("display","none"),$(".last_page").css("display","inline-flex"))):($("#wrapper").children().slice(W.page-W.can_fit,W.page).css("display","inline-block"),$("#wrapper").children().slice(W.page,W.page+W.can_fit).hide(),W.page=W.page-W.can_fit<0?0:W.page-W.can_fit,0==W.page&&"none"!=$(".prev_page").css("display")?($(".prev_page").css("display","none"),$(".prev_page_hide").css("display","inline-flex"),$(".first_page").css("display","none"),$(".first_page_hide").css("display","inline-flex")):"none"==$(".prev_page").css("display")?($(".prev_page_hide").css("display","inline-flex"),$(".first_page_hide").css("display","inline-flex")):($(".prev_page_hide").css("display","none"),$(".first_page_hide").css("display","none")),W.page+W.can_fit<$("#wrapper").children().length&&($(".next_page_hide").css("display","none"),$(".next_page").css("display","inline-flex"),$(".last_page_hide").css("display","none"),$(".last_page").css("display","inline-flex"))),$("#pageNumber").html(W.page/W.can_fit+1)},added_song:function(e){var t;if(void 0!=e){if(0!==ht.length&&(t=ht.pop()),ht.push(e),W.sortList(),t&&ht.push(t),$("#suggested-"+e.id).length>0){et-=1,et<0&&(et=0);var a=et>9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=a||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(a)}$("#suggested-"+e.id).remove(),W.empty&&(W.empty=!1),$("#empty-channel-message").remove(),W.insertAtIndex(e,!0),$($("#wrapper").children()[W.page+W.can_fit]).css("display","none"),$("#wrapper").children().length>W.page+W.can_fit?($(".next_page_hide").css("display","none"),$(".next_page").removeClass("hide"),$(".last_page_hide").css("display","none"),$(".next_page").css("display","inline-flex"),$(".last_page").css("display","inline-flex")):($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"))}},deleted_song:function(e,t){try{var a=W.getIndexOfSong(e);a=0?($($("#wrapper").children()[W.page]).css("height",0),$($("#wrapper").children()[W.page]).css("display","inline-block"),$($("#wrapper").children()[W.page]).css("height",W.element_height)):$("#wrapper").children().length>W.page+W.can_fit&&($($("#wrapper").children()[W.page+W.can_fit]).css("height",0),$($("#wrapper").children()[W.page+W.can_fit]).css("display","inline-block"),$($("#wrapper").children()[W.page+W.can_fit]).css("height",W.element_height)),W.page>=$("#wrapper").children().length-1?(W.dynamicContentPage(-1),$(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none")):W.page+W.can_fit+1>=$("#wrapper").children().length-1&&($(".next_page_hide").css("display","inline-flex"),$(".next_page").css("display","none"),$(".last_page_hide").css("display","inline-flex"),$(".last_page").css("display","none")),W.page<=a&&W.page-W.can_fit<=a?($("#"+e).addClass("side_away"),$("#"+e).find(".mobile-delete").remove(),$("#"+e).css("transform","translateX(-100%)"),setTimeout(function(){$("#"+e).remove()},300)):$("#"+e).remove(),ht.splice(W.getIndexOfSong(e),1),St.sendNext({title:ht[0].title,videoId:ht[0].id})}catch(t){ht.splice(W.getIndexOfSong(e),1),W.empty||($("#"+e).remove(),a=0?$($("#wrapper").children()[W.page-1]).css("display","inline-block"):$("#wrapper").children().length>W.page+W.can_fit&&$($("#wrapper").children()[W.page+(W.can_fit-1)]).css("display","inline-block"),St.sendNext({title:ht[0].title,videoId:ht[0].id}))}ht.length<=2&&(W.empty=!0,$("#wrapper").html("The playlist is empty.")),$("#suggested-"+e).remove(),W.page,W.can_fit,$("#wrapper").children().length,W.page>=$("#wrapper").children().length&&W.dynamicContentPage(-1),Lt.checkUserEmpty()},voted_song:function(e,t){var a=W.getIndexOfSong(e),n=ht[a];ht[a].votes+=1,ht[a].added=t,W.sortList(),$("#"+e).remove(),W.insertAtIndex(n,!1)},song_change_prev:function(e){ht[ht.length-1].now_playing=!1,ht[ht.length-1].votes=ht[0].votes,ht[ht.length-1].guids=[],ht[ht.length-1].added=ht[0].added-1,ht.unshift(ht.pop()),ht[ht.length-1].now_playing=!0,$("#wrapper").children()[$("#wrapper").children().length-1].remove();var t=ht.length-2;t<0&&(t=0),W.insertAtIndex(ht[0],!1,!0)},song_change:function(e,t){try{var a=ht.length-1;$("#wrapper").children()[0].remove(),ht.length<=1&&(W.empty=!0,$("#wrapper").html("The playlist is empty.")),ht[0].now_playing=!0,ht[0].votes=0,ht[0].guids=[],ht[0].added=e,t?delete ht[a]:ht[a].now_playing=!1,q.log("---------------------------"),q.log("---SONG ON FIRST INDEX-----"),q.log(ht[0]),q.log("---------------------------"),ht.push(ht.shift()),t||W.insertAtIndex(ht[$("#wrapper").children().length],!1,!0)}catch(e){}},vote:function(e,t){return!Qe||"del"==t&&K&&!Q&&""!=ce?B.emit("vote",{channel:X,id:e,type:t,adminpass:""==ce?"":Y.crypt_pass(ce),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}):"pos"==t?W.voted_song(e,(new Date).getTime()/1e3):W.deleted_song(e),!0},skip:function(e){return Qe?e?St.playNext():St.playPrev():B.emit("skip",{pass:""==ce?"":Y.crypt_pass(ce),id:vt,channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),!0},exportToSpotify:function(){$.ajax({type:"GET",url:"https://api.spotify.com/v1/me",headers:{Authorization:"Bearer "+Ne.access_token},success:function(e){var t=e.id;$("#playlist_loader_export").removeClass("hide"),$(".exported-list-container").removeClass("hide"),$.ajax({type:"POST",url:"https://api.spotify.com/v1/users/"+t+"/playlists",headers:{Authorization:"Bearer "+Ne.access_token,"Content-Type":"application/json"},data:JSON.stringify({name:X.toLowerCase()+" - Zoff",public:!0}),success:function(e){var a=e.id;$.each(ht,function(e,n){W.searchSpotify(n,a,t)})}})}})},searchSpotify:function(e,t,a){var n=e.title,i=e.title.toLowerCase().replace("-"," ");i.startsWith("the")&&(i=i.replace("the","")),i=i.replace(" hd",""),i=i.replace("official hd video",""),i=i.replace("unofficial video",""),i=i.replace("studio footage",""),i=i.replace("great song",""),i=i.replace("-"," "),i=i.replace("-"," "),i=i.replace(" hq"," "),i=i.replace("lyric video",""),i=i.replace("lyrics video",""),i=i.replace("album version",""),i=i.replace("drive original movie soundtrack",""),i=i.replace("original movie soundtrack",""),i=i.replace("live sessions",""),i=i.replace("audio only",""),i=i.replace("audio",""),i=i.replace("(new)",""),i=i.replace(" by "," "),i=i.replace(" vs "," "),i=i.replace("(full)"," "),i=i.replace("(video)"," "),i=i.replace("&"," "),i=i.replace("with lyrics",""),i=i.replace("lyrics",""),i=i.replace("w/",""),i=i.replace("w/",""),i=i.replace("official video",""),i=i.replace("studio version",""),i=i.replace("official music video",""),i=i.replace("music video",""),i=i.replace("musicvideo",""),i=i.replace("original video",""),i=i.replace("full version",""),i=i.replace("full song",""),i=i.replace("(official)",""),i=i.replace("official",""),i=i.replace("(original)",""),i=i.replace("("," "),i=i.replace(")"," "),i=i.replace("|",""),i=i.replace("feat."," "),i=i.replace("feat"," "),i=i.replace("ft."," "),i=i.replace("["," "),i=i.replace("]"," "),i=i.replace(" free ",""),i=i.replace(" hd",""),i=i.replace("original mix"," "),i=i.replace("radio edit"," "),i=i.replace("pop version"," "),i=i.replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," "),i=encodeURIComponent(i),$.ajax({type:"GET",url:"https://api.spotify.com/v1/search?q="+i+"&type=track",headers:{Authorization:"Bearer "+Ne.access_token},async:!0,statusCode:{429:function(n){q.log(n.getAllResponseHeaders());var i=n.getResponseHeader("Retry-After");q.log(i),i||(i=5),i=parseInt(i,10),q.log("Retry-After",i),setTimeout(function(){W.searchSpotify(e,t,a)},1e3*i)}},error:function(n){if(429==n.status){q.log(n.getAllResponseHeaders());var i=n.getResponseHeader("Retry-After");q.log(i),i||(i=5),i=parseInt(i,10),q.log("Retry-After",i),setTimeout(function(){W.searchSpotify(e,t,a)},1e3*i)}},success:function(e){var o=!1;if($.each(e.tracks.items,function(e,t){if(t.name=t.name.toLowerCase(),t.name=t.name.replace("("," "),t.name=t.name.replace(")"," "),t.name=t.name.replace("["," "),t.name=t.name.replace("]"," "),t.name=t.name.replace("-"," "),t.name=t.name.replace("-"," "),t.name=t.name.replace("-"," "),t.name=t.name.replace("original mix"," "),t.name=t.name.replace("album version"," "),t.name=t.name.replace("abum version"," "),t.name=t.name.replace("feat."," "),t.artists[0].name=t.artists[0].name.replace("feat."," "),t.artists[0].name=t.artists[0].name.replace("feat"," "),t.name=t.name.replace("feat"," "),t.name=t.name.replace("ft."," "),t.name=t.name.replace("radio edit"," "),t.name=t.name.replace("pop version"," "),t.name=t.name.replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," "),t.artists[0].name=t.artists[0].name.replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ").replace("  "," ")," "==t.name.substring(t.name.length-1)&&(t.name=t.name.substring(0,t.name.length-1)),"."==t.name.substring(t.name.length-1)&&"."!=i.substring(i.length-1)&&(t.name=t.name.substring(0,t.name.length-1)),decodeURIComponent(i).indexOf(t.artists[0].name.toLowerCase())>=0&&decodeURIComponent(i).indexOf(t.name.toLowerCase())>=0)return o=!0,W.uris.push(t.uri),q.log("Found",i),!1;for(var a=t.name.split(" "),e=0;e=0||"&"==a[e]&&i.indexOf("and")>=0)&&i.indexOf(a[e])<0)return!0;return o=!0,W.uris.push(t.uri),q.log("Found",i),!1}),o||(W.not_found.push(n),W.num_songs=W.num_songs+1,q.log("Didn't find",n)),W.num_songs+W.uris.length==ht.length){if(W.uris.length>100){for(;W.uris.length>100;)W.addToSpotifyPlaylist(W.uris.slice(0,100),t,a),W.uris=W.uris.slice(100,W.uris.length);W.addToSpotifyPlaylist(W.uris,t,a),$("#playlist_loader_export").addClass("hide")}else W.addToSpotifyPlaylist(W.uris,t,a),$("#playlist_loader_export").addClass("hide");0==$(".exported-spotify-list").length&&$(".exported-list").append(""+X+""),$.each(W.not_found,function(e,t){var a=$(""+je+"
");a.find(".extra-add-text").attr("value",t),a.find(".extra-add-text").attr("title",t),$(".not-exported-container").append(a.html())}),$(".not-exported").removeClass("hide"),$(".spotify_export_button").css("display","block")}}})},addToSpotifyPlaylist:function(e,t,a){$.ajax({type:"POST",url:"https://api.spotify.com/v1/users/"+a+"/playlists/"+t+"/tracks",headers:{Authorization:"Bearer "+Ne.access_token,"Content-Type":"application/json"},data:JSON.stringify({uris:e}),error:function(n){var i=t,o=e,s=a;setTimeout(function(){W.addToSpotifyPlaylist(o,i,s)},3e3)},success:function(e){q.log("Added songs")}})},exportToYoutube:function(){$(".exported-list-container").removeClass("hide"),$("#playlist_loader_export").removeClass("hide"),$.ajax({type:"POST",url:"https://www.googleapis.com/youtube/v3/playlists?part=snippet",headers:{Authorization:"Bearer "+He.access_token,"Content-Type":"application/json"},data:JSON.stringify({snippet:{title:q.upperFirst(X.toLowerCase()),description:"Playlist exported from zoff"}}),success:function(e){var t=e.id;W.addToYoutubePlaylist(t,ht,0,"https://www.googleapis.com/youtube/v3/playlistItems?part=snippet")},error:function(e){q.log(e)}})},addToYoutubePlaylist:function(e,t,a,n){var i=JSON.stringify({snippet:{playlistId:e,resourceId:{kind:"youtube#video",videoId:t[a].id}}});$.ajax({type:"POST",url:n,headers:{Authorization:"Bearer "+He.access_token,"Content-Type":"application/json"},data:i,success:function(i){q.log("Added video: "+t[a].id+" to playlist id "+e),a==t.length-1?(q.log("All videoes added!"),q.log("url: https://www.youtube.com/playlist?list="+e),$(".exported-list").append(""+X+""),$("#playlist_loader_export").addClass("hide"),$(".current_number").addClass("hide")):($(".current_number").removeClass("hide"),$(".current_number").text(a+1+" of "+t.length),W.addToYoutubePlaylist(e,t,a+1,n))}})},sortList:function(){ht.sort(q.predicate({name:"votes",reverse:!0},{name:"added",reverse:!1},{name:"title",reverse:!1}))},show:function(){q.mobilecheck()||(ee?(ee=!1,$("#toptitle").empty(),$("#chan").addClass("bigChan"),$("#chan").html("zoff.me/"+X.toLowerCase())):(ee=!0,$("#toptitle").html("Zoff"),$("#chan").removeClass("bigChan"),$("#chan").html(X)))},generateSong:function(e,t,a,n,i,o,s){void 0===te&&(te=$("#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=$(""+te+"
"),h="style";if(t&&(g.find(".list-song").css("transform","translateX(100%)"),g.find(".list-song").addClass("side_away")),g.find(".list-song").css("height",W.element_height),Q||g.find(".card-action").removeClass("hide"),1==p&&g.find(".vote-text").text("vote"),a&&(u="//img.youtube.com/vi/"+c+"/mqdefault.jpg",h="data-original"),n){g.find(".list-votes").text(p),g.find("#list-song").attr("data-video-id",c),g.find("#list-song").attr("data-video-type","song"),g.find("#list-song").attr("id",c),g.find(".vote-container").attr("title",d),($("#wrapper").children().length>=W.can_fit&&s||"none"==o)&&g.find(".card").css("display","none"),l=".vote-container",r="delete_button";var m=q.secondsToOther(e.duration);g.find(".card-duration").text(q.pad(m[0])+":"+q.pad(m[1]))}else if(!n){g.find(".suggested_remove").removeClass("hide"),g.find(".vote-text").text(""),g.find(".card-duration").text(q.pad(e.duration[0])+":"+q.pad(e.duration[1]));var f="user";l=".add-suggested",i?r="del_user_suggested":(r="del_suggested",f="system"),g.find(".vote-container").attr("class","clickable add-suggested"),g.find(".add-suggested").attr("title",d),g.find(".delete_button").addClass(r),g.find(l).attr("data-video-title",d),g.find(l).attr("data-video-length",e.length),g.find(l).attr("data-added-by",f),g.find("#list-song").attr("data-video-type","suggested"),g.find("#list-song").attr("data-video-id",c),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"))}return g.find(".mobile-delete").remove(),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(h,u),g.find(".list-suggested-image").attr(h,u),g.find("."+r).attr("data-video-id",c),g.html()},getIndexOfSong:function(e){try{return indexes=$.map(ht,function(t,a){if(t.id==e)return a}),indexes[0]}catch(e){}},scrollTop:function(){$("#wrapper").scrollTop(0)},scrollBottom:function(){$("#wrapper").scrollTop($("#wrapper")[0].scrollHeight)}},Z=3,X=void 0===window.chan?$("#chan").html():window.chan,Q=!0,K=0,ee=!0,te=$("#list-song-html").html(),ae=!1,ne="***REMOVED***",ie=!1,oe=/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)?)?/,se=[],le=!1,re=0,j=1,ce="",de=!1,pe="",ue="",ge=!1,he=1,me="",fe=!1,ye=!1,ve=!1,_e=!1,$e=!1,we=!1,be=1,ke=!1,Ce=6e3,xe=Date.now(),Se=!1,Te=!1,Ie="",Le=-1,Ee=!1,Me=!1,Ae=!0,Pe=!1,De=!1,Ve=!1,Be=!1,ze=!1,Ne={},Oe=!1,Ye="",je="",Re=300,qe=600,Ue="&autoplay",Ge=!1,He={},Fe=!1,Je=!1,We="808080",Ze=!1,Xe=!1,Qe=!1,Ke=!1,et=0,tt="",at="",nt=!1,it="",ot=[],st=0,lt="";if(void 0===localStorage.debug){localStorage.debug=!1}var rt,ct,dt,pt,ut,gt,ht,se,mt,ft,yt,he,vt,_t,$t,wt,B,bt={"sync disconnect on unload":!0,secure:!0,"force new connection":!0},kt=!1,Ct=!1;try{navigator.serviceWorker.getRegistration("/").then(function(e){e&&e.unregister()})}catch(e){}$.ajaxPrefilter(function(e,t,a){e.async=!0}),$().ready(function(){localStorage.getItem("VERSION")&&parseInt(localStorage.getItem("VERSION"))==Z||localStorage.setItem("VERSION",Z),kt||"/"==window.location.pathname?Ct||"/"!=window.location.pathname||t():a(),q.mobilecheck()&&B.on("guid",function(e){lt=e}),B.on("connect",function(){Ge&&(Ge=!1,$(".connect_error").fadeOut(function(){$(".connect_error").remove(),Materialize.toast("Connected!",2e3,"green lighten"),Qe&&B.emit("offline",{status:!0,channel:void 0!=X?X.toLowerCase():""}),void 0!=X&&void 0!==Y.get_pass(X.toLowerCase())&&""!==Y.get_pass(X.toLowerCase())&&B.emit("password",{password:Y.crypt_pass(Y.get_pass(X.toLowerCase())),channel:X.toLowerCase()}),void 0!=X&&void 0!==conf_arr.name&&""!==conf_arr.name&&void 0!==conf_arr.chat_pass&&""!==conf_arr.chat_pass&&setTimeout(function(){O.namechange(conf_arr.name+" "+conf_arr.chat_pass,!0)},100)}))}),B.on("name",function(e){"name"==e.type&&e.accepted?(Y.set_name(pe,ue),pe="",ue=""):(pe="",ue="")}),B.on("self_ping",function(){void 0!=X&&""!=X.toLowerCase()&&B.emit("self_ping",{channel:X.toLowerCase()})}),s()}),initializeCastApi=function(){cast.framework.CastContext.getInstance().setOptions({receiverApplicationId:"E6856E24",autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED});var e=cast.framework.CastContext.getInstance();nt=!0,e.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,function(e){switch(q.log("session state"),q.log(e.sessionState),e.sessionState){case cast.framework.SessionState.SESSION_STARTED:G=cast.framework.CastContext.getInstance().getCurrentSession(),G.addMessageListener("urn:x-cast:zoff.me",i),chrome.cast.media.GenericMediaMetadata({title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"),Je=!0,we=!1,pt=!1;var t;try{t=St.player.getCurrentTime()}catch(e){t=_t}G.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,seekTo:t,channel:X.toLowerCase()}),G.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",videoId:ht[0].id,title:ht[0].title}),q.mobilecheck()&&!fe&&(fe=!0,G.sendMessage("urn:x-cast:zoff.me",{type:"mobilespecs",guid:lt,socketid:B.id,adminpass:""==ce?"":Y.crypt_pass(ce),channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})),n(1);break;case cast.framework.SessionState.SESSION_RESUMED:G=cast.framework.CastContext.getInstance().getCurrentSession(),G.addMessageListener("urn:x-cast:zoff.me",i),chrome.cast.media.GenericMediaMetadata({title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"),Je=!0,we=!1,pt=!1;var t;try{t=St.player.getCurrentTime()}catch(e){t=_t}G.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,seekTo:t,channel:X.toLowerCase()}),G.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",videoId:ht[0].id,title:ht[0].title}),n(1);break;case cast.framework.SessionState.SESSION_ENDED:Je=!1,n(0)}}),e.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,function(e){q.log("cast state"),q.log(e.castState),"NOT_CONNECTED"==e.castState?($(".castButton").css("display","block"),$(".volume-container").hasClass("volume-container-cast")||$(".volume-container").addClass("volume-container-cast"),Ke=!0,localStorage.getItem("_chSeen")&&"seen"==localStorage.getItem("_chSeen")||($(".castButton").css("display","block"),de=!0,$(".tap-target").tapTarget("open"),F=setTimeout(function(){$(".tap-target").tapTarget("close")},4e3),localStorage.setItem("_chSeen","seen"),$(".castButton").removeClass("castButton-white-active"))):"NO_DEVICES_AVAILABLE"==e.castState&&(Ke=!1,$(".volume-container").removeClass("volume-container-cast"))}),"NOT_CONNECTED"==e.getCastState()&&($(".castButton").css("display","block"),$(".castButton").removeClass("castButton-white-active"),Ke=!0)},window.zoff={enable_debug:_,disable_debug:w},$(document).on("click",".accept-delete",function(e){e.preventDefault();var t=$(this).attr("data-video-id");t&&W.vote(t,"del"),$("#delete_song_alert").modal("close")}),$(document).keyup(function(e){27==e.keyCode?($("#results").html(""),0==$("#search-wrapper").length||q.contains($("#search-wrapper").attr("class").split(" "),"hide")||$("#search-wrapper").toggleClass("hide"),0!=$("#song-title").length&&q.contains($("#song-title").attr("class").split(" "),"hide")&&$("#song-title").toggleClass("hide"),"close"==$("#search-btn i").html()&&$("#search-btn i").html("search"),0==$(".search-container").length||q.contains($(".search-container").attr("class").split(" "),"hide")||$("#results").toggleClass("hide")):13!=e.keyCode||"fireplace"!=$("#search").val()||$(".search-container").hasClass("hide")||"/"==window.location.pathname||(clearTimeout(ut),$("#results").html(""),$("#search").val(""),0==$("#search-wrapper").length||q.contains($("#search-wrapper").attr("class").split(" "),"hide")||$("#search-wrapper").toggleClass("hide"),0!=$("#song-title").length&&q.contains($("#song-title").attr("class").split(" "),"hide")&&$("#song-title").toggleClass("hide"),"close"==$("#search-btn i").html()&&$("#search-btn i").html("search"),0==$(".search-container").length||q.contains($(".search-container").attr("class").split(" "),"hide")||$("#results").toggleClass("hide"),Se?(Se=!1,St.fireplace.destroy(),$("#fireplace_player").css("display","none")):(Se=!0,$("#fireplace_player").css("display","block"),St.createFireplacePlayer()))}),$(document).on("mouseenter",".card.sticky-action",function(e){var t=this;$(t).find(".card-reveal").attr("style","display: block;"),clearTimeout(rt),rt=setTimeout(function(){$(t).find(".card-reveal").attr("style","display: block;transform: translateY(-100%);")},50)}),$(document).on("click","#chat_submit",function(e){e.preventDefault(),$("#chatForm").submit()}),$(document).on("click",".list-remove",function(e){e.preventDefault(),$("#"+$(this).parent().attr("id")).contextMenu()}),$(document).on("mouseleave",".card.sticky-action",function(e){var t=this;$(t).find(".card-reveal").attr("style","display: block;transform: translateY(0%);"),clearTimeout(rt),rt=setTimeout(function(){$(t).find(".card-reveal").attr("style","display: none;")},100)}),$(document).on("click","#offline-mode",function(e){e.preventDefault(),Y.get_offline()?T(!1,Qe):T(!0,Qe)}),$(document).on("submit","#thumbnail_form",function(e){e.preventDefault(),B.emit("suggest_thumbnail",{channel:X,thumbnail:$("#chan_thumbnail").val(),adminpass:Y.crypt_pass(Y.get_pass(X.toLowerCase())),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),$("#chan_thumbnail").val("")}),$(document).on("submit","#description_form",function(e){e.preventDefault(),B.emit("suggest_description",{channel:X,description:$("#chan_description").val(),adminpass:Y.crypt_pass(Y.get_pass(X.toLowerCase())),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),$("#chan_description").val("")}),$(document).on("click","#playpause-overlay",function(){$("#play-overlay").hasClass("hide")?(St.pauseVideo(),$("#play-overlay").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")):$("#pause-overlay").hasClass("hide")&&(St.playVideo(),$("#play-overlay").toggleClass("hide"),$("#pause-overlay").toggleClass("hide"))}),$(document).on("click","#cookieok",function(){$(this).fadeOut(function(){$(this).remove(),localStorage.ok_cookie=!0})}),$(document).on("click",".connect_error",function(e){e.preventDefault(),$(this).fadeOut(function(){$(this).remove(),Ge=!1})}),$(document).on("click",".extra-button-search",function(e){e.preventDefault(),$("#search").val($(this).attr("data-text")),It.search($(this).attr("data-text"))}),$(document).on("click",".extra-button-delete",function(e){e.preventDefault(),$(this).parent().remove(),0===$(".not-imported-container").children().length&&$(".not-imported").toggleClass("hide")}),$(document).on("click","#closePlayer",function(e){e.preventDefault(),B.emit("change_channel");try{if(Je){cast.framework.CastContext.getInstance().getCurrentSession().endSession(!0)}St.player.destroy(),$("#player_bottom_overlay").toggleClass("hide"),$("#player").remove()}catch(e){}B.removeEventListener("np"),B.removeEventListener("id"),B.removeEventListener(gt),$("#alreadychannel").remove(),St.player="",document.title="Zoff - the shared YouTube based radio",$("#closePlayer").remove()}),$(document).on("click",".prev_page",function(e){e.preventDefault(),W.dynamicContentPage(-1)}),$(document).on("click",".modal-close",function(e){e.preventDefault()}),$(document).on("change",".password_protected",function(e){e.preventDefault(),this.checked?($("#user_password").modal("open"),$("#user-pass-input").focus()):(Ie="",$(".change_user_pass").hasClass("hide")||$(".change_user_pass").addClass("hide"),N.save(!0))}),$(document).on("submit","#user-password-channel-form",function(e){e.preventDefault(),ve?(me=CryptoJS.SHA256($("#user-pass-input").val()).toString(),$("#user-pass-input").val(""),B.emit("list",{version:parseInt(localStorage.getItem("VERSION")),channel:X.toLowerCase(),pass:Y.crypt_pass(me)})):($("#user_password").modal("close"),Ie=$("#user-pass-input").val(),$e=!1,$("#user-pass-input").val(""),N.save(!0))}),$(document).on("click",".change_user_pass_btn",function(e){e.preventDefault(),$e=!0,$("#user_password").modal("open"),$("#user-pass-input").focus()}),$(document).on("click",".submit-user-password",function(e){e.preventDefault(),ve?(me=CryptoJS.SHA256($("#user-pass-input").val()).toString(),$("#user-pass-input").val(""),B.emit("list",{version:parseInt(localStorage.getItem("VERSION")),channel:X.toLowerCase(),pass:Y.crypt_pass(me)})):($("#user_password").modal("close"),Ie=$("#user-pass-input").val(),$e=!1,$("#user-pass-input").val(""),N.save(!0))}),$(document).on("click",".close-user-password",function(){ve?(St.stopInterval=!0,_e=!0,q.mobilecheck()||($(".castButton").tooltip("remove"),$("#viewers").tooltip("remove"),$("#offline-mode").tooltip("remove"),$("#chan_thumbnail").tooltip("remove"),$("#admin-lock").tooltip("remove")),window.history.pushState("to the frontpage!","Title","/"),D()):($("#user-pass-input").val(""),$e||$(".password_protected").prop("checked",!1),$e=!1)}),$(document).on("click",".delete-all-songs",function(e){e.preventDefault(),B.emit("delete_all",{channel:X.toLowerCase(),adminpass:""==ce?"":Y.crypt_pass(ce),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})}),$(document).on("click",".not-exported-container .not-exported-element #extra-export-container-text .extra-add-text",function(){this.select()}),$(document).on("click",".next_page",function(e){e.preventDefault(),W.dynamicContentPage(1)}),$(document).on("click",".last_page",function(e){e.preventDefault(),W.dynamicContentPage(10)}),$(document).on("click",".first_page",function(e){e.preventDefault(),W.dynamicContentPage(-10)}),$(document).on("click","#toast-container",function(){Materialize.Toast.removeAll()}),$(document).on("click","#aprilfools",function(){$(".mega").css("-webkit-transform","rotate(0deg)"),$(".mega").css("-moz-transform","rotate(0deg)")}),$(document).on("change","#view_channels_select",function(e){var t=this;be!=parseInt(t.value)&&R.populate_channels(R.all_channels,1==parseInt(t.value)),be=parseInt(t.value)}),$(document).on("keyup mouseup","#width_embed",function(){var e=$(this);qe=e.val(),$("#embed-area").val(k(Ue,qe,Re,We))}),$(document).on("keyup mouseup","#height_embed",function(){var e=$(this);Re=e.val(),$("#embed-area").val(k(Ue,qe,Re,We))}),$(document).on("input","#color_embed",function(){var e=$(this);We=e.val().substring(1),$("#embed-area").val(k(Ue,qe,Re,We))}),$(document).on("click",".chan-link",function(e){e.preventDefault(),R.to_channel($(this).attr("href"),!1)}),$(document).on("click",".listen-button",function(e){""===$(".room-namer").val()&&(e.preventDefault(),R.to_channel($(".room-namer").attr("placeholder")))}),$(document).on("submit",".channel-finder",function(e){return e.preventDefault(),R.to_channel($(".room-namer").val()),!1}),$(document).on("submit",".channel-finder-mobile",function(e){return e.preventDefault(),R.to_channel($("#searchFrontpage").val()),!1}),$(document).on("change","input[class=remote_switch_class]",function(){J.change_enabled(document.getElementsByName("remote_switch")[0].checked),Y.set_remote(enabled)}),$(document).on("change","input[class=offline_switch_class]",function(){Qe=document.getElementsByName("offline_switch")[0].checked,T(Qe,!Qe)}),$(document).on("change","input[class=conf]",function(){N.save(!1)}),$("#clickme").click(function(){St.playVideo()}),$(document).on("click","#listExport",function(e){if(e.preventDefault(),q.log(ht),Fe)W.exportToYoutube();else{var t=S(29);window.callback=function(e){He=e,He.state==t?(Fe=!0,$("#playlist_loader_export").removeClass("hide"),$(".youtube_export_button").addClass("hide"),setTimeout(function(){Fe=!1,He={}},1e3*He.expires_in),W.exportToYoutube()):(He="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+t,"","width=600, height=600")}}),$(document).on("click",".export-spotify-auth",function(e){e.preventDefault();var t=S(29);window.callback=function(e){Ne=e,Ne.state==t?(Oe=!0,I(!0),setTimeout(function(){Oe=!1,Ne={},I(!1)},1e3*Ne.expires_in),$(".spotify_export_button").css("display","none"),W.exportToSpotify()):(Ne={},console.error("States doesn't match")),spotify_window.close(),window.callback=""},spotify_window=window.open("/o_callback#spotify=true&nonce="+t,"","width=600, height=600")}),$(document).on("submit","#listImport",function(e){e.preventDefault();var t=$("#import").val().split("https://www.youtube.com/playlist?list=");""!==$("#import").val()&&2==t.length?(It.importPlaylist(t[1]),document.getElementById("import").value="",document.getElementById("import").disabled=!0,$("#import").addClass("hide"),$("#playlist_loader").removeClass("hide")):(P(),Materialize.toast("It seems you've entered a invalid url.",4e3)),document.getElementById("import").value=""}),$(document).on("submit","#listImportSpotify",function(e){if(e.preventDefault(),Oe&&""!==$("#import_spotify").val()){var t=$("#import_spotify").val().split("https://open.spotify.com/user/");if(2==t.length){t=t[1].split("/");var a=t[0],n=t[2];document.getElementById("import_spotify").disabled=!0,$("#import_spotify").addClass("hide"),$("#playlist_loader_spotify").removeClass("hide"),It.importSpotifyPlaylist("https://api.spotify.com/v1/users/"+a+"/playlists/"+n+"/tracks")}else P(),Materialize.toast("It seems you've entered a invalid url.",4e3)}document.getElementById("import_spotify").value=""}),$(window).focus(function(){$("#favicon").attr("href","/assets/images/favicon.png"),ae=!1}),$(document).on("change","#autoplay",function(){Ue=this.checked?"&autoplay":"",$("#embed-area").val(k(Ue,qe,Re,We))}),$(document).on("click","#playbutton_remote",function(e){e.preventDefault(),xt.play_remote()}),$(document).on("click","#pausebutton_remote",function(e){e.preventDefault(),xt.pause_remote()}),$(document).on("click","#skipbutton_remote",function(e){e.preventDefault(),xt.skip_remote()}),$(document).on("submit","#remoteform",function(e){e.preventDefault(),xt.get_input($("#remote_channel").val())}),$(document).on("click",".chat-link",function(){$("#text-chat-input").focus(),$("#chat-btn i").css("opacity",1),O.channel_received=0,O.all_received=0,$(".chat-link span.badge.new.white").hasClass("hide")||$(".chat-link span.badge.new.white").addClass("hide"),ae=!1,$("#favicon").attr("href","/assets/images/favicon.png")}),$(document).on("keyup",".search_input",function(e){M(e)}),$(document).on("click",".chat-tab",function(){$("#text-chat-input").focus()}),$(document).on("click",".prev",function(e){e.preventDefault(),W.skip(!1)}),$(document).on("click",".skip",function(e){e.preventDefault(),W.skip(!0)}),$(document).on("click","#chan",function(e){e.preventDefault(),W.show()}),$(document).on("submit","#adminForm",function(e){e.preventDefault(),N.pass_save()}),$(document).on("click",".chat-link",function(e){De=!0,ae=!1,Ve=!1,$(".chat-link").attr("style","color: white !important;"),Be=!1,$("#favicon").attr("href","/assets/images/favicon.png"),$("#chat-container").css("display","block"),$("#wrapper").css("display","none"),$("#suggestions").css("display","none"),$("#text-chat-input").focus(),$("#pageButtons").css("display","none")}),$(document).on("click",".playlist-link",function(e){De=!1,$("#chat-container").css("display","none"),$("#wrapper").css("display","block"),$("#suggestions").css("display","none"),$("#pageButtons").css("display","flex")}),$(document).on("click",".suggested-link",function(e){De=!1,$("#chat-container").css("display","none"),$("#wrapper").css("display","none"),$("#suggestions").css("display","block"),$("#pageButtons").css("display","none")}),$(document).on("click",".import-spotify-auth",function(e){e.preventDefault();var t=S(29);window.callback=function(e){Ne=e,Ne.state==t?(Oe=!0,I(!0),setTimeout(function(){Oe=!1,Ne={},I(!1),$(".spotify_authenticated").css("display","none"),$(".spotify_unauthenticated").css("display","block")},1e3*Ne.expires_in)):(Ne={},console.error("States doesn't match")),spotify_window.close(),window.callback=""},spotify_window=window.open("/o_callback#spotify=true&nonce="+t,"","width=600, height=600")}),$(document).on("click",".import-youtube",function(e){e.preventDefault(),$(".youtube_unclicked").css("display","none"),$(".youtube_clicked").css("display","block")}),$(document).on("submit","#chatForm",function(e){e.preventDefault(),O.chat(document.getElementById("chatForm").input)}),$(document).on("click","#shuffle",function(e){e.preventDefault(),N.shuffle()}),$(document).on("click","#search-btn",function(e){e.preventDefault(),It.showSearch()}),$(document).on("click","#song-title",function(e){e.preventDefault(),It.showSearch()}),$(document).on("click","#admin-lock",function(e){e.preventDefault(),N.log_out()}),$(document).on("click","#closeSettings",function(e){e.preventDefault(),N.hide_settings()}),$(window).resize(function(){if(X&&!q.mobilecheck()){var e=Math.round($("#wrapper").height()/71)+1;(e>W.can_fit||ee&&$($("#wrapper").children()[W.page+e]).css("display","none"),W.can_fit=e,W.element_height=$("#wrapper").height()/W.can_fit-5.3,$(".list-song").css("height",W.element_height+"px"),C(),$("#controls").length>0&&!q.mobilecheck()?$("#seekToDuration").css("top",$("#controls").position().top-55):$("#controls").length>0&&$("#seekToDuration").css("top",$("#controls").position().top-20)}}),$(document).on("click",".result-object",function(e){var t=$(e.target);if("9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=o||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(o)}$("#suggested-"+t).remove()}),$(document).on("click",".del_suggested",function(e){var t=$(this).attr("data-video-id");$("#suggested-"+t).remove()}),$(document).on("click",".del_user_suggested",function(e){var t=$(this).attr("data-video-id");$("#suggested-"+t).remove(),(et-=1)<0&&(et=0);var a=et>9?"9+":et;$(".suggested-link span.badge.new.white").hasClass("hide")||0!=a||$(".suggested-link span.badge.new.white").addClass("hide"),$(".suggested-link span.badge.new.white").text(a),W.vote(t,"del")}),$(document).on("click","#toast-container",function(){$(this).fadeOut(function(){$(this).remove()})}),$(document).on("click","#embed-area",function(){this.select()}),$(document).on("click",".brand-logo-navigate",function(e){e.preventDefault(),window.history.pushState("to the frontpage!","Title","/"),D()}),$(document).on("click","#player_bottom_overlay",function(){R.to_channel(X.toLowerCase(),!1)}),$(document).keydown(function(e){if("/"!=window.location.pathname)if(91==e.keyCode||17==e.keyCode)Ze=!0;else if(Ze&&70==e.keyCode)Ze=!1,Xe=!Xe,e.preventDefault(),Xe?($("#find_div").toggleClass("hide"),$("#find_input").focus(),it=""):($("#find_div").toggleClass("hide"),$("#find_input").val(""),$("#find_input").blur(),$(".highlight").removeClass("highlight"),ot=[],st=0,it="");else if(32!=e.keyCode||!$(".search-container").hasClass("hide")||"/"==window.location.pathname||$("#text-chat-input").is(":focus")||$("#password").is(":focus")||$("#user-pass-input").is(":focus")||$("#chan_thumbnail").is(":focus")||$("#chan_description").is(":focus")||$("#contact-form-from").is(":focus")||$("#contact-form-message").is(":focus")||$("#remote_channel").is(":focus")||$("#import").is(":focus")||$("#find_input").is(":focus")||$("#import_spotify").is(":focus"))Ze=!1;else{if(1==St.player.getPlayerState())return e.preventDefault(),St.player.pauseVideo(),!1;if(2==St.player.getPlayerState()||5==St.player.getPlayerState())return e.preventDefault(),St.player.playVideo(),!1}}),$(document).on("click","#close_find_form_button",function(e){e.preventDefault(),Ze=!1,Xe=!1,$("#find_div").toggleClass("hide"),$("#find_input").val(""),$("#find_input").blur(),$(".highlight").removeClass("highlight"),ot=[],st=0,it=""}),$(document).keyup(function(e){91!=e.keyCode&&17!=e.keyCode||Xe||(Ze=!1)}),$(document).on("submit","#find_form",function(e){if(e.preventDefault(),this.find_value.value!=it&&(it=this.find_value.value,ot=[],st=0),0==ot.length){var t=this;st=0,ot=$.map(ht,function(e,a){if(e.title.toLowerCase().indexOf(t.find_value.value.toLowerCase())>=0&&a!=ht.length-1)return a}),$("#num_found").text(st+1),$("#of_total_found").text(ot.length)}else st+=1,ot.length-10&&ot[st]!=ht.length-1){$(".highlight").removeClass("highlight");var a=Math.floor(ot[st]/W.can_fit);$($("#wrapper").children()[ot[st]]).addClass("highlight"),W.dynamicContentPageJumpTo(a)}else $(".highlight").removeClass("highlight"),q.log("none found")});var xt={id:"",get_input:function(e){""===xt.id?xt.set_id(e.toLowerCase()):xt.set_channel(e.toLowerCase())},set_id:function(e){xt.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","inline-block"),$(".slider-vol-mobile").attr("style","display: inline-block !important")},set_channel:function(e){B.emit("id",{id:xt.id,type:"channel",value:e})},play_remote:function(){B.emit("id",{id:xt.id,type:"play",value:"mock"})},pause_remote:function(){B.emit("id",{id:xt.id,type:"pause",value:"mock"})},skip_remote:function(){B.emit("id",{id:xt.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){B.emit("id",{id:xt.id,type:"volume",value:t.value}),q.log("volume")}})}},St={loaded:!0,before_load:"",after_load:"",player:"",stopInterval:!1,fireplace:"",youtube_listener:function(e){var t;Me&&e.np&&window.parentWindow&&window.parentOrigin&&(window.parentWindow.postMessage({type:"np",title:e.np[0].title},window.parentOrigin),ht.length>0&&St.sendNext({title:ht[0].title,videoId:ht[0].id}));try{t=St.player.getPlayerState()}catch(e){t=null}if((!Qe&&(null!=t||ze)||Qe&&(null==t||ze)||!Qe&&(null==t||ze)||Qe&&-1==t)&&(!Qe||at!=X)||Qe&&void 0==vt){at=X,ze=!1,St.loaded=!1,q.log("--------youtube_listener--------"),q.log("Received: "),q.log(e),q.log("paused variable: "+we),q.log("mobile_beginning variable: "+pt);try{q.log("getVideoUrl(): "+St.player.getVideoUrl().split("v=")[1])}catch(e){}if(q.log("video_id variable: "+vt),q.log("---------------------------------"),e.np){if(we)St.getTitle(e.np[0].title,he),q.mobilecheck()||St.notifyUser(e.np[0].id,e.np[0].title),Je||St.stopVideo(),vt=e.np[0].id,se=e.conf[0],time=e.time,_t=time-se.startTime,$t=e.np[0].title,duration=e.np[0].duration,St.setBGimage(vt);else if(!we){void 0===wt?wt=e.np[0].id:wt!=vt&&(wt=vt),vt=e.np[0].id,se=e.conf[0],time=e.time,_t=time-se.startTime,$t=e.np[0].title,duration=e.np[0].duration,pt&&q.mobilecheck()&&0===_t&&!Je&&(_t=1);try{ht[0].id!=vt||pt||W.song_change(ht[0].added),Lt.fetchYoutubeSuggests(vt)}catch(e){}if(St.getTitle($t,he),St.setBGimage(vt),ge&&!window.MSStream)try{var a;try{a=St.player.getVideoUrl().split("v=")[1]!=vt}catch(e){a=!0}(a||Je)&&(St.loadVideoById(vt,duration),q.mobilecheck()||St.notifyUser(vt,$t),St.seekTo(_t),we&&!Je&&St.pauseVideo()),we||(pt&&!Je||St.playVideo(),Pe||St.durationSetter()),(St.player.getDuration()>_t||0===St.player.getDuration()||Je||St.player.getCurrentTime()!=_t)&&St.seekTo(_t),St.after_load=vt,St.loaded||setTimeout(function(){St.loaded=!0},500)}catch(e){Je&&(St.loadVideoById(vt,duration),St.seekTo(_t)),Pe||Je||St.durationSetter()}else St.getTitle($t,he)}}else{document.getElementById("song-title").innerHTML="Empty channel. Add some songs!",document.title="Zoff - the shared YouTube based radio",$("#channel-load").css("display","none"),window.MSStream||Je||$("#player_overlay").hasClass("hide")&&$("#player_overlay").removeClass("hide");try{Je||St.stopVideo()}catch(e){}}}else Pe||St.durationSetter(),duration=St.player.getDuration()},onPlayerStateChange:function(e){q.log("-------onPlayerStateChange------"),q.log("New state\nState: "),q.log(e);try{q.log("Duration: "+St.player.getDuration(),"Current time: "+St.player.getCurrentTime()),q.log("getVideoUrl(): "+St.player.getVideoUrl().split("v=")[1])}catch(e){}switch(q.log("video_id variable: "+vt),q.log("---------------------------------"),e.data){case YT.PlayerState.UNSTARTED:break;case YT.PlayerState.ENDED:ke=!1,we=!1,Qe?St.playNext():B.emit("end",{id:vt,channel:X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))});break;case YT.PlayerState.PLAYING:window.MSStream||($("#player").css("opacity","1"),q.mobilecheck()||$("#channel-load").css("display","none")),ke=!0,beginning&&q.mobilecheck()&&!Je&&(beginning=!1,pt=!1),Me||"/"==window.location.pathname||Je||q.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")),we&&!Qe&&(B.emit("pos",{channel:X.toLowerCase(),pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))}),we=!1);break;case YT.PlayerState.PAUSED:Je||(beginning&&pt&&($("#playpause").css("visibility","visible"),$("#playpause").css("pointer-events","all"),$("#channel-load").css("display","none")),we=!0,"/"!=window.location.pathname&&Tt.play_pause_show(),pt=!0);break;case YT.PlayerState.BUFFERING:}},playVideo:function(){Je?(G.sendMessage("urn:x-cast:zoff.me",{type:"playVideo"}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"),$("#pause").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide"))):St.player.playVideo()},pauseVideo:function(){Je?(G.sendMessage("urn:x-cast:zoff.me",{type:"pauseVideo"}),$("#play").hasClass("hide")&&($("#play").toggleClass("hide"),$("#pause").toggleClass("hide"))):St.player.pauseVideo()},seekTo:function(e){Je?G.sendMessage("urn:x-cast:zoff.me",{type:"seekTo",seekTo:e}):Qe?St.player.seekTo(0):St.player.seekTo(e)},loadVideoById:function(e,t){Je?(G.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:e,channel:X.toLowerCase()}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+e+"/mqdefault.jpg")):St.player.loadVideoById({videoId:e,startSeconds:0,endSeconds:t})},stopVideo:function(){if(Je)G.sendMessage("urn:x-cast:zoff.me",{type:"stopVideo"});else try{St.player.stopVideo()}catch(e){}},setVolume:function(e){Je?G.setVolume(e/100):St.player.setVolume(e)},playNext:function(){var e=ht[0];vt=e.id,time=(new Date).getTime(),$t=e.title,duration=e.duration,St.getTitle($t,he),St.setBGimage(vt),Je?(G.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,channel:X.toLowerCase()}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg")):St.loadVideoById(vt,duration),W.channel_function({type:"song_change",time:time})},playPrev:function(){var e=ht.length-2;e<0&&(e=0);var t=ht[e];vt=t.id,time=(new Date).getTime(),$t=t.title,duration=t.duration,St.getTitle($t,he),St.setBGimage(vt),Je?(G.sendMessage("urn:x-cast:zoff.me",{type:"loadVideo",videoId:vt,channel:X.toLowerCase()}),chrome.cast.media.GenericMediaMetadata({metadataType:"GENERIC",title:$t,image:"https://img.youtube.com/vi/"+vt+"/mqdefault.jpg"}),chrome.cast.Image("https://img.youtube.com/vi/"+vt+"/mqdefault.jpg")):St.loadVideoById(vt,duration),W.channel_function({type:"song_change_prev",time:time})},sendNext:function(e){Je&&G.sendMessage("urn:x-cast:zoff.me",{type:"nextVideo",title:e.title,videoId:e.videoId}),Me&&window.parentWindow&&window.parentOrigin&&window.parentWindow.postMessage({type:"nextVideo",title:e.title},window.parentOrigin)},getTitle:function(e,t){var a=decodeURIComponent(e);if("/"!=window.location.pathname){var n=document.getElementById("song-title"),i=document.getElementById("viewers");n.innerHTML=a,i.innerHTML="visibility "+t,n.title=a,Je&&($("#player_overlay").css("background","url(https://img.youtube.com/vi/"+vt+"/hqdefault.jpg)"),$("#player_overlay").css("background-position","center"),$("#player_overlay").css("background-size","100%"),$("#player_overlay").css("background-color","black"),$("#player_overlay").css("background-repeat","no-repeat"))}document.title=a+" • Zoff / "+X},errorHandler:function(e){ve||(5==e.data||100==e.data||101==e.data||150==e.data?(curr_playing=St.player.getVideoUrl().replace("https://www.youtube.com/watch?v=",""),B.emit("skip",{error:e.data,id:vt,pass:""==ce?"":Y.crypt_pass(ce),channel:X.toLowerCase(),userpass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})):void 0!==vt&&St.loadVideoById(vt,duration))},onPlayerReady:function(e){try{beginning=!0,ge=!0,window.MSStream||(q.mobilecheck()&&($("#playpause").css("visibility","hidden"),$("#playpause").css("pointer-events","none"),$("#player").css("opacity","1")),$(".video-container").removeClass("no-opacity"),$("#controls").css("opacity","1"),$(".playlist").css("opacity","1"),St.loadVideoById(vt,duration),!Ae||q.mobilecheck()&&!Je||St.playVideo(),Pe||St.durationSetter(),Me?setTimeout(function(){St.player.seekTo(_t),Ae||(St.player.pauseVideo(),Tt.play_pause_show())},1e3):St.seekTo(_t)),St.readyLooks(),Tt.initYoutubeControls(St.player),Tt.initSlider(),St.player.setVolume(Y.get_volume())}catch(e){}},readyLooks:function(){St.setBGimage(vt)},setBGimage:function(e){if(void 0!==e&&!Me){var t=new Image;t.onload=function(){var e=new ColorThief,a=e.getColor(t);"/"!=window.location.pathname&&(document.getElementById("main-container").style.backgroundColor=q.rgbToHsl(a,!0),$("meta[name=theme-color]").attr("content",q.rgbToHex(a[0],a[1],a[2])))},t.crossOrigin="Anonymous",t.src="https://zoff.me:8081/https://img.youtube.com/vi/"+e+"/mqdefault.jpg"}},set_width:function(e){if($(".video-container").width(e),!q.mobilecheck())if($(window).width()>769){var t=$(window).width()-$(".control-list").width()-$(".zbrand").outerWidth()-$(".brand-logo-navigate").outerWidth()-66;title_width=t,$(".title-container").width(title_width)}else $(".title-container").width("100%")},notifyUser:function(e,t){if(t=t.replace(/\\\'/g,"'").replace(/"/g,"'").replace(/&/g,"&"),"granted"===Notification.permission&&document.hidden&&!Me){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(){c(),l(),u(),h(),m()},onYouTubeIframeAPIReady:function(){St.player=new YT.Player("player",{videoId:vt,playerVars:{rel:"0",wmode:"transparent",controls:"0",fs:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:St.onPlayerReady,onStateChange:St.onPlayerStateChange,onError:St.errorHandler}})},createFireplacePlayer:function(){St.fireplace=new YT.Player("fireplace_player",{videoId:"L_LUpnjgPso",playerVars:{rel:"0",wmode:"transparent",controls:"0",fs:"0",iv_load_policy:"3",theme:"light",color:"white",showinfo:0},events:{onReady:St.onFireplaceReady,onStateChange:St.onFireplaceChange}})},onFireplaceReady:function(){St.fireplace.playVideo()},onFireplaceChange:function(e){switch(e.data){case 0:St.fireplace.seekTo(0),St.fireplace.playVideo();break;case 2:St.fireplace.playVideo()}},durationSetter:function(){try{_e||void 0===duration||(St.stopInterval||(Pe=!0),dMinutes=Math.floor(duration/60),dSeconds=duration-60*dMinutes,currDurr=void 0!==St.player.getCurrentTime()?Math.floor(St.player.getCurrentTime()):_t,currDurr>duration&&(currDurr=duration),minutes=Math.floor(currDurr/60),seconds=currDurr-60*minutes,document.getElementById("duration").innerHTML=q.pad(minutes)+":"+q.pad(seconds)+" / "+q.pad(dMinutes)+":"+q.pad(dSeconds),per=100/duration*currDurr,per>=100?per=100:0===duration&&(per=0),Me&&window.parentWindow&&window.parentOrigin&&window.parentWindow.postMessage({type:"duration",duration:St.player.getCurrentTime(),full_duration:St.player.getDuration(),percent:per},window.parentOrigin),ye||$("#bar").width(per+"%"))}catch(e){}St.stopInterval||setTimeout(St.durationSetter,1e3)},loadPlayer:function(){if(1==$("script[src='https://www.youtube.com/iframe_api']").length)try{St.onYouTubeIframeAPIReady()}catch(e){console.error("Seems YouTube iFrame script isn't correctly loaded. Please reload the page.")}else mt=document.createElement("script"),mt.src="https://www.youtube.com/iframe_api",ft=document.getElementsByTagName("script")[0],ft.parentNode.insertBefore(mt,ft)}},Tt={stopInterval:!1,initYoutubeControls:function(){q.mobilecheck()&&!window.MSStream&&$("#controls").appendTo("#playbar"),Tt.initControls()},initControls:function(){$("#volume-button").on("click",Tt.mute_video),$("#playpause").on("click",Tt.play_pause),$("#volume-button-overlay").on("click",Tt.mute_video),$("#playpause-overlay").on("click",Tt.play_pause),$("#fullscreen").on("click",Tt.fullscreen)},initSlider:function(){try{vol=Y.get_volume()}catch(e){}var e={min:0,max:100,value:vol,range:"min",animate:!0,slide:function(e,t){Tt.setVolume(t.value);try{Y.set_volume(t.value)}catch(e){}}};q.mobilecheck()&&(e.orientation="vertical",$(".volume-container").toggleClass("hide")),$("#volume").slider(e),Tt.choose_button(vol,!1)},fullscreen:function(){var e=$("#player"),t=e.requestFullScreen||e.mozRequestFullScreen||e.webkitRequestFullScreen;t&&t.bind(e)()},play_pause:function(){Je?Tt.play_pause_show():St.player.getPlayerState()==YT.PlayerState.PLAYING?(St.pauseVideo(),q.mobilecheck()&&!window.MSStream&&($("#player").css("display","none"),$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra"))):St.player.getPlayerState()!=YT.PlayerState.PAUSED&&St.player.getPlayerState()!==YT.PlayerState.ENDED&&St.player.getPlayerState()!==YT.PlayerState.CUED||(St.playVideo(),q.mobilecheck()&&!window.MSStream&&($("#player").css("display","block"),$(".video-container").toggleClass("click-through"),$(".page-footer").toggleClass("padding-bottom-extra")))},play_pause_show:function(){Je?$("#play").hasClass("hide")?St.pauseVideo():$("#pause").hasClass("hide")&&St.playVideo():($("#pause").hasClass("hide")||($("#pause").toggleClass("hide"),$("#pause-overlay").toggleClass("hide")),$("#play").hasClass("hide")&&($("#play").toggleClass("hide"),$("#play-overlay").toggleClass("hide")))},settings:function(){$("#qS").toggleClass("hide")},changeQuality:function(e){St.player.getPlaybackQuality!=e&&(St.player.setPlaybackQuality(e),St.player.getPlaybackQuality()),$("#qS").toggleClass("hide")},mute_video:function(){q.mobilecheck()?$(".volume-container").toggleClass("hide"):St.player.isMuted()?(Je&&G.sendMessage("urn:x-cast:zoff.me",{type:"unMute"}),St.player.unMute(),Tt.choose_button(St.player.getVolume(),!1)):(Je&&G.sendMessage("urn:x-cast:zoff.me",{type:"mute"}),Tt.choose_button(0,!0),St.player.mute())},setVolume:function(e){St.setVolume(e),Tt.choose_button(e,!1),St.player.isMuted()&&St.player.unMute()},choose_button:function(e,t){t?($("#v-full").hasClass("hide")||($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")||($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")||($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")&&($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=0&&e<=33?($("#v-full").hasClass("hide")||($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")||($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")&&($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")||($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=34&&e<=66?($("#v-full").hasClass("hide")||($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")&&($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")||($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")||($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide"))):e>=67&&e<=100&&($("#v-full").hasClass("hide")&&($("#v-full").toggleClass("hide"),$("#v-full-overlay").toggleClass("hide")),$("#v-medium").hasClass("hide")||($("#v-medium").toggleClass("hide"),$("#v-medium-overlay").toggleClass("hide")),$("#v-low").hasClass("hide")||($("#v-low").toggleClass("hide"),$("#v-low-overlay").toggleClass("hide")),$("#v-mute").hasClass("hide")||($("#v-mute").toggleClass("hide"),$("#v-mute-overlay").toggleClass("hide")))},playPause:function(){state=St.player.getPlayerState(),button=document.getElementById("playpause"),state==YT.PlayerState.PLAYING?St.pauseVideo():state==YT.PlayerState.PAUSED&&St.playVideo()},volumeOptions:function(){Je||(St.player.isMuted()?(St.player.unMute(),vol=St.player.getVolume(),$("#volume").slider("value",St.player.getVolume())):(St.player.mute(),$("#volume").slider("value",0)))},hoverMute:function(e){vol=St.player.getVolume()}},It={submitArray:[],submitArrayExpected:null,showSearch:function(){$("#search-wrapper").toggleClass("hide"),q.mobilecheck()&&$(".search_input").focus(),$("#song-title").toggleClass("hide"),$("#results").empty(),"close"==$("#search-btn i").html()?$("#search-btn i").html("search"):$("#search-btn i").html("close"),$("#search").focus()},search:function(e,t,a){if(void 0!==ct&&void 0!==dt||(ct=$("#temp-results-container"),dt=$("#empty-results-container").html()),$(".search_results").html(""),""!==e){ie=!0;var n=encodeURIComponent(e),i="https://www.googleapis.com/youtube/v3/search?key="+ne+"&videoEmbeddable=true&part=id&fields=items(id)&type=video&order=viewCount&safeSearch=none&maxResults=25";i+="&q="+n,re&&(i+="&videoCategoryId=10");var o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&id=";if(a)var i="https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=25&relatedToVideoId="+n+"&type=video&key="+ne,o="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&id=";q.contains($(".search_loader_spinner").attr("class").split(" "),"active")||$(".search_loader_spinner").addClass("active"),q.contains($("#results").attr("class").split(" "),"hide")&&$("#results").removeClass("hide"),$.ajax({type:"GET",url:i,dataType:"jsonp",success:function(a){0===a.items.length?($(""+dt+"
").appendTo($("#results")).show("blind",83.33),q.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active")):a.items&&($.each(a.items,function(e,t){o+=t.id.videoId+","}),$.ajax({type:"GET",url:o,dataType:"jsonp",success:function(a){var n="",i=$(ct);$.each(a.items,function(e,t){var a=t.contentDetails.duration;if(secs=It.durationToSeconds(a),!longsongs||secs<720){yt=t.snippet.title,enc_title=yt,gt=t.id,a=a.replace("PT","").replace("H","h ").replace("M","m ").replace("S","s"),thumb=t.snippet.thumbnails.medium.url;var o=i;o.find(".search-title").text(yt),o.find(".result_info").text(a),o.find(".thumb").attr("src",thumb),o.find("#add-many").attr("data-video-id",gt),o.find("#add-many").attr("data-video-title",enc_title),o.find("#add-many").attr("data-video-length",secs),o.find("#temp-results").attr("data-video-id",gt),o.find("#temp-results").attr("data-video-title",enc_title),o.find("#temp-results").attr("data-video-length",secs),o.find(".open-externally").attr("href","https://www.youtube.com/watch?v="+gt),void 0!=o.html()&&(n+=o.html())}}),n.length>0?($(""+n+"
").appendTo($("#results")).show("blind",83.33*(a.items.length-1)),q.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active"),$(".add-many").click(function(e){return e.preventDefault(),e.stopPropagation(),!1})):t?($(""+dt+"
").appendTo($("#results")).show("blind",83.33),q.contains($(".search_loader_spinner").attr("class").split(" "),"active")&&$(".search_loader_spinner").removeClass("active")):It.search(e,!0)}}))}})}else $(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},backgroundSearch:function(e,t,a,n,i){var o=encodeURIComponent(e+" "+t),s="https://www.googleapis.com/youtube/v3/search?key="+ne+"&videoEmbeddable=true&part=id,snippet&fields=items(id,snippet)&type=video&order=relevance&safeSearch=none&maxResults=10&videoCategoryId=10";s+="&q="+o;var l="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&id=";t=t.split(" ");var r=e.split("-");r=r.join(" ").split(" "),$.ajax({type:"GET",url:s,dataType:"jsonp",success:function(i){if(0===i.items.length){It.readySubmit(!1,{totalLength:n-1}),q.log("------------------------------"),q.log("NO MATCH FOR:"),q.log("Spotify title: "+e+" "+t.join(" ")),q.log("Spotify length: "+a),q.log("------------------------------");var o=$(""+Ye+"
");o.find(".extra-add-text").text(e+" - "+t.join(" ")),o.find(".extra-add-text").attr("title",e+" - "+t.join(" ")),o.find(".extra-button-search").attr("data-text",e+" - "+t.join(" ")),$(".not-imported-container").append(o.html()),$(".not-imported").removeClass("hide")}else i.items.length>0&&($.each(i.items,function(e,t){l+=t.id.videoId+","}),$.ajax({type:"GET",url:l,dataType:"jsonp",success:function(i){if(i.items.length>0){var o=!1;if($.each(i.items,function(a,i){var s=It.durationToSeconds(i.contentDetails.duration),l=!1;if($.each(r,function(a,n){return-1!=i.snippet.title.toLowerCase().indexOf(n.toLowerCase())&&-1==i.snippet.title.toLowerCase().indexOf("cover")&&-1==e.toLowerCase().indexOf("cover")&&(-1==i.snippet.title.toLowerCase().indexOf("remix")&&-1==e.toLowerCase().indexOf("remix")||-1!=i.snippet.title.toLowerCase().indexOf("remix")&&-1!=e.toLowerCase().indexOf("remix")||-1!=i.snippet.title.toLowerCase().indexOf(t[0].toLowerCase())||-1!=i.snippet.channelTitle.toLowerCase().indexOf(t[0].toLowerCase())||-1!=i.snippet.channelTitle.toLowerCase().indexOf("vevo"))||(l=!0),!1}),!l)return o=!0,It.readySubmit(!0,{id:i.id,title:i.snippet.title,duration:s,totalLength:n-1}),!1}),!o){It.readySubmit(!1,{totalLength:n-1}),q.log("------------------------------"),q.log("NO MATCH FOR:"),q.log("Spotify title: "+e+" "+t.join(" ")),q.log("Spotify length: "+a),q.log("------------------------------");var s=$(""+Ye+"
");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===It.submitArrayExpected&&(It.submitArrayExpected=t.totalLength),e?It.submitArray.push(t):It.submitArrayExpected-=1,It.submitArray.length-1==It.submitArrayExpected&&($.each(It.submitArray,function(e,t){It.submit(t.id,t.title,t.duration,!0,e,It.submitArray.length-1)}),document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),It.submitArray=[],It.submitArrayExpected=null)},submitAndClose:function(e,t,a){It.submit(e,t,a,!1,0,1),$("#results").html(""),It.showSearch(),document.getElementById("search").value="",$("#results").html="",$(".main").removeClass("blurT"),$("#controls").removeClass("blurT"),$(".main").removeClass("clickthrough")},importPlaylist:function(e,t){token="";var a,n;void 0!==t&&(token="&pageToken="+t),playlist_url="https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults=49&key="+ne+"&playlistId="+e+token,Fe?(n="html",a={"Content-Type":"application/json",Authorization:"Bearer "+He.access_token}):(a={},n="jsonp"),$.ajax({type:"GET",url:playlist_url,dataType:n,headers:a,success:function(a){if(a.error)if("playlistItemsNotAccessible"==a.error.errors[0].reason){var n=S(29);window.callback=function(a){He=a,He.state==n?(Fe=!0,setTimeout(function(){Fe=!1,He={}},1e3*He.expires_in),It.importPlaylist(e,t)):(He="",console.error("Nonce doesn't match")),youtube_window.close(),window.callback=""},youtube_window=window.open("/o_callback#youtube=true&nonce="+n,"","width=600, height=600")}else q.log(a.error),document.getElementById("import").disabled=!1,$("#playlist_loader").addClass("hide"),$("#import").removeClass("hide"),P(),Materialize.toast("It seems you've entered a invalid url.",4e3);else{var i="";"string"==typeof a&&(a=$.parseJSON(a)),$.each(a.items,function(e,t){i+=t.contentDetails.videoId+","}),It.addVideos(i,!0),a.nextPageToken&&It.importPlaylist(e,a.nextPageToken),document.getElementById("import").value=""}}})},importSpotifyPlaylist:function(e){$.ajax({url:e,headers:{Authorization:"Bearer "+Ne.access_token},success:function(e){$.each(e.items,function(t,a){It.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&&It.importSpotifyPlaylist(e.next)},error:function(){document.getElementById("import_spotify").disabled=!1,$("#import_spotify").removeClass("hide"),$("#playlist_loader_spotify").addClass("hide"),P(),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,n=[];$.each(e.items,function(e,i){var o=It.durationToSeconds(i.contentDetails.duration);(!longsongs||o<720)&&(enc_title=i.snippet.title,a+=1,n.push({id:i.id,enc_title:enc_title,duration:o,playlist:t}))}),$.each(n,function(e,t){It.submit(t.id,t.enc_title,t.duration,t.playlist,e,a)})}})},submit:function(e,t,a,n,i,o){if(Qe&&document.getElementsByName("addsongs")[0].checked&&document.getElementsByName("addsongs")[0].disabled){var s=[];s=$.map(ht,function(t,a){if(t.id==e)return a}),0==s.length?W.channel_function({type:"added",value:{added:(new Date).getTime()/1e3,guids:[1],id:e,title:t,duration:a,playlist:!1,now_playing:!1,votes:1}}):W.vote(e,"pos")}else B.emit("add",{id:e,title:t,adminpass:""==ce?"":Y.crypt_pass(ce),list:X.toLowerCase(),duration:a,playlist:n,num:i,total:o,pass:Me?"":Y.crypt_pass(Y.get_userpass(X.toLowerCase()))})},durationToSeconds:function(e){var t=e.match(oe);return hours=parseInt(t[12])||0,minutes=parseInt(t[14])||0,seconds=parseInt(t[16])||0,60*hours*60+60*minutes+seconds}},Lt={catchUserSuggests:function(e,t){et+=t?1:e.length;var a=et>9?"9+":et;if($(".suggested-link span.badge.new.white").hasClass("hide")&&et>0&&$(".suggested-link span.badge.new.white").removeClass("hide"),$(".suggested-link span.badge.new.white").text(a),t)Lt.createSuggested(e);else for(var n in e)Lt.createSuggested(e[n]);Lt.checkUserEmpty()},createSuggested:function(e){var t=q.secondsToOther(e.duration),a=e.id,n=e.title,i=W.generateSong({id:a,title:n,length:e.duration,duration:t},!1,!1,!1,!0);$("#user-suggest-html").append(i)},fetchYoutubeSuggests:function(e){var t="https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId="+e+"&type=video&key="+ne,a="https://www.googleapis.com/youtube/v3/videos?part=contentDetails,snippet,id&key="+ne+"&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,n=It.durationToSeconds(a);a=q.secondsToOther(It.durationToSeconds(a));var i=t.id,o=t.snippet.title;$("#suggest-song-html").append(W.generateSong({id:i,title:o,length:n,duration:a},!1,!1,!1))})}})}})},checkUserEmpty:function(){0===$("#user-suggest-html").children().length?q.contains($("#user_suggests").attr("class").split(" "),"hide")||$("#user_suggests").addClass("hide"):$("#user_suggests").removeClass("hide")}}}();
\ No newline at end of file
diff --git a/server/public/layouts/main.handlebars b/server/public/layouts/main.handlebars
index 8f4a3b7b..f2441df0 100644
--- a/server/public/layouts/main.handlebars
+++ b/server/public/layouts/main.handlebars
@@ -63,148 +63,8 @@
             This site supports chromecasting!