Skip to content

Instantly share code, notes, and snippets.

@BriceShatzer
Created July 9, 2018 16:56
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BriceShatzer/419fed1a315362c2e60a1f128ed02fa1 to your computer and use it in GitHub Desktop.
Save BriceShatzer/419fed1a315362c2e60a1f128ed02fa1 to your computer and use it in GitHub Desktop.
var amazon_assoc_ir_f_call_associates_ads = function(d) {
var b = "", c, a;
if (typeof JSON !== "undefined") {
a = JSON.stringify(d);
} else {
if (typeof amzn_assoc_utils !== "undefined") {
a = amzn_assoc_utils.stringify(d);
} else {
return;
}
}
if (typeof d.logType !== "undefined") {
b = "&logType=" + d.logType;
}
c = "//fls-na.amazon-adsystem.com/1/associates-ads/1/OP/r/json";
c = c + "?cb=" + (new Date()).getTime() + b + "&p=" + encodeURIComponent(a);
(new Image()).src = c;
};
var amazon_assoc_ir_f_call = amazon_assoc_ir_f_call_associates_ads;
var amazon_assoc_ir_call = function(c, b, a) {
new Image().src = "//ir-na.amazon-adsystem.com/e/ir?o=" + a + "&t=" + c + "&l=" + b + "&cb=" + (new Date()).getTime();
};
window.cmManager = function(h, g, i) {
var j = {}
, l = {}
, k = {};
j.startScope = function(b, a) {
k[b + a] = new Date().getTime();
}
;
j.endScope = function(d, c, a) {
var b;
if (typeof k[d + c] !== "undefined") {
b = new Date().getTime() - k[d + c];
} else {
if (typeof a !== "undefined") {
b = new Date().getTime() - a;
} else {
return;
}
}
j.queue(d, [{
name: c,
value: b
}]);
delete k[d + c];
}
;
j.addCounter = function(c, b, a) {
j.queue(c, [{
name: b,
value: a
}]);
}
;
j.queue = function(b, a) {
if (typeof l[b] !== "undefined") {
l[b] = l[b].concat(a);
} else {
l[b] = a;
}
}
;
j.trigger = function(b, w, f) {
var v = "//" + h + "action-impressions/1/OE/associates-adsystems/action/", a, e, c = "", u = "", s, d = 0;
for (a in l) {
if (l.hasOwnProperty(a)) {
d = d + 1;
v = v + u + a + ":";
c = "";
for (e = 0; e < l[a].length; e++) {
var t = l[a][e];
v = v + c + t.name;
if (typeof t.value !== "undefined") {
v = v + "@v=" + t.value;
}
c = ",";
}
u = "/";
}
}
l = {};
if (d > 0) {
s = new Image();
s.src = v + "?marketplace=" + g + "&service=AmazonWidgets&method=" + i + "&marketplaceId=" + b + "&requestId=" + w + "&session=" + f;
return s.src;
} else {
return "";
}
}
;
return j;
}
;
window.amzn_assoc_cm = cmManager("fls-na.amazon-adsystem.com/1/", "US", "Widgets_Render_Time");
amzn_assoc_enable_abs = true;
window.amzn_assoc_placement = "adunit0";
window.amzn_assoc_tracking_id = "nativeadsearch-gizmodo-20";
window.amzn_assoc_ad_mode = "auto";
window.amzn_assoc_ad_type = "smart";
window.amzn_assoc_marketplace = "amazon";
window.amzn_assoc_region = "US";
window.amzn_assoc_default_category = "All";
window.amzn_assoc_linkid = "05cc34c68ed4c83cef168660c1f1d75d";
window.amzn_assoc_fallback_mode = JSON.parse('{"type":"search","value":"technology"}');
window.amzn_assoc_enable_interest_ads = "true";
window.amzn_assoc_rows = "1";
if (document.getElementById("amzn-assoc-ad-06cc7add-cc6e-4df8-a756-35984a9ede81") !== null) {
window.amzn_assoc_div_name = "amzn-assoc-ad-06cc7add-cc6e-4df8-a756-35984a9ede81";
}
(function() {
if (typeof window.performance !== "undefined" && typeof window.performance.timing !== "undefined") {
amzn_assoc_cm.endScope("cm_", "onejs_load_evt", window.performance.timing.navigationStart);
if (window.performance.timing.loadEventEnd > 0) {
amzn_assoc_cm.endScope("cm_", "onejs_load_evt_doc_load", window.performance.timing.loadEventEnd);
}
}
amzn_assoc_cm.startScope("cm_", "onejs_exec_time");
amzn_assoc_cm.startScope("cm_", "wdgt_load_time_invoke");
}());
window.amzn_assoc_internal_params = {
honor_ead_strictly: "",
viewerCountry: "",
enable_fallbacks: "",
exp_details: "",
destinationTrackingId: "",
ad_id: "",
ead: "",
URL: "",
div_name: "",
override: "",
sourceTrackingId: "",
sign_links: "",
aax_src_id: "",
textlinks: "",
subtag: "",
slotNum: "",
ac_website: "",
enable_geo_redirection: "",
force_win_bid: "",
enable_auto_tagging: "",
preview: "",
axf_treatment: "",
aax_test_punt: "",
debug: "",
axf_exp_name: "",
ad_placement_type: ""
};
window.assocUtilsMaker = function(e, A, C) {
var D = window, v = {}, x, w = {}, u = {}, y = {}, q = {
CA: "330"
}, r = 1800, s = function(d, a, f, b, i, c) {
var h = {}, k, g, j;
if (typeof d[a] !== "undefined" && d[a] !== "") {
d[f] = d[f] || [];
g = d[a].split(",");
for (j = 0; j < g.length; j++) {
h = {};
h[b] = g[j].trim();
h.emphasis = i;
for (k in c) {
if (c.hasOwnProperty(k)) {
h[k] = c[k];
}
}
d[f].push(h);
}
}
}, z = function(d, a, f, b) {
var g, c;
if (typeof d[a] !== "undefined" && d[a] !== "") {
d[f] = d[f] || [];
g = d[a].split(",");
for (c = 0; c < g.length; c++) {
d[f].push(b(g[c]));
}
}
}, B = function(a) {
s(a, "emphasize_categories", "acap_categoryConstraints", "category", "Strong", {
type: "AmazonBrowse"
});
s(a, "ignore_categories", "acap_categoryConstraints", "category", "Ignore", {
type: "AmazonBrowse"
});
s(a, "restrict_categories", "acap_categoryConstraints", "category", "Restrict", {
type: "AmazonBrowse"
});
s(a, "emphasize_keywords", "acap_keywordConstraints", "keyword", "Strong", {});
s(a, "ignore_keywords", "acap_keywordConstraints", "keyword", "Ignore", {});
z(a, "ignore_keywords", "acap_skipTitleList", function(b) {
return "(.*)" + b.trim() + "(.*)";
});
z(a, "fallback_products", "acap_pubPickList", function(b) {
return b.trim();
});
};
try {
x = parseInt(A);
} catch (t) {
x = 6;
}
v.createDiv = function(c, a, b) {
if (b) {
document.write('<span id="' + c + "_" + a + '"></span>');
} else {
document.write('<div id="' + c + "_" + a + '"></div>');
}
return c + "_" + a;
}
;
v.registerAdCountComputer = function(b, a) {
w[b] = a;
}
;
v.getExpectedAdCount = function(a, b) {
if (typeof w[a.ad_type] === "undefined") {
return 0;
} else {
return w[a.ad_type](a, b);
}
}
;
v.generateGuid = function() {
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(a) {
var b = Math.random() * 16 | 0
, c = a === "x" ? b : (b & 3 | 8);
return c.toString(16);
});
}
;
v.validatePJLength = function(b) {
var a = JSON.stringify(b).length;
if (b.hasOwnProperty("resolvedItems")) {
a -= b.resolvedItems.length;
}
return a <= r;
}
;
v.fetchHtml = function(i, b) {
var a = i.url, d, g, f = v.generateGuid(), c = v.generateGuid(), h = u[i.slotNum] ? "ssp_load_time" : "aax_load_time";
if (typeof b === "undefined") {
b = 0;
}
i.slotNum = i.slotNum || 0;
y[i.slotNum] = i.aaxMediated;
if (!i.dontInject) {
if (typeof i.elemName === "undefined" && !i.explicitAsync) {
i.elemName = v.createDiv(i.prefix, i.slotNum, i.inline);
}
}
if (i.renderInIframe && !i.aaxMediated) {
g = i.iframeStyle;
if ((!g || g === "") && i.adOptions.width && i.adOptions.height) {
g = "width:" + i.adOptions.width + "px;height:" + i.adOptions.height + "px;";
}
(function() {
var j = document.getElementById(i.elemName);
if (!i.dontInject) {
j.innerHTML = '<iframe id="amzn_assoc_ad_' + i.slotNum + '" style="' + g + '" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="' + i.url + '"></iframe>';
v.execBodyScripts(j, i.slotNum);
}
}());
return;
}
d = "amzn_assoc_jsonp_callback_" + i.placement + "_" + i.slotNum;
if (i.aaxMediated) {
a = a + "&jscb=" + d;
} else {
a = a + "&jsonp=" + d;
}
(function(j) {
D[d] = function(o) {
var m, l;
if (i.aaxMediated) {
amzn_assoc_cm.endScope("cm_", h);
amzn_assoc_cm.endScope("cm_", h + "_" + i.adOptions.ad_type);
if (o && o.html) {
try {
if (v.validatePJLength(i.adOptions)) {
m = JSON.parse(o.html);
m.pj = i.adOptions;
m.originUrl = i.adOptions.URL || document.location.href;
i.url = "https://ws-na.amazon-adsystem.com:443/widgets/safl";
i.url = i.url + "?q=" + encodeURIComponent(JSON.stringify(m));
if (m.customPixels) {
for (l = 0; l < m.customPixels.length; l++) {
new Image().src = m.customPixels[l];
}
}
v.fetchHtml(i);
return;
} else {
console.error("Error : Adcode values too long");
return;
}
} catch (n) {
o = o.html;
}
} else {
if (i.adOptions.preview === "true" && b < x) {
setTimeout(function() {
v.fetchHtml(i, b + 1);
}, C);
} else {
i.url = i.aaxPuntFallback + "&aaxPunt=true";
i.aaxMediated = false;
amzn_assoc_cm.addCounter("cm_", "aax_punt", 1);
amzn_assoc_cm.addCounter("cm_", "aax_punt_" + i.adOptions.ad_type, 1);
v.fetchHtml(i);
D["amzn_assoc_client_cb_" + i.slotNum]({
type: "onfail",
data: {
reason: "No response from server"
}
});
}
return;
}
} else {
amzn_assoc_cm.endScope("cm_", "adhtml_load_time");
amzn_assoc_cm.endScope("cm_", "adhtml_load_time_" + i.adOptions.ad_type);
}
var k = document.getElementById(j);
if (!i.dontInject) {
if (!k) {
k = document.createElement("div");
if (typeof j !== "undefined") {
k.setAttribute("id", j);
}
document.body.appendChild(k);
}
k.innerHTML = o;
v.execBodyScripts(k, i.slotNum);
}
if (typeof i.cb === "function") {
i.cb(o);
}
}
;
D["amzn_assoc_client_cb_" + i.slotNum] = function(k) {
if (typeof k.widget !== "undefined") {
k.widget.adOptions = i.adOptions;
if (typeof window.amzn_assoc_utils.getSynchronousAdCodeGenerator === "function") {
k.widget.getSynchronousAdCode = window.amzn_assoc_utils.getSynchronousAdCodeGenerator();
k.widget.getSynchronousAdCodeJson = window.amzn_assoc_utils.getSynchronousAdCodeJsonGenerator();
k.widget.getSynchronousAdCodeForAdInstance = window.amzn_assoc_utils.getSynchronousAdCodeGeneratorForAdInstance();
k.widget.getSynchronousAdCodeWithAdInstance = window.amzn_assoc_utils.getSynchronousAdCodeGeneratorWithAdInstance();
k.widget.getAsynchronousAdCodeWithAdInstance = window.amzn_assoc_utils.getAsynchronousAdCodeGeneratorWithAdInstance();
k.widget.getAsynchronousAdCode = window.amzn_assoc_utils.getAsynchronousAdCodeGenerator();
}
k.widget.reload = function(m, n) {
var l;
for (l in m) {
if (m.hasOwnProperty(l)) {
i.adOptions[l] = m[l];
}
}
if (typeof n !== "undefined") {
for (l in n) {
if (n.hasOwnProperty(l)) {
delete i.adOptions[l];
}
}
}
i.adOptions.div_name = j;
amzn_assoc_ad.render(i.adOptions);
}
;
}
if (k.type === "onload") {
if (typeof window.performance !== "undefined" && typeof window.performance.timing !== "undefined") {
amzn_assoc_cm.endScope("cm_", "wdgt_load_time", window.performance.timing.navigationStart);
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_" + i.adOptions.viewerCountry, window.performance.timing.navigationStart);
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_" + i.adOptions.ad_type, window.performance.timing.navigationStart);
if (window.performance.timing.loadEventEnd > 0) {
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_doc_load", window.performance.timing.loadEventEnd);
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_doc_load_" + i.adOptions.ad_type, window.performance.timing.loadEventEnd);
}
}
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_invoke");
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_invoke_" + i.adOptions.ad_type);
amzn_assoc_cm.endScope("cm_", "wdgt_load_time_invoke_" + i.adOptions.ad_type + "_" + i.adOptions.viewerCountry);
}
if (typeof i.clientCbs === "object" && typeof i.clientCbs[k.type] === "function") {
k.data.slotNum = i.slotNum;
k.data.container = i.elemName;
i.clientCbs[k.type](k.data, k.widget);
}
amzn_assoc_cm.trigger(e, f, c);
}
;
}(i.elemName));
amzn_assoc_cm.endScope("cm_", "onejs_exec_time");
if (i.aaxMediated) {
amzn_assoc_cm.startScope("cm_", h);
amzn_assoc_cm.startScope("cm_", h + "_" + i.adOptions.ad_type);
} else {
amzn_assoc_cm.startScope("cm_", "adhtml_load_time");
amzn_assoc_cm.startScope("cm_", "adhtml_load_time_" + i.adOptions.ad_type);
}
v.loadRemoteScript(a, function() {});
}
;
v.serialize = function(d, f, a, i) {
var b = [], h;
for (var g in d) {
if (d.hasOwnProperty(g) && typeof d[g] !== "function") {
var c = ((i) ? encodeURIComponent(g) : g) + "=";
if (a) {
c += "'";
}
if (d[g]instanceof Array) {
h = d[g][0];
} else {
h = d[g];
}
c += (i) ? encodeURIComponent(h) : h;
if (a) {
c += "'";
}
b.push(c);
}
}
return b.join(f);
}
;
v.nodeName = function(a, b) {
return a.nodeName && a.nodeName.toUpperCase() === b.toUpperCase();
}
;
v.execBodyScripts = function(f, b) {
var c = function(k, p) {
var j = " //# sourceURL=dynscript-" + k + (b ? "-" + b : "") + ".js";
var n = (p.text || p.textContent || p.innerHTML || "") + j
, m = document.getElementsByTagName("head")[0] || document.documentElement
, o = document.createElement("script");
o.type = "text/javascript";
if (p.src) {
o.src = (p.src || "");
}
try {
o.appendChild(document.createTextNode(n));
} catch (l) {
o.text = n;
}
m.insertBefore(o, m.firstChild);
}, h = [], g, i = f.childNodes, a, d;
for (d = 0; i[d]; d++) {
a = i[d];
if (v.nodeName(a, "script") && (!a.type || a.type.toLowerCase() === "text/javascript")) {
h.push(a);
} else {
v.execBodyScripts(a);
}
}
for (d = 0; h[d]; d++) {
g = h[d];
if (g.parentNode) {
g.parentNode.removeChild(g);
}
c(d, h[d]);
}
}
;
v.fetchAmazonLinks = function() {
var d = document.getElementsByTagName("a")
, h = function(m) {
var n = document.createElement("a");
n.href = m;
return n;
}
, l = new RegExp("https://www.amazon.com".replace(/(http:\/\/|https:\/\/)/ig, ""))
, j = new RegExp("(?:[/=])([A-Z0-9]{10})(?:[/?&]|$)","i")
, f = new RegExp("(linkcode|lc|link_code)=","igm")
, i = new RegExp("(linkcode|lc|link_code)=(am1|am2|am3|as1|as2|as3|as4|asm|df0|df1|df2|df4|asn|at1|btl|ptl|ktl|em1|pat|xm2|qcb|qs|tre|ur2|ure|sl1|sl2|ll1|w50|w61|w62|w63|g11|g12|g13|g14)","igm")
, a = "";
for (var k = 0; k < d.length; k++) {
if (d[k].href) {
var c = h(d[k].href);
if (c.hostname.match(l)) {
var b = (c.pathname.match(j) || c.search.match(j));
var g = (c.search.search(i) !== -1 || c.search.search(f) === -1);
if (b && g) {
a += b[1].toUpperCase() + ",";
}
if (b) {
d[k].setAttribute("data-amzn-asin", b[1]);
}
}
}
}
return a.substring(0, a.length - 1);
}
;
v.checkAvailableSpace = function(b, c) {
var a = document.getElementById(c);
return b !== "smart" || (a && a.getBoundingClientRect().width > 0);
}
;
v.getAAXUrl = function(c, h, n, f, g, j, o, i, l, k) {
var m = {}
, b = (c.width && c.width !== "auto") ? c.width : "1"
, d = (c.height && c.height !== "auto") ? c.height : "1"
, a = document.getElementById(f);
c.debug = j.toString();
c.acap_publisherId = c.tracking_id;
B(c);
if (typeof c.aax_src_id !== "undefined" && c.aax_src_id !== "") {
m.src = c.aax_src_id;
} else {
if (q[c.viewerCountry]) {
m.src = q[c.viewerCountry];
} else {
m.src = (typeof c.ad_type !== "undefined" && typeof c.ad_mode !== "undefined" && typeof i[c.ad_type + "-" + c.ad_mode] !== "undefined" && l.isDedicatedSourceForRecoAdsEnabled()) ? i[c.ad_type + "-" + c.ad_mode] : i["default"];
}
}
m.c = h[n].aaxChannel;
if (c.preview === "true") {
m.c = h[n].aaxPreviewChannel;
}
m.sz = b + "x" + d;
m.apiVersion = h[n].aaxApiVersion;
c.slotNum = n;
if (typeof w[c.ad_type] !== "undefined") {
c.ead = w[c.ad_type](c, a.getBoundingClientRect().width);
}
if (typeof k !== "undefined") {
c.viewerCountry = k;
}
m.pj = JSON.stringify(c);
if ((typeof j !== "undefined" && j) || (typeof o !== "undefined" && o)) {
m.testToken = h[n].aaxTestToken;
m.n1apiVersion = h[n].aaxApiVersion;
m.n1url = h[n].aaxBidRequestURL;
m.n1id = h[n].n1id;
}
m.u = c.URL || document.location.href;
u[n] = h[n].isSSPSelected;
if (u[n]) {
amzn_assoc_cm.addCounter("cm_", "ssp_selected", 1);
amzn_assoc_cm.addCounter("cm_", "ssp_selected_" + g[c.ad_type], 1);
}
return (u[n] ? (h[n].sspServerURL + "/widgets/getad?") : (h[n].aaxURL + "/x/getad?")) + v.serialize(m, "&", false, true);
}
;
v.shouldSSPBeEnabledByAdCodeOptions = function(a) {
return typeof a.exclude_brands === "string" && a.exlude_brands !== "";
}
;
v.shouldSSPBeUsed = function(b, a, f, d, c) {
return (b || c || (a.isSSPEnabled() && f[d.ad_type]) || v.shouldSSPBeEnabledByAdCodeOptions(d));
}
;
v.createAdUnitDeliveryNetworkPerSlot = function(b, a, d, c) {
return {
aaxChannel: "100",
aaxPreviewChannel: "88",
aaxApiVersion: "2.0",
aaxTestToken: "7snvCunWohswq2jh",
aaxBidRequestURL: "http://ws-na-prod.amazon.com/widgets/bid",
n1id: "500",
aaxURL: "//aax-us-east.amazon-adsystem.com",
sspServerURL: "//ws-na.amazon-adsystem.com",
isSSPSelected: v.shouldSSPBeUsed(b, a, d, c, false)
};
}
;
return v;
}
;
window.amzn_assoc_utils = window.assocUtilsMaker("ATVPDKIKX0DER", "6", 1000);
if (typeof window.amzn_assoc_utils === "undefined") {
window.amzn_assoc_utils = {};
}
window.amzn_assoc_utils.loadRemoteScript = function(d, c) {
(function(a, k) {
var i = a.createElement("script"), b, j = false;
i.type = "text/javascript";
i.async = true;
i.src = d;
i.setAttribute("charset", "UTF-8");
b = document.getElementsByTagName("head")[0] || document.documentElement;
i.onload = i.onreadystatechange = function() {
if (!j && (!this.readyState || this.readyState === "loaded" || this.readyState === "complete")) {
j = true;
if (typeof k === "function") {
k();
}
i.onload = i.onreadystatechange = null;
if (b && i.parentNode) {
b.removeChild(i);
}
}
}
;
b.insertBefore(i, b.firstChild);
}(document, c));
}
;
window.nativeAdLayoutComputer = (function() {
var f = {}
, d = 3
, e = {
rows: 5,
columns: 5
};
f.computeLayout = function(y, C, v, B, b, s) {
var c, A, z, a, t, u, w, x, D = {
grid: {
marginWidth: 10,
defaultMinItemWidth: 128,
maxItemWidth: 250,
maxColumnCount: 4,
partialCardSpacePercent: {
min: 25,
max: 75,
defaultPercent: 50,
fallbackPercent: 50
}
},
inContent: {
marginWidth: 10,
defaultMinItemWidth: 240,
maxColumnCount: 3,
partialCardSpacePercent: {
min: 15,
max: 40,
defaultPercent: 25,
fallbackPercent: 10
}
},
concept: {
marginWidth: 10,
defaultMinItemWidth: 170,
maxColumnCount: 4,
partialCardSpacePercent: {
min: 15,
max: 40,
defaultPercent: 25,
fallbackPercent: 10
}
}
};
B = (typeof B === "undefined") ? "grid" : B;
if (B === "grid") {
if (b) {
D[B].maxColumnCount = parseInt(b);
}
} else {
if (B === "inContent") {
D[B].maxColumnCount = (typeof b === "undefined") ? D[B].maxColumnCount : Math.max(b, D[B].maxColumnCount);
}
}
C = (typeof C === "undefined") ? D[B].defaultMinItemWidth : C;
t = parseInt(y / C);
if (t === 0) {
return {
columnCount: 0,
columnWidth: 0,
columnWidthPercentage: 0,
marginLeftPercentage: 0
};
}
if (t > D[B].maxColumnCount) {
t = D[B].maxColumnCount;
}
c = (t - 1) * D[B].marginWidth;
A = (y - c) / t;
if (A < C) {
t = t - 1;
c = (t - 1) * D[B].marginWidth;
A = (y - c) / t;
}
if (v) {
u = y - c - (t * A);
w = (u / A) * 100;
if (w < D[B].partialCardSpacePercent.min || w > D[B].partialCardSpacePercent.max) {
c = (t * D[B].marginWidth);
x = s ? (D[B].partialCardSpacePercent.fallbackPercent / 100) : (D[B].partialCardSpacePercent.defaultPercent / 100);
A = (y - c) / (t + x);
while (A < C) {
t = t - 1;
c = (t * D[B].marginWidth);
A = (y - c) / (t + x);
}
}
}
z = (A * 100) / y;
a = (100 - (z * t)) / (t - 1);
if (B === "grid" && A > D[B].maxItemWidth) {
A = D[B].maxItemWidth;
z = (A * 100) / y;
a = (D[B].marginWidth * 100) / y;
}
return {
columnCount: t,
columnWidth: A,
columnWidthPercentage: z,
marginLeftPercentage: a
};
}
;
f.getExpectedAdCount = function(m, b, k) {
var a = (typeof m.rows !== "undefined") ? parseInt(m.rows) : 2, n = (typeof m.rows !== "undefined") ? parseInt(m.rows) : 4, c, l;
a = ((a > e.rows) ? e.rows : a);
if (m.max_ads_in_a_row) {
l = ((m.max_ads_in_a_row > e.columns) ? e.columns : m.max_ads_in_a_row);
}
if (typeof m.design !== "undefined" && m.design !== "") {
if (m.design === "text_links") {
return n;
} else {
if (m.design === "enhanced_links") {
return 1;
} else {
if (m.design === "in_content") {
return 5;
} else {
if (m.design !== "standard_grid") {
return 0;
}
}
}
}
} else {
if (m.carousel === true) {
c = f.computeLayout(b, k);
return c.columnCount * d;
}
}
c = f.computeLayout(b, k, false, "grid", l);
return a * c.columnCount;
}
;
if (typeof amzn_assoc_utils !== "undefined" && typeof amzn_assoc_utils.registerAdCountComputer !== "undefined") {
amzn_assoc_utils.registerAdCountComputer("smart", f.getExpectedAdCount);
}
return f;
}
)();
var amzn_assoc_ad_spec_type = function(c) {
var b = {}
, e = "amzn_assoc"
, d = {
honor_ead_strictly: true,
callbacks: true,
link_id: true,
show_image: true,
viewerCountry: true,
link_color: true,
large_rating: true,
campaigns: true,
random_permute: true,
enable_fallbacks: true,
overwrite: true,
replace_items: true,
height: true,
exp_details: true,
adult_content: true,
prime: true,
deal_category: true,
destinationTrackingId: true,
emphasize_keywords: true,
header_text_color: true,
border_color: true,
max_title_height: true,
auto_complete: true,
ad_id: true,
size: true,
banner_type: true,
show_prices_for_new_items_only: true,
placement: true,
text_color: true,
deal_types: true,
show_prices: true,
deals_enable: true,
columns: true,
show_border: true,
rating_position: true,
ead: true,
enable_interest_ads: true,
service_version: true,
carousel: true,
URL: true,
corners: true,
div_name: true,
widget_id: true,
search_bar: true,
strike_text_style: true,
theme: true,
browse_node: true,
override: true,
categories: true,
tracking_id: true,
search_bar_position: true,
fallback_products: true,
sourceTrackingId: true,
sign_links: true,
prime_position: true,
show_price: true,
list_price: true,
aax_src_id: true,
price_color: true,
brand_text_link: true,
btn_corners: true,
fallback_mode: false,
url: true,
btn_custom_size: true,
ad_mode: true,
show_rating: true,
p: true,
bg_color: true,
search_index: true,
shuffle_tracks: true,
textlinks: true,
width: true,
attributes: true,
deal_access_types: true,
feedback_enable: true,
pharos_list_id: true,
disable_borders: true,
isresponsive: true,
ad_type: true,
ignore_keywords: true,
subtag: true,
header_style: true,
original_ad_mode: true,
deal_fallback_enable: true,
rating: true,
exclude_brands: true,
emphasize_categories: true,
show_on_hover: true,
exclude_items: true,
default_browse_node: true,
link_style: true,
brand_position: true,
slotNum: true,
marketplace: true,
ac_website: true,
enable_geo_redirection: true,
widget_padding: true,
restrict_categories: true,
search_type: true,
widget_type: true,
btn_size: true,
force_win_bid: true,
rounded_corners: true,
enable_auto_tagging: true,
btn_design: true,
region: true,
preview: true,
treatment_choice: true,
ignore_categories: true,
max_ads_in_a_row: true,
axf_treatment: true,
title: true,
text_style: true,
prb_enable: true,
linkid: true,
default_search_phrase: true,
default_category: true,
design: true,
department: true,
default_search_category: true,
aax_test_punt: true,
debug: true,
search_key: true,
exclude_phrases: true,
banner_id: true,
axf_exp_name: true,
title_color: true,
ad_placement_type: true,
default_search_key: true,
rows: true,
render_full_page: true,
asins: true,
link_opens_in_new_window: true,
custom_button_id: true,
pharos_type: true,
link_hover_style: true,
enable_swipe_on_mobile: true
}
, f = function() {
var h, g;
for (h in d) {
if (d.hasOwnProperty(h)) {
g = "amzn_assoc_" + h;
if ((g in c) && typeof c[g] !== "undefined") {
b[h] = c[g];
}
}
}
}
, a = function() {};
b.getAllParamDefs = function() {
return d;
}
;
b.getPrefix = function() {
return e;
}
;
b.reset = function() {
var i, g;
for (i in d) {
if (d.hasOwnProperty(i)) {
g = "amzn_assoc_" + i;
if ((g in c) && typeof c[g] !== "undefined") {
c[g] = undefined;
try {
delete c[g];
} catch (h) {}
}
}
}
}
;
f();
a();
return b;
};
var amzn_assoc_ad_spec = amzn_assoc_ad_spec_type(window);
var amzn_assoc_ad_async_spec = (function() {
var d = {}
, c = window
, e = "amzn_assoc"
, b = function() {
return a().concat((typeof window.assoc_async_parser !== "undefined") ? window.assoc_async_parser(amzn_assoc_ad_spec_type).getAdCodes() : []);
}
, a = function() {
var g = 0
, f = [];
if (("amzn_assoc_widgets"in c) && Object.prototype.toString.call(c.amzn_assoc_widgets) === "[object Array]") {
for (g = 0; g < c.amzn_assoc_widgets.length; g++) {
if ("amzn_assoc_div_name"in c.amzn_assoc_widgets[g]) {
f[g] = amzn_assoc_ad_spec_type(c.amzn_assoc_widgets[g]);
}
}
}
return f;
};
d.widgets = b();
d.numberOfWidgets = d.widgets.length;
return d;
}());
if (typeof amzn_assoc_ad === "undefined") {
var adUnitDeliveryNetwork = {};
var slotCounter = (function() {
var a = 0;
return {
getNextSlot: function() {
var b = a;
a = a + 1;
return b;
}
};
}());
amzn_assoc_ad = (function() {
var c = window
, h = {
pharos_v3: {},
link_enhancement_widget: {
aaxMediatedMarketPlaces: ["GB", "US"]
},
product_link: {
iframeStyle: "width:120px;height:240px;"
},
smart: {
aaxMediatedMarketPlaces: ["US", "GB", "CA"]
},
deals: {},
search: {},
fallback: {},
myfavourites: {},
responsive_search_widget: {
aaxMediatedMarketPlaces: ["US"]
},
mp3clips: {},
one_tag: {
aaxMediatedMarketPlaces: ["US"]
},
product_cloud: {},
shopnshare: {
iframeStyle: "width: 0px; height: 0px;",
aaxMediatedMarketPlaces: ["US"],
inline: true
},
search_box: {},
banner: {},
contextual: {
iframeStyle: "",
aaxMediatedMarketPlaces: ["US"]
},
astore: {},
recommended_product_links: {},
pharos_v2: {},
banners: {
iframeStyle: "width: 0px; height: 0px;",
aaxMediatedMarketPlaces: ["US"],
inline: true
},
carousel: {},
slideshow: {},
pharos_v1: {},
wish_list: {},
auto_part_finder: {},
omakase: {},
search_acap: {
aaxMediatedMarketPlaces: ["US"]
},
dynamo: {}
}
, e = {
pharos_v3: {},
link_enhancement_widget: {},
product_link: {},
smart: {},
deals: {},
search: {},
fallback: {},
myfavourites: {},
responsive_search_widget: {},
mp3clips: {},
one_tag: {},
product_cloud: {},
shopnshare: {},
search_box: {},
banner: {},
contextual: {},
astore: {},
recommended_product_links: {},
pharos_v2: {},
banners: {},
carousel: {},
slideshow: {},
pharos_v1: {},
wish_list: {},
auto_part_finder: {},
omakase: {},
search_acap: {},
dynamo: {}
}
, g = c.console || {
log: function() {}
}
, j = {
AMAZON: "",
AMAZONSUPPLY: "",
SMALLPARTS: "",
AMAZONLOCAL: ""
}
, b = {}
, k = {
"smart-auto": 308,
"default": 330
}
, f = (function() {
var l = Math.floor(Math.random() * 100);
return {
isSSPEnabled: function() {
return l <= -1;
},
isDedicatedSourceForRecoAdsEnabled: function() {
return l <= 90;
}
};
}())
, a = false
, i = false
, d = false;
return {
render: function(p) {
if (typeof p.ad_type === "undefined" || !p.ad_type) {
g.error("Error : adType is not defined");
return;
}
var r, u, w, n = window, t = {}, v = {
marketPlace: p.region
}, o = false, x = "iframeStyle"in h[p.ad_type], q = slotCounter.getNextSlot(), m = {}, s = true, l = true;
adUnitDeliveryNetwork[q] = amzn_assoc_utils.createAdUnitDeliveryNetworkPerSlot(a, f, b, p);
p.region = p.region || "US";
p.placement = p.placement || "adunit";
p.marketplace = p.marketplace || "amazon";
if (amzn_assoc_enable_abs && p.ad_type == "banner" && (p.banner_type === "setandforget" || p.banner_type === "rotating" || p.banner_type === "category" || p.banner_type === "ez")) {
p.ad_type = "banners";
}
p.viewerCountry = "US";
amzn_assoc_cm.startScope("cm_", "wdgt_load_time_invoke_" + p.ad_type + "_US");
amzn_assoc_cm.startScope("cm_", "wdgt_load_time_invoke_" + p.ad_type);
if (typeof p.callbacks === "object") {
m = p.callbacks;
delete p.callbacks;
}
h[p.ad_type].adContentUrl = (h[p.ad_type].cacheable) ? "//z-na.amazon-adsystem.com" : "https://ws-na.amazon-adsystem.com:443";
h[p.ad_type].adContentUrl = h[p.ad_type].adContentUrl + "/widgets/q?ServiceVersion=20070822&MarketPlace=" + p.region + "&Operation=GetAdHtml&OneJS=1";
h[p.ad_type].adContentUrl = h[p.ad_type].adContentUrl + "&slotNum=" + q + "&" + amzn_assoc_utils.serialize(p, "&", false, true);
w = p.div_name;
if (!w && !x && !o) {
w = amzn_assoc_utils.createDiv("amzn_assoc_ad_div_" + p.placement, q, h[p.ad_type].inline);
}
if ((typeof h[p.ad_type].aaxMediatedMarketPlaces !== "undefined") && (h[p.ad_type].aaxMediatedMarketPlaces.indexOf(p.region) > -1)) {
p.textlinks = amzn_assoc_utils.fetchAmazonLinks();
h[p.ad_type].fallbackUrl = h[p.ad_type].adContentUrl;
l = amzn_assoc_utils.validatePJLength(p);
if (l) {
h[p.ad_type].adContentUrl = amzn_assoc_utils.getAAXUrl(p, adUnitDeliveryNetwork, q, w, b, i, d, k, f, p.viewerCountry);
} else {
g.error("Error : Adcode values too long");
return;
}
}
if (typeof w !== "undefined" && p.ac_website !== "true" && !h[p.ad_type].inline) {
s = amzn_assoc_utils.checkAvailableSpace(p.ad_type, w);
}
if (s && h[p.ad_type].adContentUrl != "") {
amzn_assoc_utils.fetchHtml({
url: h[p.ad_type].adContentUrl,
aaxPuntFallback: h[p.ad_type].fallbackUrl,
prefix: "amzn_assoc_ad_div_" + p.placement,
elemName: w,
explicitAsync: o,
slotNum: q,
clientCbs: m,
renderInIframe: x,
adOptions: p,
aaxMediated: ((typeof h[p.ad_type].aaxMediatedMarketPlaces !== "undefined") && (h[p.ad_type].aaxMediatedMarketPlaces.indexOf(p.region) > -1)) ? true : false,
placement: p.placement,
iframeStyle: h[p.ad_type].iframeStyle,
inline: h[p.ad_type].inline
});
}
if (!s) {
amzn_assoc_cm.addCounter("cm_", "onejs_abort_evt", 1);
amzn_assoc_cm.addCounter("cm_", "onejs_abort_evt_" + p.ad_type, 1);
amzn_assoc_cm.endScope("cm_", "onejs_exec_time");
}
}
};
}());
}
if (amzn_assoc_ad_async_spec.numberOfWidgets > 0) {
(function() {
var a = 0;
for (a = 0; a < amzn_assoc_ad_async_spec.numberOfWidgets; a++) {
amzn_assoc_ad.render(amzn_assoc_ad_async_spec.widgets[a]);
}
}());
} else {
amzn_assoc_ad.render(amzn_assoc_ad_spec);
amzn_assoc_ad_spec.reset();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment