//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']; if ('undefined' !== typeof window['kartra']['video-embeds']['u0JKiC68Q4Cp']) { return false; } var stickySensitivity = 80, jQ; loadCss(); loadJquery(); loadAnalytics(); function loadAnalytics() { var analyticsScript = document.createElement('script'); analyticsScript.type = 'text/javascript'; analyticsScript.src = 'https://app.kartra.com/resources/js/analytics/Lk9RNMDr'; document.body.appendChild(analyticsScript); } 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 loadJquery() { var jqueryPath = 'https://app.kartra.com/js/node_modules/kartra-jquery/jquery-1.10.2/jquery-1.10.2.min.js', existingJqueryScript = document.querySelector('script[src="' + jqueryPath + '"]'); if ( existingJqueryScript && window.jQuery ) { jQ = jQuery.noConflict(true); jQ(document).ready(function() { initEmbed(); }); } else { var jQueryScript = document.createElement('script'); jQueryScript.type = 'text/javascript'; jQueryScript.src = jqueryPath; jQueryScript.onload = function() { jQ = jQuery.noConflict(true); jQ(document).ready(function() { initEmbed(); }); } document.body.appendChild(jQueryScript); } } function initEmbed() { var styleString = '\ ', $playlistContainers = jQ('.kartra_playlist_containeru0JKiC68Q4Cp'); $playlistContainers.each(function(i, el) { var $container = jQ(el); var $playlistOuterWrapper = jQ('
'); var $playlistEmbedWrapper = jQ('
'); var playlistPlaceholder = 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') .append($playlistOuterWrapper) .append($playlistPlaceholder); $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'); }); }); jQ(window).on('message', function(event) { var messageData = event.originalEvent.data; if ('undefined' !== typeof(messageData)) { if ( 'kt-video-play-u0JKiC68Q4Cp' === messageData['message'] || 'kt-video-play-sticky-u0JKiC68Q4Cp' === messageData['message'] || 'kt-video-pause-u0JKiC68Q4Cp' === messageData['message'] || 'kt-video-complete-u0JKiC68Q4Cp' === 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-u0JKiC68Q4Cp': $playlistContainer.addClass('js_video_enable_sticky'); if ( $stickyPlaylist.length && !$stickyPlaylist.is($playlistContainer) ) { closeStickyPlaylist($stickyPlaylist, true); } break; case 'kt-video-pause-u0JKiC68Q4Cp': case 'kt-video-complete-u0JKiC68Q4Cp': $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 ('kt-video-download-options' === messageData['message']) { var $downloadVideo = jQ('.js_video_page .js_download_video'), $downloadOptions = jQ('.js_video_page .js_download_options'); if ($downloadVideo.length) { $downloadVideo.attr('data-download-url', messageData['payload']['videoDownloadUrl']); } if ($downloadOptions.length) { var actionEvent = new CustomEvent('kartraClosePopover'); $downloadOptions[0].dispatchEvent(actionEvent); if ( '' !== messageData['payload']['transcriptDownloadUrl'] && messageData['payload']['transcriptDownloadUrl'] ) { $downloadOptions.show(); $downloadVideo.hide(); $downloadOptions.attr({ 'data-download-url': messageData['payload']['videoDownloadUrl'], 'data-transcript-url': messageData['payload']['transcriptDownloadUrl'] }); } else { $downloadOptions.hide(); $downloadVideo.show(); } } } } }); } function generateIframe(memberHash) { var iframeSrc = 'https://app.kartra.com/video_front/playlist/u0JKiC68Q4Cp/0/?'; var urlParams = getUrlParams(); var kartraPage = getKartraPage(); var referrer = ''; var affiliateData = memberHash && checkForAffiliate(memberHash); var uuid = window.kuuid; 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('