var isLaunchButtonsDebug = document.location.host.startsWith('cms-'); var launcherConfig = {} function setupLauncher(ppid, fv, relaunchId) { launcherConfig.ppid = ppid; launcherConfig.fv = fv; launcherConfig.relaunchId = relaunchId; } setupLauncher('','','2.9.2,2.18.1,3.2.0'); function loadJS(onLoad) { if (!document.getElementById('som-js')) { let searchParams = new URL(document.location).searchParams; let installed = searchParams.get("installed"); let src = 'https://screenpal.com/api/som.js?androidEnabled=true&iosEnabled=true&chromeAppId=ofhomjgaaamjpmjogmkglfojkdlabekg&brand=screenpal'; if (installed) { src += '&installed=' + encodeURIComponent(installed); } let somJsScript = document.createElement('script'); somJsScript.id = 'som-js'; somJsScript.src = src; document.getElementsByTagName('body')[0].appendChild(somJsScript); somJsScript.addEventListener('load', function() { let checkOpentip = function() { setTimeout(function() { if (window.Opentip) { onLoad(); return; } checkOpentip(); },200); } checkOpentip(); }, false); return; } onLoad(); } /***** Starting recorder and opening the editor *****/ function getFV(useVersion) { if (!useVersion) { useVersion = ''; } // If they are requesting version then we'll use it unless this is old mac... var b = navigator.userAgent.toLowerCase(); if (b.indexOf("mac os x 10_7") > 0 || b.indexOf("mac os x 10.7") > 0) { return 'MAC-10.7'; } if (b.indexOf("mac os x 10_8") > 0 || b.indexOf("mac os x 10.8") > 0) { return 'MAC-10.8'; } return useVersion; } function updateParamsWithCommand(params, command) { if (command === 'manager') { params.options.sm = "true"; } else if (command === 'screenshot') { params.options.runCommand = "takeScreenshotAskIfReady"; } else if (command === 'recorder') { // Recorder is default so nothing to set in runCommand } else if (command.indexOf("editHostedId-") === 0) { params.options.editHostedId = command.substr("editHostedId-".length); } else { params.options.runCommand = command; } return params; } function launchRecorder(analyticsName) { launchApp(analyticsName, 'recorder'); } function launchManager(analyticsName) { launchApp(analyticsName, 'manager'); } function launchScreenshot(analyticsName) { launchApp(analyticsName, 'screenshot'); } function launchEditVideo(analyticsName, videoId) { launchApp(analyticsName, 'editHostedId-'+videoId); } function launchApp(analyticsName, runcommand) { loadJS(function(){ let params = { id: 'som-' + (getCookie("session") || "0"), type: 'bottom-bar', options:{"fv": getFV(launcherConfig.fv) } }; let eventName = 'Mkg' + 'ButtonClick'; let eventProps = { action: 'click', name: analyticsName }; if (runcommand) { params = updateParamsWithCommand(params, runcommand); } if (launcherConfig.ppid) { params.options.pp = launcherConfig.ppid; } if (launcherConfig.relaunchId) { params.options.relaunchId = launcherConfig.relaunchId; } SOM.Recorder(params).start(); logLaunchButtonsDebug('Analytics for "' + eventName + '" would fire for: "' + analyticsName + '"'); // Only fire if we're on a host where this is defined (ie won't be setup on CMS). if (typeof analyticsEvent === "function") { analyticsEvent(eventName, eventProps, null); } }); } function setupLaunchLink(type, link) { let analyticsName = 'Launch'+(type.charAt(0).toUpperCase()+type.slice(1)); if (link.innerText !== '') analyticsName = link.innerText; logLaunchButtonsDebug('Found launch button for type "' + type + '" with analyticsName "' + analyticsName + '"'); link.addEventListener('click',(event)=>{ event.preventDefault(); launchApp(analyticsName,type); }); } function queryType(q) { logLaunchButtonsDebug('Looking for launch buttons with query: "' + q + '"'); return Array.from(document.querySelectorAll(q)); } function queryLaunchButtons(type) { return [].concat( queryType('.cms-launch-button-'+type+' a'), queryType('a.launch-button-'+type) ); } function logLaunchButtonsDebug(s) { if (isLaunchButtonsDebug) console.log('logLaunchButtonsDebug -- ' + s); } function setupLaunchButtons() { let launchTypes = ['recorder','manager','screenshot']; for (let type of launchTypes) { for (let link of queryLaunchButtons(type)) { setupLaunchLink(type, link); } } } if (document.readyState === "loading") document.addEventListener('DOMContentLoaded', setupLaunchButtons); else setupLaunchButtons();