///<reference path="./IEmosGlobalConfig.ts" />
/// <reference path="../cookie/Store.ts" />
var econda;
(function (econda) {
var tracking;
(function (tracking) {
var CookieStore = econda.cookie.Store;
var EmosConfig = (function () {
function EmosConfig(globalConfigProperties) {
this.globalConfigProperties = globalConfigProperties;
for (var attrname in globalConfigProperties) {
this[attrname] = globalConfigProperties[attrname];
}
}
EmosConfig.prototype.getPidIndex = function () {
return this.PRODUCT_ID_IN_EC_EVENT;
};
/**
* Visitor Id cookie lifetime in days
* @returns {number}
*/
EmosConfig.prototype.getClientCookieLifetime = function () {
return this.CLIENT_COOKIE_LIFETIME;
};
EmosConfig.prototype.getCookieDomain = function () {
return this.globalConfigProperties.COOKIE_DOMAIN
|| this.getDefaultCookieDomainFor(window.location.hostname);
};
EmosConfig.prototype.getDefaultCookieDomainFor = function (domainName) {
var domainAr = domainName.split('.');
var topLevelDomain = domainAr[domainAr.length - 1];
var secondLevelDomain = domainAr[domainAr.length - 2];
var anz = (topLevelDomain == 'uk' || topLevelDomain == 'tr' || topLevelDomain == 'br' || (topLevelDomain == 'at' && secondLevelDomain == 'co') || (topLevelDomain == 'jp' && (secondLevelDomain == 'co' || secondLevelDomain == 'ac' || secondLevelDomain == 'go' || secondLevelDomain == 'ne' || secondLevelDomain == 'or'))) ? 3 : 2;
var defaultDomain;
if (isNaN(parseInt(topLevelDomain, 10)) && domainAr.length >= anz) {
defaultDomain = '';
for (var i = domainAr.length - anz; i < domainAr.length; i++) {
defaultDomain += ('.' + domainAr[i]);
}
}
else {
defaultDomain = domainName;
}
return defaultDomain;
};
EmosConfig.prototype.doNotTrack = function () {
if (window.emosDoNotTrack) {
return true;
}
if (this.DO_NOT_TRACK) {
return true;
}
if (this.COOKIE_DNT) {
var value = CookieStore.getValue(this.COOKIE_DNT);
if (value === "1") {
return true;
}
}
return false;
};
EmosConfig.prototype.isTrackThirdParty = function () {
return typeof this.TRACK_THIRD_PARTY == 'undefined' || this.TRACK_THIRD_PARTY == true;
};
EmosConfig.prototype.isSyncCacheId = function () {
return this.JSID == true;
};
return EmosConfig;
}());
tracking.EmosConfig = EmosConfig;
})(tracking = econda.tracking || (econda.tracking = {}));
})(econda || (econda = {}));