var dmlpwrbrtWrapperElement = document.getElementById("dml_pwrbrt_wrapper"); dmlpwrbrtWrapperElement.style.transition = "all 0.5s;"; var pwrbrtCSSid = 'pwrbrtStyleSheet'; let sessionTimeString = (new Date()).getTime(); var pwrbrtFlLgPp = false; var pwrbrt_pagelink = document.createElement('link'); pwrbrt_pagelink.id = pwrbrtCSSid; pwrbrt_pagelink.rel = 'stylesheet'; pwrbrt_pagelink.type = 'text/css'; pwrbrt_pagelink.href = 'https://powerbright.herokuapp.com/stylesheets/style.min.css?'+sessionTimeString; pwrbrt_pagelink.media = 'all'; dmlpwrbrtWrapperElement.appendChild(pwrbrt_pagelink); window.pwrbrt_maxwidth = typeof window.pwrbrt_maxwidth != "undefined" ? window.pwrbrt_maxwidth : "100%"; window.pwrbrt_maxheight = typeof window.pwrbrt_maxheight != "undefined" ? window.pwrbrt_maxheight : window.innerHeight +"px"; window.pwrbrt_bannerwidth= typeof window.pwrbrt_bannerwidth != "undefined" ? window.pwrbrt_bannerwidth : "100%"; window.pwrbrt_isEmbed = typeof window.pwrbrt_isEmbed != "undefined" ? window.pwrbrt_isEmbed: true; window.pwrbrt_forcedLanguageCode = typeof window.pwrbrt_forcedLanguageCode != "undefined" ? window.pwrbrt_forcedLanguageCode: ""; window.pwrbrt_fmc_url = typeof window.pwrbrt_fmc_url != "undefined" ? window.pwrbrt_fmc_url: "https://facemapping.me"; window.pwrbrt_addToBagFlag = typeof window.pwrbrt_addToBagFlag != "undefined" ? window.pwrbrt_addToBagFlag: false; window.pwrbrt_banner_title = typeof window.pwrbrt_banner_title != "undefined" ? window.pwrbrt_banner_title: "hyperpigmentation explained"; window.pwrbrt_banner_subtitle = typeof window.pwrbrt_banner_subtitle != "undefined" ? window.pwrbrt_banner_subtitle: "Understand and treat your dark spots"; window.pwrbrt_banner_cta = typeof window.pwrbrt_banner_cta != "undefined" ? window.pwrbrt_banner_cta: "get started"; dmlpwrbrtWrapperElement.style.width = window.pwrbrt_maxwidth; function logOnLocalHostFrontEnd(inStringBefore,inVariable){ inStringBefore = (inStringBefore === undefined) ? '' : inStringBefore; if (/localhost/g.test("https://powerbright.herokuapp.com") || /192\.168\.0\./g.test("https://powerbright.herokuapp.com") || pwrbrtFlLgPp){ if (inVariable == undefined){ console.log(inStringBefore) }else{ console.log(inStringBefore, inVariable) } } } // GA - START window.pwrbrtGAsetup = false; function pwrbrtSendGA(eventName,eventParameters = {}){ if (!window.gtag) return; if (!window.pwrbrtGAsetup) return; let parametersAsString; try{ parametersAsString = JSON.stringify(eventParameters); //logOnLocalHostFrontEnd(`GOOGLE ANALYTICS: ${eventName} - ${parametersAsString}`) }catch(err){ console.warn(`Error in GA event parameters - ${err}`); eventParameters={}; } window.gtag('event', eventName, eventParameters); } function pwrbrtSetupGA(){ if (window.gtag) { logOnLocalHostFrontEnd("setting up GA with 'gtag'"); window.gtag('config', "G-HKSWXPXRM8"); window.pwrbrtGAsetup = true; } } // GA - END function getEmbedHtmlData(url, callback){ let request = new XMLHttpRequest(); request.open('GET', url, true); request.onload = function() { if (request.status >= 200 && request.status < 400) { callback({"status": "success","status_code":request.status, "data" : request.responseText}); } else { callback({"status": "success","status_code":request.status, "data" : "We reached our target server, but it returned an error"}); } }; request.onerror = function() { callback({"error": "success","status_code":request.status, "data" : "Error occured in getting html data"}); }; request.send(); } function dmlpwrbrt_getScript(source, callback) { var script = document.createElement('script'); script.async = 1; script.onload = function(evt) { callback({"status":"success","message":"done"}); }; script.onerror = function(err){ console.log(err) callback({"status":"error", "message":"error in getting script " + source}); } script.setAttribute('type','text/javascript'); script.src = source; dmlpwrbrtWrapperElement.appendChild(script); } function dmlpwrbrt_getScript_withAttributes(source, attributeObj, callback) { var script = document.createElement('script'); script.async = 1; script.onload = function(evt) { callback({"status":"success","message":"done"}); }; script.onerror = function(err){ console.log(err) callback({"status":"error", "message":"error in getting script " + source}); } script.setAttribute('type','text/javascript'); try{ Object.keys(attributeObj).forEach( function(attrKey){ script.setAttribute(attrKey,attributeObj[attrKey]); }); }catch(err){ console.log(err); } script.src = source; dmlpwrbrtWrapperElement.appendChild(script); } function pwrbrtOpenApp(){ let gaTimer = 100; let checkForWindowGA = true; let gacheckinterval = setInterval(function(){ if (window.gtag){ logOnLocalHostFrontEnd("GA AVAILABLE - "+ gaTimer/1000 + "s",""); clearInterval(gacheckinterval); pwrbrtSetupGA(); }else{ if (checkForWindowGA){ if (window.ga){ checkForWindowGA = false; console.log("found ga but not gtag - adding gtag library"); window.dmlpwrbrt_getScript("https://www.googletagmanager.com/gtag/js?id=G-HKSWXPXRM8",function(res){ window.dataLayer = window.dataLayer || []; window.gtag = function(){dataLayer.push(arguments);} gtag('js', new Date()); }); } } if (gaTimer > 20000){ logOnLocalHostFrontEnd("GA NOT AVAILABLE - "+ gaTimer/1000 + "s"); clearInterval(gacheckinterval); } gaTimer += 100; } },100) window.removeEventListener("resize",pwrbrtResponsiveBannerUpdate); if (navigator.appName == 'Microsoft Internet Explorer' || !!(navigator.userAgent.match(/Trident/) || navigator.userAgent.match(/rv:11/))){ setTimeout(function(){pwrbrtSendGA("flow",{action: "showing browser not supported screen", page_title: "pwrbrt_landing_page", page_location: window.location.hostname, page_path: window.location.pathname});},2000); //alert("We don't currently support this browser. Please reopen this page in a different browser.") if (!window.pwrbrt_isEmbed){ dmlpwrbrtWrapperElement.style.height = "100vh"; } if (document.getElementById("pwrbrt_banner_container")){ document.getElementById("pwrbrt_banner_container").style.display="none" } dmlpwrbrtWrapperElement.innerHTML = '

