Created
December 4, 2013 21:56
-
-
Save colinhicks/7796315 to your computer and use it in GitHub Desktop.
outbrain.deob.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| window.OB_releaseVer = "131699"; | |
| OBR = window.OBR || {}; | |
| OBR.i = OBR.i || []; | |
| OBR.na = OBR.na || {}; | |
| window.OBR$ = function(d) { | |
| return document.getElementById(d) | |
| }; | |
| OBR.c = OBR.c || function() { | |
| var d = {}, a = { | |
| F: function() { | |
| return d | |
| }, | |
| j: function(a) { | |
| d.S = a; | |
| d.la = []; | |
| d.startTime = (new Date).getTime() | |
| }, | |
| startTime: function() { | |
| return d.startTime | |
| }, | |
| log: function(a) { | |
| var e = ((new Date).getTime() - d.startTime) / 1E3; | |
| 1E3 > d.la.length && d.la.push(e + " >" + a) | |
| console.log(a); | |
| }, | |
| printLog: function() { | |
| if (d.S.b.cf) window.console.log(d.la.join("\n")); | |
| else { | |
| var a = d.S.a.Aa(); | |
| a && (a.innerHTML = d.la.join("<br>"), a.style.display = "block") | |
| } | |
| return d.la.join("\n") | |
| } | |
| }; | |
| a.j(OBR); | |
| return a | |
| }(); | |
| OBR.printLog = OBR.c.printLog; | |
| OBR.o = function() { | |
| this.C = [] | |
| }; | |
| OBR.o.prototype.add = function(d, a) { | |
| var c; | |
| "string" === typeof d && "function" === typeof a && (c = {}, c.name = d, c.ue = a, this.C.push(c)) | |
| }; | |
| OBR.o.prototype.Bb = function(d) { | |
| var a, c; | |
| OBR.c.log("remove event :" + d); | |
| a = 0; | |
| for (c = this.C.length; a < c; a += 1) | |
| if (this.C[a] && this.C[a].name && this.C[a].name === d) try { | |
| this.C.splice(a, 1) | |
| } catch (e) { | |
| OBR.c.log("rm evnt err: " + e) | |
| } | |
| }; | |
| OBR.o.prototype.k = function(d, a, c) { | |
| var e, b, g, f; | |
| a = a || []; | |
| c = !! c; | |
| OBR.c.log("event fire:" + d); | |
| e = 0; | |
| for (b = this.C.length; e < b; e += 1) | |
| if (g = this.C[e].name || "", f = this.C[e].ue, g === d) try { | |
| f.apply(this, a) | |
| } catch (k) { | |
| OBR.c.log("fire evnt *" + d + "* error: " + k) | |
| }!0 === c && this.Bb(d) | |
| }; | |
| OBR.o.prototype.N = function() { | |
| this.C = [] | |
| }; | |
| OBR.a = OBR.a || function() { | |
| var d = {}, a = {}, c = document, | |
| e = OBR; | |
| a.F = function() { | |
| d.S = e; | |
| return d | |
| }; | |
| a.j = function(b) { | |
| e = b | |
| }; | |
| a.$ = function() { | |
| return function() {} | |
| }; | |
| a.Se = function() { | |
| var b = window.jQuery; | |
| return void 0 !== b ? !(/1\.(0|1|2|3|4)\.(0|1)/.test(b.fn.jquery) || /^1\.1/.test(b.fn.jquery) || /^1\.2/.test(b.fn.jquery) || /^1\.3/.test(b.fn.jquery)) : !1 | |
| }; | |
| a.U = function(b) { | |
| return null === b || isNaN(b) ? null : e.n("outbrain_widget_" + b) | |
| }; | |
| a.Aa = function() { | |
| return e.n("ob_holder") | |
| }; | |
| a.nb = function() { | |
| if (!e.n(e.b.Ia)) { | |
| var b = e.a.createElement("iframe", | |
| e.b.Ia), | |
| g = b.style; | |
| g.display = "none"; | |
| g.width = "1px"; | |
| g.height = "1px"; | |
| b.src = "about:blank"; | |
| (g = a.Aa()) || (g = a.ic()); | |
| e.a.mb(b, g) | |
| } | |
| }; | |
| a.ic = function() { | |
| if (c.body) return c.body; | |
| var b; | |
| b = e.a.za("", "", "body", !0); | |
| return 0 >= b.length ? c.lastChild : b[0] | |
| }; | |
| a.createElement = function(b, a, f) { | |
| b = c.createElement(b); | |
| "string" === typeof a && b.setAttribute("id", a); | |
| "string" === typeof f && (b.style.cssText = f); | |
| return b | |
| }; | |
| a.lb = function(b) { | |
| if (e.b.Nd === e.b.Nb) try { | |
| document.createStyleSheet().cssText = b | |
| } catch (a) {} else { | |
| var f = c.createElement("style"), | |
| d = c.body ? "string" === typeof c.body.style.WebkitAppearance : !1; | |
| f.type = "text/css"; | |
| c.getElementsByTagName("head")[0].appendChild(f); | |
| f[d ? "innerText" : "innerHTML"] = b | |
| } | |
| }; | |
| a.B = function(b, a) { | |
| var f = c.createElement("script"); | |
| f.type = e.b.uf; | |
| f.src = b; | |
| f.async = !! a; | |
| f.defer = !1; | |
| return f | |
| }; | |
| a.Zg = function(b, a) { | |
| var f = e.a.createElement("link", b); | |
| f.setAttribute("rel", "stylesheet"); | |
| f.setAttribute("type", e.b.ee); | |
| a && f.setAttribute("href", a); | |
| return f | |
| }; | |
| a.Wd = function(b) { | |
| var a = e.n("ob_iframe"); | |
| a && (a.src = b) | |
| }; | |
| a.Qc = function() { | |
| var b; | |
| b = isNaN(b) ? | |
| 1E5 : b; | |
| return Math.floor(Math.random() * b) | |
| }; | |
| a.eg = function(b, a, f) { | |
| return b.replace(a, f) | |
| }; | |
| a.Ie = function(b, a) { | |
| var f = []; | |
| f.push('<body onload="'); | |
| f.push("var js = document.createElement('script');"); | |
| f.push("js.src = '" + b + "';"); | |
| "number" === typeof a && f.push("js.onerror = function(){ top.OBR.extern.errorInjectionHandler(" + a + ") };"); | |
| f.push("var d = document;d.getElementsByTagName('head')[0].appendChild(js);\">"); | |
| f.push("<script type='text/javascript'>"); | |
| f.push("window.OBR={extern:{}};"); | |
| f.push("OBR.extern.returnedHtmlData=function(json,idx){(top.OBR.extern.returnedHtmlData)&& top.OBR.extern.returnedHtmlData(json,idx); };"); | |
| f.push("OBR.extern.returnedIrdData=function(json,idx){(top.OBR.extern.returnedIrdData)&& top.OBR.extern.returnedIrdData (json,idx);};"); | |
| f.push("OBR.extern.returnedJsonData=function(json,idx){(top.OBR.extern.returnedJsonData)&& top.OBR.extern.returnedJsonData(json,idx);};"); | |
| f.push("OBR.extern.returnedError=function(json){(top.OBR.extern.returnedError)&& top.OBR.extern.returnedError(json);};"); | |
| f.push("window.outbrain={};"); | |
| f.push("outbrain.returnedIrdJsonData=function(json,idx){(top.outbrain.returnedIrdJsonData) && top.outbrain.returnedIrdJsonData(json,idx); };"); | |
| f.push("outbrain.returnedJsonData =function(json,idx){(top.outbrain.returnedJsonData) && top.outbrain.returnedJsonData(json,idx); };"); | |
| f.push("outbrain.returnedError=function(json){(top.outbrain.returnedError) && top.outbrain.returnedError(json);};"); | |
| f.push("\x3c/script>"); | |
| f.push("</body>"); | |
| return f.join("") | |
| }; | |
| a.He = function() { | |
| var b; | |
| if (b = OBR.n("objsonpp")) | |
| if (a.hf()) a.V(b.parentNode) && b.parentNode.removeChild(b); | |
| else return OBR.n("objsonpp"); | |
| b = document.createElement("iframe"); | |
| b.id = "objsonpp"; | |
| b.lg && (b.lg = | |
| "seamless"); | |
| (b.frameElement || b).style.cssText = "width: 0; height: 0; border: 0"; | |
| b.src = "javascript:false"; | |
| document.body.appendChild(b); | |
| return b | |
| }; | |
| a.Ze = function(b) { | |
| var g = a.He(), | |
| g = g.contentWindow || g.contentDocument; | |
| g.document && (g = g.document); | |
| g.open().write(b); | |
| g.close() | |
| }; | |
| a.H = function(b) { | |
| var a = e.b.ie, | |
| f, c; | |
| c = a.getElementsByTagName("head"); | |
| try { | |
| c && 0 < c.length ? c[0].insertBefore(b, c[0].firstChild) : (f = a.getElementsByTagName("script"), f[0].insertBefore(b, f[0].firstChild)) | |
| } catch (d) { | |
| e.c.log("Err insertToHead:" + d) | |
| } | |
| }; | |
| a.bf = function(b, g) { | |
| var f = a.Ie(g, b); | |
| a.qb(f) || a.Ze(f) | |
| }; | |
| a.bh = function(b) { | |
| b = b || OBR; | |
| return "function" !== typeof b.o ? (OBR.c.log("namespace.EventManager not function"), null) : new b.o | |
| }; | |
| a.L = function(b) { | |
| return encodeURIComponent(b) | |
| }; | |
| a.V = function(b) { | |
| return null !== b | |
| }; | |
| a.qf = function() { | |
| var b, g, f, c, d; | |
| b = document.getElementsByTagName("div"); | |
| g = b.length; | |
| d = e.b.ad; | |
| for (f = 0; f < g; f += 1) | |
| if (c = b[f].getAttribute(d), a.qb(c)) return !0; | |
| return !1 | |
| }; | |
| a.pf = function(b) { | |
| var g; | |
| if (a.pb(b)) return !1; | |
| g = b.hb().recMode || ""; | |
| b = b.hb().dynamicWidgetLayout || | |
| ""; | |
| return "1" !== (e.b.jg[g] || "") && "1" !== (e.b.kg[b] || "") || !a.qf() ? !1 : !0 | |
| }; | |
| a.pb = function(b) { | |
| return "undefined" === typeof b || null === b | |
| }; | |
| a.qb = function(b) { | |
| return a.pb(b) || "" === b | |
| }; | |
| a.za = function(b, g, f, e) { | |
| var d, l, m, p, n; | |
| l = []; | |
| e = !! e; | |
| d = a.qb(d) ? !0 : !1; | |
| f = c.getElementsByTagName(f || "*"); | |
| m = 0; | |
| for (p = f.length; m < p; m += 1) n = "class" === b ? f[m].className : f[m].getAttribute(b), null !== n && (!1 === d && (n = n.toLowerCase(), g = g.toLowerCase()), (n = "" === b ? !0 : e ? -1 < n.indexOf(g) : n === g) && l.push(f[m])); | |
| return l | |
| }; | |
| a.dg = function(b) { | |
| var a = window; | |
| a.detachEvent ? | |
| a.detachEvent("onscroll", b) : a.removeEventListener && a.removeEventListener("scroll", b, !1) | |
| }; | |
| a.u = function(b, a, f) { | |
| b.attachEvent ? b.attachEvent("on" + a, function() { | |
| f.call(b) | |
| }) : b.addEventListener && b.addEventListener(a, f, !1) | |
| }; | |
| a.mb = function(b, a) { | |
| try { | |
| a.appendChild(b) | |
| } catch (f) { | |
| e.c.log("fail insert into Dom:" + f) | |
| } | |
| }; | |
| a.Pa = function(b) { | |
| b = e.n(b); | |
| !a.pb(b) && a.V(b.parentNode) && b.parentNode.removeChild(b) | |
| }; | |
| a.insertBefore = function(b, a) { | |
| return a.parentNode.insertBefore(b, a) | |
| }; | |
| a.isArray = function(b) { | |
| return b instanceof Array ? !0 : "[object Array]" === Object.prototype.toString.call(b) | |
| }; | |
| a.Sa = function(b, a) { | |
| var f = /htt(p|ps)?:\/\/127\.0\.0\.1(:\d\d\d\d)?$/i; | |
| return /htt(p|ps)?:\/\/([\w\-]*|[\w\-]*\.[\w\-]*)\.outbrain\.com(:\d\d\d\d)?$/i.test(b) || f.test(b) ? b : a | |
| }; | |
| a.Mg = function(b) { | |
| b = b.replace(/^(\s*)/g, ""); | |
| var a = c.createElement("div"); | |
| a.innerHTML = b; | |
| return a.childNodes | |
| }; | |
| a.D = function(b, a) { | |
| return b ? b.getAttribute(a) : null | |
| }; | |
| a.A = function(b, a, f) { | |
| b && b.setAttribute(a, f) | |
| }; | |
| a.Fd = function(b) { | |
| b && (b.className += " ob_clicked") | |
| }; | |
| a.O = function(b, a) { | |
| b = | |
| b.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); | |
| var f, c; | |
| try { | |
| return f = RegExp("[\\?&]" + b + "=([^&#]*)", "i"), c = f.exec(window.location.href), null === c ? a : c[1] | |
| } catch (e) { | |
| return a | |
| } | |
| }; | |
| a.$d = function(b) { | |
| "string" === typeof b && 0 < b.indexOf("#") && (b = b.substr(0, b.lastIndexOf("#"))); | |
| return b | |
| }; | |
| a.Wb = function(b) { | |
| var a = e.b.Z + "/strip_default.png"; | |
| b.src !== a && (b.alt = "", b.title = "", b.src = a) | |
| }; | |
| a.me = function() { | |
| var b = null, | |
| a, f, e = null; | |
| if ("string" === typeof window.OB_MP_feed) b = window.OB_MP_feed; | |
| else if ((a = c.getElementsByTagName("head")) && | |
| 0 < a.length) | |
| for (f = a[0].getElementsByTagName("link"), a = 0; a < f.length; a += 1) | |
| if (e = f[a], null !== e.type && ("application/rss+xml" === e.type || "application/atom+xml" === e.type) && null !== e.href && "" !== e.href) { | |
| b = e.href; | |
| break | |
| } | |
| return b | |
| }; | |
| a.pc = function(b) { | |
| var a = null; | |
| b.currentStyle ? a = b.currentStyle.color : window.getComputedStyle && (a = document.defaultView.getComputedStyle(b, null).getPropertyValue("color")); | |
| return a | |
| }; | |
| a.pg = function() { | |
| var b = a.Aa(), | |
| c, f; | |
| a.V(b) && (c = e.a.createElement("span", "ob_a"), a.insertBefore(c, b), c.innerHTML = | |
| ".", f = a.pc(c), a.Pa("ob_a"), c = e.a.createElement("a", "ob_a"), c.setAttribute("href", "void(0)"), c.innerHTML = ".", a.insertBefore(c, b), b = a.pc(c), a.Pa("ob_a"), f = "rgb(0, 0, 0)" === f || "#000000" === f ? "#555" : f, a.lb(".ob-tcolor{color:" + f + "} .ob-lcolor{color:" + b + "} .ob-bgtcolor{background-color:" + f + "} .item-link-container:hover .ob-tcolor{border-color:" + f + "}")) | |
| }; | |
| a.Ee = function() { | |
| var b = a.nc("property", "og:url", "meta", "content"); | |
| null === b && (b = a.nc("rel", "canonical", "link", "href")); | |
| null === b && (b = window.location.href); | |
| return b | |
| }; | |
| a.nc = function(b, c, f, e) { | |
| var d = null; | |
| b = a.za(b, c, f, !1); | |
| null !== b && 0 < b.length && (d = b[0].getAttribute(e)); | |
| return d | |
| }; | |
| a.Xd = function(b) { | |
| var c, f, d; | |
| f = e.i[b].l("tracking", !1); | |
| c = e.b.Ka; | |
| b = e.i[b].l("comScoreEnabled", !0); | |
| d = e.b.Xb; | |
| !1 === f && (!1 === c && !0 === b && !1 === d) && (a.nb(), c = e.n(e.b.Ia)) && (c.src = e.b.Z + "/" + e.b.Oa + "3rd/comScore/comScore.htm", e.b.Xb = !0) | |
| }; | |
| a.Qe = function() { | |
| var b = a.gb(8), | |
| c = ""; | |
| "string" === typeof window.name && ("" === window.name || -1 < window.name.indexOf("frame")) ? (window.name = b, c = window.name) : c = "string" === | |
| typeof window.name && "" !== window.name ? window.name : b; | |
| return c | |
| }; | |
| a.gb = function(b) { | |
| var a, f; | |
| a = []; | |
| b = "number" === typeof b ? b : 8; | |
| for (f = 0; f < b; f += 1) a.push("0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz".charAt(Math.floor(61 * Math.random()))); | |
| return a.join("") | |
| }; | |
| a.Ca = function(b) { | |
| for (var a in e.na) | |
| if (e.na[a].h === b) return e.na[a]; | |
| return null | |
| }; | |
| a.rc = function(b) { | |
| var a, f; | |
| f = e.i; | |
| for (a = 0; a < f.length; a += 1) | |
| if (f[a].ja() === b) return f[a]; | |
| return null | |
| }; | |
| a.mf = function(b) { | |
| for (var a in b) | |
| if (b.hasOwnProperty(a)) return !1; | |
| return !0 | |
| }; | |
| a.aa = function(b, a) { | |
| return "function" !== typeof b ? null : "undefined" === typeof a ? b() : b(a) | |
| }; | |
| a.hf = function() { | |
| return "Microsoft Internet Explorer" == navigator.appName | |
| }; | |
| a.fe = function(b, a) { | |
| return b * a | |
| }; | |
| a.lc = function(b) { | |
| if (!b || "" === b) return []; | |
| b = b.replace("", "").replace("http://", "").replace("https://", "").replace("www.", "").replace("www2.", "").split("/"); | |
| b.pop(); | |
| return 0 < b.length ? b : [] | |
| }; | |
| a.Be = function(b, c) { | |
| var f = a.lc(b), | |
| e = [], | |
| d = ""; | |
| if (c >= f.length) d = f.join("."); | |
| else { | |
| e[0] = f[0]; | |
| for (d = 1; d <= c; d += 1) e[d] = f[d]; | |
| d = | |
| e.join(".") | |
| } | |
| return d | |
| }; | |
| a.Me = function() { | |
| return "http" + ("https:" === c.location.protocol ? "s" : "") | |
| }; | |
| a.Ke = function() { | |
| var b, e; | |
| b = c.getElementById("widgetVersionSync"); | |
| null === b && (b = a.createElement("iframe", "widgetVersionSync"), e = a.createElement("div", null, "display:none; height:0px; width:0px; border:none;"), e.appendChild(b), a.ic().appendChild(e)); | |
| return b | |
| }; | |
| a.Rg = function(b) { | |
| var c; | |
| c = window.OB_releaseVer; | |
| isNaN(c) || (isNaN(b) || c >= b) || (b = a.Me() + "://widgets.outbrain.com/external/sync/outbrainjs.html?needToBeVer=" + b.toString(), | |
| c = a.Ke(), c.src = b) | |
| }; | |
| a.Kd = function(b) { | |
| b = b.l("widgetVersionSync", 1); | |
| isNaN(b) || "" === b || (b = parseInt(b, 10) || 1, a.Rg(b)) | |
| }; | |
| a.Le = function(b, c) { | |
| var f = b.parentNode; | |
| return f ? f.tagName.toLowerCase() == c ? f : a.Le(f, c) : !1 | |
| }; | |
| a.j(OBR); | |
| return a | |
| }(); | |
| OBR.M = function(d, a, c, e, b, g, f, k, h) { | |
| var l, m; | |
| l = this; | |
| m = 0; | |
| h = "function" === typeof h ? h : OBR.a.fe; | |
| l.start = function() { | |
| var p; | |
| m += 1; | |
| OBR.a.aa(d, m) ? OBR.a.aa(a, m) : (p = OBR.a.aa(k, m)) ? OBR.a.aa(e, m) : (p = m === g && 1E3 !== g) ? OBR.a.aa(e, m) : (OBR.a.aa(c, m), p = f ? h(m, b) : b, setTimeout(function() { | |
| l.start() | |
| }, p)) | |
| }; | |
| l.start() | |
| }; | |
| OBR.ac = OBR.ac || { | |
| ef: function() { | |
| return "complete" === document.readyState | |
| } | |
| }; | |
| OBR.oe = function() { | |
| var d = {}, a = []; | |
| d.add = function(c) { | |
| a.push(c) | |
| }; | |
| d.top = function() { | |
| return 0 < a.length ? a.shift() : null | |
| }; | |
| d.Zd = function() { | |
| a = [] | |
| }; | |
| return d | |
| }; | |
| OBR.b = OBR.b || function() { | |
| var d = {}, a = {}, c = OBR, | |
| e; | |
| a.yd = "opera"; | |
| a.Nb = "msie"; | |
| a.sd = "firefox"; | |
| a.rd = "chrome"; | |
| a.Bd = "safari"; | |
| a.vd = "mozilla"; | |
| a.Yg = "boolean"; | |
| a.rh = "string"; | |
| a.ih = "object"; | |
| a.sh = "undefined"; | |
| a.Ia = "ob_iframe"; | |
| a.vc = !0; | |
| a.Oc = 0; | |
| a.Ib = "outbrain_widget_"; | |
| a.uf = "text/javascript"; | |
| a.ee = "text/css"; | |
| a.ie = document; | |
| a.zc = "undefined" !== typeof document.createElement("script").async; | |
| a.pd = c.a.Qe(); | |
| a.bg = document.referrer; | |
| a.ag = c.a.L(document.referrer); | |
| a.wf = document.location.href; | |
| a.gh = c.a.L(a.wf); | |
| a.wa = !1; | |
| a.Jd = navigator.userAgent.toLowerCase(); | |
| a.mh = navigator.platform.toLowerCase(); | |
| e = a.Jd; | |
| a.Nd = /opera/.test(e) ? a.yd : /msie/.test(e) ? a.Nb : /firefox/.test(e) ? a.sd : /chrome/.test(e) ? a.rd : /safari/.test(e) ? a.Bd : a.vd; | |
| a.Ka = !! /(iphone|ipod|symbian|android|windows ce|blackberry|palm|ipad)/.test(e); | |
| a.kf = 0; | |
| a.jf = function() { | |
| return void 0 === window.XMLHttpRequest && void 0 !== ActiveXObject | |
| }; | |
| a.Wf = window.OB_platformType || null; | |
| a.Ma = "number" === typeof a.Wf; | |
| a.bd = null; | |
| a.cc = null; | |
| a.Lg = function() { | |
| a.Ma && (a.bd && a.cc) && (a.bd(), a.cc()) | |
| }; | |
| a.sa = "string" === typeof window.OB_releaseVer ? | |
| window.OB_releaseVer : "0"; | |
| a.Df = !0 === window.OB_disable_odbl; | |
| e = ("https:" === document.location.protocol ? "https" : "http") + "://"; | |
| a.Td = "/blogutils/ExcludeRec.action?bocr="; | |
| a.jh = "html"; | |
| a.Ue = c.a.Sa(c.a.O("wiodb", e + "hpr.outbrain.com"), e + "hpr.outbrain.com"); | |
| a.xb = c.a.Sa(c.a.O("wiodb", e + "odb.outbrain.com"), e + "odb.outbrain.com"); | |
| a.Ud = "http://storage.outbrain.com/"; | |
| a.Z = c.a.Sa(c.a.O("wihost", e + "widgets.outbrain.com"), e + "widgets.outbrain.com"); | |
| a.Rf = c.a.Sa(c.a.O("wiout", e + "outbrain.com"), e + "outbrain.com"); | |
| a.Nc = e + "log.outbrain.com/"; | |
| a.Oa = "nanoWidget/"; | |
| a.Sf = a.Ma ? "NANOWDGTLT13" : "NANOWDGT01"; | |
| a.Af = a.Z + "/" + a.Oa + a.sa + (a.Ma ? "/moduleLT" : "/module"); | |
| a.zf = a.Z + "/" + a.Oa + "3rd"; | |
| a.cf = "object" === typeof window.console; | |
| a.hd = c.a.$d(c.a.me()); | |
| a.gd = null === a.hd ? "" : c.a.L(a.hd); | |
| a.Xb = !1; | |
| a.Ef = "true" === c.a.O("obdraft", !1) ? "&obDraft=true" : ""; | |
| a.Ed = !1 !== c.a.O("obAbtest", !1) ? "&obAbtest=" + c.a.O("obAbtest", "") : ""; | |
| a.ed = function(b) { | |
| a.Ja = a.Ja || b; | |
| return a.Ja | |
| }; | |
| a.Ja = a.ed("true" === c.a.O("advanceLoader", "false").toLowerCase()); | |
| a.Fc = 0; | |
| a.ma = null; | |
| a.ad = "data-obscrollable"; | |
| a.jg = { | |
| touch_strip: "1" | |
| }; | |
| a.kg = { | |
| "touch-strip": "1" | |
| }; | |
| a.F = function() { | |
| d.S = c; | |
| return d | |
| }; | |
| return a | |
| }(); | |
| OBR.d = OBR.d || function() { | |
| var d = {}, a, c = {}; | |
| d.j = function(c, b) { | |
| a = c; | |
| d.$f(b) | |
| }; | |
| d.f = { | |
| Wa: "POPUPDESCRIPTION", | |
| ua: "WIDGETSTATISTICS", | |
| ta: "WHATIS", | |
| Va: "FLYTHROUGH", | |
| Za: "VIDEOPLUGIN", | |
| fa: "POSCUL", | |
| Xa: "SCROLL", | |
| Ya: "SCROLLEXTERNAL", | |
| Ob: "RECINIFRAME" | |
| }; | |
| d.Ad = function(a, b) { | |
| var c = { | |
| $g: a, | |
| url: b, | |
| version: -1, | |
| state: 0, | |
| $a: null, | |
| Yb: this, | |
| Pb: null, | |
| Yd: function() { | |
| if (2 === c.state) c.Dc(); | |
| else if (0 === c.state) { | |
| var b = OBR.a.B(c.url, !0); | |
| c.state = 1; | |
| OBR.a.H(b) | |
| } | |
| }, | |
| Dc: function() { | |
| c.state = 2; | |
| "function" === typeof c.$a && c.$a.call(c.Yb, c.Pb) | |
| } | |
| }; | |
| return c | |
| }; | |
| d.$f = function(c) { | |
| function b(b) { | |
| return a.b.Af + | |
| "/" + b | |
| } | |
| function g(b, a) { | |
| c[b] || (c[b] = new d.Ad(b, a)) | |
| } | |
| g(d.f.Wa, b("popupDescription.js")); | |
| g(d.f.ua, b("widgetStatistics.js")); | |
| g(d.f.ta, b("whatis.js")); | |
| g(d.f.Va, b("flyThrough.js")); | |
| g(d.f.Za, b("videoPlugin.js")); | |
| g(d.f.fa, b("positionCalculation.js")); | |
| g(d.f.Ob, b("recInIframe.js")); | |
| g(d.f.Xa, b("scroll.js")); | |
| g(d.f.Ya, a.b.zf + "/scroll/scrollExternal.js") | |
| }; | |
| d.Fe = function(a) { | |
| return c[a] | |
| }; | |
| d.w = function(a, b, c, f) { | |
| if (a = d.Fe(a)) a.$a = b || OBR.a.$(), a.Yb = c, a.Pb = f, a.Yd() | |
| }; | |
| d.oc = function(a) { | |
| return c[a].state | |
| }; | |
| d.Q = function(e) { | |
| "-1" !== | |
| a.b.sa && c[e].Dc() | |
| }; | |
| d.j(OBR, c); | |
| return d | |
| }(); | |
| OBR.j = OBR.j || void 0; | |
| OBR.n = function(d) { | |
| return document.getElementById(d) | |
| }; | |
| OBR.I = OBR.I || function() { | |
| var d = {}, a = {}, c, e; | |
| a.j = function(b) { | |
| c = b = b || OBR; | |
| d.oa = new c.o; | |
| e = !1 | |
| }; | |
| a.F = function() { | |
| return d | |
| }; | |
| d.af = function() { | |
| var b, a; | |
| b = c.a.createElement("iframe", "ob_ping"); | |
| b.setAttribute("id", "ob_ping"); | |
| b.style.border = "0px"; | |
| b.style.width = "0px"; | |
| b.style.height = "0px"; | |
| b.setAttribute("src", c.b.xb + "/utils/ping.html?r=" + c.a.Qc()); | |
| c.a.u(b, "load", function() { | |
| c.c.log("ping returned"); | |
| c.b.Oc = 2; | |
| d.oa.k("success"); | |
| c.I.Wc() | |
| }); | |
| a = c.a.Aa(); | |
| null !== a && (c.c.log("ping inserted"), c.a.mb(b, a)) | |
| }; | |
| d.Vf = function() { | |
| c.c.log("ping Wait"); | |
| new c.M(function() { | |
| return 2 === c.b.Oc | |
| }, function() {}, c.a.$(), function() { | |
| d.oa.k("fail"); | |
| c.I.Wc() | |
| }, 50, 200, !1) | |
| }; | |
| a.Wc = function() { | |
| c.a.Pa("ob_ping") | |
| }; | |
| a.Of = function(b) { | |
| d.oa.add("success", b) | |
| }; | |
| a.Nf = function(b) { | |
| d.oa.add("fail", b) | |
| }; | |
| a.nf = function() { | |
| return e | |
| }; | |
| a.fd = function() { | |
| e = !0 | |
| }; | |
| a.Uf = function() { | |
| d.af(); | |
| d.Vf() | |
| }; | |
| a.t = function() { | |
| d.oa.N() | |
| }; | |
| a.j(OBR); | |
| return a | |
| }(); | |
| OBR.ba = OBR.ba || function() { | |
| var d, a = {}, c = {}, e; | |
| a.j = function(b) { | |
| d = b = b || OBR; | |
| e = new d.o | |
| }; | |
| a.F = function() { | |
| return c | |
| }; | |
| c.bb = function(b) { | |
| var a, c; | |
| a = 0; | |
| for (c = b.length; a < c; a += 1) d.a.A(b[a], "data-ob-mark", "true"), e.k("find", [b[a]]) | |
| }; | |
| c.hc = function() { | |
| return d.a.za("class", "OUTBRAIN", "div", !0) | |
| }; | |
| c.Ae = function(b) { | |
| var a, c, e = [], | |
| h = []; | |
| a = 0; | |
| for (c = b.length; a < c; a += 1) | |
| if ("string" === typeof b[a].containerId) | |
| if (d.n(b[a].containerId)) { | |
| var l = d.n(b[a].containerId); | |
| "string" === typeof b[a].widgetId && d.a.A(l, "data-widget-id", b[a].widgetId); | |
| "string" === typeof b[a].permalink && d.a.A(l, "data-src", b[a].permalink); | |
| "boolean" === typeof b[a].advanceLoader && d.a.A(l, "data-advance-loader", b[a].advanceLoader); | |
| "boolean" === typeof b[a].dynLoad && d.a.A(l, "data-dynLoad", b[a].dynLoad); | |
| "string" === typeof b[a].widgetType && d.a.A(l, "data-widget-type", b[a].widgetType); | |
| "string" === typeof b[a].timeout && d.a.A(l, "data-timeout", b[a].timeout); | |
| "string" === typeof b[a].fbk && d.a.A(l, "data-fbk", b[a].fbk); | |
| h.push(l) | |
| } else e.push(b[a]); | |
| window.OB_elements = e; | |
| return h | |
| }; | |
| c.Je = function() { | |
| var b = | |
| []; | |
| "object" === typeof window.OB_elements && 0 < window.OB_elements.length && (b = window.OB_elements); | |
| return b | |
| }; | |
| c.Ge = function() { | |
| var b = [], | |
| a = c.hc(), | |
| f, e; | |
| f = 0; | |
| for (e = a.length; f < e; f += 1) { | |
| var h = d.a.D(a[f], "data-ob-mark"); | |
| null !== h && "true" === h || !a[f] || b.push(a[f]) | |
| } | |
| f = c.Je(); | |
| if (0 < f.length) | |
| for (d.c.log("Array of elements found!"), a = c.Ae(f), f = 0, e = a.length; f < e; f += 1) b.push(a[f]); | |
| return b | |
| }; | |
| a.Xg = function(b) { | |
| c.ec(b) | |
| }; | |
| c.ec = function(b) { | |
| if (void 0 === b) { | |
| var a = !1; | |
| d.c.log("searching for containers"); | |
| new d.M(function() { | |
| return a | |
| }, d.a.$(), | |
| function() { | |
| a = d.ac.ef(); | |
| var b = c.Ge(); | |
| a && d.c.log("checking:(" + a + ")"); | |
| 0 < b.length && c.bb(b) | |
| }, e.k("stopSearch"), 50, 1E3, !1) | |
| } else 0 < (b.length || 0) && c.bb(b) | |
| }; | |
| a.eh = function() { | |
| return 0 < c.hc().length | |
| }; | |
| a.Hf = function(b) { | |
| e.add("find", b) | |
| }; | |
| a.lh = function(b) { | |
| e.add("stopSearch", b) | |
| }; | |
| a.dc = function() { | |
| c.ec() | |
| }; | |
| a.pe = function(b) { | |
| var a = [], | |
| f, e; | |
| d.q.Xe(); | |
| f = 0; | |
| for (e = d.i.length; f < e; f += 1) { | |
| var h = d.a.U(f); | |
| null !== h && ("string" === typeof b && d.a.A(h, "data-src", b), d.a.A(h, "data-ob-mark", "false"), a.push(h)) | |
| } | |
| 0 < a.length && (d.i = [], c.bb(a)) | |
| }; | |
| a.t = | |
| function() { | |
| e.N(); | |
| d.i = [] | |
| }; | |
| a.j(OBR); | |
| return a | |
| }(); | |
| OBR.q = OBR.q || function() { | |
| var d = {}, a = {}, c; | |
| a.j = function(a) { | |
| c = a = a || OBR; | |
| d.zb = new c.oe; | |
| d.wb = new c.o; | |
| d.La = !1 | |
| }; | |
| d.we = function(a) { | |
| var b; | |
| b = a.Pe(); | |
| var d, f = c.a.eg; | |
| b = b && "hp" === b ? c.b.Ue + "/utils/get?url=$LNK$SRC&settings=$SET&recs=$REC&widgetJSId=$WID&key=$KEY&idx=$IDX&version=$VER&ref=$REF&apv=$APV&sig=$SIG&format=$FRT&rand=$RND$DRFT$ABTEST" : c.b.xb + "/utils/get?url=$LNK$SRC&settings=$SET&recs=$REC&widgetJSId=$WID&key=$KEY&idx=$IDX&version=$VER&ref=$REF&apv=$APV&sig=$SIG&format=$FRT&rand=$RND$DRFT$ABTEST"; | |
| d = a.ja(); | |
| b = f(b + ("" !== d && null !== d ? "&fbk=" + d : ""), "$LNK", c.a.L(a.ca())); | |
| b = f(b, "$SRC", 0 < c.b.gd.length ? "&srcUrl=" + c.b.gd : ""); | |
| b = f(b, "$IDX", a.h); | |
| b = f(b, "$SET", !0); | |
| b = f(b, "$REC", !0); | |
| b = f(b, "$KEY", c.b.Sf); | |
| b = f(b, "$WID", a.v()); | |
| b = f(b, "$VER", c.b.sa); | |
| b = f(b, "$REF", c.b.ag); | |
| b = f(b, "$SIG", c.b.pd); | |
| b = f(b, "$APV", c.b.wa); | |
| b = f(b, "$FRT", a.Ce()); | |
| b = f(b, "$RND", c.a.Qc()); | |
| b = f(b, "$DRFT", c.b.Ef); | |
| return b = f(b, "$ABTEST", c.b.Ed) | |
| }; | |
| d.kb = function(a, b, g) { | |
| g = c.b.Ja && g; | |
| var f = b.h; | |
| b.s.yg(); | |
| g ? c.a.bf(f, a) : (g = c.a.B(a, !0), "" !== b.ja() && c.a.u(g, "error", function() { | |
| OBR.extern.errorInjectionHandler(f) | |
| }), | |
| c.a.H(g)); | |
| d.wb.k("onOdbFire_" + f + "_" + b.v(), [b], !0); | |
| c.c.log("fire this src " + a) | |
| }; | |
| d.zg = function(a) { | |
| c.b.zc && setTimeout(function() { | |
| d.Vc(a.h, a.v()) | |
| }, 1E4) | |
| }; | |
| d.Vc = function(a, b) { | |
| c.a.Pa("ob_odbCall_" + a + b) | |
| }; | |
| a.k = function() { | |
| if (!0 !== d.La && !0 === c.I.nf()) { | |
| d.La = !0; | |
| var a = d.zb.top(), | |
| b; | |
| a ? (c.c.log("fire odb for " + a.ca()), b = d.we(a), d.kb(b, a, !0), d.zg(a)) : d.La = !1 | |
| } | |
| }; | |
| a.Lf = function(a, b) { | |
| d.wb.add("onOdbFire_" + a.h + "_" + a.v(), b) | |
| }; | |
| a.Gb = function(a, b) { | |
| d.La = !1; | |
| d.Vc(a, b) | |
| }; | |
| a.og = function(a) { | |
| !0 === a && (OBR.b.wa = a) | |
| }; | |
| a.Xe = function() { | |
| OBR.b.wa = !1 | |
| }; | |
| a.Tc = function(e) { | |
| d.zb.add(e); | |
| c.c.log("register odb for " + e.ca()); | |
| a.k() | |
| }; | |
| a.Od = function(c) { | |
| a.Gb(c.h, c.v()); | |
| a.k() | |
| }; | |
| a.t = function() { | |
| d.zb.Zd(); | |
| d.wb.N() | |
| }; | |
| a.F = function() { | |
| d.S = c; | |
| return d | |
| }; | |
| a.j(OBR); | |
| return a | |
| }(); | |
| OBR.g = OBR.g || function() { | |
| function d() { | |
| c.c.log("ping fail") | |
| } | |
| function a() { | |
| c.c.log("ping success"); | |
| c.I.fd(); | |
| c.display.Gf(b.Id); | |
| c.q.k() | |
| } | |
| var c, e = {}, b = {}, g; | |
| b.tb = "manualDataReady"; | |
| b.sb = "manualClickReady"; | |
| e.j = function(b) { | |
| c = b = b || OBR; | |
| g = new c.o | |
| }; | |
| e.F = function() { | |
| return b | |
| }; | |
| b.Id = function(a) { | |
| c.c.log("rec " + a + " was rendered"); | |
| var e = c.i[a]; | |
| e.Y(!0); | |
| e.s.Bg(); | |
| 0 === a && c.a.pg(); | |
| b.sf(e) && b.ng(e); | |
| c.a.Kd(e); | |
| c.display.$e(e) | |
| }; | |
| b.Ne = function(b) { | |
| return Math.floor(Math.random() * b) + 1 | |
| }; | |
| b.sf = function(a) { | |
| var e = c.b.Ka, | |
| d = a.l("tracking", !1); | |
| if (!a.l("widgetStatistics", !1) || e || d) return !1; | |
| a = a.l("wsSampling", 0); | |
| return 0 === a ? !0 : b.Ne(a) === a | |
| }; | |
| b.ng = function(b) { | |
| 2 === c.d.oc(c.d.f.ua) && 2 === c.d.oc(c.d.f.fa) ? c.p.Rb(b.h) : c.d.w(c.d.f.fa, function() { | |
| c.d.w(c.d.f.ua, function() { | |
| c.p.Rb(b.h) | |
| }, this) | |
| }, this) | |
| }; | |
| b.Qg = function(a) { | |
| c.c.log("widget was found"); | |
| a = c.Ua.Hd(a); | |
| 0 === a.h && b.Pd(); | |
| !0 === a.ff() ? c.c.log("Dynamic loader - stop odb!") : c.q.Tc(a) | |
| }; | |
| e.Jc = function(a, d) { | |
| var h = "NA", | |
| l = a && a.response ? a.response : null, | |
| m; | |
| if (m = c.a.Ca(d)) | |
| if (g.k("onmManualOdbReturned_" + d, [l, | |
| d | |
| ]), m.W()) return; | |
| l && (l.request && l.request.widgetJsId) && (h = l.request.widgetJsId); | |
| c.q.Gb(d, h); | |
| m && (l && l.documents) && (m.Y(!0), e.gc(b.tb, d, h, a)); | |
| c.q.k() | |
| }; | |
| e.Mf = function(b, a) { | |
| g.add("onmManualOdbReturned_" + b, a) | |
| }; | |
| e.gc = function(b, a, c, e) { | |
| b = b + a + c; | |
| g.k(b, [e.response.documents, a]); | |
| g.Bb(b) | |
| }; | |
| e.Gc = function(a, d) { | |
| if (null !== a) { | |
| var h = 0, | |
| l = a.permalink, | |
| m = a.widgetId, | |
| p = a.widgetType, | |
| n = a.fbk, | |
| q = a.timeout; | |
| l && "string" === typeof l && (m && "string" === typeof m) && (c.c.log("manual Odb call"), h = e.xf(l), e.Na(b.tb + h + m, d), l = c.Ua.Zb(h, l, m, !1, | |
| p, n, q, !0), l.vg(), c.na[h] = l, g.k("onmManualOdbCall", [l, b.tb]), c.I.fd(), c.q.Tc(l)) | |
| } | |
| }; | |
| e.Na = function(b, a) { | |
| g.add(b, a) | |
| }; | |
| e.Qf = function(b) { | |
| g.add("onmManualOdbCall", b) | |
| }; | |
| e.xf = function(b) { | |
| var a = 0, | |
| e = c.b; | |
| null === e.ma && (e.ma = 0 < c.i.length ? c.i[0].ca() : null); | |
| e.ma === b ? a = e.Fc + 1 : e.ma = b; | |
| return e.Fc = a | |
| }; | |
| e.Ec = function(a, e) { | |
| var d = OBR.n(c.b.Ia); | |
| c.a.V(d) && c.a.V(d.parentNode) && d.parentNode.removeChild(d); | |
| c.a.nb(); | |
| "function" === typeof e && g.add(b.sb, e); | |
| if (null !== a && (d = a.link) && "string" === typeof d) { | |
| c.c.log("manual Click"); | |
| if (null !== | |
| d.match(/http:\/\/.+outbrain.com/i)) c.a.Wd(d + "&noRedirect=true"); | |
| else throw "Wrong redirect link: " + d; | |
| g.k(b.sb); | |
| g.Bb(b.sb) | |
| } | |
| }; | |
| b.rf = function(a) { | |
| return b.yc(a) || a.l("stopWidget", !1) | |
| }; | |
| b.yc = function(b) { | |
| return b.l("stopRater", !1) | |
| }; | |
| b.Pd = function() { | |
| c.I.Of(a); | |
| c.I.Nf(d); | |
| c.b.Df || c.b.zc ? (c.c.log("async - no ping"), a()) : c.I.Uf() | |
| }; | |
| e.yb = function(a, d) { | |
| var h, l; | |
| OBR.c.log("HTML returned"); | |
| (h = c.i[d]) ? (h.s.xg(), h.W() || (h.setData(a), l = h.v(), b.rf(h) || b.tf(h.Ba()) || (c.q.og(a.response.settings.apv), e.of(h) ? e.ea(d) : e.Re(h), | |
| l && g.k("odbRtn_" + l, [h]))), e.se(h)) : c.c.log("odbHtmlReturned : Widget not found") | |
| }; | |
| b.tf = function(b) { | |
| var a = !1; | |
| null !== b.match(/(<\/?met|<\/?scr)/i) && (a = !0, c.c.log("SECURITY")); | |
| return a | |
| }; | |
| e.se = function(a) { | |
| b.yc(a) || (c.q.Gb(a.h, a.v()), c.q.k()) | |
| }; | |
| e.of = function(b) { | |
| var a = !0; | |
| if (b.Cc() || b.wc()) a = !1; | |
| return a | |
| }; | |
| e.Re = function(b) { | |
| var a = b.h; | |
| b.Cc() ? c.d.w(c.d.f.Za, function() { | |
| c.Ta.de(a) | |
| }, this) : b.wc() && c.display.Ye(b) | |
| }; | |
| e.ea = function(b) { | |
| c.display.ea(c.i[b]); | |
| c.c.log("HTML - Render"); | |
| e.Xf(b) | |
| }; | |
| e.Xf = function(b) { | |
| c.a.Xd(b) | |
| }; | |
| e.Rc = | |
| function(b, a) { | |
| c.a.Fd(a); | |
| var e = c.a.D(a, "data-redirect"); | |
| null !== e && (a.href = e); | |
| return !0 | |
| }; | |
| e.Sc = function(b) { | |
| c.p && c.p.Mc(); | |
| c.ba.pe(b); | |
| return !0 | |
| }; | |
| e.t = function() { | |
| g.N() | |
| }; | |
| e.Zc = function() { | |
| //debugger; | |
| c.ba.Hf(b.Qg); | |
| c.b.Ma ? c.b.Lg() : c.ba.dc() | |
| }; | |
| e.Sd = function(b, a, e) { | |
| if (confirm("Removing this recommendation will remove it permanently for this section and will refresh the recommendations.\n Are you sure you want to remove this recommendation?")) { | |
| var d = "https://my.outbrain.com/manage/"; | |
| c.c.log("isAd = " + e + " type = " + typeof e); | |
| d = !1 === e ? d + ("add-zapped-document?publisherId=" + a + "&docUrl=" + c.a.L(b)) : d + ("add-rule?publisherId=" + a + "&ruleValue=" + c.a.L(b) + "&ruleType=" + e); | |
| b = c.a.B(d, !0); | |
| c.a.H(b) | |
| } | |
| }; | |
| e.Rd = function(b) { | |
| confirm("Removing this recommendation will remove it permanently for this section and will refresh the recommendations.\n Are you sure you want to remove this recommendation?") && (b = c.a.B(c.b.xb + c.b.Td + b + "&index=1&templateIndex=1&sig=" + c.b.pd, !0), c.a.H(b)) | |
| }; | |
| e.ig = function(b) { | |
| b && (b.ob_exclude_resp && b.ob_exclude_resp.code && 1 !== | |
| b.ob_exclude_resp.code) && e.Sc() | |
| }; | |
| e.Uc = function(b, a) { | |
| if (a && "function" === typeof a) { | |
| var e = "odbRtn_" + b; | |
| g.add(e, a); | |
| var d = c.Jb.sc(b); | |
| d && d.df() && g.k(e, [d]) | |
| } | |
| }; | |
| e.xe = function(b) { | |
| return (b = c.Jb.sc(b)) ? b.G("tcr", -1) : null | |
| }; | |
| e.hg = function() { | |
| c.ba.dc() | |
| }; | |
| e.N = function() { | |
| c.p && c.p.Mc(); | |
| c.display.t(); | |
| c.q.t(); | |
| c.I.t(); | |
| this.t(); | |
| c.ba.t(); | |
| c.ha && c.ha.t(); | |
| c.b.wa = !1 | |
| }; | |
| e.cg = function() { | |
| this.N(); | |
| this.Zc() | |
| }; | |
| e.j(OBR); | |
| return e | |
| }(); | |
| OBR.display = OBR.display || function() { | |
| var d, a = {}, c; | |
| a.j = function(a) { | |
| d = a = a || OBR; | |
| c = new d.o | |
| }; | |
| a.tc = function(a, b) { | |
| var c = d.a.Mg(a), | |
| f = d.a.U(b.h); | |
| f && (c && 0 < c.length) && (f.innerHTML = "", d.a.mb(c[0], f), d.c.log("element inserted")) | |
| }; | |
| a.kh = function(a) { | |
| c.add("beforeRender", a) | |
| }; | |
| a.Gf = function(a) { | |
| c.add("afterRender", a) | |
| }; | |
| a.$e = function(a) { | |
| d.a.pf(a) && OBR.d.w(OBR.d.f.Xa, function(b) { | |
| OBR.scroll.yf(b) | |
| }, this, a) | |
| }; | |
| a.Ye = function(c) { | |
| OBR.d.w(OBR.d.f.fa, d.a.$(), this); | |
| OBR.d.w(OBR.d.f.Va, function() { | |
| a.te(c) | |
| }, this) | |
| }; | |
| a.te = function(e) { | |
| a.tc(OBR.ya.Ve(e), | |
| e); | |
| OBR.ya.j(); | |
| c.k("afterRender", [e.h]) | |
| }; | |
| a.ea = function(e) { | |
| d.c.log("HTML - render widget with " + e.Ba()); | |
| a.tc(e.Ba(), e); | |
| e.Y(!0); | |
| c.k("afterRender", [e.h]) | |
| }; | |
| a.t = function() { | |
| c.N() | |
| }; | |
| a.j(OBR); | |
| return a | |
| }(); | |
| OBR.md = OBR.md || function(d) { | |
| var a = {}, c = {}, e = {}, b = "", | |
| g = null, | |
| f = null, | |
| k = !1, | |
| h = 0, | |
| l = "html", | |
| m = !1, | |
| p = 4E3, | |
| n = "nano", | |
| q = !1, | |
| s = !1, | |
| r = {}, t = new OBR.o; | |
| a.Wg = 0; | |
| a.Vg = 1E3; | |
| a.Ug = 2; | |
| a.h = d; | |
| a.xa = ""; | |
| a.tg = function(b, a) { | |
| t.add("onInjectError_" + b.h, a) | |
| }; | |
| a.re = function(b) { | |
| t.k("onInjectError_" + b, [b], !0) | |
| }; | |
| a.s = { | |
| Lc: -1, | |
| Kc: -1, | |
| Yc: -1, | |
| Ea: function() { | |
| var b = []; | |
| b.push(a.s.Lc); | |
| b.push(a.s.Kc); | |
| b.push(a.s.Yc); | |
| return b | |
| }, | |
| yg: function() { | |
| a.s.Lc = (new Date).getTime() | |
| }, | |
| xg: function() { | |
| a.s.Kc = (new Date).getTime() | |
| }, | |
| Bg: function() { | |
| a.s.Yc = (new Date).getTime() | |
| } | |
| }; | |
| a.ne = { | |
| slow: 7E3, | |
| normal: 5E3, | |
| fast: 3E3, | |
| qa: 5 | |
| }; | |
| a.setData = function(a) { | |
| a && a.response && (a = a.response, a.request && (e = a.request), a.settings && (c = a.settings), a.html && (b = a.html), m = !0) | |
| }; | |
| a.hb = function() { | |
| return c | |
| }; | |
| a.l = function(b, a) { | |
| var e; | |
| e = c[b]; | |
| return "undefined" !== typeof e && null !== e ? e : a | |
| }; | |
| a.G = function(b, a) { | |
| var c = e[b]; | |
| return c ? c : a | |
| }; | |
| a.Ba = function() { | |
| return b | |
| }; | |
| a.v = function() { | |
| return g | |
| }; | |
| a.Gg = function(b) { | |
| g = "string" === typeof b ? b : "NA" | |
| }; | |
| a.vg = function() { | |
| l = "japi" | |
| }; | |
| a.Ce = function() { | |
| return l | |
| }; | |
| a.oh = function(b) { | |
| h = b | |
| }; | |
| a.ah = function() { | |
| return h | |
| }; | |
| a.ca = function() { | |
| return f | |
| }; | |
| a.Ag = function(b) { | |
| f = b | |
| }; | |
| a.ff = function() { | |
| return k | |
| }; | |
| a.rg = function(b) { | |
| k = "true" === b || !0 === b | |
| }; | |
| a.wc = function() { | |
| return "flyThrough" === a.l("displayMode", "") | |
| }; | |
| a.Cc = function() { | |
| return "video" === a.l("displayMode", "") | |
| }; | |
| a.fh = function() { | |
| return "recInIframe" === a.l("displayMode", "") | |
| }; | |
| a.df = function() { | |
| return m | |
| }; | |
| a.Pe = function() { | |
| return n | |
| }; | |
| a.Hg = function(b) { | |
| "string" === typeof b && (n = b.toLowerCase()) | |
| }; | |
| a.Eg = function(b) { | |
| "string" === typeof b && "" !== b && (a.xa = b) | |
| }; | |
| a.gf = function() { | |
| return !isNaN(parseInt(a.xa, 10)) | |
| }; | |
| a.ja = function() { | |
| var b; | |
| b = parseInt(a.xa, 10); | |
| return a.gf() && "number" === typeof b && 0 <= b && 10 > b ? OBR.a.Be(f, b) : a.xa | |
| }; | |
| a.W = function() { | |
| return q | |
| }; | |
| a.Y = function(b) { | |
| "boolean" === typeof b && (q = b) | |
| }; | |
| a.dh = function() { | |
| return "hp" === n | |
| }; | |
| a.m = function() { | |
| return r | |
| }; | |
| a.sg = function() { | |
| var b = { | |
| timeout: 0, | |
| pa: null, | |
| ab: 0, | |
| Ub: !1, | |
| Ff: !1, | |
| Na: "", | |
| Ha: !1, | |
| Eb: !1, | |
| Ab: !1, | |
| va: !1, | |
| od: "NA", | |
| reason: 0, | |
| ob: !0 | |
| }; | |
| "object" === typeof b && (r = b) | |
| }; | |
| a.lf = function() { | |
| return s | |
| }; | |
| a.mc = function() { | |
| return p | |
| }; | |
| a.ug = function(b) { | |
| p = a.ne[b] || 6E3 | |
| }; | |
| a.wg = function(b) { | |
| "boolean" === typeof b && (s = | |
| b) | |
| }; | |
| return a | |
| }; | |
| OBR.Ua = OBR.Ua || function() { | |
| var d = OBR, | |
| a = {}, c = new d.o; | |
| a.Zb = function(a, b, g, f, k, h, l, m) { | |
| a = new d.md(a); | |
| a.Ag(b); | |
| a.Gg(g); | |
| a.rg(f); | |
| a.Hg(k); | |
| a.Eg(h); | |
| a.ug(l); | |
| "boolean" === typeof m && a.wg(m); | |
| c.k("onWidgetCreate", [a]); | |
| return a | |
| }; | |
| a.Hd = function(c) { | |
| var b = d.a.D(c, "data-src"), | |
| g = d.a.D(c, "data-widget-id"), | |
| f = d.a.D(c, "data-widget-type"), | |
| k = d.a.D(c, "data-timeout"), | |
| h = d.a.D(c, "data-fbk"), | |
| l = d.a.D(c, "data-advance-loader"), | |
| m = d.a.D(c, "data-dynLoad"); | |
| d.a.A(c, "data-dynLoad", ""); | |
| d.b.ed("true" === (l || "").toLowerCase()); | |
| null === b && (b = d.a.Ee()); | |
| l = 0 === d.i.length && d.b.ma === b ? 1 : d.i.length; | |
| b = a.Zb(l, b, g, m, f, h, k, !1); | |
| d.i[l] = b; | |
| 0 === l && (g = d.a.createElement("div", "ob_holder"), g.style.display = "none", d.a.insertBefore(g, c), d.a.nb()); | |
| c.id = d.b.Ib + l; | |
| return b | |
| }; | |
| a.Pf = function(a) { | |
| c.add("onWidgetCreate", a) | |
| }; | |
| return a | |
| }(); | |
| OBR.Jb = OBR.Jb || function() { | |
| var d = OBR; | |
| return { | |
| sc: function(a) { | |
| var c, e, b; | |
| if (d.i) | |
| for (e = d.i.length, c = 0; c < e; c += 1) | |
| if ((b = d.i[c]) && b.v() === a) return b; | |
| return null | |
| } | |
| } | |
| }(); | |
| OBR.ha = OBR.ha || function() { | |
| var d = {}, a = OBR, | |
| c = {}, e = new a.o; | |
| c.ke = function(b) { | |
| b.sg(); | |
| "" !== b.ja() && (b.tg(b, function() { | |
| d.Te(b.h) | |
| }), OBR.q.Lf(b, function() { | |
| c.Fg(b) | |
| }), OBR.g.Uc(b.v(), d.Kf)) | |
| }; | |
| c.Fg = function(b) { | |
| var a; | |
| a = b.m(); | |
| a.timeout = b.mc(); | |
| a.Ha || (a.pa = setTimeout(function() { | |
| c.Vd(b) | |
| }, a.timeout)) | |
| }; | |
| d.Kf = function(b) { | |
| var a = b.m(); | |
| a.Ff = !0; | |
| b.l("ispartialrecs", !1) && (clearTimeout(a.pa), a.reason = 3, a.Ab = !0, c.eb(b)) | |
| }; | |
| d.If = function(b, d) { | |
| var f; | |
| b && (b.settings && !0 === b.settings.ispartialrecs) && (f = a.a.Ca(d), clearTimeout(f.m().pa), | |
| c.Xc(f)) | |
| }; | |
| c.Jf = function(b, c) { | |
| b.m().Na = c; | |
| a.g.Mf(b.h, d.If) | |
| }; | |
| a.Ua.Pf(c.ke); | |
| a.g.Qf(c.Jf); | |
| d.Tb = function(b, d) { | |
| var f, e, h; | |
| b && b.response && (f = b.response, OBR.c.log("Cdn response returned"), (e = c.qc(d)) ? (a.q.Od(e), h = e.m(), h.rb = b, f.request && (h.od = f.request.widgetJsId || "NA"), h.Ub = (new Date).getTime(), h.Ha && !h.va ? (h.Ha = !1, c.jb(e)) : h.Eb && !h.va ? (h.Eb = !1, c.jb(e)) : h.Ab && !h.va && (h.Ab = !1, c.jb(e))) : a.c.log("Editorial Widget : Widget not found")) | |
| }; | |
| c.jb = function(b) { | |
| var a = b.m(); | |
| a.va = !0; | |
| c.Xc(b); | |
| d.ud(b); | |
| clearTimeout(b.m().pa); | |
| a.reason = 0; | |
| a.ob = !0 | |
| }; | |
| c.qc = function(b) { | |
| var c = a.i[b]; | |
| return c ? c : a.a.Ca(b) | |
| }; | |
| c.rc = function(b) { | |
| return (b = a.a.rc(b)) ? b : a.a.Ca("fbk") | |
| }; | |
| c.Vd = function(b) { | |
| var a = b.m(); | |
| b.W() || (a.reason = 1, a.Eb = !0, c.eb(b)) | |
| }; | |
| c.Xc = function(b) { | |
| var c = b.m(); | |
| b.W() && !b.l("ispartialrecs", !1) ? c.ob = !1 : (b.lf() ? a.g.gc(c.Na, b.h, c.od, c.rb) : (b.setData(c.rb), OBR.g.ea(b.h)), b.Y(!0)) | |
| }; | |
| d.ud = function(b) { | |
| var c, d, e; | |
| d = b.m(); | |
| a.a.mf(b.hb()) && b.setData(d.rb); | |
| e = "" !== b.ca() ? a.a.L(b.ca()) : window.location.href; | |
| c = b.l("irdfb", ""); | |
| "" !== c && (c += "&reason=" + d.reason || | |
| "", c = c + ("&url=" + e || "") + ("&at=" + (b.m().Ub - b.m().ab) || ""), c += "&to=" + b.mc() || "", c += "&ir=" + (d.ob ? 1 : 0) || "", b = OBR.a.B(c, !1), OBR.a.H(b)) | |
| }; | |
| c.eb = function(b) { | |
| if (0 === b.m().ab) { | |
| var d = c.ve(b); | |
| c.kb(d, b); | |
| a.c.log("CDN call: cdnCall") | |
| } | |
| }; | |
| c.ve = function(b) { | |
| var c; | |
| c = a.b.Ud; | |
| b = b.ja() + "_" + b.v() + "_" + b.h; | |
| return c + b | |
| }; | |
| d.Te = function(b) { | |
| b = c.qc(b); | |
| var a; | |
| b && (a = b.m(), clearTimeout(a.pa), a.Ha = !0, a.reason = 2, c.eb(b)) | |
| }; | |
| c.kb = function(b, c) { | |
| var d = a.a.B(b, !1); | |
| c.m().ab = (new Date).getTime(); | |
| a.a.H(d); | |
| a.c.log("fire this src " + b) | |
| }; | |
| d.t = function() { | |
| e.N() | |
| }; | |
| d.F = function() { | |
| return c | |
| }; | |
| return d | |
| }(); | |
| OBR.extern = OBR.extern || function() { | |
| var d = OBR; | |
| return { | |
| getStat: function() { | |
| d.p.$c() | |
| }, | |
| showDescription: function(a, c) { | |
| d.d.w(OBR.d.f.Wa, function() { | |
| OBR.Pc.vf(a, c) | |
| }, this) | |
| }, | |
| returnedHtmlData: function(a, c) { | |
| d.g.yb(a, c) | |
| }, | |
| returnedIrdData: function(a, c) { | |
| d.ha.Tb(a, c) | |
| }, | |
| returnedJsonData: function(a, c) { | |
| d.g.Jc(a, c) | |
| }, | |
| returnedError: function(a) { | |
| OBR.c.log("Call made using extern class"); | |
| d.c.log("Callback error" + a) | |
| }, | |
| callRecs: function(a, c) { | |
| OBR.c.log("Call made using extern class"); | |
| d.g.Gc(a, c) | |
| }, | |
| callClick: function(a, c) { | |
| OBR.c.log("Call made using extern class"); | |
| d.g.Ec(a, c) | |
| }, | |
| callWhatIs: function(a, c, d, b, g, f) { | |
| OBR.d.w(OBR.d.f.ta, function() { | |
| OBR.Hb.Sb(a, c, d, b, g, f) | |
| }, this); | |
| return !1 | |
| }, | |
| recClicked: function(a, c) { | |
| OBR.c.log("Call made using extern class"); | |
| d.g.Rc(a, c) | |
| }, | |
| imageError: function(a) { | |
| OBR.c.log("Call made using extern class"); | |
| d.a.Wb(a) | |
| }, | |
| showRecInIframe: function(a, c, e, b, g) { | |
| d.d.w(d.d.f.Ob, function() { | |
| d.nh.ph(a, c, e, b, g) | |
| }, this) | |
| }, | |
| errorInjectionHandler: function(a) { | |
| OBR.i[a].re(a) | |
| }, | |
| reloadWidget: function() { | |
| OBR.c.log("reload widget"); | |
| d.g.cg() | |
| }, | |
| researchWidget: function() { | |
| OBR.c.log("research widget"); | |
| d.g.hg() | |
| }, | |
| cancelRecommendation: function(a) { | |
| OBR.c.log("cancel recommendation with bocr " + a); | |
| d.g.Rd(a) | |
| }, | |
| cancelRecs: function(a, c, e) { | |
| OBR.c.log("cancel recommendation by doc url " + a + " publisher id = " + c + " isAd = " + e); | |
| d.g.Sd(a, c, e) | |
| }, | |
| refreshWidget: function(a) { | |
| OBR.c.log("refresh widget"); | |
| d.g.Sc(a) | |
| }, | |
| getCountOfRecs: function(a) { | |
| return d.g.xe(a) | |
| }, | |
| onOdbReturn: function(a, c) { | |
| d.g.Uc(a, c) | |
| }, | |
| closeCard: function() { | |
| d.ya.ae() | |
| }, | |
| closeModal: function() { | |
| try { | |
| d.modal.hideModal() | |
| } catch (a) {} | |
| }, | |
| scrollLoad: function() { | |
| try { | |
| OBR.d.Q(OBR.d.f.Ya) | |
| } catch (a) {} | |
| } | |
| } | |
| }(); | |
| window.outbrain = window.outbrain || {}; | |
| window.outbrain.returnedHtmlData = function(d, a) { | |
| OBR.g.yb(d, a) | |
| }; | |
| window.outbrain.returnedIrdJsonData = function(d, a) { | |
| OBR.ha.Tb(d, a) | |
| }; | |
| window.outbrain.returnedJsonData = function(d, a) { | |
| OBR.g.Jc(d, a) | |
| }; | |
| window.outbrain.returnedError = function(d) { | |
| OBR.c.log("Callback error" + d) | |
| }; | |
| window.outbrain.callRecs = function(d, a) { | |
| OBR.g.Gc(d, a) | |
| }; | |
| window.outbrain.callClick = function(d, a) { | |
| OBR.g.Ec(d, a) | |
| }; | |
| window.outbrain.callWhatIs = function(d, a, c, e, b, g) { | |
| OBR.d.w(OBR.d.f.ta, function() { | |
| OBR.Hb.Sb(d, a, c, e, b, g) | |
| }, this) | |
| }; | |
| window.outbrain.recClicked = function(d, a) { | |
| OBR.g.Rc(d, a) | |
| }; | |
| window.outbrain.imageError = function(d) { | |
| OBR.a.Wb(d) | |
| }; | |
| window.outbrain.closeModal = function() { | |
| try { | |
| OBR.modal.hideModal() | |
| } catch (d) {} | |
| }; | |
| window.outbrain_rater = window.outbrain_rater || {}; | |
| window.outbrain_rater.returnedHtmlData = function(d, a) { | |
| OBR.g.yb(d, a) | |
| }; | |
| window.outbrain_rater.returnedCancelOdbData = function(d) { | |
| OBR.g.ig(d) | |
| }; | |
| !0 === OBR.b.vc && (OBR.c.log("Widget Start!"), OBR.b.vc = !1, "boolean" === typeof window.OB_PASSIVE_MODE && !0 === window.OB_PASSIVE_MODE ? OBR.c.log("passive") : OBR.g.Zc()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment