var Playercontrols = { stopInterval: false, initYoutubeControls: function() { Playercontrols.initControls(); }, initControls: function() { document .getElementById("volume-button") .addEventListener("click", Playercontrols.mute_video); document .getElementById("playpause") .addEventListener("click", Playercontrols.play_pause); document .getElementById("volume-button-overlay") .addEventListener("click", Playercontrols.mute_video); document .getElementById("playpause-overlay") .addEventListener("click", Playercontrols.play_pause); document .getElementById("fullscreen") .addEventListener("click", Playercontrols.fullscreen); }, initSlider: function() { try { vol = Crypt.get_volume(); } catch (e) { vol = 100; } try { if (document.getElementsByClassName("volume-slid")) { document.getElementById("volume").innerHTML = ""; } } catch (e) {} if ((Helper.mobilecheck() || slider_type == "vertical") && !embed) { //slider_values.orientation = "vertical"; if ( !document.querySelector(".volume-container").classList.contains("hide") ) { Helper.toggleClass(".volume-container", "hide"); } } document .getElementById("volume") .insertAdjacentHTML( "beforeend", "
" ); document .getElementById("volume") .insertAdjacentHTML( "beforeend", "
" ); if (slider_type != "vertical") { Helper.removeClass("#volume", "vertical"); Helper.css(".volume-slid", "width", vol + "%"); Helper.css(".volume-handle", "left", "calc(" + vol + "% - 1px)"); } else { Helper.addClass("#volume", "vertical"); Helper.css(".volume-slid", "height", vol + "%"); Helper.css(".volume-handle", "bottom", "calc(" + vol + "% - 1px)"); } Playercontrols.choose_button(vol, false); //document.getElementsByClassName("volume-handle")[0].onmousedown = Playercontrols.dragMouseDown; //Playercontrols.visualVolume(slider_values); //document.getElementsByClassName("volume-slid")[0].onmousedown = Playercontrols.dragMouseDown; document.getElementById("volume").onmousedown = function(e) { Playercontrols.dragMouseDown(e, "player"); }; if (!Helper.mobilecheck()) { document.getElementById("volume").onclick = function(e) { Playercontrols.elementDrag(e, "player"); Playercontrols.closeDragElement("player"); }; } document.getElementById("volume").addEventListener( "touchstart", function(e) { e.preventDefault(); Playercontrols.dragMouseDown(e, "player"); }, false ); }, dragMouseDown: function(e, element) { e = e || window.event; // get the mouse cursor position at startup: document.onmouseup = function() { Playercontrols.closeDragElement(element); }; document.getElementById("volume").addEventListener( "touchend", function() { Playercontrols.closeDragElement(element); }, false ); // call a function whenever the cursor moves: document.onmousemove = function(e) { Playercontrols.elementDrag(e, element); }; document.getElementById("volume").addEventListener( "touchmove", function(e) { e.preventDefault(); Playercontrols.elementDrag(e, element); }, false ); }, elementDrag: function(e, element) { var elmnt; var cmp_elmnt; var slid_elmnt; if (element == "player") { elmnt = document.getElementsByClassName("volume-handle")[0]; cmp_elmnt = document.getElementById("volume"); slid_elmnt = document.getElementsByClassName("volume-slid")[0]; } else { elmnt = document.getElementsByClassName("volume-handle-remote")[0]; cmp_elmnt = document.getElementById("volume-control-remote"); slid_elmnt = document.getElementsByClassName("volume-slid-remote")[0]; } e = e || window.event; var pos3 = e.clientX; var pos4 = e.clientY; if (pos3 == undefined) { pos3 = e.touches[0].clientX; } if (pos4 == undefined) { pos4 = e.touches[0].clientY; } var volume = 0; if (slider_type != "vertical" || element != "player") { if (elmnt.className.indexOf("ui-state-active") == -1) { elmnt.className += " ui-state-active"; } var pos = pos3 - cmp_elmnt.offsetLeft; if (pos > -1 && pos < cmp_elmnt.offsetWidth + 1) { elmnt.style.left = pos + "px"; volume = pos / cmp_elmnt.offsetWidth; } else if (pos < 1) { elmnt.style.left = 0 + "px"; volume = 0; } else { elmnt.style.left = cmp_elmnt.offsetWidth + "px"; volume = 1; } slid_elmnt.style.width = volume * 100 + "%"; if (element == "player") Playercontrols.setVolume(volume * 100); else socket.emit("id", { id: Mobile_remote.id, type: "volume", value: volume * 100 }); } else { var pos = pos4 - cmp_elmnt.offsetTop; var pos0 = window.innerHeight - pos - 14; if (pos0 > 64 && pos0 < 164) { volume = (pos0 - 64) / 100; } else if (pos0 < 65) { volume = 0; } else { volume = 1; } slid_elmnt.style.height = volume * 100 + "%"; Playercontrols.setVolume(volume * 100); } try { Crypt.set_volume(volume * 100); } catch (e) {} }, closeDragElement: function(element) { /* stop moving when mouse button is released:*/ var elmnt; if (element == "player") { elmnt = document.getElementsByClassName("volume-handle")[0]; } else { elmnt = document.getElementsByClassName("volume-handle-remote")[0]; } if (elmnt.className.indexOf("ui-state-active") > -1) { setTimeout(function() { elmnt.classList.remove("ui-state-active"); }, 1); } document.onmouseup = null; document.onmousemove = null; if (element == "player") { document.getElementById("volume").removeEventListener( "touchmove", function(e) { e.preventDefault(); Playercontrols.elementDrag(e, element); }, false ); document.getElementById("volume").removeEventListener( "touchend", function() { Playercontrols.closeDragElement(element); }, false ); } else { document.getElementById("volume-control-remote").removeEventListener( "touchmove", function(e) { e.preventDefault(); Playercontrols.elementDrag(e); }, false ); document.getElementById("volume-control-remote").removeEventListener( "touchend", function() { Playercontrols.closeDragElement(); }, false ); } }, fullscreen: function() { var playerElement; if (fireplace_initiated) { playerElement = document.getElementById("fireplace_player"); } else { playerElement = document.getElementById("player"); } var requestFullScreen = playerElement.requestFullScreen || playerElement.mozRequestFullScreen || playerElement.webkitRequestFullScreen; if (requestFullScreen) { requestFullScreen.bind(playerElement)(); } }, play_pause: function() { if (!chromecastAvailable) { if (videoSource == "soundcloud") { if (scUsingWidget) { Player.soundcloud_player.isPaused(function(playing) { playing = !playing; if (!playing) { Player.playVideo(); } else { Player.pauseVideo(); } was_stopped = true; }); } else { if (!Player.soundcloud_player.isPlaying()) { Player.playVideo(); } else { Player.pauseVideo(); } } } else { if (Player.player.getPlayerState() == YT.PlayerState.PLAYING) { Player.pauseVideo(); if (Helper.mobilecheck() && !window.MSStream && !embed) { //if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){ //document.getElementById("player").style.display = "none"; Helper.css("#player", "display", "none"); Helper.toggleClass(".video-container", "click-through"); Helper.toggleClass(".page-footer", "padding-bottom-extra"); } } else if ( Player.player.getPlayerState() == YT.PlayerState.PAUSED || Player.player.getPlayerState() === YT.PlayerState.ENDED || Player.player.getPlayerState() === YT.PlayerState.CUED ) { Player.playVideo(); //if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){ if (Helper.mobilecheck() && !window.MSStream) { //document.getElementById("player").style.display = "block"; Helper.css("#player", "display", "block"); Helper.toggleClass(".video-container", "click-through"); Helper.toggleClass(".page-footer", "padding-bottom-extra"); } } } } else { Playercontrols.play_pause_show(); } }, play_pause_show: function() { if (chromecastAvailable) { if (document.getElementById("play").classList.contains("hide")) { Player.pauseVideo(); } else if (document.getElementById("pause").classList.contains("hide")) { Player.playVideo(); } } else { if (!document.getElementById("pause").classList.contains("hide")) { Helper.toggleClass("#pause", "hide"); Helper.toggleClass("#pause-overlay", "hide"); } if (document.getElementById("play").classList.contains("hide")) { Helper.toggleClass("#play", "hide"); Helper.toggleClass("#play-overlay", "hide"); } } }, settings: function() { Helper.toggleClass("#qS", "hide"); }, changeQuality: function(wantedQ) { if (Player.player.getPlaybackQuality != wantedQ) { Player.player.setPlaybackQuality(wantedQ); Player.player.getPlaybackQuality(); } Helper.toggleClass("#qS", "hide"); }, mute_video: function() { if (Helper.mobilecheck() || slider_type == "vertical") { Helper.toggleClass(".volume-container", "hide"); } else { if (!Player.player.isMuted()) { if (chromecastAvailable) castSession.sendMessage("urn:x-cast:zoff.me", { type: "mute" }); Playercontrols.choose_button(0, true); Player.player.mute(); } else { if (chromecastAvailable) castSession.sendMessage("urn:x-cast:zoff.me", { type: "unMute" }); Player.player.unMute(); Playercontrols.choose_button(Player.player.getVolume(), false); } } }, setVolume: function(vol) { Player.setVolume(vol); if (scUsingWidget) Player.soundcloud_player.setVolume(vol); else Player.soundcloud_player.setVolume(vol / 100); Playercontrols.choose_button(vol, false); if (Player.player.isMuted()) Player.player.unMute(); }, choose_button: function(vol, mute) { if (!mute) { if (vol >= 0 && vol <= 33) { if (!document.getElementById("v-full").classList.contains("hide")) { Helper.toggleClass("#v-full", "hide"); Helper.toggleClass("#v-full-overlay", "hide"); } if (!document.getElementById("v-medium").classList.contains("hide")) { Helper.toggleClass("#v-medium", "hide"); Helper.toggleClass("#v-medium-overlay", "hide"); } if (document.getElementById("v-low").classList.contains("hide")) { Helper.toggleClass("#v-low", "hide"); Helper.toggleClass("#v-low-overlay", "hide"); } if (!document.getElementById("v-mute").classList.contains("hide")) { Helper.toggleClass("#v-mute", "hide"); Helper.toggleClass("#v-mute-overlay", "hide"); } } else if (vol >= 34 && vol <= 66) { if (!document.getElementById("v-full").classList.contains("hide")) { Helper.toggleClass("#v-full", "hide"); Helper.toggleClass("#v-full-overlay", "hide"); } if (document.getElementById("v-medium").classList.contains("hide")) { Helper.toggleClass("#v-medium", "hide"); Helper.toggleClass("#v-medium-overlay", "hide"); } if (!document.getElementById("v-low").classList.contains("hide")) { Helper.toggleClass("#v-low", "hide"); Helper.toggleClass("#v-low-overlay", "hide"); } if (!document.getElementById("v-mute").classList.contains("hide")) { Helper.toggleClass("#v-mute", "hide"); Helper.toggleClass("#v-mute-overlay", "hide"); } } else if (vol >= 67 && vol <= 100) { if (document.getElementById("v-full").classList.contains("hide")) { Helper.toggleClass("#v-full", "hide"); Helper.toggleClass("#v-full-overlay", "hide"); } if (!document.getElementById("v-medium").classList.contains("hide")) { Helper.toggleClass("#v-medium", "hide"); Helper.toggleClass("#v-medium-overlay", "hide"); } if (!document.getElementById("v-low").classList.contains("hide")) { Helper.toggleClass("#v-low", "hide"); Helper.toggleClass("#v-low-overlay", "hide"); } if (!document.getElementById("v-mute").classList.contains("hide")) { Helper.toggleClass("#v-mute", "hide"); Helper.toggleClass("#v-mute-overlay", "hide"); } } } else { if (!document.getElementById("v-full").classList.contains("hide")) { Helper.toggleClass("#v-full", "hide"); Helper.toggleClass("#v-full-overlay", "hide"); } if (!document.getElementById("v-medium").classList.contains("hide")) { Helper.toggleClass("#v-medium", "hide"); Helper.toggleClass("#v-medium-overlay", "hide"); } if (!document.getElementById("v-low").classList.contains("hide")) { Helper.toggleClass("#v-low", "hide"); Helper.toggleClass("#v-low-overlay", "hide"); } if (document.getElementById("v-mute").classList.contains("hide")) { Helper.toggleClass("#v-mute", "hide"); Helper.toggleClass("#v-mute-overlay", "hide"); } } }, playPause: function() { if (videoSource == "soundcloud") { if (scUsingWidget) { Player.soundcloud_player.isPaused(function(playing) { playing = !playing; if (!playing) { Helper.addClass("#play", "hide"); Helper.removeClass("#pause", "hide"); Player.soundcloud_player.play(); } else { Helper.removeClass("#play", "hide"); Helper.addClass("#pause", "hide"); Player.soundcloud_player.pause(); } }); } else { if (!Player.soundcloud_player.isPlaying()) { Helper.addClass("#play", "hide"); Helper.removeClass("#pause", "hide"); Player.soundcloud_player.play(); } else { Helper.removeClass("#play", "hide"); Helper.addClass("#pause", "hide"); Player.soundcloud_player.pause(); } } } else { state = Player.player.getPlayerState(); button = document.getElementById("playpause"); if (state == YT.PlayerState.PLAYING) { Player.pauseVideo(); } else if (state == YT.PlayerState.PAUSED) { Player.playVideo(); } } }, visualVolume: function(val) { var elmnt = document.getElementsByClassName("volume-handle")[0]; var cmp_elmnt = document.getElementById("volume"); var slid_elmnt = document.getElementsByClassName("volume-slid")[0]; if (slider_type != "vertical") { var pos = (cmp_elmnt.offsetWidth / 100) * val; var volume = 0; //var pos = pos3 - cmp_elmnt.offsetLeft; if (pos > -1 && pos < cmp_elmnt.offsetWidth + 1) { elmnt.style.left = pos + "px"; volume = pos / cmp_elmnt.offsetWidth; } else if (pos < 1) { elmnt.style.left = 0 + "px"; volume = 0; } else { elmnt.style.left = cmp_elmnt.offsetWidth + "px"; volume = 1; } slid_elmnt.style.width = volume * 100 + "%"; Playercontrols.setVolume(volume * 100); } else { var pos = val; var pos0 = window.innerHeight - pos - 14; var volume = 0; if (pos0 > 64 && pos0 < 164) { volume = (pos0 - 64) / 100; } else if (pos0 < 65) { volume = 0; } else { volume = 1; } slid_elmnt.style.height = volume * 100 + "%"; Playercontrols.setVolume(volume * 100); } }, volumeOptions: function() { if (!chromecastAvailable) { if (Player.player.isMuted()) { Player.player.unMute(); vol = Player.player.getVolume(); Playercontrols.visualVolume(Player.player.getVolume()); } else { Player.player.mute(); Playercontrols.visualVolume(0); } } }, hoverMute: function(foo) { vol = Player.player.getVolume(); } };