thatpatguy

LB - Mercent

Jul 20th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var m = null;
  2. (function() {
  3.     function K() {
  4.         w = f.mr_isIncomplete || false;
  5.         s = {};
  6.         s.lead = f.mr_trackUnreferredLeadConversions != 0;
  7.         s.order = f.mr_trackUnreferredOrderConversions != 0;
  8.         s.shopper = f.mr_trackUnreferredShopperConversions != 0;
  9.         if (!L || n !== f.location) {
  10.             n = f.location;
  11.             var a = n.protocol,
  12.                 c = (a == "http:" ? "http:" : "https:") + "//link.mercent.com/";
  13.             C = f.mr_cookieDomain;
  14.             D = f.mr_cookiePath || "/";
  15.             var b = void 0;
  16.             if (b == m) b = x.cookie;
  17.             if (b) {
  18.                 b = b.split(/\s*;\s*/);
  19.                 for (var d = {}, e = 0; e < b.length; e++) {
  20.                     var g = b[e].split("=", 2);
  21.                     d[g[0]] = g.length >
  22.                         1 ? g[1] : m
  23.                 }
  24.                 t = d
  25.             } else t = {};
  26.             o = new Date;
  27.             o.setFullYear(o.getFullYear() + 3);
  28.             E = Boolean(a == "http:" || a == "https:");
  29.             F = f.mr_merchantID || "";
  30.             a = void 0;
  31.             if (a == m) a = n.search.substring(1);
  32.             a = a.split("&");
  33.             b = {};
  34.             if (d = f.mr_GetQuerystringValue) {
  35.                 b["mr:ad"] = d("mr:ad");
  36.                 b["mr:referralID"] = d("mr:referralID");
  37.                 b["mr:trackingCode"] = d("mr:trackingCode")
  38.             } else
  39.                 for (d = 0; d < a.length; d++) {
  40.                     e = a[d].split("=", 2);
  41.                     b[G(e[0])] = e.length > 1 ? G(e[1]) : m
  42.                 }
  43.             y = b;
  44.             p = f.mr_SetCookieValue || p;
  45.             M = H();
  46.             z = c + "image.ashx";
  47.             N = c + "redirect.ashx";
  48.             L = true
  49.         }
  50.     }
  51.  
  52.     function A(a) {
  53.         var c = "",
  54.             b = a.hasOwnProperty;
  55.         if (a)
  56.             for (var d in a)
  57.                 if (!b || b.call(a, d)) {
  58.                     var e = a[d];
  59.                     if (e != m && String(e) != "") {
  60.                         if (c != "") c += "&";
  61.                         c = c + d + "=" + escape(e)
  62.                     }
  63.                 }
  64.         return c
  65.     }
  66.  
  67.     function B(a) {
  68.         var c = new Image(1, 1);
  69.         W.push(c);
  70.         c.src = a;
  71.         c.onload = function() {}
  72.     }
  73.  
  74.     function h(a) {
  75.         var c;
  76.         if (typeof a == "number") c = a;
  77.         else {
  78.             a = O(a);
  79.             c = P(a);
  80.             if (isNaN(c)) return a
  81.         }
  82.         a = Math.round(c * 1E4);
  83.         c = a / 1E4;
  84.         return a % 100 == 0 && c.toFixed ? c.toFixed(2) : c.toString()
  85.     }
  86.  
  87.     function Q() {
  88.         var a = new Date;
  89.         return A({
  90.             "br:referer": x.referrer,
  91.             "br:pageUrl": n.pathname,
  92.             "br:dateTime": a.getFullYear() + "-" +
  93.                 u(a.getMonth()) + "-" + u(a.getDate()) + "T" + u(a.getHours()) + ":" + u(a.getMinutes()) + ":" + u(a.getSeconds())
  94.         })
  95.     }
  96.  
  97.     function I() {
  98.         if (q == m) {
  99.             q = t[R];
  100.             if (q == m) q = H();
  101.             p(R, q, o)
  102.         }
  103.         return A({
  104.             "mr:merchantID": F,
  105.             "mr:referralID": v,
  106.             "mr:ticketID": q,
  107.             "mr:batchID": M
  108.         })
  109.     }
  110.  
  111.     function H() {
  112.         var a, c = "",
  113.             b = "",
  114.             d = "",
  115.             e = history,
  116.             g = f.screen,
  117.             j = n.href;
  118.         a = j.slice(-32);
  119.         var k = j.length - 32;
  120.         j = "";
  121.         for (var l = 0; l < k; l++) a += "F";
  122.         for (l = 0; l < a.length; l++) {
  123.             k = a.charAt(l).toUpperCase();
  124.             j += k >= "A" && k <= "F" ? k : a.charCodeAt(l).toString().slice(-1)
  125.         }
  126.         a = j;
  127.         if (g && g.colorDepth) c = g.colorDepth.toString();
  128.         if (e && e.length) b = e.length.toString();
  129.         for (e = 0; e < 32; e++) {
  130.             g = Math.floor(Math.random() * 15);
  131.             j = J(a.charAt(e), 16);
  132.             if (b.length > e) g ^= J(b.charAt(e), 16);
  133.             if (c.length > e) g ^= J(c.charAt(e), 16);
  134.             d += (g ^ j).toString(16);
  135.             if (e == 7 || e == 11 || e == 15 || e == 19) d += "-"
  136.         }
  137.         return d
  138.     }
  139.  
  140.     function u(a) {
  141.         return (a < 0 || a > 9 ? "" : "0") + a
  142.     }
  143.  
  144.     function O(a) {
  145.         if (typeof a != "string") return a;
  146.         return a.replace(/(\,|\s|\$)+/g, "")
  147.     }
  148.  
  149.     function S(a) {
  150.         if (typeof a != "string") return a;
  151.         for (var c = 0, b = a.length; a.charAt(c) == " " && c < b;) c++;
  152.         for (; a.charAt(b - 1) == " " && b > c;) b--;
  153.         return a.substring(c,
  154.             b)
  155.     }
  156.     var q, W = [],
  157.         L = false,
  158.         R = "mr_domainUserTicketID",
  159.         r = [],
  160.         v = "",
  161.         p, T = false,
  162.         U = "",
  163.         C, D, t, o, w, E, F, y, M, z, N, s, x = document,
  164.         f = window,
  165.         n = f.location,
  166.         P = parseFloat,
  167.         J = parseInt,
  168.         V = encodeURIComponent,
  169.         G = decodeURIComponent;
  170.     f.mr_conv = [];
  171.     f.mr_convOrderItem = [];
  172.     f.mr_Track = function() {
  173.         try {
  174.             K();
  175.             if (!(!E || T)) {
  176.                 U = y["mr:trackingCode"];
  177.                 var a = Boolean(U || y["mr:ad"]),
  178.                     c = a,
  179.                     b;
  180.                 if (a) {
  181.                     v = H();
  182.                     var d = n.href;
  183.                     a = {};
  184.                     a[0] = d.substring(0, d.indexOf("?"));
  185.                     a[1] = d.substring(d.indexOf("?") + 1);
  186.                     var e = a[0],
  187.                         g = a[1].split("#", 2),
  188.                         j = g.length > 1 ? g[1] : "",
  189.                         k = g[0].split("&");
  190.                     d = "?";
  191.                     g = "";
  192.                     for (a = 0; a < k.length; a++) switch (G(k[a].split("=")[0]).toLowerCase()) {
  193.                         case "mr:trackingcode":
  194.                         case "gantrackingid":
  195.                         case "mr:adgroup":
  196.                         case "mr:ad":
  197.                         case "mr:keyword":
  198.                         case "mr:placement":
  199.                         case "mr:match":
  200.                             g += "&" + k[a];
  201.                             break;
  202.                         default:
  203.                             e += d + k[a];
  204.                             if (d == "?") d = "&"
  205.                     }
  206.                     if (j) e += "#" + j;
  207.                     var l = V(e),
  208.                         X = V(x.referrer);
  209.                     B(N + "?mr:referralID=" + v + "&mr:merchantID=" + F + g + "&mr:targetUrl=" + l + "&br:referer=" + X)
  210.                 } else {
  211.                     v = y["mr:referralID"];
  212.                     c = Boolean(v)
  213.                 } if (c) {
  214.                     b = 1;
  215.                     p("mr_referredVisitor", b, o);
  216.                     var Y = z + "?" + I() + "&" + Q();
  217.                     B(Y)
  218.                 } else {
  219.                     b = t.mr_referredVisitor;
  220.                     if (b != 1) {
  221.                         b = 0;
  222.                         p("mr_referredVisitor", b, o)
  223.                     }
  224.                 }
  225.                 T = true
  226.             }
  227.         } catch (Z) {}
  228.     };
  229.     f.mr_addConvOrderItem = function() {
  230.         var a = f.mr_convOrderItem;
  231.         f.mr_convOrderItem = [];
  232.         if (a) {
  233.             var c = S(a.sku),
  234.                 b = S(a.qty),
  235.                 d = h(a.extPrice);
  236.             if (!(!(c && b && d) || isNaN(b) || isNaN(d))) {
  237.                 a.sku = c;
  238.                 a.qty = b;
  239.                 a.extPrice = d;
  240.                 r.push(a)
  241.             }
  242.         }
  243.     };
  244.     f.mr_sendConversion = function() {
  245.         K();
  246.         if (E) {
  247.             var a = f.mr_conv,
  248.                 c = a.type,
  249.                 b = {};
  250.             if (!(c != "shopper" && c != "lead" && c != "order"))
  251.                 if (!((t.mr_referredVisitor || 0) != 1 && !s[c])) {
  252.                     var d = "";
  253.                     if (c == "lead") b["c:amount"] = h(a.amount);
  254.                     else if (c == "order") {
  255.                         var e = P(O(a.discount));
  256.                         if (isNaN(e)) e = 0;
  257.                         else if (e > 0) e *= -1;
  258.                         b["c:amount"] = h(a.amount);
  259.                         b["c:shipping"] = h(a.shipping);
  260.                         b["c:tax"] = h(a.tax);
  261.                         b["c:discount"] = h(e);
  262.                         b["c:postalCode"] = a.postalCode;
  263.                         b["c:countryCode"] = a.countryCode;
  264.                         b["c:itemCount"] = r.length;
  265.                         b["c:isIncomplete"] = w
  266.                     }
  267.                     b["c:type"] = c;
  268.                     b["c:id"] = a.id;
  269.                     b["c:customerId"] = a.customerId;
  270.                     d = A(b);
  271.                     b = z + "?" + I() + "&" + Q() + "&" + d;
  272.                     B(b);
  273.                     if (r)
  274.                         for (i = 0; i < r.length; i++) {
  275.                             d = r[i];
  276.                             b = {};
  277.                             b["c:type"] = c;
  278.                             b["c:id"] = a.id || "";
  279.                             b["ci:sku"] = d.sku;
  280.                             b["ci:title"] = d.title || "";
  281.                             b["ci:url"] = d.url || "";
  282.                             b["ci:qty"] = d.qty;
  283.                             b["ci:extPrice"] =
  284.                                 d.extPrice;
  285.                             b["ci:seqNumber"] = i;
  286.                             b["c:amount"] = h(a.amount);
  287.                             b["c:shipping"] = h(a.shipping);
  288.                             b["c:tax"] = h(a.tax);
  289.                             b["c:discount"] = h(e);
  290.                             b["c:itemCount"] = r.length;
  291.                             if (w) b["c:isIncomplete"] = w;
  292.                             b = z + "?" + I() + "&" + A(b);
  293.                             B(b)
  294.                         }
  295.                 }
  296.         }
  297.     };
  298.     p = function(a, c, b) {
  299.         a = a + "=" + c + "; expires=" + (b.toUTCString || b.toGMTString).call(b);
  300.         if (D) a = a + "; path=" + D;
  301.         if (C) a = a + "; domain=" + C;
  302.         x.cookie = a
  303.     }
  304. })();
Advertisement
Add Comment
Please, Sign In to add comment