var Channel = { init: function() { if(window.location.hash == "#small" || inIframe()) { small_player = true; document.querySelector("footer").style.display = "none"; addJoinBox(); hideAllExtra(); //document.querySelectorAll(".tab.col.s3")[1].remove(); //document.querySelectorAll(".tab.col.s3")[1].remove(); } if(client) { Helper.addClass(".tabs", "hide"); Helper.removeClass("#wrapper", "tabs_height"); Helper.addClass("#wrapper", "client-wrapper"); if(!Helper.mobilecheck()) { Helper.tooltip(".skip_next_client", { delay: 5, position: "bottom", html: "Skip" }); } Helper.addClass("#chan", "chan-client"); Helper.addClass("#results", "client-results-height"); Helper.addClass(".pagination-results", "client-pagination-height"); Helper.addClass(".control-list", "client-control-list"); } else { if(!api_key.hasOwnProperty("soundcloud")) soundcloud_enabled = false; else { /*SC.initialize({ client_id: api_key.soundcloud }, function() { });*/ } if(cast_ready_connect || chromecastAvailable || chromecastReady) { Helper.addClass(".volume-container", "volume-container-cast"); } if(!embed) { document.querySelector("#main-container").insertAdjacentHTML("beforeend", "CHOOSE"); */ } addListener("click", ".sp-choose-link", function(e) { event.preventDefault(); document.getElementsByClassName("sp-choose")[0].click(); }); //$("#results" ).hover( function() { Helper.removeClass(".result", "hoverResults"); i = 0; }, function(){ }); document.getElementById("search").focus(); Helper.css("#embed-button", "display", "inline-block"); document.getElementById("search").setAttribute("placeholder", "Find song on YouTube..."); if(!client) { Helper.addClass("footer", "padding-bottom-novideo"); document.getElementById("embed-area").value = embed_code(embed_autoplay, embed_width, embed_height, color, embed_videoonly, embed_localmode); } if(!/chrom(e|ium)/.test(navigator.userAgent.toLowerCase()) && !Helper.mobilecheck() && !client){ Helper.css(".castButton", "display", "none"); } Helper.log(["chromecastAvailable " + chromecastAvailable, "chromecastReady " + chromecastReady]); if(chromecastAvailable && !client){ hide_native(1); } else if(chromecastReady && !client) { initializeCastApi(); } else if(!client){ window['__onGCastApiAvailable'] = function(loaded, errorInfo) { if (loaded) { setTimeout(function(){ chromecastReady = true; initializeCastApi(); }, 1000); } else { chromecastReady = true; } } } Channel.listeners(true); Channel.add_context_menu(); if(!Helper.mobilecheck() && navigator.userAgent.match(/iPad/i) == null){ setTimeout(function(){Channel.set_title_width();}, 100); } }, set_title_width: function(start){ if(window.innerWidth > 600){ var add_width = document.getElementsByClassName("brand-logo")[0].offsetWidth if(start){ add_width = window.innerWidth * 0.15; } var test_against_width = window.innerWidth - document.getElementsByClassName("control-list")[0].offsetWidth - add_width - 11; title_width = test_against_width; document.getElementsByClassName("title-container")[0].style.width = title_width + "px"; } else { document.getElementsByClassName("title-container")[0].style.width = "100%"; } }, spotify_is_authenticated: function(bool){ if(bool){ Helper.log([ "Spotify is authenticated", "access_token: " + access_token_data.access_token, "token_type:" + access_token_data.token_type, "expires_in: " + access_token_data.expires_in ]); Helper.css(".spotify_authenticated", "display", "block"); Helper.css(".spotify_unauthenticated", "display", "none"); } else { Helper.log(["Spotify is not authenticated"]); Helper.css(".spotify_authenticated", "display", "none"); Helper.css(".spotify_unauthenticated", "display", "block"); } }, add_context_menu: function() { addListener("contextmenu", ".vote-container", function(e) { if(hostMode) { return; } this.preventDefault(); this.preventDefault(); var that = this; contextListener(e, that); }); addListener("contextmenu", ".add-suggested", function(e) { this.preventDefault(); var that = this; contextListener(e, that); }); addListener("click", ".list-remove", function(e) { this.preventDefault(); var that = this; contextListener(e, that); }); }, share_link_modifier: function(){ document.getElementById("facebook-code-link").setAttribute("href", "https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/" + chan.toLowerCase()); document.getElementById("facebook-code-link").setAttribute("onclick", "window.open('https://www.facebook.com/sharer/sharer.php?u=https://zoff.me/" + chan.toLowerCase() + "', 'Share Playlist','width=600,height=300'); return false;"); document.getElementById("twitter-code-link").setAttribute("href", "https://twitter.com/intent/tweet?url=https://zoff.me/" + chan.toLowerCase() + "&text=Check%20out%20this%20playlist%20" + chan.toLowerCase() + "%20on%20Zoff!&via=zoffmusic"); document.getElementById("twitter-code-link").setAttribute("onclick", "window.open('https://twitter.com/intent/tweet?url=https://zoff.me/" + chan.toLowerCase() + "/&text=Check%20out%20this%20playlist%20" + chan.toLowerCase() + "%20on%20Zoff!&via=zoffmusic','Share Playlist','width=600,height=300'); return false;"); }, window_width_volume_slider: function() { if(window.innerWidth <= 600 && slider_type == "horizontal") { slider_type = "vertical"; Playercontrols.initSlider(); } else if(window.innerWidth > 600 && slider_type == "vertical") { slider_type = "horizontal"; Playercontrols.initSlider(); Helper.removeClass(".volume-container", "hide"); } }, listeners: function(on) { var scrollListener = function(e) { if(!programscroll) { userscroll = true; if(document.getElementById("chatchannel").scrollTop + document.getElementById("chatchannel").offsetHeight >= document.getElementById("chatchannel").scrollHeight) { userscroll = false; } } } var scrollAllListener = function(e) { if(!programscroll) { userscroll = true; if(document.getElementById("chatall").scrollTop+ document.getElementById("chatall").offsetHeight >= document.getElementById("chatall").scrollHeight) { userscroll = false; } } } if(!client) { if(on) { document.getElementById("chatchannel").addEventListener("scroll", scrollListener); document.getElementById("chatall").addEventListener("scroll", scrollListener); } else { document.getElementById("chatchannel").removeEventListener("scroll", scrollListener); document.getElementById("chatall").removeEventListener("scroll", scrollAllListener); } } }, onepage_load: function(){ if(changing_to_frontpage) return; if(user_auth_started) { Player.stopInterval = true; user_auth_avoid = true; if(!Helper.mobilecheck()) { Helper.tooltip('.castButton', "destroy"); Helper.tooltip("#viewers", "destroy"); //$('.castButton-unactive').tooltip("destroy"); Helper.tooltip("#offline-mode", "destroy"); Helper.tooltip('#admin-lock', "destroy"); } } var url_split = window.location.href.split("/"); if(url_split[3].substr(0,1) != "#!" && url_split[3] !== "" && !(url_split.length == 5 && url_split[4].substr(0,1) == "#")){ socket.emit("change_channel", { channel: channel_before_move }); Admin.beginning = true; chan = url_split[3].replace("#", ""); document.getElementById("chan").innerHTML = Helper.upperFirst(chan); var add = ""; w_p = true; //if(private_channel) add = Crypt.getCookie("_uI") + "_"; socket.emit("list", {version: parseInt(_VERSION), channel: add + chan.toLowerCase()}); } else if(url_split[3] === "") { /*if(client) { var host = window.location.hostname.split("."); window.location.hostname = host[host.length -1]; }*/ Admin.display_logged_out(); if(hostMode) { Helper.removeClass("#main-row", "fullscreened"); document.querySelector(".host_switch_class").checked = false enable_host_mode(false); } var channel_before_move = chan.toLowerCase(); clearTimeout(timed_remove_check); changing_to_frontpage = true; user_change_password = false; clearTimeout(width_timeout); if(fireplace_initiated){ fireplace_initiated = false; Player.fireplace.destroy(); Helper.css("#fireplace_player", "display", "none"); } Helper.css("#channel-load", "display", "block"); window.scrollTo(0, 0); Player.stopInterval = true; Admin.beginning = true; began = false; durationBegun = false; Helper.css("#embed-button", "display", "none"); if(!Helper.mobilecheck()) { Helper.tooltip(".castButton", "destroy"); Helper.tooltip("#viewers", "destroy"); Helper.tooltip("#offline-mode", "destroy"); Helper.tooltip("search-btn", "destroy"); Helper.tooltip('#fullscreen', "destroy"); if(M.Tooltip.getInstance(document.getElementById("admin-lock")) != undefined) { Helper.tooltip('#admin-lock', "destroy"); } Helper.tooltip(".search-btn-container", "destroy"); Helper.tooltip(".shuffle-btn-container", "destroy"); Helper.tooltip("#settings", "destroy"); } Helper.removeElement("#seekToDuration"); M.Sidenav.getInstance(document.getElementsByClassName("sidenav")[0]).destroy(); if(!client) { if(!Helper.mobilecheck()) { Helper.tooltip("#chan", "destroy"); } var tap_1 = document.querySelectorAll(".tap-target") if(tap_1.length > 0 && M.TapTarget.getInstance(tap_1[0])) { M.TapTarget.getInstance(tap_1[0]).close(); } } clearTimeout(tap_target_timeout); //before_toast(); if(Helper.mobilecheck() || user_auth_avoid || client) { Helper.log(["Removing all listeners"]); //socket.emit("change_channel"); //removeAllListeners(); //socket.removeEventListener(id); socket.emit("left_channel", { channel: channel_before_move }); socket.emit("change_channel", { channel: channel_before_move }); chan = ""; socket.removeEventListener("np"); socket.removeEventListener("id"); socket.removeEventListener(id); //socket.disconnect(); } socket.removeEventListener("chat.all"); socket.removeEventListener("chat"); socket.removeEventListener("conf"); socket.removeEventListener("pw"); socket.removeEventListener("toast"); //socket.removeEventListener("id"); socket.removeEventListener("channel"); socket.removeEventListener("auth_required"); socket.removeEventListener("auth_accepted"); socket.removeEventListener("suggested"); socket.removeEventListener("color"); socket.removeEventListener("chat_history"); Helper.ajax({ url: "/", method: "GET", success: function(e){ if(!client) { document.querySelector("#hide-playlist").remove(); if(hiddenPlaylist) document.querySelector("main").style.maxWidth = ""; hiddenPlaylist = false; document.getElementById("volume-button").removeEventListener("click", Playercontrols.mute_video); document.getElementById("playpause").removeEventListener("click", Playercontrols.play_pause); document.getElementById("fullscreen").removeEventListener("click", Playercontrols.fullscreen); } Channel.listeners(false); if(Helper.mobilecheck() || user_auth_avoid) { video_id = ""; song_title = ""; } document.querySelectorAll("meta[name=theme-color]")[0].setAttribute("content", "#2D2D2D"); if(!Helper.mobilecheck() && !user_auth_avoid){ Helper.removeElement("#playbar"); Helper.removeElement("#main_components"); Helper.addClass("#player", "player_bottom"); Helper.addClass("#main-row", "frontpage_modified_heights"); Helper.css("#player", "opacity", "1"); Helper.removeClass("#video-container", "no-opacity"); document.getElementById("main-row").insertAdjacentHTML("afterbegin", "
"); document.getElementById("player_bottom_overlay").insertAdjacentHTML("afterbegin", "close"); document.getElementById("player_bottom_overlay").setAttribute("data-channel", channel_before_move.toLowerCase()); Helper.removeElement("#playlist"); } else { try{ Player.player.destroy(); } catch(error){} try { Player.soundcloud_dead = true; Player.soundcloud_player.kill(); } catch(error){} Player.player = ""; document.title = "Zoff"; } var response = document.createElement("div"); response.innerHTML = e; var newList = response.querySelector("#lists-script").innerHTML; newList = newList.trim().replace("window.lists = ", "").replace("window.lists=", ""); newList = newList.substring(0, newList.length); window.lists = JSON.parse(newList); response.querySelector("#lists-script").remove(); Helper.removeElement("#sidenav-overlay"); document.getElementsByTagName("main")[0].className = "center-align container"; Helper.removeClass("#main-container", "channelpage"); document.getElementById("main-container").setAttribute("style", ""); document.getElementsByTagName("header")[0].innerHTML = response.querySelectorAll("header")[0].outerHTML; document.getElementsByTagName("header")[0].insertAdjacentHTML("afterend", response.querySelectorAll(".section.mega")[0].outerHTML); //document.getElementsByTagName("header")[0].insertAdjacentHTML("afterend", response.querySelectorAll(".section.mobile-search")[0].innerHTML); if(Helper.mobilecheck() || user_auth_avoid) { document.getElementsByTagName("main")[0].innerHTML = response.querySelectorAll("main")[0].innerHTML; } else { document.getElementsByTagName("main")[0].insertAdjacentHTML("beforeend", response.querySelectorAll("#main_section_frontpage")[0].outerHTML); } Helper.removeClass(".page-footer", "padding-bottom-extra"); Helper.removeClass(".page-footer", "padding-bottom-novideo"); document.getElementById("favicon").setAttribute("href", "/assets/images/favicon-32x32.png"); Helper.log(["Socket", socket]); if(document.querySelectorAll("#alreadyfp").length == 1){ Frontpage.init(); }else { fromChannel = true; frontpage = true; Frontpage.init(); } changing_to_frontpage = false; if(document.querySelectorAll("#alreadychannel").length === 0 && !user_auth_avoid){ document.getElementsByTagName("head")[0].insertAdjacentHTML("beforeend", "