//noinspection BadExpressionStatementJS
(function(window){
var replaceUrl = false;
var url = new URL(window.location.href);
var searchParams = new URLSearchParams(url.search);
if ('undefined' === typeof window.kuuid) {
setUuidParam();
}
if ('undefined' === typeof window.kref) {
setKrefParam();
}
setKaffParam();
if (replaceUrl) {
window.history.replaceState(
null,
null,
url.toString()
);
}
function getCookie(name) {
var cookieRegex = '(?:(?:^|.*; *)' + name + ' *= *([^;]*).*$)|^.*$';
var cookie = document.cookie.match(cookieRegex)[1];
if (cookie) {
return decodeURIComponent(cookie);
}
}
function setCookie(name, value, options) {
if (options && options.days) {
options['max-age'] = options.days * 60 * 60 * 24;
delete options.days;
}
var optionString = '';
Object.keys(options).map(function(key) {
optionString += '; ' + key + '=' + options[key];
});
document.cookie = name + '=' + encodeURIComponent(value) + optionString;
}
function generateUUID() {
var d = new Date().getTime();
var d2 = (
'undefined' !== typeof performance
&& performance.now
&& (performance.now() * 1000)
)
|| 0;
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = Math.random() * 16;
if (d > 0) {
r = (d + r) % 16 | 0;
d = Math.floor(d / 16);
} else {
r = (d2 + r) % 16 | 0;
d2 = Math.floor(d2 / 16);
}
return (
c === 'x'
? r
: (r & 0x3 | 0x8)
).toString(16);
});
}
function isInIframe() {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
function setUuidParam() {
var uuid = getCookie('kuuid');
if (!uuid) {
if (searchParams.has('kuid')) {
uuid = searchParams.get('kuid');
} else {
uuid = generateUUID();
}
}
window.kuuid = uuid;
if (searchParams.has('kuid')) {
url.searchParams.delete('kuid');
replaceUrl = true;
}
}
function setKrefParam() {
var referrer;
var inIframe = isInIframe();
if (inIframe) {
if (searchParams.has('referrer')) {
referrer = searchParams.get('referrer');
}
} else {
referrer = (document.referrer && document.referrer.split('?')[0]) || '';
}
if (searchParams.has('kref')) {
referrer = searchParams.get('kref');
replaceUrl = true;
url.searchParams.delete('kref');
}
window.kref = referrer;
}
function setKaffParam() {
if (
searchParams.has('kaff')
&& searchParams.has('kmid')
) {
var affiliateHash = searchParams.get('kaff');
var memberHash = searchParams.get('kmid');
var cookieName = 'kaff_' + memberHash;
url.searchParams.delete('kaff');
url.searchParams.delete('kmid');
setCookie(
cookieName,
affiliateHash,
{
path: '/',
days: 30,
secure: true,
samesite: 'none',
}
);
replaceUrl = true;
}
}
}(window));
;(function(window) {
'use strict';
window['kartra'] = 'undefined' === typeof window['kartra']
? []
: window['kartra'];
window['kartra']['video-embeds'] = 'undefined' === typeof window['kartra']['video-embeds']
? []
: window['kartra']['video-embeds'];
window['kartra']['pages'] = 'undefined' === typeof window['kartra']['pages']
? []
: window['kartra']['pages'];
window['kartra']['pages']['init'] = 'undefined' === typeof window['kartra']['pages']['init']
? []
: window['kartra']['pages']['init'];
var stickySensitivity = 80,
jQ;
loadCss();
jQuery(document).ready(function() {
jQ = jQuery.noConflict();
var $playlistContainers = jQ('[id="kartra_playlist_containerhjMGCLt7gFCp?autoplay=true&mute_on_start=true&show_controls=true&sticky=true&resume_playback=false"]').not('iframe');
$playlistContainers.each(function(i, el) {
var $playlistContainer = jQ(el);
if ($playlistContainer.parents('[data-delay-duration]').not('.js_delay_loaded').length < 1) {
initEmbedhjMGCLt7gFCp();
} else {
// works with delay code in pages-skeleton.js
$playlistContainer
.attr('data-playlist-hashed', 'hjMGCLt7gFCp')
.attr('data-delayed-type', 'playlist')
.addClass('js_delayed');
window['kartra']['pages']['init']['playlist'] = function($container) {
window['kartra']['video-embeds'][$container.attr('data-playlist-hashed')]();
jQ(window).trigger('resize');
}
}
});
initEvents();
});
function loadCss() {
var cssPath = 'https://app.kartra.com/css/new/css/v5/stylesheets_frontend/video/video_wrapper/styles.css',
existingCssScript = document.querySelector('link[href="' + cssPath + '"]');
if (!existingCssScript) {
var cssLink = document.createElement('link');
cssLink.type = 'text/css';
cssLink.rel = 'stylesheet';
cssLink.href = cssPath;
document.head.appendChild(cssLink);
}
}
function initEmbedhjMGCLt7gFCp() {
var styleString = '\
',
$playlistContainers = jQ('[id="kartra_playlist_containerhjMGCLt7gFCp?autoplay=true&mute_on_start=true&show_controls=true&sticky=true&resume_playback=false"]').not('iframe');
$playlistContainers.each(function(i, el) {
var $container = jQ(el);
var $playlistOuterWrapper = jQ('
');
var $playlistEmbedWrapper = jQ('');
var $playlistPlaceholder = jQ('');
var $videoShadow = jQ('');
var memberHash = $container.attr('data-kt-owner') || '';
var $iframe = generateIframe(memberHash);
$container.empty();
// For the same playlist, embed styling only once in page
if (0 === i) {
$container.append(styleString);
}
$playlistEmbedWrapper.append($iframe);
$playlistOuterWrapper.append($playlistEmbedWrapper);
$container
.addClass('js_kartra_playlist_container kartra_playlist_containerhjMGCLt7gFCp')
.append($playlistOuterWrapper)
.append($playlistPlaceholder)
.append($videoShadow);
$iframe.on('load', function() {
var playlistHeight = $container.outerHeight(),
position = playlistHeight/2 + $container.offset().top + stickySensitivity;
position = Math.round(position);
// Make it from the bottom half of the video
$container.attr('data-original-position', position);
$container.addClass('js_video_embed_loaded');
});
});
}
function initEvents() {
jQ(window).on('message', function(event) {
var messageData = event.originalEvent.data;
if ('undefined' !== typeof(messageData)) {
if (
'kt-video-play-hjMGCLt7gFCp' === messageData['message']
|| 'kt-video-play-sticky-hjMGCLt7gFCp' === messageData['message']
|| 'kt-video-pause-hjMGCLt7gFCp' === messageData['message']
|| 'kt-video-complete-hjMGCLt7gFCp' === messageData['message']
|| 'kt-video-loaded' === messageData['message']
) {
if (
'undefined' === typeof messageData['payload']
|| 'undefined' === typeof messageData['payload']['frame']
) {
return false;
}
var $playlistIframe = jQ('.js_kartra_playlist_container iframe[name="' + messageData['payload']['frame'] + '"]');
if ($playlistIframe.length) {
var $playlistContainer = $playlistIframe.closest('.js_kartra_playlist_container'),
$stickyPlaylist = jQ('.js_kartra_video_container.kartra-video-sticky-top, .js_kartra_playlist_container.kartra-video-sticky-top'),
frameWindow = $playlistIframe[0].contentWindow ?
$playlistIframe[0].contentWindow : $playlistIframe[0].contentDocument.defaultView;
switch(messageData['message']) {
case 'kt-video-play-sticky-hjMGCLt7gFCp':
$playlistContainer.addClass('js_video_enable_sticky');
if (
$stickyPlaylist.length
&& !$stickyPlaylist.is($playlistContainer)
) {
closeStickyPlaylist($stickyPlaylist, true);
}
break;
case 'kt-video-pause-hjMGCLt7gFCp':
case 'kt-video-complete-hjMGCLt7gFCp':
$playlistContainer.removeClass('js_video_enable_sticky');
break;
case 'kt-video-loaded':
frameWindow.postMessage({
message: 'kt-video-embed-domain',
payload: {
location: window.location.href
}
}, '*');
break;
default:
if ($stickyPlaylist.length) {
closeStickyPlaylist($stickyPlaylist, true);
}
}
}
}
}
});
if (!window['kartra']['video-embeds']['sticky-listener']) {
window['kartra']['video-embeds']['sticky-listener'] = true;
jQ(window).on('resize', throttleFn(onResizeHandler, 100));
jQ(window).on('scroll', throttleFn(onScrollHandler, 100));
jQ(document).on('click', '.js_video_sticky_close', function() {
var $button = jQ(this),
$videoContainerWrapper = $button.closest('.js_kartra_video_container, .js_kartra_playlist_container');
closeStickyPlaylist($videoContainerWrapper, true);
});
}
}
function onScrollHandler() {
var windowScrollTop = jQ(window).scrollTop(),
$containers = jQ('.js_kartra_video_container, .js_kartra_playlist_container');
$containers.each(function(i, el) {
var $playlistContainer = jQ(el),
$mainWrapper = $playlistContainer.find('.js_kartra_video_wrapper, .js_kartra_playlist_wrapper'),
originalPosition = $playlistContainer.attr('data-original-position');
if (originalPosition) {
originalPosition = parseInt(originalPosition);
if (windowScrollTop > originalPosition) {
if ($playlistContainer.hasClass('js_video_enable_sticky')) {
// We only want a single video being sticky at a time
if (
jQ('.js_kartra_video_container.kartra-video-sticky-top').length
|| jQ('.js_kartra_playlist_container.kartra-video-sticky-top').length
) {
return false;
}
var $closeButton = generateStickyCloseButton();
$playlistContainer.addClass('kartra-video-sticky-top');
$mainWrapper.append($closeButton);
}
} else {
closeStickyPlaylist($playlistContainer, false);
}
}
});
}
function onResizeHandler() {
var $containers = jQ('.js_kartra_video_container.js_video_embed_loaded, .js_kartra_playlist_container.js_video_embed_loaded');
$containers.each(function(i, el) {
var $playlistWrapper = jQ(el),
playlistHeight = $playlistWrapper.outerHeight(),
position = playlistHeight/2 + $playlistWrapper.offset().top + stickySensitivity;
position = Math.round(position);
$playlistWrapper.attr('data-original-position', position);
});
}
function throttleFn(fn, wait) {
var time = Date.now();
return function() {
if ((time + wait - Date.now()) < 0) {
fn();
time = Date.now();
}
}
}
function generateIframe(memberHash) {
var iframeSrc = 'https://app.kartra.com/video_front/pages_playlist_preview/hjMGCLt7gFCp?autoplay=true&mute_on_start=true&show_controls=true&sticky=true&resume_playback=false';
var urlParams = getUrlParams();
var kartraPage = getKartraPage();
var referrer = '';
var uuid = window.kuuid;
var affiliateData = memberHash && checkForAffiliate(memberHash);
if (kartraPage) {
referrer = kartraPage;
} else {
referrer = window.location.href.split('?')[0];
}
for (var param of urlParams) {
iframeSrc += '&' + param.key + '=' + encodeURIComponent(param.value);
}
iframeSrc += '&referrer=' + encodeURIComponent(referrer);
iframeSrc += '&kuid=' + encodeURIComponent(uuid);
if (affiliateData) {
iframeSrc += '&kaff=' + encodeURIComponent(affiliateData);
}
return jQ('