- //v26 © 2011 Tynt
- Tynt = window.Tynt || [];
- if (typeof Tynt.TIL != "undefined") {
- } else {
- (function () {
- var mainTynt = function () {
- var body = document.body,
- documentElement = document.documentElement,
- isIE = eval("/*@cc_on!@*/false"),
- repeat = function (a, b) {
- for (var c = "", f = 0; f < b; f++) c += a;
- return c
- },
- a50 = repeat("a", 50),
- ic_tynt_com = (Tynt.e || "") + "ic.tynt.com",
- de_tynt_com = (Tynt.e || "") + "de.tynt.com/deb/?id=" + a50,
- now = function () {
- return (new Date).getTime()
- },
- trim = function (a) {
- return a.replace(/^\s+|\s+$/g, "")
- },
- copyObj = function (a, b) {
- for (var c in a) if (a.hasOwnProperty(c)) b[c] = a[c]
- },
- createElem = function (tag, attrs, styles) {
- tag = document.createElement(tag);
- copyObj(attrs, tag);
- copyObj(styles, tag.style);
- return tag
- },
- myAddEvent, myRemoveEvent;
- // Define myAddEvent and myRemoveEvent based on browser (IE/nonIE)
- if (window.addEventListener) {
- myAddEvent = function (a, b, c) {
- a.addEventListener(b, c, false)
- };
- myRemoveEvent = function (a, b, c) {
- a.removeEventListener(b, c, false)
- }
- } else {
- myAddEvent = function (a, b, c) {
- a.attachEvent("on" + b, c)
- };
- myRemoveEvent = function (a, b, c) {
- a.detachEvent("on" + b, c)
- }
- }
- var setCookie = function (key, value) {
- var c = location.hostname.split("."),
- f = 2;
- do {
- var d = c.slice(c.length - f, c.length).join(".");
- document.cookie = key + ";path=/;domain=." + d + ";" + value;
- f++
- } while (document.cookie.indexOf(key) == -1 && f <= c.length);
- if (document.cookie.indexOf(key) == -1) document.cookie = key + ";path=/;" + value
- },
- addLoadEvent = function (a) {
- document.readyState == "complete" ? a() : myAddEvent(window, "load", function () {
- setTimeout(function () {
- if (typeof document.readyState == "undefined" && !isIE) document.readyState = "complete";
- a()
- }, 10)
- })
- },
- sendRequestAfterLoad = function (source, errorHandler2) {
- var sendQueue = [],
- makeImage = function (src, errorHandler) {
- // Tynt.join("~") is user id
- var url = "http://" + src.replace("id=" + a50, "id=" + Tynt.join("~"));
- if (url.indexOf(ic_tynt_com + "/b/p?") > -1 && typeof Tynt.b == "string") url += "&b=" + Tynt.b;
- var imgTag = new Image(1, 1);
- if (errorHandler) imgTag.onerror = errorHandler;
- imgTag.src = url
- };
- sendRequestAfterLoad = function (d, e) {
- sendQueue.push([d, e])
- };
- addLoadEvent(function () {
- sendRequestAfterLoad = makeImage;
- for (var d = 0; d < sendQueue.length; d++) sendRequestAfterLoad(sendQueue[d][0], sendQueue[d][1]);
- sendQueue = null
- });
- sendRequestAfterLoad(source, errorHandler2)
- },
- ca = function (a) {
- var b = [],
- c = "",
- f;
- for (f in a) if (a.hasOwnProperty(f)) {
- b.push(c, f, "=", a[f]);
- c = "&"
- }
- return b.join("")
- },
- getHash = function (a) {
- // Returns a base62 9-byte hash of input
- for (var b = 0, c = a.length < 100 ? a.length : 100, f = 0; f < c; f++) b += a.charCodeAt(f);
- a = Math.floor(Math.random() * 3844);
- c = Math.abs(now() - 12281184E5);
- return da(c, 7) + da((b + a) % 3844, 2)
- },
- ea = function (a) {
- if (a < 62) return "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(this);
- else {
- var b = Math.floor(a / 62);
- a = a - b * 62;
- return b >= 62 ? ea(b) + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(a) : "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(b) + "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(a)
- }
- },
- da = function (a, b) {
- var c = ea(a);
- return repeat("0", b - c.length) + c
- },
- numOfWords = function (a) {
- return (a = trim(a)) ? a.split(/\s+/i).length : 0
- },
- documentTitle = trim((document.title || location.hostname).toString()).replace(RegExp(location.hash, "g"), ""),
- removeSchema = function (a) {
- return a.replace(/^https?:\/\//, "")
- },
- getCookie = function (a, b) {
- for (var c = b + "=", f = a.split(";"), d = 0; d < f.length; d++) {
- for (var e = f[d]; e.charAt(0) == " ";) e = e.substring(1, e.length);
- if (e.indexOf(c) == 0) return e.substring(c.length, e.length)
- }
- return null
- },
- checkAndPush3 = function () {
- // an implementation of queue of length 3!
- // myfun = checkAndPush3()
- // myfun(1) -> true
- // myfun(2) -> true
- // myfun(1) -> false
- // myfun(10) -> true
- // myfun(2) -> false
- // myfun(3) -> true
- // myfun(1) -> true // memory size is 3!
- var list = [];
- return function (value) {
- for (var c = list.length - 1; c >= 0; c--)
- if (list[c] == value) return false;
- list.unshift(value);
- list.length > 3 && list.pop();
- return true
- }
- },
- copyAlreadyProccessed = checkAndPush3(),
- imgSrcAlreadyProccessed = checkAndPush3(),
- contextMenuListener = function () {
- var targetElem, processConetxtMenu = function () {
- console.log('contextMenuListener clicked')
- window.removeEventListener("blur", processConetxtMenu, false);
- processCopyEvent(targetElem);
- return true
- };
- return function (event) {
- targetElem = event.target || event.srcElement;
- window.removeEventListener("blur", processConetxtMenu, false);
- if (targetElem.nodeName == "IMG" && targetElem.parentNode.nodeName != "A") {
- window.addEventListener("blur", processConetxtMenu, false);
- setTimeout(function () {
- document.removeEventListener("blur", processConetxtMenu, false)
- }, 1E4)
- }
- return true
- }
- }(),
- copyListener = function (a) {
- processCopyEvent(a.target || a.srcElement, true)
- },
- draggingImg,
- mouseDownListener = function (a) {
- a = a.target || a.srcElement;
- draggingImg = a.nodeName == "IMG" ? a : null;
- },
- dragLeaveListener = function () { //generate dragListenerBasedOnBrowser
- var extractXYfromEvent = function (event) {
- return typeof event.pageX == "number" ? {
- x:event.pageX - (documentElement.scrollLeft ? documentElement.scrollLeft : body.scrollLeft),
- y:event.pageY - (documentElement.scrollTop ? documentElement.scrollTop : body.scrollTop)
- } : {
- x:event.clientX,
- y:event.clientY
- }
- },
- detectDrag_Ie = function (e) {
- e = extractXYfromEvent(e);
- return e.x <= 0 || e.y <= 0 || e.x >= body.clientWidth || e.y >= body.clientHeight
- },
- detectDrag_Ie_compat = function (e) {
- e = extractXYfromEvent(e);
- return e.x <= 0 || e.y <= 0 || e.x >= documentElement.clientWidth || e.y >= documentElement.clientHeight
- },
- detectDrag_firefox = function (e) {
- return e.target.nodeName == "#document"
- },
- detectDrag_others = function (e) {
- e = extractXYfromEvent(e);
- return e.x <= 4 || e.y <= 4 || e.x >= documentElement.clientWidth - 4 || e.y >= documentElement.clientHeight - 4
- },
- detectDrag = function (event) {
- detectDrag = navigator.userAgent.match("MSIE") ?
- !document.compatMode ||
- document.compatMode.indexOf("CSS") == -1 ? detectDrag_Ie : detectDrag_Ie_compat
- : navigator.userAgent.match("Firefox") ? detectDrag_firefox : detectDrag_others;
- detectDrag(event)
- };
- return function (event) {
- if (draggingImg && detectDrag(event)) {
- console.log('dragCaptured', event)
- processCopyEvent(draggingImg);
- draggingImg = null
- }
- return true
- }
- }(),
- addAnchorClickEvents = function () {
- function sendUrlVisitedReport(url, l) {
- if (urlIsNew(url)) {
- console.log('Reporting /b/o '+url)
- //sendRequestAfterLoad(ic_tynt_com + "/b/o?id=" + a50 + (l ? "&i=" : "&l=") + encodeURIComponent(url) + "&ts=" + now())
- }
- }
- function processAnchorClicks(event) {
- var target = event.target || event.srcElement;
- if (event.button < 2)
- for (; target && target != document;) {
- var href = target.href;
- if (target.nodeName == "A" && href && location.href.split("#")[0] != href.split("#")[0] && !/^javascript/i.test(href)) {
- sendUrlVisitedReport(href);
- break
- }
- target = target.parentNode
- }
- }
- function windowBlured() {
- objectSrc && sendUrlVisitedReport(objectSrc, true)
- }
- function objectOverListener(e) {
- if (e) {
- e = e.target || e.srcElement;
- objectSrc = e.src || e.data || "flash";
- myAddEvent(window, "blur", windowBlured)
- }
- }
- function objectOutListener() {
- objectSrc = null;
- myRemoveEvent(window, "blur", windowBlured)
- }
- function processObject(elem) {
- myAddEvent(elem, "mouseover", objectOverListener);
- myAddEvent(elem, "mouseout", objectOutListener)
- }
- function windowUnloaded() {
- objectSrc && sendUrlVisitedReport(objectSrc, true)
- }
- var objectSrc, urlIsNew = checkAndPush3();
- myAddEvent(document, "mousedown", processAnchorClicks);
- addLoadEvent(function () {
- for (var elems = document.getElementsByTagName("iframe"), l = elems.length - 1; l >= 0; l--) {
- var iframe = elems[l];
- if (iframe.src)
- processObject(iframe);
- else if (iframe.name) {
- try {
- myAddEvent(frames[iframe.name].document, "mousedown", processAnchorClicks)
- } catch (u) {
- }
- }
- }
- elems = document.getElementsByTagName("object");
- for (l = elems.length - 1; l >= 0; l--)
- processObject(elems[l]) // <object> elem
- });
- myAddEvent(window, "beforeunload", windowUnloaded);
- myAddEvent(window, "unload", windowUnloaded)
- },
- registerAllEvents = function () {
- /* Registers copy / drag / link click events
- * Returns a function to be called when user copy something
- */
- var unimportant3 = true,
- b,
- sendCopyEventReq = function (args, copiedText) {
- var data = {
- id:a50,
- wc:numOfWords(copiedText),
- c:copiedText,
- f:unimportant3 ? 1 : 0,
- t:documentTitle
- };
- copyObj(args, data);
- unimportant3 = false;
- var h = data.trace_type;
- delete data.trace_type;
- var k = data.g;
- delete data.g;
- for (var o = [], j = ["id", "wc", "f", "now", "h", "trim", "c"], l = 0; l < j.length; l++) {
- var r = j[l],
- u = data[r];
- u && o.push([r, encodeURIComponent(u).replace(/\'/g, "%27")]);
- delete data[r]
- }
- for (var y in data) if (data.hasOwnProperty(y))(j = data[y]) && o.push([y, encodeURIComponent(j).replace(/\'/g, "%27")]);
- data = [];
- l = 2048 - (("http://" + ic_tynt_com + "/a/t/x#?").length + (3 + k.length) + 5);
- r = o.length;
- var B = u = 0,
- z = 0,
- U, H, V, I, J = 0;
- for (data[J] = {
- g:k,
- tp:null
- }; u < r && data.length < 35;) {
- U = o[u][0];
- y = o[u][1];
- V = U.length + 2;
- H = l - V - B;
- if (H > 0) {
- j = y.substring(z, z + H);
- I = j.slice(-2).indexOf("%");
- if (I > -1) {
- j = y.substring(z, z + H - 2 + I);
- B += I + 2
- }
- B += j.length + V;
- z += j.length;
- data[J][U] = j
- } else B = l;
- if (B >= l) {
- data[++J] = {
- g:k,
- p:J
- };
- B = 0
- }
- if (z >= y.length) {
- u++;
- z = 0
- }
- }
- data[0].tp = data.length;
- sendRequestAfterLoad(ic_tynt_com + "/b/t/" + h + "?" + ca(data[0]));
- for (k = 1; k < data.length; k++)
- sendRequestAfterLoad(ic_tynt_com + "/b/x/" + h + "?" + ca(data[k]))
- };
- // Register events
- /tynt=nout/.test(location.href) || addAnchorClickEvents();
- if (window.addEventListener) {
- navigator.userAgent.match("Firefox/2") || body.addEventListener("copy", copyListener, false);
- window.addEventListener("mousedown", mouseDownListener, false);
- window.addEventListener("dragleave", dragLeaveListener, false);
- window.addEventListener("dragexit", dragLeaveListener, false);
- document.addEventListener("contextmenu", contextMenuListener, false)
- } else {
- body.attachEvent("oncopy", copyListener);
- document.getElementsByTagName("html")[0].attachEvent("ondragleave", dragLeaveListener);
- body.attachEvent("onmousedown", mouseDownListener)
- }
- //sendRequestAfterLoad(de_tynt_com);
- var processCopyEvent = function (elem, isCopyEvent) {
- if (!document.getElementById("tyntSS")) {
- // assert isCopyEvent || elem.src
- var selString;
- if (isCopyEvent)
- selString = typeof getSelection != "undefined" ? getSelection().toString() : document.selection.createRange().text;
- var elemSrc = elem.src;
- // when dragging image (doessn't work in my ubuntu/firefox)
- elemSrc && !selString && imgSrcAlreadyProccessed(elemSrc) && sendCopyEventReq({
- g:getHash(elemSrc),
- trace_type:3,
- w:elem.width,
- h:elem.height
- }, elemSrc);
- // Copying a text (not from an input/textarea)
- if (selString && trim(selString).length &&
- elem.nodeName != "TEXTAREA" && elem.nodeName != "INPUT") {
- var isNewEvent = copyAlreadyProccessed(selString);
- var k = {
- trace_type:1
- };
- if (isNewEvent) b = getHash(selString);
- k.g = b;
- // Add 'Read more ...' to selected text
- var success = Tynt.tyntAddToSelection ? Tynt.tyntAddToSelection(k, selString) : true;
- isNewEvent && success && sendCopyEventReq(k, selString)
- }
- }
- };
- return processCopyEvent
- },
- validUnicodeText = function (a) {
- a = a.charCodeAt(0);
- return 3584 <= a && a <= 3711 || 11904 <= a && a <= 12591 || 12688 <= a && a <= 40959 || 63744 <= a && a <= 64255 || 65072 <= a && a <= 65103 || 131072 <= a && a <= 173791 || 194560 <= a && a <= 195103
- },
- removeScriptTags = function (elem) {
- var scripts = elem.getElementsByTagName("script");
- for (var b = scripts.length - 1; b >= 0; b--) {
- var script = scripts[b];
- script.parentNode.removeChild(script)
- }
- },
- tracerVars, id_tynt_com = (Tynt.e || "") + "id.tynt.com",
- unimportant2 = {
- t:3,
- p:6,
- w:7
- },
- A, W, X,
- addIxzzCode = function (a) {
- var b = location.href;
- b = b.replace(/#(i|a)xzz=?(.*)$/g, "");
- return b + "#" + ("ixzz" + a)
- },
- escape = function (a) {
- return a.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">")
- },
- addToSelectionLock = false,
- //something related to add extra text to selection
- addToSelection = function (ixzzCode) {
- // Returns false if another addToSelection already called
- if (addToSelectionLock) return false;
- addToSelectionLock = true;
- var addText = "";
- if (tracerVars.changeCopiedText) {
- var linkUrl = addIxzzCode(ixzzCode),
- a_start_tag = '<a style="color: #003399;" href="';
- addText += tracerVars.readMore;
- if (tracerVars.st) addText = addText + a_start_tag + linkUrl + '">' + escape(documentTitle) + "</a> ";
- if (tracerVars.su) addText = addText + a_start_tag + linkUrl + '">' + escape(linkUrl) + "</a>";
- if (tracerVars.as.length > 0) addText = addText + "\n<br>" + tracerVars.as + " ";
- }
- var div, div2;
- div = createElem("div", {}, {
- overflow:"hidden",
- color:"#000000",
- backgroundColor:"#FFFFFF",
- textAlign:"left",
- textDecoration:"none",
- border:"none"
- });
- if (!document.selection || !document.selection.createRange) {
- var selec = getSelection();
- if (selec.toString()) if (typeof selec.setBaseAndExtent != "undefined") {
- var range = selec.getRangeAt(0);
- addText = createElem("span", {
- innerHTML:addText
- });
- if (tracerVars.t) {
- addText.innerHTML += "<br/><br/>";
- div.appendChild(addText);
- div.appendChild(range.cloneContents())
- } else {
- div.appendChild(range.cloneContents());
- addText.innerHTML = "<br/><br/>" + addText.innerHTML;
- div.appendChild(addText)
- }
- removeScriptTags(div);
- div.style.width = 0.1;
- div.style.height = 0.1;
- div.style.position = "absolute";
- div.style.top = "-1000px";
- div.style.left = "-1001px";
- div.appendChild(document.createElement("br"));
- addText = div.innerText.length;
- body.insertBefore(div, body.firstChild);
- if (div.innerText.length != addText) div.style.overflow = "";
- selec.selectAllChildren(div);
- setTimeout(function () {
- div.parentNode.removeChild(div);
- getSelection().setBaseAndExtent(range.startContainer, range.startOffset, range.endContainer, range.endOffset);
- addToSelectionLock = false
- }, 0)
- } else {
- div2 = createElem("div", {}, {
- height:0,
- position:"absolute",
- top:"-1000px"
- });
- div2.innerHTML = "<br>";
- if (tracerVars.t) {
- body.insertBefore(div2, body.firstChild);
- div.innerHTML = addText + "<br><br>"
- } else {
- body.appendChild(div2);
- div.innerHTML = "<br>" + addText + "<br>"
- }
- div2.appendChild(div);
- addText = document.createRange();
- addText.selectNode(div);
- selec.addRange(addText);
- window.setTimeout(function () {
- div2.parentNode.removeChild(div2);
- addToSelectionLock = false
- }, 0)
- }
- } else {
- var k = documentElement.scrollLeft || body.scrollLeft,
- o = documentElement.scrollTop || body.scrollTop;
- div2 = createElem("div", {}, {
- overflow:"hidden",
- position:"absolute",
- left:k + 20 + "px",
- top:o + 20 + "px",
- width:"1px",
- height:"1px"
- });
- body.insertBefore(div2, body.firstChild);
- var j = document.selection.createRange();
- div.innerHTML = tracerVars.t ? addText + "<br><br>" + j.htmlText : j.htmlText + "<br><br>" + addText;
- removeScriptTags(div);
- div2.appendChild(document.createElement("br"));
- div2.appendChild(div);
- addText = body.createTextRange();
- addText.moveToElementText(div);
- addText.select();
- setTimeout(function () {
- body.removeChild(div2);
- if (j.text != "") {
- j.select();
- documentElement.scrollLeft = k;
- body.scrollLeft = k;
- documentElement.scrollTop = o;
- body.scrollTop = o
- }
- addToSelectionLock = false
- }, 0)
- }
- return true
- },
- doAddToSelection = function (param, selectText) {
- var success = true;
- if (tracerVars.changeCopiedText || A || tracerVars.el) {
- var trimmed = trim(selectText);
- var validText = trimmed.length >= 2 ?
- validUnicodeText(trimmed.charAt(0)) ||
- validUnicodeText(trimmed.charAt(trimmed.length - 1)) ||
- validUnicodeText(trimmed.charAt(trimmed.length / 2))
- : validUnicodeText(trimmed);
- var d;
- // OOPCH: very complex code!
- if (d = tracerVars.h) LABELLABEL: {
- console.log('This code never executes');
- d = (d = unimportant4()) ? d.className.split(/\s+/) : [];
- for (var e = d.length - 1; e >= 0; e--) if (tracerVars.h[d[e]] !== undefined) {
- d = tracerVars.h[d[e]];
- break LABELLABEL
- }
- d = void 0
- }
- d = d;
- // d is always undefined
- if (d !== false &&
- (validText && selectText.replace(/\s/g, "").length >= tracerVars.minCopyLength * 2 ||
- !validText && numOfWords(selectText) >= tracerVars.minCopyLength)
- || d)
- if (tracerVars.changeCopiedText || A || tracerVars.el) {
- success = addToSelection(param.g);
- if (tracerVars.changeCopiedText) param.trace_type = 0
- }
- }
- return success
- },
- unimportant4 = function () {
- return !document.selection || !document.selection.createRange ?
- function () {
- var a = getSelection().getRangeAt(0),
- b = a.startContainer.nodeType == 3 ? a.startContainer.parentNode : a.startContainer;
- return b && trim(a.toString()) == trim(b.textContent) ? b : null
- } : function () {
- var a = document.selection.createRange(),
- b = a.duplicate();
- b.collapse(true);
- return (b = b.parentElement()) && trim(a.text) == trim(b.innerText) ? b : null
- }
- }(),
- unused1 = function (a) {
- if (a.hash != "") return false;
- if (typeof tracerVars.ba == "boolean" && tracerVars.ba) tracerVars.ba = ["/"];
- else if (!tracerVars.ba) return true;
- for (var b, c = tracerVars.ba.length - 1; c >= 0; c--) {
- b = null;
- var f = tracerVars.ba[c],
- d = f.indexOf("/");
- if (d != 0) {
- b = f.slice(0, d);
- f = f.slice(d)
- }
- if (!b || a.host == b) if (f.charAt(f.length - 1) == "#") {
- if (a.pathname.indexOf(f.slice(0, -1)) == 0) return false
- } else if (a.pathname == f) return false
- }
- return true
- },
- initTracerVarsArgs = function (a) {
- tracerVars = Tynt.i || window.tyntVariables || {};
- tracerVars.s = a.s || 1;
- tracerVars.changeCopiedText = !(tracerVars.changeCopiedText == 0 || a.a == 0);
- tracerVars.cc = tracerVars.cc || a.cc || 0;
- if (tracerVars.cc > 6) tracerVars.cc = 0;
- tracerVars.b = !!(tracerVars.b || a.b);
- tracerVars.minCopyLength = Math.max(tracerVars.minCopyLength || 8, 8);
- if (tracerVars.changeCopiedText) {
- tracerVars.readMore = (tracerVars.readMore || (typeof tyntAP != "undefined" ? tyntAP : null) || "Read more:") + " ";
- tracerVars.as = tracerVars.as || (typeof tyntAS != "undefined" ? tyntAS : null) || "";
- tracerVars.st = !!(tracerVars.st || a.st);
- tracerVars.su = !(tracerVars.su == 0 || a.su == 0);
- tracerVars.sp = tracerVars.sp || a.sp;
- if (tracerVars.sp) {
- X = tracerVars.spid;
- W = (tracerVars.spt || decodeURIComponent(a.spt || "")) + " ";
- A = tracerVars.sp || decodeURIComponent(a.sp || "")
- }
- }
- },
- removeIAxzzFromTitle = function () {
- var a = document.title.indexOf("#ixzz");
- if (a > -1) document.title = document.title.substring(0, a);
- a = document.title.indexOf("#axzz");
- if (a > -1) document.title = document.title.substring(0, a)
- },
- getUserId = function () {
- for (var a = 0; a < Tynt.length; a++) if (Tynt[a] && Tynt[a].length == 22) return Tynt[a];
- return null
- },
- tracerJsParams = function (tracerJsSrc) {
- if (!tracerJsSrc) return {};
- for (var parsed = {}, params = tracerJsSrc.substring(tracerJsSrc.indexOf("?") + 1).split("&"), f = 0; f < params.length; f++) {
- var key_value = params[f].split("=");
- if (key_value[0].indexOf("amp;") == 0) key_value[0] = key_value[0].substring(4);
- parsed[key_value[0]] = key_value[1]
- }
- tracerJsSrc = tracerJsSrc.split("/");
- tracerJsSrc.pop();
- parsed.scriptPathUri = tracerJsSrc.join("/");
- return parsed
- }(function () {
- for (var a = document.getElementsByTagName("script"), b = 0; b < a.length; b++)
- if (/\/tracer.*\?/i.test(a[b].src)) return a[b].src;
- return null
- }()),
- userId = tracerJsParams.user || getUserId();
- if (!userId) throw Error("Error finding Tynt Insight userId. Please check your HTML for errors.");
- tracerJsParams.user && Tynt.push(tracerJsParams.user);
- // Check tracking is disabled or not
- var trackingDisabled = function () {
- var a = /tracer=test/.test(location.href);
- a && sendRequestAfterLoad(id_tynt_com + "/script/verify/" + userId);
- if (a) return true;
- if (/tracer=no_tracing/.test(location.href)) return true;
- if (/disableTracer=/.test(location.href)) {
- a = location.href.match(/disableTracer=([^?$]*)/)[1];
- var b = new Date;
- b.setDate(a && a == "on" ? b.getDate() + 365 : b.getDate() - 2);
- setCookie("disableTracer=y", "expires=" + b.toUTCString());
- console.log('oho'); // never runs
- b = createElem("div", {}, {
- zIndex:"10000",
- position:"absolute",
- top:"10%",
- left:"10%",
- width:"80%",
- height:"80%",
- backgroundColor:"white",
- color:"black",
- textAlign:"center",
- fontSize:"32px",
- paddingTop:"10%",
- border:"1px solid gray"
- });
- b.innerHTML = "Tynt Insight has been turned " + (a && a == "on" ? "off" : "on") + " in this browser.<br>You may close this window.";
- body.insertBefore(b, body.firstChild);
- return true
- }
- if (getCookie(document.cookie, "disableTracer")) return true;
- return false
- }();
- if (!trackingDisabled) {
- if (isIE) {
- removeIAxzzFromTitle();
- document.attachEvent("onpropertychange", removeIAxzzFromTitle)
- }
- initTracerVarsArgs(tracerJsParams);
- var processCopyEvent = registerAllEvents();
- Tynt.tyntAddToSelection = doAddToSelection;
- }
- };
- Tynt.TIL = function () {
- document.body ? mainTynt() : setTimeout(Tynt.TIL, 300)
- }
- })();
- Tynt.TIL()
- }