smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
1,181 lines (1,095 loc) • 97.4 kB
JavaScript
var key;
var isSubscribed = false;
var optinStatus = "disable";
var host='https://sdk.truepush.com/';
var cdnUrl = 'https://sdkimg.truepush.com/';
var browserData = {"ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36","browser":{"name":"Chrome","version":"78.0.3904.70","major":"78"},"engine":{"name":"Blink"},"os":{"name":"Windows","version":"10"},"device":{},"cpu":{"architecture":"amd64"}};
var subDomainsHost = 'tr1.us';
var fromSubDomain = false;
var subscription;
var EnableHTTPLocalTest = false;
var version = "v2";
var defaultKey="BKShchY7I9trZE-r3asUBs3uxgD-BxZGViDdHDsBBj1IOZN9So7Pu2pgEsveYOYlMeaUMYCKCCSnhy8Mo-C5WsU";
;
var permissionAllowed;
var iFrameReference;
var skipSubscriberReport;
var fromIframe = false ;
var fromWordpress = false;
var subscriberIdCallback;
(function (fileUseName, context, defination) {
'use strict';
context[fileUseName] = new defination();
})('HTTP', this, function () {
'use strict';
var getHttpObject = function () {
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
} else {
return new ActiveXObject("Microsoft.XMLHTTP");
}
};
var prepareHeaders = function (http_object, headers) {
var headers_keys = Object.keys(headers);
for (var index = 0; index < headers_keys.length; ++index) {
var header_key = headers_keys[index];
/*console.log(header_key, headers[header_key]); */
http_object.setRequestHeader(header_key, headers[header_key]);
};
return http_object;
};
this.post = function (url, data, options, done) {
var http = getHttpObject();
http.onreadystatechange = function () {
if (this.readyState == 4) {
if (this.status == 200) {
try {
return done(null, JSON.parse(http.responseText));
} catch (error) {
return done(null, http.responseText);
}
} else {
return done("error", null);
}
}
};
http.open("POST", url, true);
if (options && options.headers) {
http = prepareHeaders(http, options.headers);
}
if (options && options.credentials) {
http.withCredentials = true;
}
http.send(JSON.stringify(data));
};
});
function GetBrowserInfo() {
var nVer=navigator.appVersion;
var nAgt=navigator.userAgent;
var browserName=navigator.appName;
var fullVersion='' + parseFloat(navigator.appVersion);
var majorVersion=parseInt(navigator.appVersion, 10);
var nameOffset, verOffset, ix;
/* In Opera, the true version is after "Opera" or after "Version" */
if(window.navigator.userAgent.indexOf("YaBrowser") > -1)
{
browserName="Yandex";
var res=nAgt.match(/YaBrowser\/(\d.+)/);
if(res[1])
{
fullVersion=res[1];
majorVersion=res[1].split(".")[0];
}
}
else if(window.navigator.userAgent.indexOf("Edge") > -1)
{
browserName="Edge";
var res=nAgt.match(/Edge\/(\d.+)/);
if(res[1])
{
fullVersion=res[1];
majorVersion=res[1].split(".")[0];
}
}
else if ( ((verOffset=nAgt.indexOf("Opera")) != -1) || ((verOffset=nAgt.indexOf("OPR")) != -1)) {
browserName="Opera";
var offLen;
if(nAgt.indexOf("Opera")>=0)
offLen = 6;
else
{
offLen = 4;
}
fullVersion=nAgt.substring(verOffset + offLen);
if ((verOffset=nAgt.indexOf("Version")) != -1)
fullVersion=nAgt.substring(verOffset + 8);
}
else if(nAgt.indexOf("UBrowser") > -1 || nAgt.indexOf("UCBrowser") > -1)
{
browserName="UCBrowser";
var matcStr,regex;
if(nAgt.indexOf("UBrowser")!=-1)
{
regex=/UBrowser\/(\d.+)/;
}
else
{
regex=/UCBrowser\/(\d.+)/;
}
var res=nAgt.match(regex);
if(res[1])
{
fullVersion=res[1];
var arr = res[1].split(".");
majorVersion=parseFloat(arr[0]+"."+arr[1]);
}
}
/* In MSIE, the true version is after "MSIE" in userAgent */
else if ((verOffset=nAgt.indexOf("MSIE")) != -1) {
browserName="Microsoft Internet Explorer";
fullVersion=nAgt.substring(verOffset + 5);
}
/* In Chrome, the true version is after "Chrome" */
else if ((verOffset=nAgt.indexOf("Chrome")) != -1) {
browserName="Chrome";
fullVersion=nAgt.substring(verOffset + 7);
}
/* In Safari, the true version is after "Safari" or after "Version" */
else if ((verOffset=nAgt.indexOf("Safari")) != -1) {
browserName="Safari";
fullVersion=nAgt.substring(verOffset + 7);
if ((verOffset=nAgt.indexOf("Version")) != -1)
fullVersion=nAgt.substring(verOffset + 8);
}
/* In Firefox, the true version is after "Firefox" */
else if ((verOffset=nAgt.indexOf("Firefox")) != -1) {
browserName="Firefox";
fullVersion=nAgt.substring(verOffset + 8);
}
/* In most other browsers, "name/version" is at the end of userAgent */
else if ((nameOffset=nAgt.lastIndexOf(' ') + 1) < (verOffset=nAgt.lastIndexOf('/'))) {
browserName=nAgt.substring(nameOffset, verOffset);
fullVersion=nAgt.substring(verOffset + 1);
if (browserName.toLowerCase() == browserName.toUpperCase()) {
browserName=navigator.appName;
}
}
/* trim the fullVersion string at semicolon/space if present*/
if ((ix=fullVersion.indexOf(";")) != -1)
fullVersion=fullVersion.substring(0, ix);
if ((ix=fullVersion.indexOf(" ")) != -1)
fullVersion=fullVersion.substring(0, ix);
if(browserName!="UCBrowser")
{
majorVersion=parseInt('' + fullVersion, 10);
if (isNaN(majorVersion)) {
fullVersion='' + parseFloat(navigator.appVersion);
majorVersion=parseInt(navigator.appVersion, 10);
}
}
var obj ={
b: browserName,
v: fullVersion,
mv: majorVersion,
an: navigator.appName,
ua: navigator.userAgent
};
if(obj.b === 'Safari')
{
var ind=navigator.userAgent.indexOf("OS X ");
if(ind >= 0)
{
var endInd=navigator.userAgent.indexOf(")",ind);
if(endInd > ind)
obj.os_x=navigator.userAgent.substring(ind+5,endInd).replace(/_/g,".");
}
}
return obj;
}
var desktopAllowedVersions={
chrome: 40,
chromium: 40,
edge: 17,
firefox: 55,
safari: 11.1,
os_x: 10.9,
opera: 37,
yandex: 19
};
var mobileAllowedVersions={
chrome: 40,
firefox: 44,
opera: "all"
/*edge: 17*/
/*ucbrowser:11.8*/
};
function isNotifAllowed() {
return promise=new Promise(function (resolve, reject) {
if(browserData.ua.startsWith("WordPress"))
{
resolve();
}
/* console.log("browser info ", (bInfo)); */
if (CheckBrowserCampatability()) {
isPrivateMode(browserData.browser.name.toLowerCase()).then(function (a) {
resolve();
}).catch(function (err) {
reject("not allowed");
})
} else
{
reject("not allowed");
}
})
}
function CheckBrowserCampatability() {
var browser=browserData.browser.name.toLowerCase();
var isMobile=browserData.ua.indexOf("Mobile") >= 0;
var version=browserData.browser.major;
if (!isMobile) /* desktop*/
{
if(browser === 'safari')
{
if ('safari' in window && 'pushNotification' in window.safari) {
return true;
}
return false;
}
/*console.log("desktopAllowedVersions[browser]", desktopAllowedVersions[browser]);*/
if (desktopAllowedVersions[browser]) {
if (desktopAllowedVersions[browser] === 'all' || desktopAllowedVersions[browser] <= version)
return true;
return false;
}
return false;
}
if (mobileAllowedVersions[browser]) {
if (mobileAllowedVersions[browser] === 'all' || mobileAllowedVersions[browser] <= version)
return true;
return false;
}
return false;
}
function isPrivateMode(browser) {
return promise=new Promise(function (resolve, reject) {
if (browser === 'firefox') {
try {
localStorage.test = 2;
resolve("done!")
} catch (e) {
reject("private browser")
}
} else if (browser === 'safari') {
var storage=window.sessionStorage;
try {
storage.setItem("someKeyHere", "test");
storage.removeItem("someKeyHere");
resolve("done!")
} catch (e) {
if (e.code === DOMException.QUOTA_EXCEEDED_ERR && storage.length === 0) {
// console.log(" private safari");
reject("private browser")
}
}
} else if (browser === 'chrome' || browser === 'opera' || browser === 'chromium') {
var fs= window.RequestFileSystem || window.webkitRequestFileSystem;
if (!fs) {
// console.log("FS check failed..");
reject("private browser")
}
fs(window.TEMPORARY, 100, function (fs) {
resolve("done!")
}, function (err) {
// console.log(" private "+browser);
reject("private browser")
});
}
else if(browser === 'edge')
{
if(!window.indexedDB && (window.PointerEvent || window.MSPointerEvent)){
reject("private browser")
}
else
{
resolve("done!")
}
}
else if(browser === 'ucbrowser')
{
resolve("done!");
}
else if(browser === 'yandex')
{
var fs= window.RequestFileSystem || window.webkitRequestFileSystem;
if (!fs) {
console.log("FS check failed..");
reject("private browser")
}
fs(window.TEMPORARY, 100, function (fs) {
resolve("done!")
}, function (err) {
console.log(" private "+browser);
reject("private browser")
});
}
})
}
(function (fileUseName, context, defination) {
'use strict';
context[fileUseName] = defination;
})('truepushSDK', this, function (platformId) {
function IsBrowserEnabled() {
return "safari" === platformDetails.browserSupport ? "Safari" === browserData.browser.name : "except_safari" === platformDetails.browserSupport ? "Safari" != browserData.browser.name : "all" === platformDetails.browserSupport
}
function urlB64ToUint8Array(e) {
for (var r = (e + "=".repeat((4 - e.length % 4) % 4)).replace(/\-/g, "+").replace(/_/g, "/"), a = atob(r), o = new Uint8Array(a.length), t = 0; t < a.length; ++t) o[t] = a.charCodeAt(t);
return o;
}
function B64toString(array) {
var enc = new TextDecoder("utf-8");
return enc.decode(array);
}
function ConvertToB64SafeUrl(s) {
s = s.split('=')[0];
s = s.replace(/\+/g, '-');
s = s.replace(/\//g, '_');
return s;
}
function CheckForKeys(sub) {
var subscription = JSON.parse(JSON.stringify(sub));
var Obj = {};
if (!subscription.keys) {
subscription.keys = {
auth: ConvertToB64SafeUrl(btoa(String.fromCharCode.apply(null, new Uint8Array(sub.getKey('auth'))))),
p256dh: ConvertToB64SafeUrl(btoa(String.fromCharCode.apply(null, new Uint8Array(sub.getKey('p256dh')))))
}
};
if(subscription){
Obj['endpoint'] = subscription['endpoint'];
Obj['keys'] = {};
Obj['keys']['p256dh'] = subscription['keys']['p256dh'];
Obj['keys']['auth'] = subscription['keys']['auth'];
}
return Obj;
}
function IsGcmSubscription(subscription) {
if (!(subscription && subscription.endpoint && !subscription.endpoint.startsWith("android."))) {
return true;
}
return false;
}
function SaveRequest(e,type) {
var r = host + "api/v1/updateVisit";
if (platformDetails.browserData && platformDetails.browserData.browser && platformDetails.browserData.browser.name === 'Safari') {
var permissionData = window.safari.pushNotification.permission(platformDetails.safariDetails.webPushId);
if (permissionData && permissionData.permission === 'granted' && permissionData.deviceToken) {
e.deviceToken = permissionData.deviceToken;
}
}
if (subscription) {
e.subscription = subscription;
}
if(type== 'optin' || type == 'show'){
var uniqueShow = localStorage.getItem("tp-uniqueShow");
if(!uniqueShow) {
localStorage.setItem("tp-uniqueShow",true);
SaveRequest({
uniqueShow : true
}, "uniqueShow");
}
}
if (navigator.language || navigator.userLanguage && window.truepushSDKInfo.userConsent === "allowed_cookies_personal_data") {
e.language = navigator.language || navigator.userLanguage;
}
if(sdkInformation.userConsent === "allowed_cookies_only")
e.deniedPersonalData = true;
/* if(!e.subscribed)
{
e = SaveRequestsToLocalStorage(e, type);
}*/
SaveRequestsToLocalStorage(e,type,function(error, reqData){
/*if(error)
return error;
data = e, HTTP.post(r, data, {
credentials: !0,
headers: {
"Content-Type": "application/json"
}
}, function (err, r) {
// if(r && r.data && e.visit){
// var head = document.head;
// var img = document.createElement("img");
// img.src = "https://sync.crwdcntrl.net/map/c=14043/tp=WAYO?http://www.kitespixel.com/getId?cid=5&pid=${profile_id}&plid="+r.data;
// img.width = "1";
// img.height = "1";
// head.appendChild(img);
// }
err ? console.log("error occured ", err) : r && "ERROR" == r.status && console.log("error occured ", r)
}) */
})
}
function SaveRequestsToLocalStorage(e, type) {
var currentVisitData = e;
var visitsData = localStorage.getItem("tp-visitsData");
try
{
if(visitsData)
{
visitsData = JSON.parse(visitsData);
}
else
{
visitsData = {};
}
if(visitsData[type] )
{
var count = visitsData[type].count?visitsData[type].count:0;
try{
/* var time = visitsData[type].time;
console.log("found data in ls", count, time, visitsData);*/
visitsData[type] = e;
/*visitsData[type].time = time;
visitsData[type].time.push(Date.now()+timeDiff); */
visitsData[type].count = ++count;
}
catch(er)
{
alert(er)
}
}
else
{
visitsData[type] = e;
/* visitsData[type].time = [Date.now()+timeDiff];*/
visitsData[type].count = 1;
}
localStorage.setItem("tp-visitsData",JSON.stringify(visitsData));
}
catch(error)
{
}
}
function SendRequest(resendData, counter) {
if(counter >= 2)
{
return;
}
var visitData = localStorage.getItem("tp-visitsData");
if(!visitData && !resendData)
{
return;
}
try
{
var r = host + "api/v1/updateVisit";
var dataToSend = [];
if(!resendData)
{
visitData = JSON.parse(visitData);
dataToSend = PrepareRequestData(visitData);
}
else
{
dataToSend = resendData;
}
var params = {
visitsData: dataToSend,
platformId: platformDetails._id
};
if(sdkInformation.userConsent === "allowed_cookies_only")
params.deniedPersonalData = true;
data = params, HTTP.post(r, data, {
credentials: !0,
headers: {
"Content-Type": "application/json"
}
}, function (err, r) {
/* if(r && r.data && e.visit){
var head = document.head;
var img = document.createElement("img");
img.src = "https://sync.crwdcntrl.net/map/c=14043/tp=WAYO?http://www.kitespixel.com/getId?cid=5&pid=${profile_id}&plid="+r.data;
img.width = "1";
img.height = "1";
head.appendChild(img);
}*/
if(err)
{
if(!counter)
{
counter = 0;
}
return SendRequest(dataToSend,++counter);
}
localStorage.removeItem("tp-visitsData");
err ? console.log("error occured ", err) : r && "ERROR" == r.status && console.log("error occured ", r)
})
}
catch(e)
{
alert(e);
}
}
function PrepareRequestData(visitData)
{
var newArray = [];
var keys = Object.keys(visitData);
for(var i=0; i<keys.length; i++)
{
visitData[keys[i]].keyType = keys[i];
newArray.push(visitData[keys[i]]);
}
return newArray;
}
function IsKeyExists(key, object) {
try {
if (object[key])
return true;
return false;
}
catch (e) {
return false;
}
}
function GenerateAltURl(platformDetails) {
var regex;
regex = /((https|http):\/\/)?(www\.)?([\w_\.-]+)(\/?)/;;
var found = regex.exec(platformDetails.websiteURL), subDomainName;
if (found) {
found[4].replace(/\//g, "");
subDomainName = found[4].replace(/\./g, "-");
} else {
subDomainName = null;
}
return "https://" + subDomainName + "." + subDomainsHost;
}
function CheckIfAllowedToAskSafari(platformDetails) {
if (platformDetails.browserSupport === "all") {
if (platformDetails.safariDetails && platformDetails.safariDetails.webPushId) {
return true;
}
console.log("No safari certificate found", platformDetails);
}
else {
console.log("not opted for safari");
}
}
var optinHtmls;
function PrepareOptinHtmls()
{
optinHtmls = {
top_bar: `
<div class="topbar" style="background-color:`+platformDetails.customStyles.barColor+`;color:`+platformDetails.customStyles.textColor+`;top:`+platformDetails.customStyles.top+`px;bottom:`+platformDetails.customStyles.bottom+`px" >
<span>`+platformDetails.customStyles.barText+`</span>
<button onclick="truepush.subscribeUserByTwoWayOptIn('hide')" class="btn-primary pointer" style="background-color:`+platformDetails.customStyles.buttonColor+`; color:`+platformDetails.customStyles.buttonTextColor+`" >`+platformDetails.customStyles.buttonText+`</button>
<strong class="pointer" onclick="truepush.HideOptin('close')">×</strong>
</div>
`,
default2: `
<div class="overlay-tp"></div>
<div class="optin-customization default-optin-tp">
<div class="default-box">
<a href="https://www.truepush.com?medium=tp&source=sfcgvd79i" target="_blank">
<span> Webpush by
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 872.6 872.6" style="enable-background:new 0 0 872.6 872.6;width: 24px;height: 24px;vertical-align: middle;" xml:space="preserve">
<style type="text/css">
.st0{fill:#E54F50;}
.st1{fill:#FFFFFF;}
</style>
<g>
<path id="logo_truepush_1_" class="st0" d="M158.4,111.9h556.8c25.2,0,45.6,20.4,45.6,45.6v556.8c0,25.2-20.4,45.6-45.6,45.6H158.4 c-25.2,0-45.6-20.4-45.6-45.6V157.5C112.8,132.3,133.2,111.9,158.4,111.9z"/>
<g>
<g id="TruePushLogo_2_" transform="translate(120.000000, 187.000000)">
<g id="Shape_20_">
<path class="st1" d="M159.6,105.7c-8.1,0-15.6,3.1-21.3,8.8c-1.9,1.9-3.4,3.9-4.7,6.2c1.3-2.2,2.9-4.2,4.7-6.1 C144,108.9,151.5,105.8,159.6,105.7l72.8,0.1c0,0,0-0.1,0-0.1H159.6z M251.7,100c0,0.1-0.1,0.2-0.1,0.2c-0.2,0.3-0.3,0.7-0.5,1 l0,0c-2.5,5.1-4,10.3-4.6,15.7c0.6-5.3,2.2-10.6,4.7-15.7L251.7,100C251.8,100,251.8,100,251.7,100 C251.8,100,251.8,100,251.7,100z"/>
</g>
<g id="Shape_9_">
<path class="st1" d="M159.6,105.7c-8.1,0-15.6,3.1-21.3,8.8c-1.9,1.9-3.4,3.9-4.7,6.2c1.3-2.2,2.9-4.2,4.7-6.1 C144,108.9,151.5,105.8,159.6,105.7l72.8,0.1c0,0,0-0.1,0-0.1H159.6z M251.7,100c0,0.1-0.1,0.2-0.1,0.2c-0.2,0.3-0.3,0.7-0.5,1 l0,0c-2.5,5.1-4,10.3-4.6,15.7c0.6-5.3,2.2-10.6,4.7-15.7L251.7,100C251.8,100,251.8,100,251.7,100 C251.8,100,251.8,100,251.7,100z"/>
</g>
<g id="Shape_8_">
<polygon class="st1" points="402,165.3 401.9,143.7 402,143.7 "/>
<polygon class="st1" points="364,135.8 363,213.6 363.9,135.8 "/>
</g>
<g id="Shape_7_">
<path class="st1" d="M280,73.9c1.1-0.5,2.2-1,3.3-1.5C282.2,72.8,281,73.3,280,73.9z M159.6,89.7c-12.3,0-23.9,4.8-32.6,13.5 c-2.7,2.7-5,5.7-6.9,9c1.9-3.2,4.3-6.2,7-8.9C135.7,94.5,147.2,89.8,159.6,89.7l79.6,0.1c0,0,0-0.1,0.1-0.1H159.6z"/>
</g>
<g id="Shape_5_">
<path class="st1" d="M251.7,100c0,0.1-0.1,0.2-0.1,0.2C251.7,100.1,251.7,100.1,251.7,100C251.8,100,251.8,100,251.7,100 C251.8,100,251.8,100,251.7,100z M232.4,105.8c-0.7,2.7-1.3,5.4-1.7,8.1C231.1,111.1,231.7,108.4,232.4,105.8L232.4,105.8z M251.7,100c0,0.1-0.1,0.2-0.1,0.2C251.7,100.1,251.7,100.1,251.7,100C251.8,100,251.8,100,251.7,100 C251.8,100,251.8,100,251.7,100z M232.4,105.8c-0.7,2.7-1.3,5.4-1.7,8.1C231.1,111.1,231.7,108.4,232.4,105.8L232.4,105.8z M241.4,86.2c1.5-2.3,3.2-4.5,5-6.5C244.6,81.7,243,83.9,241.4,86.2z M246.5,79.6c1.1-1.3,2.3-2.6,3.5-3.8 C248.8,77.1,247.6,78.3,246.5,79.6z M250,75.8c1.2-1.2,2.5-2.4,3.8-3.6C252.5,73.4,251.2,74.6,250,75.8z M262.2,65.8 c-0.5,0.4-1.1,0.7-1.6,1.1C261.1,66.5,261.6,66.1,262.2,65.8L262.2,65.8z M251.7,100c0,0.1-0.1,0.2-0.1,0.2 C251.7,100.1,251.7,100.1,251.7,100C251.8,100,251.8,100,251.7,100C251.8,100,251.8,100,251.7,100z M232.4,105.8 c-0.7,2.7-1.3,5.4-1.7,8.1C231.1,111.1,231.7,108.4,232.4,105.8L232.4,105.8z M288.1,127.3L288.1,127.3l0-1.1L288.1,127.3z M386,165.6L386,165.6l0,7.9L386,165.6z M232.4,105.8c-0.7,2.7-1.3,5.4-1.7,8.1C231.1,111.1,231.7,108.4,232.4,105.8 L232.4,105.8z M251.7,100c0,0.1-0.1,0.2-0.1,0.2C251.7,100.1,251.7,100.1,251.7,100C251.8,100,251.8,100,251.7,100 C251.8,100,251.8,100,251.7,100z"/>
</g>
<g id="Shape_4_">
<polygon class="st1" points="272.2,126 272.2,135.6 272.1,135.6 272.1,127.3 "/>
<polygon class="st1" points="386.1,173.5 386,165.6 386,165.6 "/>
</g>
<g id="Shape_1_">
<rect x="159.9" y="127.3" class="st1" width="51.5" height="16.4"/>
</g>
<g id="Shape_2_">
<path class="st1" d="M472.9,49.8H160.7c-23,0-44.8,9-61.1,25.2C83.1,91,74.1,112.6,74.1,135.7c0,47.3,38.8,85.8,86.6,85.8h69.9 l0.6,154.8c0.2,39.6,38.7,71.8,85.9,71.8h0.2c47.3-0.2,85.7-32.7,85.6-72.4l-0.6-154.1h70.6c47.8,0,86.6-38.5,86.6-85.8 C559.5,88.3,520.6,49.8,472.9,49.8z M160.7,205.5c-38.9,0-70.6-31.3-70.6-69.8c0-18.7,7.3-36.2,20.7-49.3 c13.4-13.3,31.1-20.6,49.9-20.6h101.5c-0.5,0.4-1.1,0.7-1.6,1.1c0,0-0.1,0.1-0.1,0.1c0,0,0,0,0,0c-0.6,0.4-1.1,0.8-1.7,1.2 c-0.6,0.4-1.1,0.9-1.7,1.3c-0.5,0.4-1.1,0.8-1.6,1.3c-0.6,0.5-1.1,0.9-1.7,1.4c-1.3,1.2-2.6,2.4-3.8,3.6 c-1.2,1.2-2.4,2.5-3.5,3.8c-1.8,2.1-3.5,4.3-5,6.5c-0.4,0.6-0.8,1.1-1.1,1.7c0,0-0.1,0.1-0.1,0.2c-0.3,0.5-0.7,1.1-1,1.6 c0,0,0,0.1-0.1,0.1h-79.6c-12.3,0-23.9,4.8-32.6,13.4c-2.7,2.7-5,5.7-7,8.9c-0.2,0.3-0.4,0.6-0.6,1c-0.2,0.3-0.4,0.6-0.5,1 c0,0,0,0,0,0c-0.3,0.5-0.5,1-0.8,1.5c-0.1,0.2-0.2,0.3-0.2,0.5c-0.1,0.3-0.3,0.5-0.4,0.8c0,0.1-0.1,0.2-0.1,0.3 c-0.2,0.5-0.4,1-0.6,1.4c-0.2,0.5-0.4,1.1-0.6,1.7c0,0,0,0,0,0c-0.1,0.3-0.2,0.7-0.3,1c-0.1,0.3-0.2,0.7-0.3,1 c0,0.1,0,0.1-0.1,0.2c-0.2,0.7-0.4,1.3-0.6,2c-0.1,0.4-0.2,0.8-0.3,1.1c-0.1,0.4-0.2,0.7-0.2,1.1c-0.1,0.7-0.3,1.5-0.4,2.2 c-0.1,0.8-0.2,1.5-0.3,2.3c-0.1,0.8-0.1,1.5-0.2,2.3c0,0.8-0.1,1.5-0.1,2.3c0,25.3,20.6,45.9,46,45.9h149.2v23.9H160.7z M232.4,105.8c-0.7,2.7-1.3,5.4-1.7,8.1c-0.1,0.9-0.2,1.8-0.3,2.7c0,0.5-0.1,1-0.1,1.6c0,0.7-0.1,1.4-0.1,2.1c0,0.7,0,1.3,0,2 l0,5.1l0.1,8.4l0.1,29.9h-70.8c-16.5,0-30-13.4-30-29.9c0-0.2,0-0.5,0-0.7c0-0.2,0-0.5,0-0.7c0-0.1,0-0.2,0-0.3 c0-0.4,0-0.9,0.1-1.3c0-0.4,0.1-0.7,0.1-1.1c0,0,0,0,0-0.1c0-0.3,0.1-0.6,0.1-0.9c0-0.1,0-0.2,0-0.3c0-0.3,0.1-0.6,0.2-0.9 c0-0.2,0.1-0.4,0.1-0.6c0.1-0.3,0.1-0.5,0.2-0.7c0-0.1,0.1-0.3,0.1-0.4c0.1-0.3,0.2-0.6,0.3-0.9c0.1-0.2,0.1-0.4,0.2-0.6 c0.1-0.2,0.1-0.4,0.2-0.6c0.2-0.4,0.3-0.9,0.5-1.3c0,0,0-0.1,0-0.1c0.2-0.4,0.4-0.9,0.6-1.3c0.2-0.4,0.4-0.9,0.7-1.3 c0,0,0,0,0,0c0.2-0.3,0.3-0.6,0.5-1c1.3-2.2,2.8-4.3,4.7-6.2c5.6-5.7,13.2-8.8,21.3-8.8L232.4,105.8 C232.4,105.7,232.4,105.7,232.4,105.8L232.4,105.8z M401.9,143.7h68.9v-16.4h-85l0.3,54.3h0l0.2,31.9l0.6,162.1 c0.1,30.9-31.2,56.2-69.6,56.4H317c-38.4,0-69.7-25-69.9-55.8l-0.6-154.7h24.3l-2,144.1c-0.1,8.4,3.4,16.7,9.8,23.3 c8.7,8.9,21.7,14,35.7,14.1c0.3,0,0.6,0,0.9,0c0.6,0,1.2,0,1.8,0h0.1c0.4,0,0.9,0,1.3-0.1c0.5,0,0.9,0,1.4-0.1 c0.2,0,0.5,0,0.7-0.1c0.6,0,1.2-0.1,1.8-0.2c0.1,0,0.2,0,0.3,0c0.5-0.1,0.9-0.1,1.4-0.2c1.4-0.2,2.9-0.5,4.3-0.8 c0.3,0,0.5-0.1,0.7-0.2c0,0,0,0,0.1,0c0.4-0.1,0.9-0.2,1.3-0.4c0.7-0.2,1.5-0.4,2.2-0.6c0.4-0.1,0.8-0.3,1.1-0.4 s0.7-0.3,1.1-0.4c0.8-0.3,1.5-0.6,2.3-0.9c0.5-0.2,0.9-0.4,1.4-0.6c0.2-0.1,0.4-0.2,0.6-0.3s0.4-0.2,0.6-0.3 c0.3-0.1,0.5-0.2,0.7-0.4c0.5-0.3,1-0.5,1.6-0.8c0.5-0.3,1-0.6,1.5-0.9c1.2-0.8,2.4-1.6,3.6-2.5c0.2-0.2,0.5-0.4,0.7-0.5 c0.5-0.4,0.9-0.7,1.3-1.1c0.6-0.5,1.1-1,1.7-1.5c6.6-6.4,10.2-14.5,10.4-22.9l2.1-153.2l0.9-77.8l0.1-8.5h-16l-1,86l-2.1,153.2 c-0.1,5.3-3,9.2-5.5,11.7c-5.8,5.6-15,8.9-24.8,8.7c-9.7-0.1-18.8-3.6-24.4-9.3c-2.4-2.5-5.3-6.6-5.3-11.9l2-144.3h21.9v135.8 h16V213.5l0-86.2h-16l0,38.3h-21l0.4-29.8v-8.5h0l0-1.1c0-0.7,0.1-1.4,0.2-2.1c0-0.2,0.1-0.5,0.1-0.7 c1.5-7.4,8.8-13.6,18.4-16.3c0.6-0.2,1.2-0.3,1.8-0.5c0.2,0,0.4-0.1,0.6-0.1c0.8-0.2,1.5-0.3,2.3-0.4c2-0.3,4-0.5,6.1-0.5h156.3 c16.5,0,30,13.5,30,30c0,16.5-13.5,29.9-30,29.9h-72v-0.3L401.9,143.7z M386.1,173.5l0-7.9h0L386.1,173.5z M472.9,205.5h-70.6 l-0.1-23.9h72c25.4,0,46-20.6,46-45.9c0-25.4-20.6-46-46-46H317.8c-13.8,0-26.1,4.8-34.4,12.4c-0.2,0.2-0.5,0.4-0.7,0.7 c-3.9,3.8-6.9,8.3-8.7,13.2c-0.1,0.3-0.2,0.6-0.3,0.9c-1,2.9-1.5,6-1.5,9.2v9.6l-0.4,30h-25.4l-0.1-30l-0.1-8.3l0-5.1 c0-0.9,0-1.7,0.1-2.6c0-0.4,0-0.9,0.1-1.3c0-0.4,0.1-0.9,0.1-1.3c0.6-5.3,2.2-10.6,4.6-15.7l0,0c0.2-0.3,0.3-0.7,0.5-1 c0-0.1,0.1-0.2,0.1-0.2c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0l0,0c0,0,0,0,0,0v0c0,0,0,0,0,0s0,0,0,0 c0,0,0,0,0-0.1c0.3-0.5,0.5-0.9,0.8-1.4c0-0.1,0.1-0.1,0.1-0.2c0.3-0.4,0.5-0.8,0.8-1.3c0.7-1.1,1.4-2.2,2.2-3.2 c0.2-0.3,0.4-0.6,0.7-0.9c0.2-0.3,0.5-0.6,0.7-0.9c0.2-0.3,0.5-0.6,0.7-0.9c0.2-0.3,0.5-0.6,0.7-0.9v0c0.2-0.3,0.5-0.6,0.8-0.8 c0.3-0.3,0.5-0.6,0.8-0.8c0.5-0.6,1-1.1,1.6-1.6c0.3-0.3,0.5-0.5,0.8-0.8c0.6-0.5,1.1-1.1,1.7-1.6h0c0.6-0.5,1.2-1,1.8-1.5 c0.3-0.3,0.6-0.5,0.9-0.7c0.3-0.3,0.6-0.5,0.9-0.7c0.3-0.3,0.6-0.5,0.9-0.7c0.3-0.2,0.6-0.5,1-0.7c0.6-0.5,1.3-0.9,2-1.3 c0.7-0.4,1.3-0.9,2-1.3c0.4-0.2,0.8-0.5,1.2-0.7c0.3-0.2,0.6-0.4,0.9-0.5c0.3-0.2,0.7-0.4,1-0.5c0.7-0.4,1.4-0.8,2.1-1.1 c0.4-0.2,0.7-0.4,1.1-0.5c1.1-0.5,2.2-1,3.3-1.5c0.8-0.3,1.5-0.6,2.3-0.9c0.4-0.2,0.8-0.3,1.2-0.4c0,0,0.1,0,0.1,0 c0.3-0.1,0.6-0.2,0.9-0.3c0.1,0,0.1,0,0.2-0.1c0.4-0.1,0.8-0.3,1.2-0.4c0.4-0.1,0.8-0.3,1.2-0.4c0.8-0.3,1.6-0.5,2.4-0.7 c0.4-0.1,0.8-0.2,1.2-0.3c0.8-0.2,1.6-0.4,2.5-0.6c0.4-0.1,0.8-0.2,1.2-0.3c0.4-0.1,0.8-0.2,1.3-0.3c0.3-0.1,0.6-0.1,0.9-0.2 c0.5-0.1,1.1-0.2,1.6-0.3c0.4-0.1,0.9-0.2,1.3-0.2c0.6-0.1,1.1-0.2,1.7-0.3c0.3,0,0.5-0.1,0.8-0.1c0.5-0.1,0.9-0.1,1.4-0.2 c0.9-0.1,1.7-0.2,2.6-0.3c0.5,0,1.1-0.1,1.7-0.1c0.3,0,0.7,0,1-0.1c0.8,0,1.7-0.1,2.5-0.1c0.5,0,0.9,0,1.3,0h157.2 c38.9,0,70.6,31.4,70.6,69.9C543.5,174.1,511.8,205.5,472.9,205.5z"/>
</g>
</g>
</g>
</g>
</svg>
<span style="text-decoration: underline"> Truepush </span> </span>
</a>
</div>
</div>
`,
bell: `
<div class="row mb30">
<div class="bell-circle mb20" onclick="truepush.subscribeUserByTwoWayOptIn()" style="background-color:`+platformDetails.customStyles.circleColor+`">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" width="32px"
heigth="32px">
<g>
<g>
<path d="M405.353,377.987C389.421,354.09,381,326.277,381,297.555V216c0-33.47-13.057-64.915-36.766-88.542
c-20.117-20.048-45.839-32.399-73.623-35.612V61h-30v30.96C178.951,99.654,131,152.956,131,217.194v80.362
c0,28.722-8.421,56.535-24.353,80.432L77.973,421H213.58c6.192,17.458,22.865,30,42.42,30s36.228-12.542,42.42-30h135.607
L405.353,377.987z M133.964,391C151.665,362.989,161,330.775,161,297.555v-80.362c0-52.861,42.466-96.013,94.663-96.193
c0.113,0,0.225,0,0.338,0c25.315,0,49.12,9.833,67.058,27.708C341.077,166.664,351,190.562,351,216v81.556
c0,33.221,9.333,65.433,27.036,93.444H133.964z"
class="bell-color" style="fill:`+platformDetails.customStyles.bellColor+`"/>
</g>
</g>
<g>
<g>
<path d="M469.53,153.469l-21.213,21.213C470.038,196.403,482,225.282,482,256c0,30.044-11.514,58.467-32.419,80.034l21.541,20.881
C497.482,329.72,512,293.881,512,256C512,217.269,496.917,180.856,469.53,153.469z"
class="bell-color" style="fill:`+platformDetails.customStyles.bellColor+`" />
</g>
</g>
<g>
<g>
<path d="M427.104,195.896l-21.213,21.214C416.279,227.497,422,241.308,422,256c0,14.463-5.568,28.12-15.68,38.456l21.445,20.979
C443.394,299.459,452,278.351,452,256C452,233.295,443.158,211.95,427.104,195.896z"
class="bell-color" style="fill:`+platformDetails.customStyles.bellColor+`" />
</g>
</g>
<g>
<g>
<path d="M63.683,174.682L42.47,153.469C15.083,180.856,0,217.269,0,256c0,37.881,14.518,73.72,40.878,100.915l21.541-20.881
C41.514,314.467,30,286.044,30,256C30,225.282,41.962,196.403,63.683,174.682z"
class="bell-color" style="fill:`+platformDetails.customStyles.bellColor+`" />
</g>
</g>
<g>
<g>
<path d="M106.109,217.109l-21.213-21.214C68.842,211.949,60,233.295,60,256c0,22.351,8.606,43.459,24.234,59.435l21.445-20.979
C95.568,284.12,90,270.463,90,256C90,241.309,95.721,227.497,106.109,217.109z"
class="bell-color" style="fill:`+platformDetails.customStyles.bellColor+`" />
</g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g>
</svg>
</div>
</div>
`,
box: `
<div class="tpush-box">
<p class="main-text" style="display:`+(platformDetails.customStyles.visibleStatus?"none":"block")+` !important">`+platformDetails.customStyles.mainText+`</p>
<p class="main-text" style="display:`+(platformDetails.customStyles.visibleStatus?"block":"none")+` !important">Allow updates from `+platformDetails.websiteURL+`</p>
<p class="sub-text">`+platformDetails.customStyles.subText+`</p>
<div>
<button class="not-now" onclick="truepush.HideOptin('close')">`+platformDetails.customStyles.firstBtnText+`</button>
<button class="allow" onclick="truepush.subscribeUserByTwoWayOptIn('hide')">`+platformDetails.customStyles.secondBtnText+`</button>
</div>
<p class="poweredby"><a href="https://www.truepush.com?medium=box&source=af1uqm8di" target="_blank" style="text-decoration: none; color: inherit">Powered by Truepush</a></p>
</div>
`,
box2: `
<div class="header_truepush">
<div class="image">
<img src="`+cdnUrl+`website_icons/`+platformDetails.websiteIcon+`">
</div>
<p style="display:`+(platformDetails.customStyles.visibleStatus?"none":"block")+` !important">`+platformDetails.customStyles.mainText+` </p>
<p style="display:`+(platformDetails.customStyles.visibleStatus?"block":"none")+` !important">Allow updates from `+platformDetails.websiteURL+` </p>
</div>
<div class="buttons">
<button type="button" class="not-now" onclick="truepush.HideOptin('close')">`+platformDetails.customStyles.firstBtnText+`</button>
<button type="button" class="allow" onclick="truepush.subscribeUserByTwoWayOptIn('hide')">`+platformDetails.customStyles.secondBtnText+`</button>
</div>
<p class="poweredby"><a href="https://www.truepush.com?medium=box&source=af1uqm8di" target="_blank" style="text-decoration: none; color: inherit">Powered by Truepush</a></p>
`,
default: `
<button onclick="truepush.HideOptin()">×</button>
<p>Notifications by</p>
<a href="https://www.truepush.com?medium=default&source=rh5bpz549" target="_blank">TruePush</a>
`
}
}
function InsertOptinHtmls(optintype)
{
optintype = (optintype === 'box+')?'box2':optintype;
optintype = (optintype === 'default+')?'default2':optintype;
document.getElementById("jklm-" + optintype).innerHTML = optinHtmls[optintype];
}
function InsertToDOM()
{
try{
PrepareOptinHtmls();
}
catch(E){
alert(E)
}
var div = document.createElement('div');
// let optinClasses = {
// "box" : {
// "iframe" : "optin-box-iframe"
// },
// "box2" : {
// "iframe" : "optin-box-iframe"
// },
// "bell" : {
// "iframe" : "optin-box-iframe"
// },
// "optinbar" : {
// "iframe" : "optin-box-iframe"
// }
// }
/* preparering optin class for iframe */
var optinSuffix = "";
if(!platformDetails.websiteSSL){
// if(optinClasses[platformDetails.optInType] && optinClasses[platformDetails.optInType]['iframe']){
// var optinTypeClass = optinClasses[platformDetails.optInType]["iframe"];
optinSuffix = " optin-iframe";
// }
}
try{
div.innerHTML = `
<div class="optin-types optin-customization">
<!-- Top bar optin -->
<div class="optin-topbar`+optinSuffix+`" id="jklm-top_bar" style='display:none'>
</div>
<!-- Bell optin -->
<div class="optin-bell`+optinSuffix+`" id="jklm-bell" style='display:none' >
</div>
<!-- Simple optin box -->
<div class="optin-box`+optinSuffix+`" id="jklm-box" style='display:none'>
</div>
<!-- End simple optinbox -->
<!-- Optinbox2 -->
<div class="optin-box2`+optinSuffix+`" id="jklm-box2" style='display:none'>
</div>
<!-- End optinbox2 -->
<div class="default-browser-optin`+optinSuffix+`" id="jklm-default2" style='display:none'>
</div>
<div class="default-promo`+optinSuffix+`" id="jklm-default" style='display:none'>
</div>
</div>
`;
}catch(e)
{
console.log("error is ", e);
}
return document.body.appendChild(div);
};
this.subscribeUserByTwoWayOptIn = function(status) {
SaveRequest({
optinClick: !0
}, "optinClick");
if (status) {
truepush.HideOptin();
}
SubscribeUser()
};
function ShowOptin(platformDetails) {
/*if (platformDetails.optInType === 'top_bar' && platformDetails.customStyles.top === 0) {
document.body.className += ' ' + 'top-class';
}*/
localStorage.removeItem('optinShow');
sessionStorage.removeItem('new_session');
if(( !platformDetails.Strip || platformDetails.Strip !=='No') && platformDetails.optInType === 'default')
{
document.getElementById("jklm-" + platformDetails.optInType).style.display = "block";
}
else if(platformDetails.optInType != 'default'){
InsertOptinHtmls(platformDetails.optInType);
var optinType = (platformDetails.optInType === 'box+')?'box2':platformDetails.optInType;
optinType = (optinType === "default+") ? "default2" : optinType;
if(!platformDetails.websiteSSL) iFrameParentReference.postMessage({type: "iframeShow"}, "*");
document.getElementById("jklm-" + optinType).style.display = "block";
setTimeout(function(){
if(!platformDetails.websiteSSL){
var showOptinHeight = {type: "optinHeight"};
showOptinHeight.height = document.getElementById("jklm-" + optinType).clientHeight + 5;
iFrameParentReference.postMessage(showOptinHeight, "*");
}
if(optinType == "default2") {
if((navigator.userAgent.indexOf("Opera") != -1) || (navigator.userAgent.indexOf("OPR") != -1)){
document.getElementById("jklm-" + optinType).className = "default-browser-optin opera-default-optin";
} else if (navigator.userAgent.indexOf("Firefox") != -1){
document.getElementById("jklm-" + optinType).className = "default-browser-optin moz-default-optin";
} else if (navigator.userAgent.indexOf("Edge") != -1){
document.getElementById("jklm-" + optinType).className = "default-browser-optin ie_edge_optin";
}
}
if(optinType === "top_bar"){
if(platformDetails.customStyles.top !== ""){
document.body.style.cssText = 'margin-top:' + document.getElementsByClassName("topbar")[0].clientHeight + "px !important";
} else {
document.getElementsByTagName("html")[0].style.cssText = 'margin-bottom:' + document.getElementsByClassName("topbar")[0].clientHeight + "px !important";
}
}
},500);
}
if(platformDetails.optInType !== 'custom' && platformDetails.optInType !== 'bell' && platformDetails.optInFrequencyType ==='spec_time'){
localStorage.setItem('optinShow',Date.now()+(platformDetails.optInFrequency*60000));
}
else if(platformDetails.optInFrequencyType ==='new_session'){
sessionStorage.setItem('new_session', 'true');
}
};
function ShowDefaultOptin() {
document.getElementById("jklm-default").style.display = "block";
}
this.HideOptin = function(type) {
if (type == "close") {
SaveRequest({
optinIgnore: !0
}, "optinIgnore");
SendRequest();
if(!localStorage.getItem("optinShow") && platformDetails.optInType !== 'custom' && platformDetails.optInType !== 'bell' && platformDetails.optInFrequencyType ==='spec_time'){
localStorage.setItem('optinShow',Date.now()+(platformDetails.optInFrequency*60000));
}
if(platformDetails.optInFrequencyType ==='new_session'){
sessionStorage.setItem('new_session', 'true');
}
}
if (platformDetails.optInType === 'top_bar' && platformDetails.customStyles.top === 0) {
document.body.className = document.body.className.replace("top-class", "");
}
var optinType = (platformDetails.optInType === 'box+')?'box2':platformDetails.optInType;
optinType = (optinType === 'default+')?'default2':optinType;
document.getElementById("jklm-" + optinType).style.display = "none";
if(!platformDetails.websiteSSL) iFrameParentReference.postMessage({type: "hideOptin"}, "*");
};
var requestTimeGap = 15*60;
var serverTime = 1572356259161;
var timeDiff = 1572356259161 - Date.now();
var loadingObject = {
platformDetails : true,
jsFiles: true
};
var defaultPermission = Notification.permission;
var testStr="Testing string";
var webpushId;
var processStarted;
var initialized = false;
var sdkInformation;
var platformDetails;
var tagsToAdd;
var tagsToRemove;
var tagsToGet;
var dataFromParentNotAvailable;
var allowedInBrowser = true;
window.addEventListener("message", receiveMessage, false);
var iFrameParentReference; /* to reference parent element. Used to send subscriberId back to parent in http websites.*/
CheckScriptLocation();
function receiveMessage(event) {
var eventData = event.data;
if(eventData && eventData.optInType)
{
platformDetails = eventData;
if(platformDetails.userConsent) {
if(!sdkInformation) sdkInformation={};
sdkInformation.userConsent = platformDetails.userConsent;
}
if(!processStarted)
{
StartProcess();
}
if(fromSubDomain){
document.getElementById("subDomainTP").innerHTML = " Subscribe to "+platformDetails.websiteURL;
document.getElementById("requestDiv").style.display = "block";
}
processStarted = true;
}
else if(eventData && eventData.type === 'getSubscriberId')
{
GetSubscriberIdHttp(function(response){
response.type = "subscriberId";
iFrameParentReference.postMessage(response, "*");
});
}
else if(eventData && eventData.type === "subscriberId")
{
if(subscriberIdCallback)
{
subscriberIdCallback(eventData.error, eventData.result);
subscriberIdCallback = null;
}
}
else if(eventData && eventData.type === "hideOptin")
{
document.getElementById("tp-iframe").style.display = "none";
}
else if(eventData && eventData.type === "optinHeight")
{
document.getElementById("tp-iframe").style.minHeight = eventData.height +"px";
}
else if(eventData && eventData.type === "iframeShow")
{
document.getElementById("tp-iframe").style.display = "block";
}
}
setTimeout(function(){
if(!processStarted && sdkInformation && (fromSubDomain))
{
dataFromParentNotAvailable = true;
truepush.Init(sdkInformation);
}
},5000);
if(typeof Promise!== 'undefined')
{
if(!fromSubDomain)
{
loadStyle(
'https://sdk.truepush.com/optins/optins.css'
);
}
else
{
LinkLoadedProceed();
}
}
else
{
console.log("browser is not supported");
}
function loadStyle(url)
{
var head = document.head;
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
link.onload = LinkLoadedProceed();
head.appendChild(link);
}
function LinkLoadedProceed()
{
isNotifAllowed().then(function(bdata){
loadingObject.jsFiles = false;
setTimeout(function(){
if(!loadingObject.platformDetails)
{
if(!processStarted && !(fromSubDomain || fromIframe))
{
StartProcess();
processStarted = true;
}
}
},100);
}).catch(function(e){
console.log("not allowed in browser");
allowedInBrowser = false;
try{
document.getElementById('jklm-custom').style.display = "none";
}
catch(e){
}
})
}
var options = {
credentials: true,
headers: {
"Content-Type": "application/json"
}
};
function BeginHTTPSVapid() {
key = urlB64ToUint8Array(platformDetails.vapidDetails.publicKey);
var url = "/sw.js?";
var hash = "/sw.js?"+Math.floor(Date.now()/(10*1000));
var testingUrl = "/sw.js?"+Math.floor(Date.now()/(10*1000));
var scope ={scope: '/'};
if(!navigator || !navigator.serviceWorker) {
return console.log("Push notifications are not working in this browser..because serviceWorker not supported.");
}
var domainUrl = window.location.protocol+"//"+window.location.hostname;
if(window.location.port){
domainUrl = domainUrl + ":" + window.location.port;
}
if(fromSubDomain)
{
hash = "/sw.js?key="+platformDetails._id+"&isAltUrl=true";
testingUrl = "/sub-domain/sw.js?key="+platformDetails._id+"&isAltUrl=true";
}
else if(fromWordpress)
{
hash = "/wp-content/plugins/truepush/sw.php";
testingUrl = hash;
}
else
{
hash = "/"+sdkInformation.serviceWorkerFileName+"?truepush"+Math.floor(Date.now()/(10*1000));
if(sdkInformation.absoluteSWPath){
hash = domainUrl + hash;
scope.scope = domainUrl + '/';
}
testingUrl = hash
}
if(EnableHTTPLocalTest)
{
hash = testingUrl;
scope= null;
}
if(!sdkInformation.scriptRegisterEveryTime && sdkInformation.scriptRegisterEveryTime === false){
console.log("scriptRegisterEveryTime false");
navigator.serviceWorker.getRegistration(domainUrl+'/').then(function (reg) {
if(reg && reg.active && reg.active.scriptURL && reg.active.scriptURL.indexOf("sw.js") > -1){
gettingSubscription(reg);
}
else{
navigator.serviceWorker.register(hash, scope).then(function(reg) {
gettingSubscription(reg);
}).catch(function(error){
console.log("service worker not ready", error);
})
}
});
} else {
// console.log("scriptRegisterEveryTime true");
navigator.serviceWorker.register(hash, scope).then(function(reg) {
gettingSubscription(reg);
}).catch(function(error){
console.log("service worker not ready", error);
})
}
function gettingSubscription(reg) {
if(!fromSubDomain)
{
if(Notification.permission != "granted")
{
RegisterWorkerAndOptin();
}
else{
reg.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: key
}).then(function(sub) {
subscription = CheckForKeys(sub);
skipSubscriberReport = true;
SaveSubscription(subscription, 'update');
}).catch(function(err){
RegisterWorkerAndOptin();
})
}
}
else
{
RegisterWorkerAndOptin();
}
}
}
function RegisterServiceWorker()
{
var hash = "/sw.js?"+Math.floor(Date.now()/(10*1000));
var testingUrl = "/sw.js?"+Math.floor(Date.now()/(10*1000));
navigator.serviceWorker.register(hash).then(function(reg1) {
}).catch(function(err){
})
}
function RegisterWorkerAndOptin()
{
if(Notification.permission === 'granted')
{
permissionAllowed = true;
skipSubscriberReport = true;
if(subscription)
{
SaveSubscription(subscription);
return;
}
return truepush.subscribeUserVapid(true);
}
if(!fromSubDomain)
{
if(Notification.permission==='default' )
{
if(platformDetails.optInType != 'custom')
{
setTimeout(function(){
if(CanShowOptin()){
if(platformDetails.optInType != 'default' )
{
if(platformDetails.optInType === 'default+' && ((platformDetails.optInFrequencyType ==='spec_time' && localStorage.getItem('optinShow') <= Date.now()) || (!sessionStorage.getItem('new_session') && platformDetails.optInFrequencyType ==='new_session') || (platformDetails.optInFrequencyType ==='page_refresh'))){
SaveRequest({