1 function strpos(e, n, t) { 2 var s = (e + "").indexOf(n, t || 0); 3 return -1 === s ? !1 : s 4} 5 6window.COOKIES_ENABLER = window.COOKIES_ENABLER || function () { 7 "use strict"; 8 9 function e() { 10 var e, n; 11 for (e = 1; e < arguments.length; e++) for (n in arguments[e]) arguments[e].hasOwnProperty(n) && (arguments[0][n] = arguments[e][n]); 12 return arguments[0] 13 } 14 15 function n(e, n, t) { 16 var s; 17 return function () { 18 var a = this, i = arguments, r = function () { 19 s = null, t || e.apply(a, i) 20 }, o = t && !s; 21 clearTimeout(s), s = setTimeout(r, n), o && e.apply(a, i) 22 } 23 } 24 25 function t(e, n) { 26 do if (s(e, n)) return e; while (e = e.parentNode); 27 return null 28 } 29 30 function s(e, n) { 31 return (" " + e.className + " ").indexOf(" " + n + " ") > -1 32 } 33 34 var a, i, r, o = { 35 scriptClass: "ce-script", 36 iframeClass: "ce-iframe", 37 acceptClass: "ce-accept", 38 disableClass: "ce-disable", 39 dismissClass: "ce-dismiss", 40 bannerClass: "ce-banner", 41 bannerHTML: null !== document.getElementById("ce-banner-html") ? document.getElementById("ce-banner-html").innerHTML : '<p>This website uses cookies. <a href="#" class="ce-accept">Enable Cookies</a></p>', 42 eventScroll: !1, 43 scrollOffset: 200, 44 clickOutside: !1, 45 cookieName: "ce-cookie", 46 cookieDuration: "365", 47 forceBannerClass: "ginger-banner bottom dialog dark force", 48 forceEnable: !1, 49 forceEnableText: '<div class="ginger-button-wrapper"><div class="ginger-button"><a href="#" class="ginger-accept">Enable Cookie</a></div></div>', 50 iframesPlaceholder: !0, 51 iframesPlaceholderHTML: null !== document.getElementById("ce-iframePlaceholder-html") ? document.getElementById("ce-iframePlaceholder-html").innerHTML : '<p>To view this content you need to<a href="#" class="ce-accept">Enable Cookies</a></p>', 52 iframesPlaceholderClass: "ce-iframe-placeholder", 53 onEnable: "", 54 onDismiss: "", 55 onDisable: "", 56 forceReload: !1 57 }, c = function () { 58 Math.abs(window.pageYOffset - r) > a.scrollOffset && "N" != g.get() && u() 59 }, l = function () { 60 i = { 61 accept: document.getElementsByClassName(a.acceptClass), 62 disable: document.getElementsByClassName(a.disableClass), 63 banner: document.getElementsByClassName(a.bannerClass), 64 bannerForce: document.getElementsByClassName(a.forceBannerClass), 65 dismiss: document.getElementsByClassName(a.dismissClass) 66 }; 67 var e, n = i.accept, s = n.length, o = i.disable, l = o.length, d = i.dismiss, p = d.length; 68 for (a.eventScroll && window.addEventListener("load", function () { 69 r = window.pageYOffset, window.addEventListener("scroll", c) 70 }), a.clickOutside && document.addEventListener("click", function (e) { 71 var n = e.target; 72 return t(n, a.iframesPlaceholderClass) || t(n, a.disableClass) || t(n, a.bannerClass) || t(n, a.dismissClass) || t(n, a.disableClass) ? !1 : void("N" != g.get() && u()) 73 }), e = 0; s > e; e++) n[e].addEventListener("click", function (e) { 74 e.preventDefault(), u(e) 75 }); 76 for (e = 0; l > e; e++) o[e].addEventListener("click", function (e) { 77 e.preventDefault(), f(e) 78 }); 79 for (e = 0; p > e; e++) d[e].addEventListener("click", function (e) { 80 e.preventDefault(), m.dismiss() 81 }) 82 }, d = function (n) { 83 if (a = e({}, o, n), "Y" == g.get()) "function" == typeof a.onEnable && a.onEnable(), y.get_async(), b.get(), p.get(); else if ("N" == g.get()) { 84 var t = document.getElementById("disqus_thread"); 85 null != t && (t.style.display = "none"), 0 != a.forceEnable && m.forceAccept(), "function" == typeof a.onDisable && a.onDisable(), p.hide(), l() 86 } else { 87 var t = document.getElementById("disqus_thread"); 88 null != t && (t.style.display = "none"), m.create(), p.hide(), l() 89 } 90 }, u = n(function (e) { 91 if ("undefined" != typeof e && "click" === e.type && e.preventDefault(), "Y" != g.get()) { 92 y.get_async(), g.set(), b.get(), p.get(), p.removePlaceholders(), m.dismiss(); 93 var n = document.getElementById("disqus_thread"); 94 null != n && (n.style.display = "block"), window.removeEventListener("scroll", c), "function" == typeof a.onEnable && a.onEnable(), 1 == a.forceReload && location.reload() 95 } 96 }, 250, !1), f = function (e) { 97 "undefined" != typeof e && "click" === e.type && e.preventDefault(), "N" != g.get() && (g.
97set("N"), m.dismiss(), window.removeEventListener("scroll", c), "function" == typeof a.onDisable && a.onDisable()) 98 }, m = function () { 99 function e() { 100 var e = '<div class="' + a.bannerClass + '">' + a.bannerHTML + "</div>"; 101 document.body.insertAdjacentHTML("beforeend", e) 102 } 103 104 function n() { 105 var e = '<div class="' + a.forceBannerClass + '">' + a.forceEnableText + "</div>"; 106 document.body.insertAdjacentHTML("beforeend", e) 107 } 108 109 function t() { 110 i.bannerForce[0] && (i.bannerForce[0].style.display = "none"), i.banner[0] && (i.banner[0].style.display = "none"), "function" == typeof a.onDismiss && a.onDismiss() 111 } 112 113 return {create: e, dismiss: t, forceAccept: n} 114 }(), g = function () { 115 function e(e) { 116 var n, t, s = "undefined" != typeof e ? e : "Y"; 117 a.cookieDuration ? (n = new Date, n.setTime(n.getTime() + 24 * a.cookieDuration * 60 * 60 * 1e3), t = "; expires=" + n.toGMTString()) : t = "", document.cookie = a.cookieName + "=" + s + t + "; path=/"; 118 var i = "undefined" != typeof ginger_logger ? ginger_logger : "N"; 119 "Y" == i && gingerAjaxLogTime(s) 120 } 121 122 function n() { 123 var e, n, t, s = document.cookie.split(";"), i = s.length; 124 for (e = 0; i > e; e++) if (n = s[e].substr(0, s[e].indexOf("=")), t = s[e].substr(s[e].indexOf("=") + 1), n = n.replace(/^\s+|\s+$/g, ""), n == a.cookieName) return unescape(t) 125 } 126 127 return {set: e, get: n} 128 }(), p = function () { 129 function e(e) { 130 var n = document.createElement("div"); 131 n.className = a.iframesPlaceholderClass, n.innerHTML = a.iframesPlaceholderHTML, e.parentNode.insertBefore(n, e) 132 } 133 134 function n() { 135 var e, n = document.getElementsByClassName(a.iframesPlaceholderClass), t = n.length; 136 for (e = t - 1; e >= 0; e--) n[e].remove() 137 } 138 139 function t() { 140 var n, t, s = document.getElementsByClassName(a.iframeClass), i = s.length; 141 for (t = 0; i > t; t++) n = s[t], n.style.display = "none", a.iframesPlaceholder && e(n) 142 } 143 144 function s() { 145 var e, n, t, s = document.getElementsByClassName(a.iframeClass), i = s.length; 146 for (t = 0; i > t; t++) n = s[t], e = n.attributes["data-ce-src"].value, n.src = e, n.style.display = "block" 147 } 148 149 return {hide: t, get: s, removePlaceholders: n} 150 }(), b = function () { 151 function e() { 152 var e, n, t, s, i = document.getElementsByClassName(a.scriptClass), r = i.length, 153 o = document.createDocumentFragment(); 154 for (e = 0; r > e; e++) if (i[e].hasAttribute("data-ce-src")) "undefined" == typeof postscribe && postscribe(i[e].parentNode, '<script src="' + i[e].getAttribute("data-ce-src") + '"></script>'); else { 155 for (t = document.createElement("script"), t.type = "text/javascript", n = 0; n < i[e].attributes.length; n++) s = i[e].attributes[n], s.specified && "type" != s.name && "class" != s.name && t.setAttribute(s.name, s.value); 156 t.innerHTML = i[e].innerHTML, o.appendChild(t) 157 } 158 document.body.appendChild(o) 159 } 160 161 function n() { 162 "undefined" != typeof async_ginger_script 163 } 164 165 return {get: e, get_async: n} 166 }(), y = function () { 167 function e() { 168 if ("undefined" != typeof async_ginger_script) { 169 var e, n = async_ginger_script; 170 for (e = 0; e < n.length; ++e) { 171 var t = document.createElement("script"); 172 t.type = "text/javascript", t.src = n[e], document.getElementsByTagName("head")[0].appendChild(t) 173 } 174 } 175 } 176 177 return {get_async: e} 178 }(); 179 return {init: d, enableCookies: u, dismissBanner: m.dismiss} 180}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.