Files
2026-07-03 17:53:31 +02:00

131 lines
3.6 KiB
JavaScript

// THIS FILE IS NO USED DIRECTLY
// Minified and copied into Private/Resources/Templates/Youtubevideo.html
youTubeApiIsLoaded = 0;
gdprAgreedOnce = 0;
// Read cookies
function getCookie(name) {
var value = "; " + document.cookie;
var parts = value.split("; " + name + "=");
if (parts.length == 2) return parts.pop().split(";").shift();
else return null;
}
// Cancel without playing the video
function gdprCancel() {
var el = (event.target || event.srcElement);
dataYtUid = 0;
dataYtUid = el.getAttribute('data-yt-uid');
document.getElementById('gdpr-' + dataYtUid).style.display='none';
}
// Agree and remember by setting cookie
function gdprAgree() {
document.cookie = "youtubevideo-consent=1; path=/;";
var el = (event.target || event.srcElement);
dataYtUid = 0;
dataYtUid = el.getAttribute('data-yt-uid');
document.getElementById('gdpr-' + dataYtUid).style.display='none';
document.getElementById('coverimage-' + dataYtUid).click();
}
// Agree once but ask again next time
function gdprAgreeOnce() {
var el = (event.target || event.srcElement);
dataYtUid = 0;
dataYtUid = el.getAttribute('data-yt-uid');
gdprAgreedOnce = dataYtUid;
document.getElementById('gdpr-' + dataYtUid).style.display='none';
document.getElementById('coverimage-' + dataYtUid).click();
}
// What happens on clicking the cover image
function coverimageClick(event) {
if (!event) {
event = window.event;
};
var el = (event.target || event.srcElement);
playerId = 0;
playerId = el.getAttribute('data-yt-id');
dataYtCode = 0;
dataYtCode = el.getAttribute('data-yt-code');
dataYtVars = 0;
dataYtVars = JSON.parse('{' + el.getAttribute('data-yt-vars').replace(/,\s*$/, "") + '}');
dataYtHost = 0;
dataYtHost = el.getAttribute('data-yt-host');
dataYtUid = 0;
dataYtUid = el.getAttribute('data-yt-uid');
if (getCookie('youtubevideo-consent') || (gdprAgreedOnce == dataYtUid) || disableGdpr) {
if (youTubeApiIsLoaded) {
loadPlayer();
} else {
loadYouTubeApi();
}
el.classList.add('play');
} else {
document.getElementById('gdpr-' + dataYtUid).style.display = 'block';
}
}
// Load YouTube API
function loadYouTubeApi() {
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
youTubeApiIsLoaded = 1;
}
// Load YouTube player with video settings
function loadPlayer() {
player = new YT.Player(playerId, {
height: '390',
width: '640',
videoId: dataYtCode,
host: dataYtHost,
playerVars: dataYtVars,
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onYouTubeIframeAPIReady() {
loadPlayer();
}
function onPlayerReady(event) {
player.setPlaybackRate(1);
player.playVideo();
}
function onPlayerStateChange(event) {}
function stopVideo() {
player.stopVideo();
}
// Set video window breakpoint classes for 'small' and 'tiny'
function youtubevideoDetectWidth(a) {
var container = document.getElementsByClassName(a);
for (var i = 0; i < container.length; ++i) {
var item = container[i];
var width = container[i].clientWidth;
if (width < containerBreakpointSmall) {
item.classList.add('small');
} else {
item.classList.remove('small');
}
if (width < containerBreakpointTiny) {
item.classList.add('tiny');
} else {
item.classList.remove('tiny');
}
}
}
youtubevideoDetectWidth('youtubevideo');
window.addEventListener("resize", function() {
youtubevideoDetectWidth('youtubevideo');
});