thatpatguy

LB - Demandware Analytics

Jul 20th, 2016
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * dwAnalytics - Web Analytics Tracking
  3.  * Based partially on Piwik
  4.  *
  5.  * @link http://piwik.org
  6.  * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later
  7.  */
  8. if (typeof dw == "undefined") {
  9.     var dw = {};
  10. }
  11. if (typeof dw.__dwAnalyticsLoaded == "undefined") {
  12.     dw.__dwAnalyticsLoaded = true;
  13.     dw.__dwAnalytics = function() {
  14.         var H = 2000;
  15.         var A, D = {}, C = document,
  16.             B = navigator,
  17.             E = screen,
  18.             I = window,
  19.             F = I.location.hostname;
  20.  
  21.         function J(K) {
  22.             return typeof K !== "undefined";
  23.         }
  24.  
  25.         function G(R, e) {
  26.             var L = R + "?" || "?",
  27.                 a, U = C.title,
  28.                 g = "0",
  29.                 h, P = {
  30.                     pdf: ["pdf", "application/pdf", "0"],
  31.                     quicktime: ["qt", "video/quicktime", "0"],
  32.                     realplayer: ["realp", "audio/x-pn-realaudio-plugin", "0"],
  33.                     wma: ["wma", "application/x-mplayer2", "0"],
  34.                     director: ["dir", "application/x-director", "0"],
  35.                     flash: ["fla", "application/x-shockwave-flash", "0"],
  36.                     java: ["java", "application/x-java-vm", "0"],
  37.                     gears: ["gears", "application/x-googlegears", "0"],
  38.                     silverlight: ["ag", "application/x-silverlight", "0"]
  39.                 }, X = false,
  40.                 Y = I.encodeURIComponent || escape,
  41.                 M = I.decodeURIComponent || unescape,
  42.                 b = {};
  43.  
  44.             function Z(o, l, j, n, k, m) {
  45.                 var i;
  46.                 if (j) {
  47.                     i = new Date();
  48.                     i.setTime(i.getTime() + j * 86400000);
  49.                 }
  50.                 C.cookie = o + "=" + Y(l) + (j ? ";expires=" + i.toGMTString() : "") + ";path=" + (n ? n : "/") + (k ? ";domain=" + k : "") + (m ? ";secure" : "");
  51.             }
  52.  
  53.             function f(k) {
  54.                 var i = new RegExp("(^|;)[ ]*" + k + "=([^;]*)"),
  55.                     j = i.exec(C.cookie);
  56.                 return j ? M(j[2]) : 0;
  57.             }
  58.  
  59.             function K(i) {
  60.                 dw.__timeoutCallback = function() {
  61.                     for (var j = 0; j < i.length; j++) {
  62.                         var k = new Image(1, 1);
  63.                         k.onLoad = function() {};
  64.                         k.src = i[j];
  65.                     }
  66.                 };
  67.                 setTimeout("dw.__timeoutCallback()", 100);
  68.             }
  69.  
  70.             function V() {
  71.                 var j, k;
  72.                 if (typeof B.javaEnabled !== "undefined" && B.javaEnabled()) {
  73.                     P.java[2] = "1";
  74.                 }
  75.                 if (typeof I.GearsFactory === "function") {
  76.                     P.gears[2] = "1";
  77.                 }
  78.                 if (B.mimeTypes && B.mimeTypes.length) {
  79.                     for (j in P) {
  80.                         k = B.mimeTypes[P[j][1]];
  81.                         if (k && k.enabledPlugin) {
  82.                             P[j][2] = "1";
  83.                         }
  84.                     }
  85.                 }
  86.             }
  87.  
  88.             function O() {
  89.                 var i = "";
  90.                 try {
  91.                     i = top.document.referrer;
  92.                 } catch (k) {
  93.                     if (parent) {
  94.                         try {
  95.                             i = parent.document.referrer;
  96.                         } catch (j) {
  97.                             i = "";
  98.                         }
  99.                     }
  100.                 }
  101.                 if (i === "") {
  102.                     i = C.referrer;
  103.                 }
  104.                 return i;
  105.             }
  106.  
  107.             function T() {
  108.                 var i = "_pk_testcookie";
  109.                 if (!J(B.cookieEnabled)) {
  110.                     Z(i, "1");
  111.                     return f(i) == "1" ? "1" : "0";
  112.                 }
  113.                 return B.cookieEnabled ? "1" : "0";
  114.             }
  115.  
  116.             function W(j, p, n) {
  117.                 var q = Math.random();
  118.                 var l = d(j, p, n, q);
  119.                 if (p != null && p.debugEnabled) {
  120.                     var o = "";
  121.                     for (var k = 0; k < l.length; k++) {
  122.                         o += l[k][0] + '"=' + l[k][1] + '"\n';
  123.                     }
  124.                     alert(o);
  125.                 }
  126.                 var m = N(j, L, l, q);
  127.                 K(m);
  128.             }
  129.             h = O();
  130.             g = T();
  131.             V();
  132.             return {
  133.                 trackPageView: function(i) {
  134.                     W(null, null, i);
  135.                 },
  136.                 trackPageViewWithProducts: function(i, k, j) {
  137.                     W(i, k, j);
  138.                 }
  139.             };
  140.  
  141.             function Q(i, k) {
  142.                 var j = k.charAt(k.length - 1) == "?" ? "" : "&";
  143.                 return k + j + i[0] + "=" + i[1];
  144.             }
  145.  
  146.             function c(i) {
  147.                 return i[0].length + i[1].length + 2;
  148.             }
  149.  
  150.             function d(i, m, l, n) {
  151.                 var k = [
  152.                     ["url", Y(J(a) ? a : C.location.href)],
  153.                     ["res", E.width + "x" + E.height],
  154.                     ["cookie", g],
  155.                     ["ref", Y(h)],
  156.                     ["title", Y(J(l) && l != null ? l : U)]
  157.                 ];
  158.                 for (var j in P) {
  159.                     k.push([P[j][0], P[j][2]]);
  160.                 }
  161.                 if (i != null && i.dwEnabled) {
  162.                     k.push(["dwac", n]);
  163.                     k.push(["cmpn", i.sourceCode]);
  164.                     k.push(["tz", i.timeZone]);
  165.                     i.category = m.pageInfo.category;
  166.                     S(i, m, k);
  167.                 }
  168.                 return k;
  169.             }
  170.  
  171.             function S(t, l, s) {
  172.                 s.push(["pcc", t.siteCurrency]);
  173.                 s.push(["pct", t.customer]);
  174.                 s.push(["pcat", l.pageInfo.category]);
  175.                 var r = l.productImpressions.getEntries();
  176.                 var p = l.productRecommendations.getEntries();
  177.                 var m = l.productViews.getEntries();
  178.                 var u = 0;
  179.                 for (var q = 0; q < r.length; q++) {
  180.                     s.push([("pid-" + u), r[q].value.id]);
  181.                     s.push([("pev-" + u), "event3"]);
  182.                     u++;
  183.                 }
  184.                 for (var o = 0; o < p.length; o++) {
  185.                     s.push([("pid-" + u), p[o].value.id]);
  186.                     s.push([("pev-" + u), "event3"]);
  187.                     s.push([("evr4-" + u), "Yes"]);
  188.                     u++;
  189.                 }
  190.                 for (var n = 0; n < m.length; n++) {
  191.                     s.push([("pid-" + u), m[n].value.id]);
  192.                     s.push([("pev-" + u), "event4"]);
  193.                     u++;
  194.                 }
  195.             }
  196.  
  197.             function N(o, n, m, j) {
  198.                 var q = [];
  199.                 var k = n;
  200.                 for (var l = 0; l < m.length; l++) {
  201.                     var p = (m[l][0].slice(0, "pid-".length) == "pid-") && (c(m[l]) + ((l + 1) < m.length ? c(m[l + 1]) : 0) + ((l + 2) < m.length ? c(m[l + 2]) : 0) + k.length > H);
  202.                     var r = (m[l][0].slice(0, "pid-".length) != "pid-") && (c(m[l]) + k.length > H);
  203.                     if (p || r) {
  204.                         q.push(k);
  205.                         k = Q(["dwac", j], n);
  206.                         if (o != null && o.dwEnabled) {
  207.                             k = Q(["cmpn", o.sourceCode], k);
  208.                             k = Q(["tz", o.timeZone], k);
  209.                             k = Q(["pcc", o.siteCurrency], k);
  210.                             k = Q(["pct", o.customer], k);
  211.                             k = Q(["pcat", o.category], k);
  212.                         }
  213.                     }
  214.                     k = Q(m[l], k);
  215.                 }
  216.                 q.push(k);
  217.                 return q;
  218.             }
  219.         }
  220.         return {
  221.             getTracker: function(K) {
  222.                 return new G(K);
  223.             }
  224.         };
  225.     }();
  226. }
Advertisement
Add Comment
Please, Sign In to add comment