cookies-plugin.js
4.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// _satellite.pushBlockingScript(function(event, target, $variables){
(function(){
window.lwAnalytics = window.lwAnalytics || {};
//cookiePlugin
(function(d,f){"use strict";var h=function(d){if("object"!==typeof d.document)throw Error("Cookies.js requires a `window` with a `document` object");var b=function(a,e,c){return 1===arguments.length?b.get(a):b.set(a,e,c)};b._document=d.document;b._cacheKeyPrefix="cookey.";b._maxExpireDate=new Date("Fri, 31 Dec 9999 23:59:59 UTC");b.defaults={path:"/",secure:!1};b.get=function(a){b._cachedDocumentCookie!==b._document.cookie&&b._renewCache();a=b._cache[b._cacheKeyPrefix+a];return a===f?f:decodeURIComponent(a)};
b.set=function(a,e,c){c=b._getExtendedOptions(c);c.expires=b._getExpiresDate(e===f?-1:c.expires);b._document.cookie=b._generateCookieString(a,e,c);return b};b.expire=function(a,e){return b.set(a,f,e)};b._getExtendedOptions=function(a){return{path:a&&a.path||b.defaults.path,domain:a&&a.domain||b.defaults.domain,expires:a&&a.expires||b.defaults.expires,secure:a&&a.secure!==f?a.secure:b.defaults.secure}};b._isValidDate=function(a){return"[object Date]"===Object.prototype.toString.call(a)&&!isNaN(a.getTime())};
b._getExpiresDate=function(a,e){e=e||new Date;"number"===typeof a?a=Infinity===a?b._maxExpireDate:new Date(e.getTime()+1E3*a):"string"===typeof a&&(a=new Date(a));if(a&&!b._isValidDate(a))throw Error("`expires` parameter cannot be converted to a valid Date instance");return a};b._generateCookieString=function(a,b,c){a=a.replace(/[^#$&+\^`|]/g,encodeURIComponent);a=a.replace(/\(/g,"%28").replace(/\)/g,"%29");b=(b+"").replace(/[^!#$&-+\--:<-\[\]-~]/g,encodeURIComponent);c=c||{};a=a+"="+b+(c.path?";path="+
c.path:"");a+=c.domain?";domain="+c.domain:"";a+=c.expires?";expires="+c.expires.toUTCString():"";return a+=c.secure?";secure":""};b._getCacheFromString=function(a){var e={};a=a?a.split("; "):[];for(var c=0;c<a.length;c++){var d=b._getKeyValuePairFromCookieString(a[c]);e[b._cacheKeyPrefix+d.key]===f&&(e[b._cacheKeyPrefix+d.key]=d.value)}return e};b._getKeyValuePairFromCookieString=function(a){var b=a.indexOf("="),b=0>b?a.length:b,c=a.substr(0,b),d;try{d=decodeURIComponent(c)}catch(k){console&&"function"===
typeof console.error&&console.error('Could not decode cookie with key "'+c+'"',k)}return{key:d,value:a.substr(b+1)}};b._renewCache=function(){b._cache=b._getCacheFromString(b._document.cookie);b._cachedDocumentCookie=b._document.cookie};b._areEnabled=function(){var a="1"===b.set("cookies.js",1).get("cookies.js");b.expire("cookies.js");return a};b.enabled=b._areEnabled();return b},g=d&&"object"===typeof d.document?h(d):h;"function"===typeof define&&define.amd?define(function(){return g}):"object"===
typeof exports?("object"===typeof module&&"object"===typeof module.exports&&(exports=module.exports=g),exports.Cookies=g):d.Cookies=g})("undefined"===typeof window?this:window);
Cookies.defaults = {
path: '/',
expires: 1800
};
//setPreviousPageName
if (typeof(_satellite) !== "undefined") {
var prevPageName = Cookies.get('pagename'),
currentPageName = _satellite.getVar('content:page name');
Cookies.set('prevpagename',prevPageName);
Cookies.set('pagename',currentPageName);
}
//setScrollPosition
window.lwAnalytics.updateScrollPos = function () {
try {
var s = $(window).scrollTop(),
d = $(document).height(),
c = $(window).height(),
scrollPercent = 0,
prevScrollPercent = Cookies.get('scrollPercentage') || 0;
scrollPercent = Math.round((s + c) * 100 / d);
if (scrollPercent > 100) {
scrollPercent = 100;
}
Cookies.set('scrollPercentage', Math.max(scrollPercent, prevScrollPercent));
} catch (err) {
}
}
$(document).on('scroll', window.lwAnalytics.updateScrollPos);
try {
var prevScrollPercent = Cookies.get('scrollPercentage');
Cookies.set('prevScrollPercentage', prevScrollPercent);
Cookies.set('scrollPercentage', 0);
} catch (err) {}
//setPreviousPageTime
try {
var time = Cookies.get('starttime');
if (time) {
Cookies.set('prevpagetime', Math.round((Date.now() - time) / 1000));
}
} catch (err) {}
// Set Start
try {
window.setTimeout(window.lwAnalytics.updateScrollPos, 1000);
} catch (err) {}
try {
Cookies.set('starttime', Date.now());
} catch (err) {}
})();