Advertisement
Guest User

HoverZoom's affiliate.min.js

a guest
Dec 18th, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.71 KB | None | 0 0
  1. var hzAdDebug = !1,
  2. hzVersion = "4.16",
  3. keywords, adCont, urlPrefix = !hzAdDebug && "https:" == location.protocol ? "https://ssl14.ovh.net/~hoverzoo" : "http://hoverzoom.net",
  4. validGeoC = ["us"];
  5.  
  6. function addAffiliateLinks() {
  7. try {
  8. if ("www.youtube.com" == location.host) {
  9. for (var a = null, c = null, b = document.querySelectorAll("#watch-description-extra-info .metadata-info-title"), d = 0; d < b.length; d++) 0 == b[d].textContent.indexOf("Buy") && (a = b[d].textContent.match(/Buy "(.*)" on/)) && (a = a[1]), -1 < b[d].textContent.indexOf("Artist") && (c = b[d].nextSibling.nextSibling.textContent);
  10. if (null === a || null === c) return;
  11. var e = c + " " + a,
  12. l = document.querySelectorAll('.metadata-info a[href*="itunes"], .metadata-info a[href*="googlemusic"]');
  13. if (0 == l.length) return;
  14. var l = l[0],
  15. g = document.createElement("a");
  16. g.target = "_blank";
  17. g.className = "nowrap";
  18. g.textContent = "Amazon";
  19. g.title = 'Buy "' + a + '" on Amazon by courtesy of Hover Zoom';
  20. g.href = "http://www.amazon.com/gp/search?ie=UTF8&camp=1789&creative=9325&index=music&keywords=" + encodeURIComponent(e) + "&linkCode=ur2&tag=hzyt-20";
  21. l.parentElement.appendChild(g)
  22. }
  23. var n = Math.random();
  24. if ("www.facebook.com" == location.host && (0.7 > n || hzAdDebug))
  25. if (adCont = document.getElementById("pagelet_ego_pane")) {
  26. var e = "_default",
  27. m = localStorage["hzLinkCache " + e];
  28. m && (m = JSON.parse(m)).expiration > Date.now() ? createAffiliatelinks(m) : (localStorage.removeItem("hzLinkCache " + e), getCountry(function (a) {
  29. -1 < validGeoC.indexOf(a) && searchItems(e, a, function (a) {
  30. a = JSON.parse(a);
  31. keywordsLinks = {
  32. links: []
  33. };
  34. if (a && a.links && 0 < a.links.length)
  35. for (var b = 0, d = a.links.length; b < d; b++) {
  36. var c = a.links[b];
  37. (c.keywords == e || !c.keywords && "_default" == e) && keywordsLinks.links.push(c)
  38. }
  39. keywordsLinks.expiration = Date.now() + 6048E5;
  40. localStorage["hzLinkCache " + e] = JSON.stringify(keywordsLinks);
  41. createAffiliatelinks(keywordsLinks)
  42. })
  43. }))
  44. }
  45. } catch (p) {
  46. if (hzAdDebug) throw p;
  47. }
  48. }
  49.  
  50. function getCountry(a) {
  51. var c = document.cookie.match(/hzGeoC=(\w*)/);
  52. c && 2 == c.length ? a(c[1]) : chrome.runtime.sendMessage({
  53. action: "ajaxGet",
  54. url: urlPrefix + "/api/geoc.php"
  55. }, function (b) {
  56. b = b.toLowerCase();
  57. document.cookie = "hzGeoC=" + b + "; expires=" + (new Date(Date.now() + 2592E6)).toUTCString() + "; path=/";
  58. a && a(b)
  59. })
  60. }
  61.  
  62. function searchItems(a, c, b) {
  63. chrome.runtime.sendMessage({
  64. action: "ajaxGet",
  65. url: urlPrefix + "/api/amazonlinks/" + c + ".json"
  66. }, function (a) {
  67. try {
  68. a && (a = a.substr(a.indexOf("{")), hzAdDebug && console.log(a), b(a))
  69. } catch (c) {
  70. if (hzAdDebug) throw c;
  71. }
  72. })
  73. }
  74.  
  75. function createAffiliatelinks(a) {
  76. try {
  77. if (a && a.links && a.links.length) {
  78. for (var c = 0, b = a.links[Math.floor(Math.random() * a.links.length)], d = Date.parse(b.start), e = Date.parse(b.end), l = Date.parse((new Date).toDateString()); !(d <= l && l <= e) && 5 > c++;) b = a.links[Math.floor(Math.random() * a.links.length)], d = Date.parse(b.start), e = Date.parse(b.end);
  79. var g = b.title || keywords || "",
  80. n = b.text + "<br>",
  81. m = b.list_price || b.best_price,
  82. p = b.img_url,
  83. k = adCont.querySelector("[data-ad]");
  84. if (n && b.url) {
  85. for (; null != k && -1 == k.className.indexOf("ego_unit_container");) k =
  86. k.parentElement;
  87. if (null != k) {
  88. p || (p = chrome.extension.getURL("images/fb-amazon.png"));
  89. m && (n += "<br><b>" + m + "</b>");
  90. var f = '<div class="uiSelector inlineBlock emu_x emuEventfad_hide fbEmuLink uiSelectorRight"><div class="wrap"><a id="hzCloseAd" style="visibility: hidden" href="http://hoverzoom.net/aboutads/" target="_blank" title="About this ad"><img src="' + chrome.extension.getURL("images/fb-close.png") + '"></a></div></div>',
  91. f = f + ('<div class="title" style="color: #3B5998; font-weight: bold; margin-bottom: 4px"><a class="forceLTR" href="' +
  92. b.url + '" target="_blank">' + g + "</a></div>"),
  93. f = f + ('<div class="clearfix image_body_block"><a class="emuEvent1 _24x image fbEmuImage _8o _8s lfloat" href="' + b.url + '" target="_blank">'),
  94. f = f + ('<img src="' + p + '" style="max-width: 100px; max-height: 72px"></a><div>'),
  95. f = f + ('<div class="_8m"><div class="body"><a class="forceLTR emuEvent1" style="color: #333; text-decoration: none;" href="' + b.url + '" target="_blank">' + n + "</a></div></div>"),
  96. f = f + "</div>";
  97. window.removeEventListener("DOMNodeInserted", windowOnDOMNodeInserted);
  98. var h = document.createElement("div");
  99. h.id = "hoverZoomAd";
  100. h.className = "ego_unit";
  101. h.dataset.keywords = g.replace(/['"]/g, " ");
  102. h.innerHTML = f;
  103. k.insertBefore(h, k.children[Math.floor(Math.random() * k.childElementCount)]);
  104. window.addEventListener("DOMNodeInserted", windowOnDOMNodeInserted);
  105. var q = document.getElementById("hzCloseAd");
  106. h.addEventListener("mouseover", function () {
  107. q.style.visibility = "visible"
  108. });
  109. h.addEventListener("mouseout", function () {
  110. q.style.visibility = "hidden"
  111. });
  112. chrome.runtime.sendMessage({
  113. action: "trackEvent",
  114. event: {
  115. category: "Ads",
  116. action: "FacebookAdDisplayed",
  117. label: h.dataset.keywords
  118. }
  119. });
  120. h.addEventListener("click", function () {
  121. chrome.runtime.sendMessage({
  122. action: "trackEvent",
  123. event: {
  124. category: "Ads",
  125. action: "FacebookAdClicked",
  126. label: this.dataset.keywords
  127. }
  128. })
  129. })
  130. }
  131. }
  132. }
  133. } catch (r) {
  134. if (hzAdDebug) throw r;
  135. }
  136. }
  137.  
  138. function windowOnDOMNodeInserted(a) {
  139. a.target && ("ego_column" == a.target.className && a.target.parentElement && "pagelet_ego_pane" == a.target.parentElement.id && !document.getElementById("hoverZoomAd")) && addAffiliateLinks();
  140. a.target && ("egoRefreshAds" == a.target.id && !document.getElementById("hoverZoomAd")) && addAffiliateLinks()
  141. }
  142. chrome.runtime.sendMessage({
  143. action: "getOptions"
  144. }, function (a) {
  145. 2 > a.enableAds && addAffiliateLinks()
  146. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement