/// <reference path="../cookie/Store.ts" /> /// <reference path="../cookie/ICookieConfigOptions.ts" /> /// <reference path="../util/StringUtils.ts" /> /// <reference path="../debug.ts" /> var econda; (function (econda) { var tracking; (function (tracking) { var CookieStore = econda.cookie.Store; var StringUtils = econda.util.StringUtils; /** * Class to access first party visitor id from econda web tracking. * @class econda.tracking.VisitorId */ var VisitorId = (function () { function VisitorId() { } /** * Get current first party visitor id * @returns {String} */ VisitorId.get = function () { var cookieValue = CookieStore.getValue('emos_jcvid'); if (cookieValue !== null) { return cookieValue.split(':', 2)[0]; } return null; }; /** * Update first party visitor id * @param {String} visitorId new visitor id value */ VisitorId.update = function (visitorId, cookieOptions) { if (cookieOptions === void 0) { cookieOptions = {}; } var cookieConfig = function (config, sessionOnly) { for (var attrname in cookieOptions) { if (sessionOnly == false || attrname != 'expires') { config[attrname] = cookieOptions[attrname]; } } return config; }; if (typeof visitorId !== 'string') { econda.debug.error('Invalid visitor id given in VisitorId::update().'); return; } visitorId = StringUtils.trim(visitorId); // register visitorId as property at emos3 object var emos3 = window['emos3']; if (typeof emos3 === 'object') { emos3.emos_vid = visitorId; } // update visitor cookie var visitorCookieValue = CookieStore.getValue('emos_jcvid'); var newVisitorCookieValue; if (typeof visitorCookieValue === 'string' && visitorCookieValue.indexOf(':') !== -1) { newVisitorCookieValue = visitorId + visitorCookieValue.substring(visitorCookieValue.indexOf(':')); } else { newVisitorCookieValue = visitorId; } CookieStore.set(cookieConfig({ name: 'emos_jcvid', value: newVisitorCookieValue }, false), false); }; return VisitorId; }()); tracking.VisitorId = VisitorId; })(tracking = econda.tracking || (econda.tracking = {})); })(econda || (econda = {}));