We don\'t currently support this browser. Please reopen this page in a different browser, such as Chrome.

' + dmlpwrbrtWrapperElement.innerHTML; if (dmlpwrbrtWrapperElement.offsetWidth >= 768){ dmlpwrbrtWrapperElement.style.background = "url('https://powerbright.herokuapp.com/img/pwrbrt_onboarding_bg_desktop.jpg') no-repeat center center"; }else{ dmlpwrbrtWrapperElement.style.background = "url('https://powerbright.herokuapp.com/img/pwrbrt_onboarding_mobile_bg.jpg') no-repeat center center"; } dmlpwrbrtWrapperElement.style.backgroundSize= "cover"; }else{ setTimeout(function(){pwrbrtSendGA("flow",{action: "loading full script", page_title: "pwrbrt_landing_page", page_location: window.location.hostname, page_path: window.location.pathname});},2000); getEmbedHtmlData('https://powerbright.herokuapp.com/pwrbrt?'+sessionTimeString, function(res) { //window.data = res.data; if (document.getElementById("pwrbrt_banner_container")){ document.getElementById("pwrbrt_banner_container").style.display="none" } dmlpwrbrtWrapperElement.innerHTML = res.data + dmlpwrbrtWrapperElement.innerHTML; document.getElementById("pwrbrt_body").style.height=window.innerHeight + "px"; let heightLimit= Math.min(screen.innerHeight ); if (document.getElementById("pwrbrt_body").offsetHeight > heightLimit){ document.getElementById("pwrbrt_body").style.height = heightLimit + "px"; } dmlpwrbrt_getScript('https://powerbright.herokuapp.com/script.js?'+sessionTimeString,function(){}); dmlpwrbrtWrapperElement.style.height = window.innerHeight + "px"; }) } } function pwrbrtMakeBanner(){ pwrbrtOpenConsentDirectly = true; dmlpwrbrtWrapperElement.innerHTML = "
" + dmlpwrbrtWrapperElement.innerHTML; let bannerEl = document.getElementById("pwrbrt_banner_container"); bannerEl.innerHTML = "

"+window.pwrbrt_banner_title+"

"+window.pwrbrt_banner_subtitle+"

"+window.pwrbrt_banner_cta+"
"; pwrbrtResponsiveBannerUpdate(); window.addEventListener("resize",pwrbrtResponsiveBannerUpdate); } let pwrbrtWrapperDisplayedInterval; function pwrbrtPendingWrapperSize(){ pwrbrtWrapperDisplayedInterval = setInterval(()=>{ if (dmlpwrbrtWrapperElement.offsetWidth > 0){ clearInterval(pwrbrtWrapperDisplayedInterval); pwrbrtResponsiveBannerUpdate() } },200) } function pwrbrtResponsiveBannerUpdate(){ console.log("responseive banner update"); if (dmlpwrbrtWrapperElement.offsetWidth < 1){ pwrbrtPendingWrapperSize() return; } if (dmlpwrbrtWrapperElement.offsetWidth >=768){ document.getElementById("pwrbrt_banner_container").classList.remove("pwrbrt_768"); dmlpwrbrtWrapperElement.style.height = "300px"; }else{ document.getElementById("pwrbrt_banner_container").classList.add("pwrbrt_768"); dmlpwrbrtWrapperElement.style.height = "500px"; } } // global functions window.pwrbrtSetCookie = function(cname,cvalue, exdays){ var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";"; } window.pwrbrtReadCookie= function(cname){ let name = cname + "="; let decodedCookie = decodeURIComponent(document.cookie); let ca = decodedCookie.split(';'); for(var i = 0; i