/* Document Ready Script */
document.ready = function( callback ) {
if( document.readyState != 'loading' ) {
callback();
}
else {
document.addEventListener( 'DOMContentLoaded', callback );
}
};
/* Automattically resize the iFrame */
var iFrame2C = {};
iFrame2C.rescale = function( iframe, format ) {
let formatWidth = parseInt( format.split(':')[0] );
let formatHeight = parseInt( format.split(':')[1] );
let formatRatio = formatHeight / formatWidth;
var iframeBounds = iframe.getBoundingClientRect();
let currentWidth = iframeBounds.width;
let newHeight = formatRatio * currentWidth;
iframe.style.height = Math.round( newHeight ) + "px";
};
/* Resize iFrame */
function iframeResize() {
var iframes = document.querySelectorAll( 'iframe[data-scaling="true"]' );
if( !!iframes.length ) {
for( var i=0; i < iframes.length; i++ ) {
let iframe = iframes[ i ];
let videoFormat = '16:9';
let is_data_format_existing = typeof iframe.getAttribute( 'data-format' ) !== "undefined";
if( is_data_format_existing ) {
let is_data_format_valid = iframe.getAttribute( 'data-format' ).includes( ':' );
if( is_data_format_valid ) {
videoFormat = iframe.getAttribute( 'data-format' );
}
}
iFrame2C.rescale( iframe, videoFormat );
}
}
}
/* Event Listener on Resize for iFrame-Resizing */
document.ready( function() {
window.addEventListener( "resize", function() {
iframeResize();
});
iframeResize();
});
/* Source-URLs */
/*
data_type will be the value of the attribute "data-type" on element "video_trigger"
data_souce will be the value of the attribute "data-source" on element "video_trigger", which will be replaced on "{SOURCE}"
*/
function get_source_url( data_type ) {
switch( data_type ) {
case "youtube":
return "https://www.youtube-nocookie.com/embed/{SOURCE}?rel=0&controls=0&showinfo=0&autoplay=1&mute=1";
case "google-maps":
return "https://www.google.com/maps/embed?pb={SOURCE}";
/* Add your own sources here */
/* Always set "{SOURCE}" as placeholder for individual data from attribute "data-source" */
case "open-street-maps":
return "https://www.openstreetmap.org/export/embed.html?bbox=7.638307709275979%2C51.95050407165732%2C7.645388741075295%2C51.953853244732045&layer=mapnik&marker=51.94893328430987%2C7.648498810885941";
default: break;
}
}
/* 2-Click Solution */
document.ready( function() {
var video_wrapper = document.querySelectorAll( '.video_wrapper' );
if( !!video_wrapper.length ) {
for( var i=0; i < video_wrapper.length; i++ ) {
let _wrapper = video_wrapper[ i ];
var video_triggers = _wrapper.querySelectorAll( '.video_trigger' );
if( !!video_triggers.length ) {
for( var l=0; l < video_triggers.length; l++ ) {
var video_trigger = video_triggers[ l ];
var accept_buttons = video_trigger.querySelectorAll( 'input[type="button"]' );
if( !!accept_buttons.length ) {
for( var j=0; j < accept_buttons.length; j++ ) {
var accept_button = accept_buttons[ j ];
accept_button.addEventListener( "click", function() {
var _trigger = this.parentElement;
var data_type = _trigger.getAttribute( "data-type" );
var source = "";
_trigger.style.display = "none";
source = get_source_url( data_type );
var data_source = _trigger.getAttribute( 'data-source' );
source = source.replace( "{SOURCE}", data_source );
var video_layers = _trigger.parentElement.querySelectorAll( ".video_layer" );
if( !!video_layers.length ) {
for( var k=0; k < video_layers.length; k++ ) {
var video_layer = video_layers[ k ];
video_layer.style.display = "block";
video_layer.querySelector( "iframe" ).setAttribute( "src", source );
}
}
_wrapper.style.backgroundImage = "";
/*_wrapper.style.height = "auto";*/
var timeout = 100; // ms
setTimeout( function() {
iframeResize();
}, timeout );
});
}
}
}
}
};
}
});
Skip to main content