Decoding Variables for JavaScript Pro And those who love challenges - javascript
Recently I was updating some features on a site I'm working on locally until I launch it soon but I found a site that uses the code below to display some features that I want to add in my site template but I'm 10% Javascript I don't understand the code at all so is it possible to decode The code so that I can learn from it?
const jo = {};
! function JetThemeScript() {
var U = window,
aZ = document,
a = setTimeout,
cK = clearTimeout,
cN = Date,
cA = Math,
w = parseInt,
cn = encodeURIComponent,
an = RegExp,
cy = XMLHttpRequest,
bG = alert,
b1 = localStorage,
aH = JSON,
bh = Image,
bl = setInterval,
dr = clearInterval,
bw = "innerHTML",
be = "outerHTML",
ck = "tagName",
C = "getElementById",
s = "getElementsByClassName",
bR = "querySelector",
dd = "querySelectorAll",
bN = "documentElement",
cV = "childNodes",
bL = "parentNode",
bO = "cloneNode",
cg = "createElement",
H = "className",
L = "replace",
cx = "indexOf",
q = "lastIndexOf",
bk = "EventListener",
cO = "add",
aV = "remove",
cW = "id",
bM = "key",
aU = "type",
ap = "parse",
df = "length",
ag = "call",
b8 = "slice",
I = "reset",
aJ = "scroller",
aC = "push",
cF = "Time",
ak = "Date",
bq = "Month",
bo = "FullYear",
aB = "clientX",
aA = "clientY",
k = "pageX",
j = "pageY",
aW = "scrollLeft",
cl = "scrollTop",
am = "onreadystatechange",
cT = "readyState",
bg = "Attribute",
bD = "set",
bY = "get",
bf = "has",
N = "checked",
aD = "focus",
cD = "height",
cP = "offsetWidth",
cY = "offsetHeight",
aI = "toFixed",
aO = "pageYOffset",
dg = "appendChild",
bX = "firstChild",
cX = "insert",
cm = "Before",
aM = "value",
aa = "safe",
aR = "match",
ah = "href",
bB = "src",
ad = "onload",
aw = "onerror",
T = "target",
ct = "closest",
bx = "location",
bC = "reload",
bs = "split",
bp = "trim",
cz = "open",
bz = "send",
bE = "random",
dq = "status",
bJ = "toString",
a8 = "parentElement",
ay = "activeElement",
cL = "preventDefault",
bt = "substr",
c8 = "setRequestHeader",
aN = "responseText",
cZ = "response",
br = "body",
a3 = "title",
at = "test",
aL = "container",
a5 = "ceil",
au = "floor",
bP = "round",
aq = "min",
db = "map",
c0 = "cookie",
ae = "contains",
by = "toUTCString",
cp = "textContent",
aG = "elementFromPoint",
a2 = "Item",
cc = "nextSibling",
dn = "load",
bI = "true",
D = "false",
a9 = "valid",
cu = "scroll",
O = "click",
b3 = "blur",
cj = "mousemove",
u = "mouseup",
aj = "touchstart",
a7 = "mousedown",
bd = "change",
m = "complete",
dp = "undefined",
bK = "function",
bT = "Content-Type",
Y = "text/html",
ba = "overlays",
f = "pagination",
da = "loadCustomPosts",
l = "custom_posts",
X = "config",
dm = "adsbygoogle",
cv = "enable_page_level_ads",
b6 = "analytics",
a6 = "firebase",
v = "8.4.2",
dj = typeof isPreview !== dp ? isPreview : false,
aP = typeof siteUrl !== dp ? siteUrl : "",
aX = typeof currentUrl !== dp ? currentUrl : "",
y = typeof blogId !== dp ? blogId : "",
c2 = typeof blogTitle !== dp ? blogTitle : "",
cH = typeof pageTitle !== dp ? pageTitle : "Page",
b = typeof firebaseUrl !== dp ? firebaseUrl : "",
B = typeof analyticId !== dp ? analyticId : false,
a1 = typeof caPubAdsense !== dp ? caPubAdsense : false,
ch = typeof innerAdsDelimiter !== dp ? innerAdsDelimiter : "p,br,div",
cf = typeof ignoreAdsDelimiter !== dp ? ignoreAdsDelimiter : "pre,ul,ol,table,blockquote",
bH = typeof autoTOC !== dp ? autoTOC : false,
av = typeof toc_temp === bK ? toc_temp : false,
bn = typeof generate_url_temp === bK ? generate_url_temp : false,
r = typeof positionTOC !== dp ? positionTOC : false,
bu = typeof jtCallback === bK ? jtCallback : false,
z = "jet",
cR = "https://",
aF = "-rw",
a0 = "5.0.0-beta2",
cC = "theme",
bQ = "bootstrap",
c7 = typeof licenseKey !== dp ? licenseKey : "",
R = typeof bootstrapJs !== dp ? bootstrapJs : false,
a4 = typeof bsCallback === bK ? bsCallback : false,
bW = typeof safeAds !== dp ? safeAds : false,
cb = typeof limitAdsClick !== dp ? limitAdsClick : 3,
bj = typeof timeAdsClick !== dp ? timeAdsClick : 10,
bi = typeof blockAdsClick !== dp ? blockAdsClick : 6,
af = "source",
cM = "app",
W = "please",
bF = "license",
bc = "Newspaper";
function S(i, h) {
return -1 < (" " + i[H] + " ")[cx](" " + h + " ")
}
function Q(i, h) {
if (!S(i, h)) {
var n = i[H];
"" != n && (h = " " + h), i[H] = n + h
}
}
function bV(i, h) {
i[H] = i[H][L](new an("(?:^|\\s)" + h + "(?!\\S)"), "")[bp]()
}
function bS(i, h) {
S(i, h) ? bV(i, h) : Q(i, h)
}
function aT(i, h) {
Q(i, "d-block"), a(function () {
Q(i, h)
}, 100)
}
function cJ(i, h, n) {
bV(i, h), a(function () {
bV(i, "d-block")
}, n ? n : 300)
}
function G(i, h) {
for (var n = 0; n < i[df]; n++) {
if (i[n] === h) {
return !0
}
}
return !1
}
function aQ() {
return (cA[bE]() + 1)[bJ](36)[bt](7)
}
function c3(i, h) {
return i = new an("[?&]" + i + "=([^&#=]*)"), !!i[at](h) && h[aR](i)[1]
}
function ab(dy, dx, dw, dv) {
dy = w(dy), dx = w(dx), dw = w(dw), dv = w(dv);
var dt, x, t = cA[a5](dy / dw);
(1 > dx ? dx = 1 : dx > t && (dx = t), t <= dv) ? (dt = 1, x = t) : (dy = cA[au](dv / 2), dw = cA[a5](dv / 2) - 1, dx <= dy ? (dt = 1, x = dv) : dx + dw >= t ? (dt = t - dv + 1, x = t) : (dt = dx - dy, x = dx + dw));
for (var o = (dx - 1) * dw, ds = cA[aq](o + dw - 1, dy - 1), du = [], n = 0; n < x + 1 - dt; n++) {
du[aC](n)
}
return du = du[db](function (h) {
return dt + h
}), {
totalItems: dy,
currentPage: dx,
pageSize: dw,
totalPages: t,
startPage: dt,
endPage: x,
startIndex: o,
endIndex: ds,
pages: du
}
}! function (i) {
var h = new bh;
h[ad] = h[aw] = function () {
i(2 == h[cD])
}, h[bB] = "data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA"
}(function (h) {
h || (aF = "")
});
function c9(i) {
for (var h = i.slice(), t = h[df] - 1; 0 < t; t--) {
var o = cA[au](cA[bE]() * (t + 1)),
n = h[t];
h[t] = h[o], h[o] = n
}
return h
}
function dl(o, n, i, dt) {
var x = new cN,
ds = "minutes" == dt ? 1000 * (60 * i) : "hours" == dt ? 1000 * (60 * (60 * i)) : 1000 * (60 * (60 * (24 * i)));
x[bD + cF](x[bY + cF]() + ds);
var t = "expires=" + x[by]();
aZ[c0] = o + "=" + n + "; " + t + "; path=/"
}
function p(i) {
var h = aZ[c0][aR](new an("(^| )" + i + "=([^;]+)"));
if (h) {
return h[2]
}
}
function az(h) {
try {
return aH[ap](h)
} catch (h) {
return !1
}
}
var dc = aZ[C]("header"),
cs = aZ[C]("search-toggle"),
ac = aZ[C]("search-header"),
g = aZ[C]("navbar-toggle"),
bm = aZ[C]("navbar"),
aE = aZ[C]("back-to-top"),
di = aZ[C]("dark-toggler"),
bb = aZ[bR]("html"),
cr = aZ[C]("comment-button"),
al = aZ[C]("threaded-comment-form"),
c6 = aZ[C]("comment-editor"),
c4 = aZ[C]("comment-editor-src"),
V = aZ[C]("comment-script"),
bU = aZ[dd](".comment-reply"),
P = aZ[dd](".entry-text noscript"),
aK = aZ[C]("ads-post"),
cU = aZ[C]("post-body"),
aS = aZ[bR](".related-posts"),
aY = aZ[bR](".related-inline"),
ao = c3("page", aX),
ai = aZ[dd](".generate-url"),
c1 = aP[bt](0, aP[df] - 1)[L](/(^\w+:|^)\/\//, ""),
ca = c7[bp](),
cw = p("j" + bM),
dh = p("j" + a9),
c5 = p("j" + aa) ? w(p("j" + aa)) : 0,
d = cR + af + "." + z + cC + ".com/" + cM + "?" + bB + "=" + ca,
M = function (n) {
if ("IMG" == n[ck]) {
var i = n[bY + bg]("data-src");
if (0 < i[cx]("bp.blogspot")) {
var du = n[cP][aI](0),
dt = n[a8][cP][aI](0),
ds = n[a8][a8][cP][aI](0),
x = n[cY][aI](0),
t = i[bs]("/"),
o = "";
S(n[a8], "ratio") ? o = "w" + du + aF + "-h" + x + "-c" : (o = 10 > du ? 10 > dt ? ds : dt : du, o = "s" + o + aF), i = i[L](t[t[df] - 2], o), n[bD + bg]("data-src", i)
} else {
i[aR](/(img.youtube|i.ytimg)/) && (i = i[bt](0, i[q]("/")) + "/mqdefault.jpg", n[bD + bg]("data-src", i))
}
}
},
dk = function (dw) {
var dv = dw[bY + bg]("data-pagination");
if (dv != D) {
function dv(dy, dx, dB) {
var dA = aZ[cg]("li"),
dz = aZ[cg]("span");
return Q(dz, "btn btn-sm rounded-pill jt-icon-center"), dz[bw] = dB ? dB : dy, dz[bD + bg]("data-page", dy), dy == dx ? Q(dz, "jt-btn-primary") : (Q(dz, "jt-btn-light hover-btn-primary"), dz[cO + bk](O, function (dC) {
if (dC[cL](), i = dz[bY + bg]("data-page"), 1 == i) {
var h = dt ? aP + "search" + x + "?max-results=" + du + "&page=" + i : aP;
U[bx][ah] = h
} else {
var dD = (i - 1) * du;
Defer.js(aP + "feeds/posts/summary/" + ds + "?start-index=" + dD + "&alt=json&callback=jo." + f + "_date&max-results=1")
}
})), dA[dg](dz), dA
}
var du = dw[bY + bg]("data-posts"),
dt = dw[bY + bg]("data-label");
dt = cn(dt);
var ds = dt ? "-/" + dt + "/" : "",
x = dt ? "/label/" + dt : "";
Defer.js(aP + "feeds/posts/summary/" + ds + "?alt=json&callback=jo." + f + "_" + bM + "&max-results=1");
var t = c3("max-results", aX),
o = c3("page", aX),
n = t ? t : du,
i = o ? o : 1;
jo[f + "_" + bM] = function (dG) {
var dF = dG.feed,
dE = w(dF.openSearch$totalResults.$t);
if (dE > du) {
var dG = ab(dE, i, n, 5),
dD = aZ[cg]("ul"),
dC = 1,
dB = dG.totalPages;
if (dG.currentPage != dC) {
var dA = dv(dG.currentPage - 1, "", '<svg aria-hidden="true" class="jt-icon"><use xlink:href="#i-arrow-l"/></svg>');
dD[dg](dA)
}
if (!G(dG.pages, dC)) {
var dz = dv(dC, dG.currentPage, dC + " . .");
dD[dg](dz)
}
for (var dz, dy = 0; dy < dG.pages[df]; dy++) {
dz = dv(dG.pages[dy], dG.currentPage), dD[dg](dz)
}
if (!G(dG.pages, dB)) {
var dz = dv(dB, dG.currentPage, ". . " + dB);
dD[dg](dz)
}
if (dG.currentPage != dB) {
var dx = dv(dG.currentPage + 1, "", '<svg aria-hidden="true" class="jt-icon"><use xlink:href="#i-arrow-r"/></svg>');
dD[dg](dx)
}
dw[bw] = "", Q(dD, "pagination mb-0"), dw[dg](dD), bV(dw, "visually-hidden")
}
}, jo[f + "_date"] = function (dx) {
var h = dx.feed.entry[0],
dz = h.published.$t[bt](0, 19) + h.published.$t[bt](23, 29);
dz = dz[L]("+", "%2B");
var dy = aP + "search" + x + "?updated-max=" + dz + "&max-results=" + n + "&page=" + i;
U[bx][ah] = dy
}
} else {
bV(dw, "visually-hidden")
}
};
jo[da] = function (dC) {
var dB = aQ(),
dA = dC[bY + bg]("data-label"),
dz = dC[bY + bg]("data-title"),
dy = dC[bY + bg]("data-items"),
dx = dC[bY + bg]("data-shuffle"),
dw = dC[bY + bg]("data-no-item"),
dv = dC[bY + bg]("data-func"),
du = dC[bY + bg]("data-callback"),
dt = dw ? w(dy) + 1 : dy,
ds = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
x = dA ? dA : dC[bw],
t = x[bs](","),
i = "";
i = 1 < t[df] ? x ? "-/" + cn(t[cA[au](cA[bE]() * t[df])]) + "/?" : "?" : x && x != D ? "-/" + cn(x[bp]()) + "/?" : "?", Defer.js(aP + "feeds/posts/summary/" + i + "alt=json&callback=jo." + l + "_" + bM + "_" + dB + "&max-results=" + dt), jo[l + "_" + bM + "_" + dB] = function (dK) {
var dJ = w(dK.feed.openSearch$totalResults.$t),
dI = dK.feed.category;
if (0 < dJ) {
for (var dH = {
title: dz,
posts: [],
categories: dI
}, dF = dK.feed.entry, dD = 0, h = 0; h < dF[df]; ++h) {
var dS = dF[h],
dR = dS.link[dS.link[df] - 1][ah];
if (dD == dy) {
break
}
if (dR != dw) {
dD++;
var dQ = {
grup_id: dB,
url: dR,
title: dS[a3].$t,
summary: dS.summary.$t[bp](),
img: dS.media$thumbnail && dS.media$thumbnail.url,
author: dS.author[0].name.$t,
comment: dS.thr$total && dS.thr$total.$t,
label: dS.category
},
dP = dS.updated.$t,
dO = new cN(dP),
dN = dO[bY + ak](),
dM = ds[dO[bY + bq]()],
dL = dO[bY + bo]();
dQ.date = dN + " " + dM + ", " + dL, dH.posts[aC](dQ)
}
}
var dG = U[dv];
if (typeof dG === bK && 0 < dH.posts[df] && (dx && (dH.posts = c9(dH.posts)[b8](0, dx)), dC[bw] = dG(dH)[bp](), bV(dC, "visually-hidden"), Defer.dom(".lazy-" + dB, 1, "loaded", M), du)) {
var dE = U[du];
typeof dE === bK && dE()
}
}
}
};
function cE(i, h) {
var n = new cy;
n[cz](bY, i), n[c8](bT, Y), n[bz](null), n[cO + bk](dn, function () {
var o = n[aN][aR](/<title>(.*?)<\/title>/);
h[bw] = o[1][L](" – " + c2, "")
})
}
var E = function (i) {
for (var h = i[dd]("a"), x = 0; x < h[df]; ++x) {
var t = h[x],
o = t[ah],
n = aZ[cg]("span");
Q(n, "d-block fw-bold pt-2 jt-text-primary"), t[dg](n), cE(o, n)
}
};
function ar() {
cs && cs[N] || g && g[N] ? bV(dc, "header-animate") : Q(dc, "header-animate")
}
function F(i, h) {
function o(t) {
i[ae](t[T]) || (h(), n())
}
var n = function () {
aZ[aV + bk](O, o)
};
aZ[cO + bk](O, o)
}
cs && cs[cO + bk](bd, function () {
ar(), this[N] && a(function () {
aZ[C]("search-input")[aD]()
}, 100), F(ac, function () {
cs[N] = !1, ar()
})
}), g && g[cO + bk](bd, function () {
ar(), this[N] ? (aT(bm, "show"), F(bm, function () {
g[N] = !1, ar(), cJ(bm, "show")
})) : cJ(bm, "show")
}), di && di[cO + bk](O, function (h) {
h[cL](), bS(bb, "dark-mode"), b1[bD + a2]("theme", S(bb, "dark-mode") ? "dark" : "light")
}), U[cO + bk](cu, function () {
1 <= this[aO] ? Q(dc, "shadow-sm") : bV(dc, "shadow-sm"), 1000 <= this[aO] ? bV(aE, "d-none") : Q(aE, "d-none")
}, !1), c6 && c6[cO + bk](dn, function () {
bV(al, "loader")
});
function Z(i) {
if (i != c4[ah] && (Q(al, "loader"), c4[ah] = i, c6[bB] = i), S(al, "d-none")) {
bV(al, "d-none");
var h = V[aM][aR](/<script.*?src='(.*?)'/)[1];
Defer.js(h, "comment-js", 500, function () {
BLOG_CMT_createIframe(cR + "www.blogger.com/rpc_relay.html")
})
}
}
cr && cr[cO + bk](O, function (h) {
h[cL](), Z(this[ah]), "add-comment" != al[a8][cW] && aZ[C]("add-comment")[dg](al)
});
for (var cd = 0; cd < bU[df]; ++cd) {
bU[cd][cO + bk](O, function (i) {
i[cL]();
var h = this[bY + bg]("data-comment-id");
Z(this[ah]), al[a8][cW] != "c" + h && aZ[C]("c" + h)[dg](al)
})
}
if (! function (i, h) {
U[cO + bk](cu, function () {
var o, n = this[aO];
n < h && S(dc, "header-hidden") ? o = a(function () {
bV(dc, "header-hidden")
}, 500) : h < n && S(dc, "header-animate") && (cK(o), Q(dc, "header-hidden")), h = n
}, !1)
}(this, 0), 0 < P[df]) {
for (var cd = 0; cd < P[df]; ++cd) {
var cG = P[cd],
cQ = cG[bw],
cq = 'src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" loading="lazy" lazyload="true" data-src="$1"',
cS = aZ[cg]("textarea");
cS[bw] = cQ[L](/src="(.*?)"/g, cq);
var bv = aZ[cg]("div");
bv[bw] = cS.value, 0 == cd && Q(bv, "feature-image mb-3"), cG[a8][cX + cm](bv, cG)
}
Defer.dom('[lazyload="true"]', 1, "loaded", M, null, {
rootMargin: "200%"
})
}
if (null !== cU) {
if (null !== aS && null !== aY && (aY[bw] = aS[bw], aY[bD + bg]("data-no-item", aS[bY + bg]("data-no-item"))), null !== aK) {
for (var de, cB = cU[dd](ch + "," + cf), co = aK[cV], ax = co[df], J = [], cd = 0; cd < cB[df]; cd++) {
de = cB[cd][ct](cf), de && cB[cd] != de || J[aC](cB[cd])
}
for (var cd = 0; cd < ax; cd++) {
var b0, b2;
0 == cd ? b0 = J[0] : (b2 = cd == ax - 1 ? J[df] - 1 : cA[bP](J[df] / ax) * cd, b0 = J[b2][cc]), b0 && b0[a8][cX + cm](co[cd][bO](!0), b0)
}
aK[be] = ""
}
if (bH && bH != D && av && null !== cU[bX]) {
for (var K = cU[dd]("h2,h3,h4,h5,h6"), b5 = aZ[cg]("div"), A = cU[bR](r), b7 = [], cd = 0; cd < K[df]; cd++) {
var ce = K[cd],
b4 = ce[cp][L](/[^\w!?]/g, "_")[L](/__/g, "_"),
b9 = w(ce[ck][L]("H", ""));
ce[cW] = b4, b7[aC]({
level: b9,
title: ce[cp],
id: b4
})
}
null === A && (A = cU[bX]), 0 < b7[df] && (b5[bw] = av(b7)[bp](), A && A[a8][cX + cm](b5, A))
}
}! function (i, h) {
bK == typeof define && define.amd ? define(["exports"], h) : dp == typeof exports ? h(i.dragscroll = {}) : h(exports)
}(this, function (i) {
var h, o, t = [],
n = function (x, ds) {
for (x = 0; x < t[df];) {
(ds = (ds = t[x++])[aL] || ds)[aV + bk](a7, ds.md, 0), U[aV + bk](u, ds.mu, 0), U[aV + bk](cj, ds.mm, 0)
}
for (t = [][b8][ag](aZ[s]("drag-scroll")), x = 0; x < t[df];) {
! function (dt, dy, dx, dw, dv, du) {
(du = dt[aL] || dt)[cO + bk](a7, du.md = function (dz) {
dt[bf + bg]("nochilddrag") && aZ[aG](dz[k], dz[j]) != du || (dw = 1, dy = dz[aB], dx = dz[aA], dz[cL]())
}, 0), U[cO + bk](u, du.mu = function () {
dw = 0
}, 0), U[cO + bk](cj, du.mm = function (dz) {
dw && ((dv = dt[aJ] || dt)[aW] -= h = -dy + (dy = dz[aB]), dv[cl] -= o = -dx + (dx = dz[aA]), dt == aZ[br] && ((dv = aZ[bN])[aW] -= h, dv[cl] -= o))
}, 0)
}(t[x++])
}
};
m == aZ[cT] ? n() : U[cO + bk](dn, n, 0), i[I] = n
});
function e() {
dl("j" + bM, ca, 14), dl("j" + a9, !1, 14), bG(W + " " + cX + " " + bF + " " + bM)
}
function cI(i) {
var h = az(i);
h && h[bM] == c1 && h[aU] == bc ? (dl("j" + a9, !0, 14), dl("j" + bM, ca, 14)) : e()
}
var ci = function () {
4 === this[cT] && (200 === this[dq] ? "" == this[cZ] ? e() : cI(this[aN][bp]()) : e())
};
ca && (ca !== cw || dh == dp) ? a(function () {
var h = new cy;
h[am] = ci, h[cz](bY, d, !0), h[bz](null)
}, 8000) : (!ca || dh != bI) && e();
var bZ = function (dv) {
var du = dv[bY + bg]("data-url") || "#",
dt = dv[bY + bg]("data-duration") || 300,
ds = dv[bY + bg]("data-increase") || 3,
x = dv[bY + bg]("data-after") || "Get Link",
t = dv[bR](".progress-bar"),
o = dv[bR](".btn"),
n = 0,
i = bl(function () {
n += ds, 100 <= n && (n = 100, dr(i), bV(o, "disabled"), o[bw] = x, o[bD + bg]("href", du)), t[bD + bg]("style", "width:" + n + "%")
}, dt)
};
if (bn) {
for (var bA, cd = 0; cd < ai[df]; ++cd) {
bA = ai[cd], bA[bw] = bn(bA)[bp]()
}
}
a1 && bW && (U[aD](), U[cO + bk](b3, function () {
a(function () {
var i = aZ[ay];
if ("IFRAME" == i[ck] && i[ct]("." + dm)) {
var h = c5 + 1;
h >= cb ? dl("j" + aa, h, bi, "hours") : dl("j" + aa, h, bj, "minutes")
}
}, 50)
})), ao && (aZ[a3] = aZ[a3][L](" \u2013 ", " \u2013 " + cH + " " + ao + " \u2013 ")), Defer.dom(".lazyload", 1, "loaded", M), Defer.dom("#post-pager", 1, null, E, null, {
rootMargin: "200%"
}), Defer.dom("#pagination", 1, null, dk, null, {
rootMargin: "200%"
}), Defer.dom(".custom-posts", 1, null, jo[da], null, {
rootMargin: "200%"
}), Defer.dom(".generate-url", 1, "loaded", bZ);
function c() {
if (aZ[aV + bk](cj, c), aZ[aV + bk](aj, c), aZ[aV + bk](cu, c), !dj) {
if (a1 && (!bW || bW && c5 < cb)) {
var h = aZ[bR]("ins." + dm);
null !== h && (adsbygoogle = U[dm] || [])[aC]({
google_ad_client: "ca-pub-" + a1,
enable_page_level_ads: !0,
overlays: {
bottom: !0
}
}), Defer.js(cR + "pagead2.googlesyndication.com/pagead/js/" + dm + ".js", dm, 100)
}
B && B != D && Defer.js(cR + "www.googletagmanager.com/gtag/js?id=" + B, b6, 100, function () {
function i() {
dataLayer[aC](arguments)
}
i("js", new Date), i(X, B)
}), b && b != D && Defer.js(cR + "www.gstatic.com/" + a6 + "js/" + v + "/" + a6 + "-app.js", a6 + "-app", 100, function () {
Defer.js(cR + "www.gstatic.com/" + a6 + "js/" + v + "/" + a6 + "-database.js", a6 + "-db", 100, function () {
var n = aZ[dd](".jt-get-view");
firebase.initializeApp({
databaseURL: b
});
for (var i = firebase.database(), ds = 0; ds < n[df]; ds++) {
var x = n[ds],
t = x[bY + bg]("data-id"),
o = i.ref("pages/" + t);
o.once(aM, function (du, dt) {
return function (dw) {
var dv = dw.exists() ? dw.val() : 0;
0 < dv && (du[bw] = dv, bV(du[a8], "d-none")), du[bY + bg]("data-increment") == bI && (du[bD + bg]("data-increment", !1), dv = w(dv) + 1, dt.set(dv))
}
}(x, o))
}
})
}), bu && bu()
}
R && Defer.js(cR + "cdn.jsdelivr.net/npm/" + bQ + "#" + a0 + "/dist/js/" + bQ + ".min.js", bQ, 100, a4)
}
aZ[cO + bk](cj, c), aZ[cO + bk](aj, c), aZ[cO + bk](cu, c)
}();
You can deobfuscate the code by going to https://www.dcode.fr/javascript-unobfuscator
However I recommend trying to implement the features you want from their site yourself or by using a library, rather than trying to track down and figure out what exactly they're doing.
Related
Azure Application Insights not logging unhandled browser events or exceptions
I'm attempting to log unhandled browser exceptions in an ASP.NET Core web application. I'm following the setup documentation noted here on learn.microsoft.com. I'm not currently seeing anything being logged, even if I manually call appInsights.trackException(ex). It should be noted that I am able to see logs that are coming from the backend code, just not anything from the client's browser. While I can't post the code directly related to the project I'm working on, I've created a small web page that I can run locally just to recreate the issue. <!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript"> !function (T, l, y) { var S = T.location, k = "script", D = "instrumentationKey", C = "ingestionendpoint", I = "disableExceptionTracking", E = "ai.device.", b = "toLowerCase", w = "crossOrigin", N = "POST", e = "appInsightsSDK", t = y.name || "appInsights"; (y.name || T[e]) && (T[e] = t); var n = T[t] || function (d) { var g = !1, f = !1, m = { initialize: !0, queue: [], sv: "5", version: 2, config: d }; function v(e, t) { var n = {}, a = "Browser"; return n[E + "id"] = a[b](), n[E + "type"] = a, n["ai.operation.name"] = S && S.pathname || "_unknown_", n["ai.internal.sdkVersion"] = "javascript:snippet_" + (m.sv || m.version), { time: function () { var e = new Date; function t(e) { var t = "" + e; return 1 === t.length && (t = "0" + t), t } return e.getUTCFullYear() + "-" + t(1 + e.getUTCMonth()) + "-" + t(e.getUTCDate()) + "T" + t(e.getUTCHours()) + ":" + t(e.getUTCMinutes()) + ":" + t(e.getUTCSeconds()) + "." + ((e.getUTCMilliseconds() / 1e3).toFixed(3) + "").slice(2, 5) + "Z" }(), iKey: e, name: "Microsoft.ApplicationInsights." + e.replace(/-/g, "") + "." + t, sampleRate: 100, tags: n, data: { baseData: { ver: 2 } } } } var h = d.url || y.src; if (h) { function a(e) { var t, n, a, i, r, o, s, c, u, p, l; g = !0, m.queue = [], f || (f = !0, t = h, s = function () { var e = {}, t = d.connectionString; if (t) for (var n = t.split(";"), a = 0; a < n.length; a++) { var i = n[a].split("="); 2 === i.length && (e[i[0][b]()] = i[1]) } if (!e[C]) { var r = e.endpointsuffix, o = r ? e.location : null; e[C] = "https://" + (o ? o + "." : "") + "dc." + (r || "services.visualstudio.com") } return e }(), c = s[D] || d[D] || "", u = s[C], p = u ? u + "/v2/track" : d.endpointUrl, (l = []).push((n = "SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)", a = t, i = p, (o = (r = v(c, "Exception")).data).baseType = "ExceptionData", o.baseData.exceptions = [{ typeName: "SDKLoadFailed", message: n.replace(/\./g, "-"), hasFullStack: !1, stack: n + "\nSnippet failed to load [" + a + "] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: " + (S && S.pathname || "_unknown_") + "\nEndpoint: " + i, parsedStack: [] }], r)), l.push(function (e, t, n, a) { var i = v(c, "Message"), r = i.data; r.baseType = "MessageData"; var o = r.baseData; return o.message = 'AI (Internal): 99 message:"' + ("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) (" + n + ")").replace(/\"/g, "") + '"', o.properties = { endpoint: a }, i }(0, 0, t, p)), function (e, t) { if (JSON) { var n = T.fetch; if (n && !y.useXhr) n(t, { method: N, body: JSON.stringify(e), mode: "cors" }); else if (XMLHttpRequest) { var a = new XMLHttpRequest; a.open(N, t), a.setRequestHeader("Content-type", "application/json"), a.send(JSON.stringify(e)) } } }(l, p)) } function i(e, t) { f || setTimeout(function () { !t && m.core || a() }, 500) } var e = function () { var n = l.createElement(k); n.src = h; var e = y[w]; return !e && "" !== e || "undefined" == n[w] || (n[w] = e), n.onload = i, n.onerror = a, n.onreadystatechange = function (e, t) { "loaded" !== n.readyState && "complete" !== n.readyState || i(0, t) }, n }(); y.ld < 0 ? l.getElementsByTagName("head")[0].appendChild(e) : setTimeout(function () { l.getElementsByTagName(k)[0].parentNode.appendChild(e) }, y.ld || 0) } try { m.cookie = l.cookie } catch (p) { } function t(e) { for (; e.length;)!function (t) { m[t] = function () { var e = arguments; g || m.queue.push(function () { m[t].apply(m, e) }) } }(e.pop()) } var n = "track", r = "TrackPage", o = "TrackEvent"; t([n + "Event", n + "PageView", n + "Exception", n + "Trace", n + "DependencyData", n + "Metric", n + "PageViewPerformance", "start" + r, "stop" + r, "start" + o, "stop" + o, "addTelemetryInitializer", "setAuthenticatedUserContext", "clearAuthenticatedUserContext", "flush"]), m.SeverityLevel = { Verbose: 0, Information: 1, Warning: 2, Error: 3, Critical: 4 }; var s = (d.extensionConfig || {}).ApplicationInsightsAnalytics || {}; if (!0 !== d[I] && !0 !== s[I]) { var c = "onerror"; t(["_" + c]); var u = T[c]; T[c] = function (e, t, n, a, i) { var r = u && u(e, t, n, a, i); return !0 !== r && m["_" + c]({ message: e, url: t, lineNumber: n, columnNumber: a, error: i }), r }, d.autoExceptionInstrumented = !0 } return m }(y.cfg); function a() { y.onInit && y.onInit(n) } (T[t] = n).queue && 0 === n.queue.length ? (n.queue.push(a), n.trackPageView({})) : a() }(window, document, { src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", // The SDK URL Source // name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied // ld: 0, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout, // useXhr: 1, // Use XHR instead of fetch to report failures (if available), crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag // onInit: null, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DO NOT ADD anything to the sdk.queue -- As they won't get called) cfg: { // Application Insights Configuration instrumentationKey: "myInstrumentationKey" } }); </script> <script> console.log(appInsights); // this produces an output, so appInsights is at least created try { x.hello; // x is not defined, this throws an exception } catch (ex) { appInsights.trackException(ex); // attempting to log exception manually appInsights.flush(); throw ex; // attempting to log unhandled exception } </script> </head> </html> In this code, I initialize everything using the snippet provided in the link above. I try to call x.hello, but x isn't defined so any exception is thrown. I then attempt to log that exception manually using appInsights.trackException(ex) and I also re-throw the exception because, according to the link above, unhandled browser exceptions should be logged automatically. I am however not seeing either of these events appear in application insights. I know my instrumentation key is correct, because an incorrect one would yield some 400 errors when attempting to connect. This is what my network tab looks like after connecting. Any ideas where I'm going wrong here?
I am following the same snippet which you are used. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> !function (T, l, y) { var S = T.location, k = "script", D = "instrumentationKey", C = "ingestionendpoint", I = "disableExceptionTracking", E = "ai.device.", b = "toLowerCase", w = "crossOrigin", N = "POST", e = "appInsightsSDK", t = y.name || "appInsights"; (y.name || T[e]) && (T[e] = t); var n = T[t] || function (d) { var g = !1, f = !1, m = { initialize: !0, queue: [], sv: "5", version: 2, config: d }; function v(e, t) { var n = {}, a = "Browser"; return n[E + "id"] = a[b](), n[E + "type"] = a, n["ai.operation.name"] = S && S.pathname || "_unknown_", n["ai.internal.sdkVersion"] = "javascript:snippet_" + (m.sv || m.version), { time: function () { var e = new Date; function t(e) { var t = "" + e; return 1 === t.length && (t = "0" + t), t } return e.getUTCFullYear() + "-" + t(1 + e.getUTCMonth()) + "-" + t(e.getUTCDate()) + "T" + t(e.getUTCHours()) + ":" + t(e.getUTCMinutes()) + ":" + t(e.getUTCSeconds()) + "." + ((e.getUTCMilliseconds() / 1e3).toFixed(3) + "").slice(2, 5) + "Z" }(), iKey: e, name: "Microsoft.ApplicationInsights." + e.replace(/-/g, "") + "." + t, sampleRate: 100, tags: n, data: { baseData: { ver: 2 } } } } var h = d.url || y.src; if (h) { function a(e) { var t, n, a, i, r, o, s, c, u, p, l; g = !0, m.queue = [], f || (f = !0, t = h, s = function () { var e = {}, t = d.connectionString; if (t) for (var n = t.split(";"), a = 0; a < n.length; a++) { var i = n[a].split("="); 2 === i.length && (e[i[0][b]()] = i[1]) } if (!e[C]) { var r = e.endpointsuffix, o = r ? e.location : null; e[C] = "https://" + (o ? o + "." : "") + "dc." + (r || "services.visualstudio.com") } return e }(), c = s[D] || d[D] || "", u = s[C], p = u ? u + "/v2/track" : d.endpointUrl, (l = []).push((n = "SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details)", a = t, i = p, (o = (r = v(c, "Exception")).data).baseType = "ExceptionData", o.baseData.exceptions = [{ typeName: "SDKLoadFailed", message: n.replace(/\./g, "-"), hasFullStack: !1, stack: n + "\nSnippet failed to load [" + a + "] -- Telemetry is disabled\nHelp Link: https://go.microsoft.com/fwlink/?linkid=2128109\nHost: " + (S && S.pathname || "_unknown_") + "\nEndpoint: " + i, parsedStack: [] }], r)), l.push(function (e, t, n, a) { var i = v(c, "Message"), r = i.data; r.baseType = "MessageData"; var o = r.baseData; return o.message = 'AI (Internal): 99 message:"' + ("SDK LOAD Failure: Failed to load Application Insights SDK script (See stack for details) (" + n + ")").replace(/\"/g, "") + '"', o.properties = { endpoint: a }, i }(0, 0, t, p)), function (e, t) { if (JSON) { var n = T.fetch; if (n && !y.useXhr) n(t, { method: N, body: JSON.stringify(e), mode: "cors" }); else if (XMLHttpRequest) { var a = new XMLHttpRequest; a.open(N, t), a.setRequestHeader("Content-type", "application/json"), a.send(JSON.stringify(e)) } } }(l, p)) } function i(e, t) { f || setTimeout(function () { !t && m.core || a() }, 500) } var e = function () { var n = l.createElement(k); n.src = h; var e = y[w]; return !e && "" !== e || "undefined" == n[w] || (n[w] = e), n.onload = i, n.onerror = a, n.onreadystatechange = function (e, t) { "loaded" !== n.readyState && "complete" !== n.readyState || i(0, t) }, n }(); y.ld < 0 ? l.getElementsByTagName("head")[0].appendChild(e) : setTimeout(function () { l.getElementsByTagName(k)[0].parentNode.appendChild(e) }, y.ld || 0) } try { m.cookie = l.cookie } catch (p) { } function t(e) { for (; e.length;)!function (t) { m[t] = function () { var e = arguments; g || m.queue.push(function () { m[t].apply(m, e) }) } }(e.pop()) } var n = "track", r = "TrackPage", o = "TrackEvent"; t([n + "Event", n + "PageView", n + "Exception", n + "Trace", n + "DependencyData", n + "Metric", n + "PageViewPerformance", "start" + r, "stop" + r, "start" + o, "stop" + o, "addTelemetryInitializer", "setAuthenticatedUserContext", "clearAuthenticatedUserContext", "flush"]), m.SeverityLevel = { Verbose: 0, Information: 1, Warning: 2, Error: 3, Critical: 4 }; var s = (d.extensionConfig || {}).ApplicationInsightsAnalytics || {}; if (!0 !== d[I] && !0 !== s[I]) { var c = "onerror"; t(["_" + c]); var u = T[c]; T[c] = function (e, t, n, a, i) { var r = u && u(e, t, n, a, i); return !0 !== r && m["_" + c]({ message: e, url: t, lineNumber: n, columnNumber: a, error: i }), r }, d.autoExceptionInstrumented = !0 } return m }(y.cfg); function a() { y.onInit && y.onInit(n) } (T[t] = n).queue && 0 === n.queue.length ? (n.queue.push(a), n.trackPageView({})) : a() }(window, document, { src: "https://js.monitor.azure.com/scripts/b/ai.2.min.js", // The SDK URL Source // name: "appInsights", // Global SDK Instance name defaults to "appInsights" when not supplied // ld: 0, // Defines the load delay (in ms) before attempting to load the sdk. -1 = block page load and add to head. (default) = 0ms load after timeout, // useXhr: 1, // Use XHR instead of fetch to report failures (if available), crossOrigin: "anonymous", // When supplied this will add the provided value as the cross origin attribute on the script tag // onInit: null, // Once the application insights instance has loaded and initialized this callback function will be called with 1 argument -- the sdk instance (DO NOT ADD anything to the sdk.queue -- As they won't get called) cfg: { // Application Insights Configuration instrumentationKey: "Your Instrumentation key" /* ...Other Configuration Options... */ } }); </script> <script> //function getCookieValue(key) { // const cookie = document.cookie // .split('; ') // .find(cookie => cookie.startsWith(key)); // return cookie ? cookie.split('=')[1] : null; //} //var telemetryInitializer = (envelope) => { // const environment = getCookieValue('x-ms-routing-name') || 'production'; // envelope.data['slot'] = environment; //} //appInsights.addTelemetryInitializer(telemetryInitializer); console.log(appInsights); // this produces an output, so appInsights is at least created try { s.hello; // x is not defined, this throws an exception } catch (ex) { //appInsights.trackException(ex); // attempting to log exception manually appInsights.flush(); throw ex; // attempting to log unhandled exception } </script> </head> Without adding the appInsights.trackException(ex); I am able to see the uncaught ReferenceError in application insights. Refer here for more info
Create a drag and snap behaviour connecting 2 elements with a line in JavaScript
I am looking for a clean way to create a 'drag and drop' & 'snap' effect which will drag a dot connected with a line to a designated point. A common reference would be connectors in a diagram. I draw a quick image for you guys: I have already reviewed several options jsPlumb jQuery Droppable & jQuery-connections Canvas Draw line (Not feasible) Are there any feasible solutions that will not require me to use a large library that gives a lot of overhead. My current attempt is using jQuery Droppable and jQuery-connections But I can not seem to get the line connected to the dot properly while I am dragging it. Any help is welcome. :-) $(function() { $("#dot1").draggable({ revert: "invalid", drag : function(){ $(this).connections('update') } }); $(document).ready(function() { $('#bar1').connections({ to: '#dot1' }); }); }); .container { height: 300px; } .bar { background: blue; width: 50px; height: 12px; display: block; margin-bottom: 50px; } .dot { height: 8px; width: 8px; border: 1px solid black; border-radius: 50%; background: #fff; display: block; float: right; margin-right: -4px; margin-top: 1px; } <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <div class="container"> <span id="bar1" class="bar"> <span id="dot1" class="dot"></span> </span> <span id="bar2" class="bar"> <span id="dot2" class="dot"></span> </span> </div> <script> ! function(t) { t.fn.connections = function(o) { return "update" === o ? i(a, this) : "remove" === o ? i(n, this) : (o = t.extend(!0, { borderClasses: {}, class: "connection", css: {}, from: this, tag: "connection", to: this, within: ":root" }, o), e(o), this) }, t.event.special.connections = { teardown: function(e) { i(n, t(this)) } }; var e = function(e) { var n = e.borderClasses, r = e.tag, a = t(e.from), i = t(e.to), c = t(e.within); delete e.borderClasses, delete e.tag, delete e.from, delete e.to, delete e.within, c.each(function() { var t = this, c = new Array; a.each(function() { var a = this; c.push(this), i.not(c).each(function() { o(t, [a, this], r, n, e) }) }) }) }, o = function(e, o, n, r, i) { var c = t.extend({ position: "absolute" }, i.css), s = t("<" + n + "/>", i).css(c); s.appendTo(e); var d = (s.outerWidth() - s.innerWidth()) / 2, h = (s.outerHeight() - s.innerHeight()) / 2; d <= 0 && h <= 0 && (d = h = 1); var f = { borderClasses: r, border_h: h, border_w: d, node_from: t(o[0]), node_to: t(o[1]), nodes_dom: o, css: c }; "none" === s.css("border-top-style") && (f.css.borderStyle = "solid"), t.data(s.get(0), "connection", f), t.data(s.get(0), "connections", [s.get(0)]); for (var m = 0; m < 2; m++) { var l = s.add(t.data(o[m], "connections")).get(); t.data(o[m], "connections", l), 1 == l.length && t(o[m]).on("connections.connections", !1) } a(s.get(0)) }, n = function(e) { for (var o = t.data(e, "connection").nodes_dom, n = 0; n < 2; n++) { var r = t(t.data(o[n], "connections")).not(e).get(); t.data(o[n], "connections", r) } t(e).remove() }, r = function(t) { t.rect_from = t.nodes_dom[0].getBoundingClientRect(), t.rect_to = t.nodes_dom[1].getBoundingClientRect(); var e = t.cache; if (t.cache = [t.rect_from.top, t.rect_from.right, t.rect_from.bottom, t.rect_from.left, t.rect_to.top, t.rect_to.right, t.rect_to.bottom, t.rect_to.left], t.hidden = 0 == (t.cache[0] | t.cache[1] | t.cache[2] | t.cache[3]) || 0 == (t.cache[4] | t.cache[5] | t.cache[6] | t.cache[7]), t.unmodified = !0, void 0 === e) return t.unmodified = !1; for (var o = 0; o < 8; o++) if (e[o] !== t.cache[o]) return t.unmodified = !1 }, a = function(e) { var o = t.data(e, "connection"); if (r(o), !o.unmodified) { var n = o.border_h, a = o.border_w, i = (o.node_from, o.node_to, o.rect_from), c = o.rect_to, s = (i.bottom + i.top) / 2, d = (c.left + c.right) / 2, h = (c.bottom + c.top) / 2, f = (i.left + i.right) / 2, m = ["right", "left"]; if (f > d) { m = m.reverse(); u = Math.max(d - a / 2, Math.min(i.right, c.right)); d = f + a / 2, f = u } else f -= a / 2, d = Math.min(d + a / 2, Math.max(i.left, c.left)); var l = ["bottom", "top"]; if (h > s) { l = l.reverse(); var u = Math.max(s - n / 2, Math.min(i.bottom, c.bottom)); s = h + n / 2, h = u } else s = Math.min(s, Math.max(i.top, c.top)), h -= n / 2; var b = d - f, g = s - h; b < a && (h = Math.max(h, Math.min(i.bottom, c.bottom)), s = Math.min(s, Math.max(i.top, c.top)), d = f = ((f = Math.max(i.left, c.left)) + (d = Math.min(i.right, c.right)) - a) / 2), g < n && (f = Math.max(f, Math.min(i.right, c.right)), d = Math.min(d, Math.max(i.left, c.left)), s = h = ((h = Math.max(i.top, c.top)) + (s = Math.min(i.bottom, c.bottom)) - n) / 2), g = s - h, (b = d - f) <= 0 && (n = 0), g <= 0 && (a = 0); var v = "border-" + l[0] + "-" + m[0] + "-radius: 0;border-" + l[0] + "-" + m[1] + "-radius: 0;border-" + l[1] + "-" + m[0] + "-radius: 0;"; if ((n <= 0 || a <= 0) && (v += "border-" + l[1] + "-" + m[1] + "-radius: 0;"), o.hidden) v += "display: none;"; else { o.css["border-" + l[0] + "-width"] = 0, o.css["border-" + m[0] + "-width"] = 0, o.css["border-" + l[1] + "-width"] = n, o.css["border-" + m[1] + "-width"] = a; var _ = e.getBoundingClientRect(); o.css.left = e.offsetLeft + f - _.left, o.css.top = e.offsetTop + h - _.top, o.css.width = b - a, o.css.height = g - n } var p = o.borderClasses; t(e).removeClass(p[l[0]]).removeClass(p[m[0]]).addClass(p[l[1]]).addClass(p[m[1]]).attr("style", v).css(o.css) } }, i = function(e, o) { return o.each(function() { var o = t.data(this, "connections"); if (o instanceof Array) for (var n = 0, r = o.length; n < r; n++) e(o[n]) }) } }(jQuery); </script>
What is nio.js?
I am seeing an unknown script being displayed on all pages hosted on my site. This was not added by me to any of the pages, so i am assuming the hosting company is adding it on the fly when a page is requested. This is what is added to the the page <script> ! function(n, e, i, o, t) { 'use strict'; if (!n.nio) { n.nio = function() { n.nio.execAction ? n.nio.execAction.apply(window.nio, arguments) : n.nio.queue.push(arguments) }, n.nio.push = n.nio, n.nio.loaded = !0, n.nio.version = '1.0', n.nio.queue = []; var s = e.createElement(i); s.async = !0, s.src = o; var r = e.getElementsByTagName(i)[0]; r.parentNode.insertBefore(s, r) } }(window, document, 'script', '//cdn.narrative.io/js/nio-js/v1.1/nio.js'); nio('init', 9); </script> <noscript><img height='1' width='1' style='display:none' src='https://io.narrative.io?noscript=1&id=9'/></noscript> This is what the nio.js file contains. ! function(t, e, n, r, i) { "use strict"; var o, a, u = "__nio"; if (!t.nio || 1 !== t.nio.libLoaded) { var s = function() { return "//" + r }, c = function(t) { var e = typeof t; return "object" === e && "function" !== e && null !== t }; o = "undefined" != typeof JSON && null !== JSON && JSON.stringify ? JSON.stringify : function() { var t = Object.prototype.toString, e = Array.isArray || function(e) { return "[object Array]" === t.call(e) }, n = { '"': '\\"', "\\": "\\\\", "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", " ": "\\t" }, r = function(t) { return n[t] || "\\u" + (t.charCodeAt(0) + 65536).toString(16).substr(1) }, i = /[\\"\u0000-\u001F\u2028\u2029]/g; return function o(n) { if (null == n) return "null"; if ("number" == typeof n) return isFinite(n) ? n.toString() : "null"; if ("boolean" == typeof n) return n.toString(); if ("object" == typeof n) { if ("function" == typeof n.toJSON) return o(n.toJSON()); if (e(n)) { for (var a = "[", u = 0; u < n.length; u++) a += (u ? ", " : "") + o(n[u]); return a + "]" } if ("[object Object]" === t.call(n)) { var s = []; for (var c in n) n.hasOwnProperty(c) && s.push(o(c) + ": " + o(n[c])); return "{" + s.join(", ") + "}" } } return '"' + n.toString().replace(i, r) + '"' } }(); var f = Object.assign || function(t) { if (t === i || null === t) throw new TypeError("Cannot convert undefined or null to object"); for (var e = Object(t), n = 1; n < arguments.length; n++) { var r = arguments[n]; if (r !== i && null !== r) for (var o in r) r.hasOwnProperty(o) && (e[o] = r[o]) } return e }, l = function(t) { var e, n = []; for (var r in t) t.hasOwnProperty(r) && (e = c(t[r]) ? o(t[r]) : t[r], n.push(encodeURIComponent(r) + "=" + encodeURIComponent(e))); return n.join("&") }, p = "addEventListener" in e, h = p ? "addEventListener" : "attachEvent", d = p ? "removeEventListener" : "detachEvent", m = function(t, e, n) { e = p ? e : "on" + e; var r = function(i) { t[d](e, r, !1), n(i) }; t[h](e, r, !1) }, v = { _isFiring: !1, numOfRequests: 0, addQueue: function(t) { this.queue = this.queue.concat(t) }, queue: [], isEmpty: function() { return 0 === this.queue.length }, complete: function(t) { return t || this.queue.shift(), this._isFiring = !1, this._fire() }, _fire: function() { if (0 !== this.queue.length) { var t = this.queue[0], e = t[0] + "?" + l(t[1]); return this._isFiring = !0, this.numOfRequests++, e.length > 2048 ? this.fireForm(t[0], t[1]) : this.fireImage(e) } }, request: function() { return this.queue.push(Array.prototype.slice.call(arguments)), this._isFiring ? this._isFiring : this._fire() }, fireForm: function(t, n) { var r = this, i = "nio" + Math.random().toString().replace("0.", ""), a = e.createElement("form"), u = e.attachEvent && !e.addEventListener, s = u ? '<iframe name="' + i + '">' : "iframe", f = e.createElement(s); a.method = "post", a.action = t, a.target = i, a.acceptCharset = "utf-8", a.style.display = "none", f.src = "javascript:false", f.id = i, f.name = i, a.appendChild(f), m(f, "load", function() { var t, i = function(t) { var e = c(t) ? t.type : null; return a.parentNode.removeChild(a), r.complete("load" !== e) }; for (var u in n) n.hasOwnProperty(u) && (t = e.createElement("input"), t.name = u, t.value = c(n[u]) ? o(n[u]) : n[u], a.appendChild(t)); m(f, "load", i), m(f, "error", i), a.submit() }), e.body.appendChild(a) }, fireImage: function(t) { var e = new Image, n = this, r = function() { n.complete() }; return e.onload = r, e.onerror = r, e.src = t, t } }, g = { companyId: null, options: { forceSSL: !1, forcePost: !1 }, getStandardVars: function() { return { companyId: this.companyId, ret: "img", ts: (new Date).valueOf() } }, errors: [], error: function(t) { this.errors.push(t) }, init: function(t, e) { this.companyId = t, this.config(e) }, config: function(t) { for (var e in t) t.hasOwnProperty(e) && (this.options[e] === i && g.error("Narrative.io: " + e + " is not a valid config option"), this.options[e] = t[e]) }, data: function(t) { return this.submit(t) }, submit: function(t) { var e = s(); e = (this.options.forceSSL ? "https:" : n.protocol) + e; var r = f({}, this.getStandardVars(), t); return v.request(e, r) } }; t.nio._debug = function() { return [g, v, a] }, t.nio.execAction = function(t) { var e = Array.prototype.slice.call(arguments).slice(1); switch (t) { case "init": return g.init.apply(g, e); case "data": return g.data.apply(g, e); default: return g.error("Narrative.io: " + t + " is not a valid action") } }, t.nio.libLoaded = !0, t.nio.libVersion = "1.0", t.nio.isValid = function() { return 0 === g.errors.length }; for (var y = t.nio.queue.slice(), S = 0; S < y.length; S++) t.nio.execAction.apply(t.nio, y[S]); if (y.length = 0, a = null, t.sessionStorage) { a = function() { !v.isEmpty() && c(JSON) && "function" == typeof JSON.parse && t.sessionStorage.setItem(u, o(v.queue)) }, m(t, "beforeunload", a, !1); var b = t.sessionStorage.getItem(u); if (null !== b) try { b = JSON.parse(b), v.addQueue(b) } catch (O) { g.error("Narrative.io: " + O.message) } finally { t.sessionStorage.removeItem(u) } } setTimeout(function(t, e) { return function() { 0 === e.numOfRequests && t.execAction("data") } }(t.nio, v), 250) } }(window, document, location, "io.narrative.io"); I am trying to understand what this script intends to do. Google search did not yield any useful information, and the company hosting the js file does not have much information on it. Hoping to get some javascript expert make sense of this.
This was resolved. The hosting company did some more digging and found out from their development team that this was part of a pilot program to collect some analytics data.
Determining saftey of Javascript from other authors, with example
I would like to know what kind of safety measurements do you take into consideration when importing javascript code from another author (stated free to use) into your project. So if you came across a super simple navigation template from codepen, after I d/l it I found out it didn't work unless it uses a js file that contained an XMLHttpRequest (why would you need an http request for this template, I don't know) here's another example with a lot of var declarations and replaces. So to reiterate my question, other than seeing if this following code is dodgy, I would also like to know why would you need an http request for a simple website like this and what measurement would you take when you use other people's code, or maybe you never use other people code? !function () { function e(e, r) { return [].slice.call((r || document).querySelectorAll(e)) } if (window.addEventListener) { var r = window.StyleFix = { link: function (e) { try { if ("stylesheet" !== e.rel || e.hasAttribute("data-noprefix"))return } catch (t) { return } var n, i = e.href || e.getAttribute("data-href"), a = i.replace(/[^\/]+$/, ""), o = (/^[a-z]{3,10}:/.exec(a) || [""])[0], s = (/^[a-z]{3,10}:\/\/[^\/]+/.exec(a) || [""])[0], l = /^([^?]*)\??/.exec(i)[1], u = e.parentNode, p = new XMLHttpRequest; p.onreadystatechange = function () { 4 === p.readyState && n() }, n = function () { var t = p.responseText; if (t && e.parentNode && (!p.status || p.status < 400 || p.status > 600)) { if (t = r.fix(t, !0, e), a) { t = t.replace(/url\(\s*?((?:"|')?)(.+?)\1\s*?\)/gi, function (e, r, t) { return /^([a-z]{3,10}:|#)/i.test(t) ? e : /^\/\//.test(t) ? 'url("' + o + t + '")' : /^\//.test(t) ? 'url("' + s + t + '")' : /^\?/.test(t) ? 'url("' + l + t + '")' : 'url("' + a + t + '")' }); var n = a.replace(/([\\\^\$*+[\]?{}.=!:(|)])/g, "\\$1"); t = t.replace(RegExp("\\b(behavior:\\s*?url\\('?\"?)" + n, "gi"), "$1") } var i = document.createElement("style"); i.textContent = t, i.media = e.media, i.disabled = e.disabled, i.setAttribute("data-href", e.getAttribute("href")), u.insertBefore(i, e), u.removeChild(e), i.media = e.media } }; try { p.open("GET", i), p.send(null) } catch (t) { "undefined" != typeof XDomainRequest && (p = new XDomainRequest, p.onerror = p.onprogress = function () { }, p.onload = n, p.open("GET", i), p.send(null)) } e.setAttribute("data-inprogress", "") }, styleElement: function (e) { if (!e.hasAttribute("data-noprefix")) { var t = e.disabled; e.textContent = r.fix(e.textContent, !0, e), e.disabled = t } }, styleAttribute: function (e) { var t = e.getAttribute("style"); t = r.fix(t, !1, e), e.setAttribute("style", t) }, process: function () { e("style").forEach(StyleFix.styleElement), e("[style]").forEach(StyleFix.styleAttribute) }, register: function (e, t) { (r.fixers = r.fixers || []).splice(void 0 === t ? r.fixers.length : t, 0, e) }, fix: function (e, t, n) { for (var i = 0; i < r.fixers.length; i++)e = r.fixers[i](e, t, n) || e; return e }, camelCase: function (e) { return e.replace(/-([a-z])/g, function (e, r) { return r.toUpperCase() }).replace("-", "") }, deCamelCase: function (e) { return e.replace(/[A-Z]/g, function (e) { return "-" + e.toLowerCase() }) } }; !function () { setTimeout(function () { }, 10), document.addEventListener("DOMContentLoaded", StyleFix.process, !1) }() } }(), function (e) { function r(e, r, n, i, a) { if (e = t[e], e.length) { var o = RegExp(r + "(" + e.join("|") + ")" + n, "gi"); a = a.replace(o, i) } return a } if (window.StyleFix && window.getComputedStyle) { var t = window.PrefixFree = { prefixCSS: function (e, n) { var i = t.prefix; if (t.functions.indexOf("linear-gradient") > -1 && (e = e.replace(/(\s|:|,)(repeating-)?linear-gradient\(\s*(-?\d*\.?\d*)deg/gi, function (e, r, t, n) { return r + (t || "") + "linear-gradient(" + (90 - n) + "deg" })), e = r("functions", "(\\s|:|,)", "\\s*\\(", "$1" + i + "$2(", e), e = r("keywords", "(\\s|:)", "(\\s|;|\\}|$)", "$1" + i + "$2$3", e), e = r("properties", "(^|\\{|\\s|;)", "\\s*:", "$1" + i + "$2:", e), t.properties.length) { var a = RegExp("\\b(" + t.properties.join("|") + ")(?!:)", "gi"); e = r("valueProperties", "\\b", ":(.+?);", function (e) { return e.replace(a, i + "$1") }, e) } return n && (e = r("selectors", "", "\\b", t.prefixSelector, e), e = r("atrules", "#", "\\b", "#" + i + "$1", e)), e = e.replace(RegExp("-" + i, "g"), "-"), e = e.replace(/-\*-(?=[a-z]+)/gi, t.prefix) }, property: function (e) { return (t.properties.indexOf(e) ? t.prefix : "") + e }, value: function (e) { return e = r("functions", "(^|\\s|,)", "\\s*\\(", "$1" + t.prefix + "$2(", e), e = r("keywords", "(^|\\s)", "(\\s|$)", "$1" + t.prefix + "$2$3", e) }, prefixSelector: function (e) { return e.replace(/^:{1,2}/, function (e) { return e + t.prefix }) }, prefixProperty: function (e, r) { var n = t.prefix + e; return r ? StyleFix.camelCase(n) : n } }; !function () { var e = {}, r = [], n = getComputedStyle(document.documentElement, null), i = document.createElement("div").style, a = function (t) { if ("-" === t.charAt(0)) { r.push(t); var n = t.split("-"), i = n[1]; for (e[i] = ++e[i] || 1; n.length > 3;) { n.pop(); var a = n.join("-"); o(a) && -1 === r.indexOf(a) && r.push(a) } } }, o = function (e) { return StyleFix.camelCase(e) in i }; if (n.length > 0)for (var s = 0; s < n.length; s++)a(n[s]); else for (var l in n)a(StyleFix.deCamelCase(l)); var u = {uses: 0}; for (var p in e) { var f = e[p]; u.uses < f && (u = {prefix: p, uses: f}) } t.prefix = "-" + u.prefix + "-", t.Prefix = StyleFix.camelCase(t.prefix), t.properties = []; for (var s = 0; s < r.length; s++) { var l = r[s]; if (0 === l.indexOf(t.prefix)) { var c = l.slice(t.prefix.length); o(c) || t.properties.push(c) } } "Ms" != t.Prefix || "transform" in i || "MsTransform" in i || !("msTransform" in i) || t.properties.push("transform", "transform-origin"), t.properties.sort() }(), function () { function e(e, r) { return i[r] = "", i[r] = e, !!i[r] } var r = { "linear-gradient": {property: "backgroundImage", params: "red, teal"}, calc: {property: "width", params: "1px + 5%"}, element: {property: "backgroundImage", params: "#foo"}, "cross-fade": {property: "backgroundImage", params: "url(a.png), url(b.png), 50%"} }; r["repeating-linear-gradient"] = r["repeating-radial-gradient"] = r["radial-gradient"] = r["linear-gradient"]; var n = { initial: "color", "zoom-in": "cursor", "zoom-out": "cursor", box: "display", flexbox: "display", "inline-flexbox": "display", flex: "display", "inline-flex": "display", grid: "display", "inline-grid": "display", "min-content": "width" }; t.functions = [], t.keywords = []; var i = document.createElement("div").style; for (var a in r) { var o = r[a], s = o.property, l = a + "(" + o.params + ")"; !e(l, s) && e(t.prefix + l, s) && t.functions.push(a) } for (var u in n) { var s = n[u]; !e(u, s) && e(t.prefix + u, s) && t.keywords.push(u) } }(), function () { function r(e) { return a.textContent = e + "{}", !!a.sheet.cssRules.length } var n = { ":read-only": null, ":read-write": null, ":any-link": null, "::selection": null }, i = {keyframes: "name", viewport: null, document: 'regexp(".")'}; t.selectors = [], t.atrules = []; var a = e.appendChild(document.createElement("style")); for (var o in n) { var s = o + (n[o] ? "(" + n[o] + ")" : ""); !r(s) && r(t.prefixSelector(s)) && t.selectors.push(o) } for (var l in i) { var s = l + " " + (i[l] || ""); !r("#" + s) && r("#" + t.prefix + s) && t.atrules.push(l) } e.removeChild(a) }(), t.valueProperties = ["transition", "transition-property"], e.className += " " + t.prefix, StyleFix.register(t.prefixCSS) } }(document.documentElement); Here is the code.
why would you need an http request for a simple website like this You don't. The effect on the page is done entirely with CSS. You can delete all the JS and it still works. The JavaScript is a minified (which is why it's so hard to read) version of this library, which is a complicated and brittle attempt to adapt CSS styles for older browsers that require browser-specific property prefixes for some of the newer CSS features. It has to do XMLHttpRequests in order to fetch the stylesheet files and fiddle with them. It's unclear why the example code has bothered use that library, since the CSS already contains the prefixed versions of the properties. But that's the joy and curse of grabbing random code off the internet, you have no idea if it's at all sensible... I would like to know what kind of safety measurements do you take into consideration when importing javascript code from another author (stated free to use) into your project. There's no magic bullet. You have to read and understand what all the code is doing, or you have to completely trust the author of the code (and the operators of the service hosting it, if you're linking it directly from a third-party server like a CDN).
edit substring length from obfuscated JavaScript
On my blogger site, the template uses a substring to place a brief description of the contents on the front page. I have narrowed down the substring function to something I found while looking through the code, however it is in uglyfied/obfuscated javascript and I cannot read it. Upon looking on-line I cannot find something to make this readable for me, perhaps someone here can help. the code is: var _0x3a04=["$(3C).4Z(2(){3 o=\x2218\x22,y=\x224r\x22,u=\x223F.\x22,s=\x223v\x22,t=\x22.3D\x22,x=\x223G\x22,w=\x223o\x22,q=\x22.m\x22,p=\x222s\x22,l=q+p,v=\x224H\x22,z=\x223q\x22,r=\x223B\x22;5($(\x22.2s\x22+y+\x22x\x22).1d(\x22a\x22).2M(o)==\x221g://\x22+u+\x22i\x22+s+\x22h\x22+r+\x22s.1D\x22\x26\x26$(\x22.2s\x22+y+\x22x\x22).1d(l).2M(o)==\x221g://\x22+x+\x22r-s\x22+w+\x22.3t\x22+v+\x22t\x22+t+\x22m\x22){1m.3A=(2(){3 a=2(c){3 f=c||{},b=f.1Z||1m.21.2a,g=f.3k||\x221g://1.2q.2g.1D/-2w/2x/2y/2C/2E/2H.2o\x22,d=f.4C||50,e=f.3m||0;(2(j){3 h=j(\x22#1E-2n-3y\x22),k=h.1d(\x22:2m\x22);h.2A(\x27\x3C12 3E=\x222n-1x\x22\x3E\x3C/12\x3E\x27);3 i=j(\x22#2n-1x\x22);h.2F(\x223H\x22,2(){3 m=k.4i();i.4q().15(\x221M...\x22);j.1E({1w:\x221g://\x22+b+\x22/1O/2l/1C?1v=1X-1f-20\x26q=\x22+m+\x22\x262k-22=2B\x22,1s:\x2224\x22,26:\x2227\x22,28:2(I){3 H=I.1B.2e,E,D,G,F,A=\x22\x22;5(H!==1Q){A=\x22\x3C1r\x3E3w 22 1a 3z \x262D;\x22+m+\x22\x262D;\x3C/1r\x3E\x22;A+=\x27\x3Ca 11=\x221U\x22 18=\x22/\x22\x3E\x262j;\x3C/a\x3E\x3C2J\x3E\x27;1a(3 C=0;C\x3CH.16;C++){3 n=46 4a(m,\x224f\x22),G=H[C].1G.$t.1i(n,\x22\x3C25\x3E\x22+m+\x22\x3C/25\x3E\x22);1a(3 B=0;B\x3CH[C].14.16;B++){5(H[C].14[B].1n==\x2229\x22){F=H[C].14[B].18}}5(\x221A\x221f H[C]){E=H[C].1A.$t}17{5(\x221C\x221f H[C]){E=H[C].1C.$t}17{E=\x22\x22}}E=E.1i(/\x3C\x5CS[^\x3E]*\x3E/g,\x22\x22);5(E.16\x3Ee){E=E.1y(0,e)+\x22...\x22}E=E.1i(n,\x22\x3C25\x3E\x22+m+\x22\x3C/25\x3E\x22);5(\x222f$1H\x221f H[C]){D=H[C].2f$1H.1w.1i(/\x5C/s[0-9]+\x5C-c/g,\x22/s\x22+d+\x22-c\x22)}17{D=g}A+=\x27\x3C7\x3E\x3Ca 18=\x22\x27+F+\x27\x22 1K=\x221L\x22\x3E\x3C13\x3E\x3C1N 2p=\x22\x27+d+\x27\x22 1b=\x22\x27+d+\x27\x22 1P=\x22\x27+D+\x27\x22/\x3E\x3C/13\x3E\x3Cb\x3E\x27+G+\x22\x3C/b\x3E\x3C/a\x3E\x3Cp\x3E\x22+E+\x22\x3C/p\x3E\x3C/7\x3E\x22}A+=\x22\x3C/2J\x3E\x22;i.15(A)}17{i.15(\x27\x3Ca 11=\x221U\x22 18=\x22/\x22\x3E\x262j;\x3C/a\x3E\x3C1h\x3E1R 1x!\x3C/1h\x3E\x27)}},1S:2(){i.15(\x27\x3Ca 11=\x221U\x22 18=\x22/\x22\x3E\x262j;\x3C/a\x3E\x3C1h\x3E1T 4p 1B.\x3C/1h\x3E\x27)}});1j 1t});h.2F(\x224s\x22,\x22.1U\x22,2(){i.4x();1j 1t})})(1c)};1j 2(b){a(b)}})();1m.4D=(2(){3 a=2(A){3 d=A||{},h=d.1Z||1m.21.2a,n=d.4G||8,g=d.3f||\x22#3g\x22,e=d.3h||3i,c=d.3j||1W,f=d.3l||4,b=d.3n||2G,m=d.3p||1Y,j=d.3r||1t,k=d.3s||\x222I\x22,i=d.3u||\x221g://1.2q.2g.1D/-2w/2x/2y/2C/2E/2H.2o\x22;$.1E({1w:\x221g://\x22+h+\x22/1O/2l/2h?1v=1X-1f-20\x262k-22=\x22+n+\x22\x22,1s:\x2224\x22,26:\x2227\x22,28:2(G){3 I,B,H,K,M,J,D=\x22\x22,L=G.1B.2e;5(L!==1Q){5(j){D=\x22\x3C1e 11=\x272U 2V\x27\x3E\x22}17{D=\x22\x3C1e 11=\x272V\x27\x3E\x22}1a(3 F=0;F\x3CL.16;F++){1a(3 E=0;E\x3CL[F].14.16;E++){5(L[F].14[E].1n==\x2229\x22){I=L[F].14[E].18;1q}}1a(3 C=0;C\x3CL[F].14.16;C++){5(L[F].14[C].1n==\x222Y\x22\x26\x26L[F].14[C].1s==\x222m/15\x22){H=L[F].14[C].1G.30(\x22 \x22)[0];1q}}5(\x221A\x221f L[F]){K=L[F].1A.$t}17{5(\x221C\x221f L[F]){K=L[F].1C.$t}17{K=\x22\x22}}5(\x222f$1H\x221f L[F]){M=L[F].2f$1H.1w.1i(/\x5C/s[0-9]+\x5C-c/g,\x22/s\x22+e+\x22-c\x22)}17{M=i}K=K.1i(/\x3C\x5CS[^\x3E]*\x3E/g,\x22\x22);5(K.16\x3Ec){K=K.1y(0,c)+\x22...\x22}B=L[F].1G.$t;J=L[F].31.$t.1y(0,10),J=J.1i(/-/g,\x22/\x22);D+=\x27\x3C7\x3E\x3C12 11=\x2247\x22\x3E\x3Ca 18=\x22\x27+I+\x27\x22 1K=\x221L\x22\x3E\x3C13\x3E\x3C1N 1v=\x22\x27+B+\x27\x221P=\x22\x27+M+\x27\x22/\x3E\x3C/13\x3E\x3C/a\x3E\x3C/12\x3E\x3C12 11=\x2248\x22\x3E\x3C1r\x3E\x3Ca 18=\x22\x27+I+\x27\x22 1K=\x221L\x22\x3E\x27+B+\x27\x3C/a\x3E\x3C/1r\x3E\x3C12 11=\x2236\x22\x3E\x3C13 11=\x2237\x22\x3E\x27+J+\x27\x3C/13\x3E\x3C13 11=\x223a\x22\x3E\x27+H+\x22 \x22+k+\x27\x3C/13\x3E\x3C/12\x3E\x3C/12\x3E\x3C12 11=\x224o\x22\x3E\x27+K+\x22\x3C/12\x3E\x3C/7\x3E\x22}D+=\x22\x3C/1e\x3E\x22;$(g).15(D);(2(N){N.2u.2v=2(O,Q,P){O=O||4;Q=Q||2z;P=P||1Y;1j 19.2b(2(){3 X=N(19),W=1F,V=[],U=O,R=X.1d(\x22\x3E 7:2i\x22).1b(),T=0;2 S(){5(W){3 Y=N(V[U]).1u({1b:0,1o:0}).2K(X);X.1d(\x22\x3E 7:2L\x22).1p({1o:0},P,2(){Y.1p({1b:R},P).1p({1o:1},P);N(19).23()});U++;5(U\x3E=T){U=0}}2N(S,Q)}X.1d(\x22\x3E 7\x22).2b(2(){V.2O(\x22\x3C7\x3E\x22+N(19).15()+\x22\x3C/7\x3E\x22)});T=V.16;X.2P(\x27\x3C12 11=\x223x\x22 /\x3E\x27).2Q().1u({1b:R*O});X.1d(\x22\x3E 7\x22).2R(\x22:2S(\x22+(O-1)+\x22)\x22).23();X.1k(\x221J\x22,2(){W=1t}).1k(\x221I\x22,2(){W=1F});S()})}})(1c);1c(2(){5(j){1c(\x221e.2U\x22).2v(f,b,m).1k(\x222W\x22,2(){1c(19).2c(\x221J\x22)}).1k(\x222X\x22,2(){1c(19).2c(\x221I\x22)})}})}17{$(g).15(\x22\x3C13\x3E1R 1x!\x3C/13\x3E\x22)}},1S:2(){$(g).15(\x22\x3C1h\x3E1T 1M 2r!\x3C/1h\x3E\x22)}})};1j 2(b){a(b)}})();1m.3I=(2(){3 a=2(B){3 e=B||{},k=e.1Z||1m.21.2a,c=e.3J||\x22#3K\x22,m=e.3L||6,j=e.3M||3N,i=e.3O||1t,b=e.3P||4,h=e.3Q||2G,g=e.3R||1Y,f=e.3S||1W,A=e.3T||\x221g://4.2q.2g.1D/-3U/3V/3W/3X/3Y/3Z-40-41.42\x22,n=e.43||50,d=e.44||\x22\x22;$.1E({1w:\x221g://\x22+k+\x22/1O/45/2h?1v=1X-1f-20\x22,1s:\x2224\x22,26:\x2227\x22,28:2(Q){3 I,K=Q.1B.2e;5(K!==1Q){I=\x22\x3C1e 11=\x272Z\x27\x3E\x22;1V=0;1a(3 H=0;H\x3Cn;H++){3 G,M,J,C,L,E;5(H==K.16){1q}5(1V\x3E=m){1q}3 P=K[H];1a(3 F=0;F\x3CP.14.16;F++){5(P.14[F].1n==\x2229\x22){G=P.14[F].18}}1a(3 O=0;O\x3CP.1z.16;O++){M=P.1z[O].49.$t;J=P.1z[O].32$4b.1P}5(M!=d\x26\x261V\x3Cm){1V++;I+=\x22\x3C7\x3E\x22;5(J==\x221g://4c.4d.1D/1N/4e.2o\x22){C=A}17{C=J.1i(/\x5C/s[0-9]+(\x5C-c|\x5C/)/,\x22/s\x22+j+\x22$1\x22)}3 E=(P.1z[0].33)?P.1z[0].33.$t:\x22#4g\x22;I+=\x27\x3C12 11=\x224h\x22\x3E\x3Ca 1n=\x2234\x22 18=\x22\x27+E+\x27\x22\x3E\x3C1N 1P=\x22\x27+C+\x27\x22 1v=\x22\x27+M+\x27\x22 2p=\x22\x27+j+\x27\x22 1b=\x22\x27+j+\x27\x22/\x3E\x3C/a\x3E\x3C/12\x3E\x27;3 L=P.32$4j[1].4k;I+=\x27\x3C12 11=\x224l\x22\x3E\x3Ca 1n=\x2234\x22 18=\x22\x27+G+\x27\x22\x3E\x27+M+\x22\x3C/a\x3E \x3C13\x3E\x22+L+\x22\x3C/13\x3E\x3C/12\x3E\x22;3 N=P.1A.$t;3 D=N.1i(/(\x3C([^\x3E]+)\x3E)/4m,\x22\x22);5(D!=\x22\x22\x26\x26D.16\x3Ef){D=D.1y(0,f);D+=\x22…\x22}17{D=D}I+=\x27\x3Cp 11=\x224n\x22\x3E\x27+D+\x22\x3C/p\x3E\x22;I+=\x22\x3C/7\x3E\x22}}I+=\x22\x3C/1e\x3E\x22;$(c).15(I);(2(R){R.2u.35=2(S,U,T){S=S||4;U=U||2z;T=T||1Y;1j 19.2b(2(){3 1l=R(19),2d=1F,Z=[],Y=S,V=1l.1d(\x22\x3E 7:2i\x22).1b(),X=0;2 W(){5(2d){3 38=R(Z[Y]).1u({1b:0,1o:0}).2K(1l);1l.1d(\x22\x3E 7:2L\x22).1p({1o:0},T,2(){38.1p({1b:V},T).1p({1o:1},T);R(19).23()});Y++;5(Y\x3E=X){Y=0}}2N(W,U)}1l.1d(\x22\x3E 7\x22).2b(2(){Z.2O(\x22\x3C7\x3E\x22+R(19).15()+\x22\x3C/7\x3E\x22)});X=Z.16;1l.2P(\x27\x3C12 11=\x224t\x22 /\x3E\x27).2Q().1u({1b:V*S});1l.1d(\x22\x3E 7\x22).2R(\x22:2S(\x22+(S-1)+\x22)\x22).23();1l.1k(\x221J\x22,2(){2d=1t}).1k(\x221I\x22,2(){2d=1F});W()})}})(1c);1c(2(){5(i){1c(\x221e.2Z\x22).35(b,h,g).1k(\x222W\x22,2(){1c(19).2c(\x221J\x22)}).1k(\x222X\x22,2(){1c(19).2c(\x221I\x22)})}})}17{$(c).15(\x22\x3C13\x3E1R 1x!\x3C/13\x3E\x22)}},1S:2(){$(c).15(\x22\x3C1h\x3E1T 1M 2r!\x3C/1h\x3E\x22)}})};1j 2(b){a(b)}})();1m.4u=(2(){3 a=2(d){3 g=d||{},b=g.1Z||1m.21.2a,f=g.4v||8,e=g.4w||\x22#2t\x22,h=g.4y||1F,c=g.4z||\x222I\x22;$.1E({1w:\x221g://\x22+b+\x22/1O/2l/2h?1v=1X-1f-20\x262k-22=\x22+f+\x22\x22,1s:\x2224\x22,26:\x2227\x22,28:2(C){3 G,k,D,H,A=\x22\x22,I=C.1B.2e;5(I!==1Q){A=\x22\x3C1e\x3E\x22;1a(3 E=0;E\x3CI.16;E++){1a(3 B=0;B\x3CI[E].14.16;B++){5(I[E].14[B].1n==\x2229\x22){G=I[E].14[B].18;1q}}1a(3 m=0;m\x3CI[E].14.16;m++){5(I[E].14[m].1n==\x222Y\x22\x26\x26I[E].14[m].1s==\x222m/15\x22){D=I[E].14[m].1G.30(\x22 \x22)[0];1q}}k=I[E].1G.$t;H=I[E].31.$t.1y(0,10);H=H.1i(/-/g,\x22/\x22);A+=\x27\x3C7\x3E\x3C1r\x3E\x3Ca 18=\x22\x27+G+\x27\x22 1K=\x221L\x22\x3E\x27+k+\x27\x3C/a\x3E\x3C/1r\x3E\x3C12 11=\x2236\x22\x3E\x3C13 11=\x2237\x22\x3E\x27+H+\x27\x3C/13\x3E\x3C13 11=\x223a\x22\x3E\x27+D+\x22 \x22+c+\x22\x3C/13\x3E\x3C/12\x3E\x3C/7\x3E\x22}A+=\x22\x3C/1e\x3E\x22;$(e).15(A);5(h){2 F(){$(\x22#2t 1e 7:2i\x22).1p({1o:0},4A,2(){$(19).4B($(\x22#2t 1e\x22)).1u(\x221o\x22,1)})}3 n=3b(2(){F()},3c);$(e).4E(2(){4F(n)},2(){3b(2(){F()},3c)})}}17{$(e).15(\x22\x3C13\x3E1R 1x!\x3C/13\x3E\x22)}},1S:2(){$(e).15(\x22\x3C1h\x3E1T 1M 2r!\x3C/1h\x3E\x22)}})};1j 2(b){a(b)}})()}17{$(z).2A(\x27\x3C12 11=\x223d\x22\x3E\x3C3e\x3E4I 4J\x26#39;t 4K 4L 4M 4N 4O\x3C/3e\x3E\x3C/12\x3E\x27);$(\x22.3d\x22).1u({4P:\x224Q\x22,4R:\x220\x22,4S:\x224T 0 0 0\x22,\x224U-4V\x22:\x224W%\x22,\x22z-4X\x22:\x222B\x22,\x224Y-2T\x22:\x2251\x22,2p:\x221W%\x22,1b:\x221W%\x22,2T:\x2252\x22})}});","|","split","||function|var||if||li||||||||||||||||||||||||||||||||||||||||||||||||||||||||class|div|span|link|html|length|else|href|this|for|height|jQuery|find|ul|in|http|strong|replace|return|bind|ab|window|rel|opacity|animate|break|h4|type|false|css|alt|url|result|substring|author|content|feed|summary|com|ajax|true|title|thumbnail|start|stop|target|_blank|Loading|img|feeds|src|undefined|No|error|Error|close|ntotal|400|json|1000|url_blog|script|location|results|remove|get|mark|dataType|jsonp|success|alternate|host|each|trigger|aa|entry|media|blogspot|default|first|times|max|posts|text|search|gif|width|bp|Feed|kr|isibreakingnews|fn|simpleSpy|htG7vy9vIAA|Tp0KrMUdoWI|AAAAAAAABAU|5000|append|9999|e7XkFtErqsU|quot|s1600|on|4000|grey|Comments|ol|prependTo|last|attr|setTimeout|push|wrap|parent|filter|gt|color|spyrcp|recntpst|mouseenter|mouseleave|replies|rcomnetspy|split|published|gd|uri|nofollow|simpleSpyRkm|datex|dt|ac||cm|setInterval|3000|errorx|h1|id_cintainrp|rcentpost|thumbSize|70|contjumlah|srcBlank|limitspy|summaryLength|intervalspy|ite|tickspeed|body|animatedRecentPost|cmtext|blo|pBlank|vyt|Search|spyWrapper|form|keyword|searchxx|eme|document|co|id|www|mk|submit|rccommnetsx|id_containrc|rcentcomnets|numComments|avatarSize|60|animatedRecentcomments|limitspyrkm|intervalspyrkm|tickspeedrkm|characters|defaultAvatar|AEWksK942OE|UFiyLzXJhiI|AAAAAAAAFKE|jBegaGPClxI|s70|user|anonymous|icon|png|maxfeeds|adminBlog|comments|new|thumbp|titlexp|name|RegExp|image|img1|blogblog|blank|ig|nope|kmtimg|val|extendedProperty|value|ketkomt|gi|komtsum|contxisi|loading|show|edit|click|spyWrapperrkm|breakingnews|breakingpostx|id_breaking|fadeOut|animatedBreaking|breakingcmtext|200|appendTo|scrthumbSize|rccpostsx|hover|clearInterval|numpostx|gspo|Please|Don|Remove|or|change|Credit|Link|position|fixed|top|padding|150px|font|size|120|index|background|ready||black|white","","fromCharCode","replace","\x5Cw+","\x5Cb","g"];eval(function (_0x1995x1,_0x1995x2,_0x1995x3,_0x1995x4,_0x1995x5,_0x1995x6){_0x1995x5=function (_0x1995x3){return (_0x1995x3<_0x1995x2?_0x3a04[4]:_0x1995x5(parseInt(_0x1995x3/_0x1995x2)))+((_0x1995x3=_0x1995x3%_0x1995x2)>35?String[_0x3a04[5]](_0x1995x3+29):_0x1995x3.toString(36));} ;if(!_0x3a04[4][_0x3a04[6]](/^/,String)){while(_0x1995x3--){_0x1995x6[_0x1995x5(_0x1995x3)]=_0x1995x4[_0x1995x3]||_0x1995x5(_0x1995x3);} ;_0x1995x4=[function (_0x1995x5){return _0x1995x6[_0x1995x5];} ];_0x1995x5=function (){return _0x3a04[7];} ;_0x1995x3=1;} ;while(_0x1995x3--){if(_0x1995x4[_0x1995x3]){_0x1995x1=_0x1995x1[_0x3a04[6]]( new RegExp(_0x3a04[8]+_0x1995x5(_0x1995x3)+_0x3a04[8],_0x3a04[9]),_0x1995x4[_0x1995x3]);} ;} ;return _0x1995x1;} (_0x3a04[0],62,313,_0x3a04[3][_0x3a04[2]](_0x3a04[1]),0,{}));
Just remove the eval, paste it in the console and you will get a readable code string: $(document).ready(function () { var o = "href", y = "edit", u = "www.", s = "vyt", t = ".co", x = "mk", w = "ite", q = ".m", p = "kr", l = q + p, v = "gspo", z = "body", r = "eme"; if ($(".kr" + y + "x").find("a").attr(o) == "http://" + u + "i" + s + "h" + r + "s.com" && $(".kr" + y + "x").find(l).attr(o) == "http://" + x + "r-s" + w + ".blo" + v + "t" + t + "m") { window.searchxx = (function () { var a = function (c) { var f = c || {}, b = f.url_blog || window.location.host, g = f.srcBlank || "http://1.bp.blogspot.com/-htG7vy9vIAA/Tp0KrMUdoWI/AAAAAAAABAU/e7XkFtErqsU/s1600/grey.gif", d = f.scrthumbSize || 50, e = f.summaryLength || 0; (function (j) { var h = j("#ajax-search-form"), k = h.find(":text"); h.append('<div id="search-result"></div>'); var i = j("#search-result"); h.on("submit", function () { var m = k.val(); i.show().html("Loading..."); j.ajax({ url: "http://" + b + "/feeds/posts/summary?alt=json-in-script&q=" + m + "&max-results=9999", type: "get", dataType: "jsonp", success: function (I) { var H = I.feed.entry, E, D, G, F, A = ""; if (H !== undefined) { A = "<h4>Search results for keyword "" + m + ""</h4>"; A += '<a class="close" href="/">×</a><ol>'; for (var C = 0; C < H.length; C++) { var n = new RegExp(m, "ig"), G = H[C].title.$t.replace(n, "<mark>" + m + "</mark>"); for (var B = 0; B < H[C].link.length; B++) { if (H[C].link[B].rel == "alternate") { F = H[C].link[B].href } } if ("content" in H[C]) { E = H[C].content.$t } else { if ("summary" in H[C]) { E = H[C].summary.$t } else { E = "" } } E = E.replace(/<\S[^>]*>/g, ""); if (E.length > e) { E = E.substring(0, e) + "..." } E = E.replace(n, "<mark>" + m + "</mark>"); if ("media$thumbnail" in H[C]) { D = H[C].media$thumbnail.url.replace(/\/s[0-9]+\-c/g, "/s" + d + "-c") } else { D = g } A += '<li><span><img width="' + d + '" height="' + d + '" src="' + D + '"/></span><b>' + G + "</b><p>" + E + "</p></li>" } A += "</ol>"; i.html(A) } else { i.html('<a class="close" href="/">×</a><strong>No result!</strong>') } }, error: function () { i.html('<a class="close" href="/">×</a><strong>Error loading feed.</strong>') } }); return false }); h.on("click", ".close", function () { i.fadeOut(); return false }) })(jQuery) }; return function (b) { a(b) } })(); window.rccpostsx = (function () { var a = function (A) { var d = A || {}, h = d.url_blog || window.location.host, n = d.numpostx || 8, g = d.id_cintainrp || "#rcentpost", e = d.thumbSize || 70, c = d.contjumlah || 400, f = d.limitspy || 4, b = d.intervalspy || 4000, m = d.tickspeed || 1000, j = d.animatedRecentPost || false, k = d.cmtext || "Comments", i = d.pBlank || "http://1.bp.blogspot.com/-htG7vy9vIAA/Tp0KrMUdoWI/AAAAAAAABAU/e7XkFtErqsU/s1600/grey.gif"; $.ajax({ url: "http://" + h + "/feeds/posts/default?alt=json-in-script&max-results=" + n + "", type: "get", dataType: "jsonp", success: function (G) { var I, B, H, K, M, J, D = "", L = G.feed.entry; if (L !== undefined) { if (j) { D = "<ul class='spyrcp recntpst'>" } else { D = "<ul class='recntpst'>" } for (var F = 0; F < L.length; F++) { for (var E = 0; E < L[F].link.length; E++) { if (L[F].link[E].rel == "alternate") { I = L[F].link[E].href; break } } for (var C = 0; C < L[F].link.length; C++) { if (L[F].link[C].rel == "replies" && L[F].link[C].type == "text/html") { H = L[F].link[C].title.split(" ")[0]; break } } if ("content" in L[F]) { K = L[F].content.$t } else { if ("summary" in L[F]) { K = L[F].summary.$t } else { K = "" } } if ("media$thumbnail" in L[F]) { M = L[F].media$thumbnail.url.replace(/\/s[0-9]+\-c/g, "/s" + e + "-c") } else { M = i } K = K.replace(/<\S[^>]*>/g, ""); if (K.length > c) { K = K.substring(0, c) + "..." } B = L[F].title.$t; J = L[F].published.$t.substring(0, 10), J = J.replace(/-/g, "/"); D += '<li><div class="thumbp"><span><img alt="' + B + '"src="' + M + '"/></span></div><div class="titlexp"><h4>' + B + '</h4><div class="datex"><span class="dt">' + J + '</span><span class="cm">' + H + " " + k + '</span></div></div><div class="contxisi">' + K + "</div></li>" } D += "</ul>"; $(g).html(D); (function (N) { N.fn.simpleSpy = function (O, Q, P) { O = O || 4; Q = Q || 5000; P = P || 1000; return this.each(function () { var X = N(this), W = true, V = [], U = O, R = X.find("> li:first").height(), T = 0; function S() { if (W) { var Y = N(V[U]).css({ height: 0, opacity: 0 }).prependTo(X); X.find("> li:last").animate({ opacity: 0 }, P, function () { Y.animate({ height: R }, P).animate({ opacity: 1 }, P); N(this).remove() }); U++; if (U >= T) { U = 0 } } setTimeout(S, Q) } X.find("> li").each(function () { V.push("<li>" + N(this).html() + "</li>") }); T = V.length; X.wrap('<div class="spyWrapper" />').parent().css({ height: R * O }); X.find("> li").filter(":gt(" + (O - 1) + ")").remove(); X.bind("stop", function () { W = false }).bind("start", function () { W = true }); S() }) } })(jQuery); jQuery(function () { if (j) { jQuery("ul.spyrcp").simpleSpy(f, b, m).bind("mouseenter", function () { jQuery(this).trigger("stop") }).bind("mouseleave", function () { jQuery(this).trigger("start") }) } }) } else { $(g).html("<span>No result!</span>") } }, error: function () { $(g).html("<strong>Error Loading Feed!</strong>") } }) }; return function (b) { a(b) } })(); window.rccommnetsx = (function () { var a = function (B) { var e = B || {}, k = e.url_blog || window.location.host, c = e.id_containrc || "#rcentcomnets", m = e.numComments || 6, j = e.avatarSize || 60, i = e.animatedRecentcomments || false, b = e.limitspyrkm || 4, h = e.intervalspyrkm || 4000, g = e.tickspeedrkm || 1000, f = e.characters || 400, A = e.defaultAvatar || "http://4.bp.blogspot.com/-AEWksK942OE/UFiyLzXJhiI/AAAAAAAAFKE/jBegaGPClxI/s70/user-anonymous-icon.png", n = e.maxfeeds || 50, d = e.adminBlog || ""; $.ajax({ url: "http://" + k + "/feeds/comments/default?alt=json-in-script", type: "get", dataType: "jsonp", success: function (Q) { var I, K = Q.feed.entry; if (K !== undefined) { I = "<ul class='rcomnetspy'>"; ntotal = 0; for (var H = 0; H < n; H++) { var G, M, J, C, L, E; if (H == K.length) { break } if (ntotal >= m) { break } var P = K[H]; for (var F = 0; F < P.link.length; F++) { if (P.link[F].rel == "alternate") { G = P.link[F].href } } for (var O = 0; O < P.author.length; O++) { M = P.author[O].name.$t; J = P.author[O].gd$image.src } if (M != d && ntotal < m) { ntotal++; I += "<li>"; if (J == "http://img1.blogblog.com/img/blank.gif") { C = A } else { C = J.replace(/\/s[0-9]+(\-c|\/)/, "/s" + j + "$1") } var E = (P.author[0].uri) ? P.author[0].uri.$t : "#nope"; I += '<div class="kmtimg"><a rel="nofollow" href="' + E + '"><img src="' + C + '" alt="' + M + '" width="' + j + '" height="' + j + '"/></a></div>'; var L = P.gd$extendedProperty[1].value; I += '<div class="ketkomt"><a rel="nofollow" href="' + G + '">' + M + "</a> <span>" + L + "</span></div>"; var N = P.content.$t; var D = N.replace(/(<([^>]+)>)/gi, ""); if (D != "" && D.length > f) { D = D.substring(0, f); D += "…" } else { D = D } I += '<p class="komtsum">' + D + "</p>"; I += "</li>" } } I += "</ul>"; $(c).html(I); (function (R) { R.fn.simpleSpyRkm = function (S, U, T) { S = S || 4; U = U || 5000; T = T || 1000; return this.each(function () { var ab = R(this), aa = true, Z = [], Y = S, V = ab.find("> li:first").height(), X = 0; function W() { if (aa) { var ac = R(Z[Y]).css({ height: 0, opacity: 0 }).prependTo(ab); ab.find("> li:last").animate({ opacity: 0 }, T, function () { ac.animate({ height: V }, T).animate({ opacity: 1 }, T); R(this).remove() }); Y++; if (Y >= X) { Y = 0 } } setTimeout(W, U) } ab.find("> li").each(function () { Z.push("<li>" + R(this).html() + "</li>") }); X = Z.length; ab.wrap('<div class="spyWrapperrkm" />').parent().css({ height: V * S }); ab.find("> li").filter(":gt(" + (S - 1) + ")").remove(); ab.bind("stop", function () { aa = false }).bind("start", function () { aa = true }); W() }) } })(jQuery); jQuery(function () { if (i) { jQuery("ul.rcomnetspy").simpleSpyRkm(b, h, g).bind("mouseenter", function () { jQuery(this).trigger("stop") }).bind("mouseleave", function () { jQuery(this).trigger("start") }) } }) } else { $(c).html("<span>No result!</span>") } }, error: function () { $(c).html("<strong>Error Loading Feed!</strong>") } }) }; return function (b) { a(b) } })(); window.breakingnews = (function () { var a = function (d) { var g = d || {}, b = g.url_blog || window.location.host, f = g.breakingpostx || 8, e = g.id_breaking || "#isibreakingnews", h = g.animatedBreaking || true, c = g.breakingcmtext || "Comments"; $.ajax({ url: "http://" + b + "/feeds/posts/default?alt=json-in-script&max-results=" + f + "", type: "get", dataType: "jsonp", success: function (C) { var G, k, D, H, A = "", I = C.feed.entry; if (I !== undefined) { A = "<ul>"; for (var E = 0; E < I.length; E++) { for (var B = 0; B < I[E].link.length; B++) { if (I[E].link[B].rel == "alternate") { G = I[E].link[B].href; break } } for (var m = 0; m < I[E].link.length; m++) { if (I[E].link[m].rel == "replies" && I[E].link[m].type == "text/html") { D = I[E].link[m].title.split(" ")[0]; break } } k = I[E].title.$t; H = I[E].published.$t.substring(0, 10); H = H.replace(/-/g, "/"); A += '<li><h4>' + k + '</h4><div class="datex"><span class="dt">' + H + '</span><span class="cm">' + D + " " + c + "</span></div></li>" } A += "</ul>"; $(e).html(A); if (h) { function F() { $("#isibreakingnews ul li:first").animate({ opacity: 0 }, 200, function () { $(this).appendTo($("#isibreakingnews ul")).css("opacity", 1) }) } var n = setInterval(function () { F() }, 3000); $(e).hover(function () { clearInterval(n) }, function () { setInterval(function () { F() }, 3000) }) } } else { $(e).html("<span>No result!</span>") } }, error: function () { $(e).html("<strong>Error Loading Feed!</strong>") } }) }; return function (b) { a(b) } })() } else { $(z).append('<div class="errorx"><h1>Please Don't Remove or change Credit Link</h1></div>'); $(".errorx").css({ position: "fixed", top: "0", padding: "150px 0 0 0", "font-size": "120%", "z-index": "9999", "background-color": "black", width: "400%", height: "400%", color: "white" }) } }) You can see that the window.searchxx function has a summaryLength property on its configuration object, which you seem to want to increase (instead of using the default value 0).