Created
May 8, 2015 10:32
-
-
Save HillLiu/af1b6e632b9d083eef4b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (!window["googleNDT_"]) { | |
/** @type {number} */ | |
window["googleNDT_"] = (new Date).getTime(); | |
} | |
/** @type {number} */ | |
window["_googCsaX"] = 4; | |
/** @type {number} */ | |
window._googCsaRelSearch = 2631661; | |
/** @type {number} */ | |
window.googleGws = 1; | |
(function() { | |
/** | |
* @param {?} str | |
* @return {?} | |
*/ | |
function getComputedStyle(str) { | |
return parseFloat(str.replace("px", "")) || 0; | |
} | |
/** | |
* @param {string} obj | |
* @param {boolean} recurring | |
* @return {?} | |
*/ | |
function setShortStyleProperty(obj, recurring) { | |
if ("string" == typeof obj) { | |
/** @type {(HTMLElement|null)} */ | |
obj = document.getElementById(obj); | |
} | |
var current = document.defaultView || {}; | |
var subtract = recurring ? obj.offsetHeight : obj.offsetWidth; | |
/** @type {Array} */ | |
var tokens = recurring ? ["Top", "Bottom"] : ["Right", "Left"]; | |
var resolveValues; | |
/** @type {Array} */ | |
resolveValues = setFillAndStroke() ? ["margin"] : ["border", "margin", "padding"]; | |
/** @type {number} */ | |
var length = resolveValues.length; | |
/** @type {number} */ | |
var nTokens = tokens.length; | |
if (current && current.getComputedStyle) { | |
var computedStyle = current.getComputedStyle(obj, false); | |
/** @type {number} */ | |
current = 0; | |
for (;current < length;current++) { | |
/** @type {number} */ | |
var ti = 0; | |
for (;ti < nTokens;ti++) { | |
subtract += getComputedStyle(computedStyle.getPropertyValue([resolveValues[current], tokens[ti].toLowerCase()].join("-"))); | |
} | |
} | |
} else { | |
computedStyle = obj.currentStyle; | |
if (!setFillAndStroke()) { | |
/** @type {number} */ | |
ti = 0; | |
for (;ti < nTokens;ti++) { | |
subtract += getComputedStyle(computedStyle[["border", tokens[ti], "Width"].join("")]); | |
} | |
} | |
/** @type {number} */ | |
current = 0; | |
for (;current < length;current++) { | |
if ("border" != resolveValues[current]) { | |
/** @type {number} */ | |
ti = 0; | |
for (;ti < nTokens;ti++) { | |
subtract += getComputedStyle(computedStyle[[resolveValues[current], tokens[ti]].join("")]); | |
} | |
} | |
} | |
} | |
return subtract; | |
} | |
/** @type {number} */ | |
window.googleAltLoader = 4; | |
/** @type {string} */ | |
var io = "3.0"; | |
/** @type {string} */ | |
var xformed = "8180cc552d14dcbcfafe6ec1162573e3bc809143"; | |
/** @type {string} */ | |
var offset = "ads"; | |
/** @type {string} */ | |
var SNAP_VERSION = "search"; | |
/** @type {string} */ | |
var firstByIndex = "//ajax.googleapis.com/ajax"; | |
/** @type {string} */ | |
var opts = "//www.google.com/uds"; | |
/** @type {string} */ | |
var name = "www.google.com"; | |
var p; | |
var global = this; | |
/** | |
* @param {?} value | |
* @return {?} | |
*/ | |
var isArray = function(value) { | |
/** @type {string} */ | |
var $s = typeof value; | |
if ("object" == $s) { | |
if (value) { | |
if (value instanceof Array) { | |
return "array"; | |
} | |
if (value instanceof Object) { | |
return $s; | |
} | |
/** @type {string} */ | |
var isFunction = Object.prototype.toString.call(value); | |
if ("[object Window]" == isFunction) { | |
return "object"; | |
} | |
if ("[object Array]" == isFunction || "number" == typeof value.length && ("undefined" != typeof value.splice && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("splice")))) { | |
return "array"; | |
} | |
if ("[object Function]" == isFunction || "undefined" != typeof value.call && ("undefined" != typeof value.propertyIsEnumerable && !value.propertyIsEnumerable("call"))) { | |
return "function"; | |
} | |
} else { | |
return "null"; | |
} | |
} else { | |
if ("function" == $s && "undefined" == typeof value.call) { | |
return "object"; | |
} | |
} | |
return $s; | |
}; | |
/** | |
* @param {string} depth | |
* @return {?} | |
*/ | |
var spaces = function(depth) { | |
return null != depth; | |
}; | |
/** | |
* @param {?} arg | |
* @return {?} | |
*/ | |
var isObject = function(arg) { | |
return "string" == typeof arg; | |
}; | |
/** | |
* @param {Function} fn | |
* @param {Object} obj | |
* @param {?} exports | |
* @return {?} | |
*/ | |
var program = function(fn, obj, exports) { | |
return fn.call.apply(fn.bind, arguments); | |
}; | |
/** | |
* @param {Function} fn | |
* @param {Object} obj | |
* @param {?} $var_args$$ | |
* @return {?} | |
*/ | |
var $goog$bindJs_$ = function(fn, obj, $var_args$$) { | |
if (!fn) { | |
throw Error(); | |
} | |
if (2 < arguments.length) { | |
/** @type {Array.<?>} */ | |
var args = Array.prototype.slice.call(arguments, 2); | |
return function() { | |
/** @type {Array.<?>} */ | |
var newArgs = Array.prototype.slice.call(arguments); | |
Array.prototype.unshift.apply(newArgs, args); | |
return fn.apply(obj, newArgs); | |
}; | |
} | |
return function() { | |
return fn.apply(obj, arguments); | |
}; | |
}; | |
/** | |
* @param {Function} dataAndEvents | |
* @param {Object} obj | |
* @param {?} bytesRead | |
* @return {?} | |
*/ | |
var wrapper = function(dataAndEvents, obj, bytesRead) { | |
/** @type {function (Function, Object, ?): ?} */ | |
wrapper = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? program : $goog$bindJs_$; | |
return wrapper.apply(null, arguments); | |
}; | |
/** | |
* @param {Function} fn | |
* @param {Function} name | |
* @return {?} | |
*/ | |
var defer = function(fn, name) { | |
/** @type {Array.<?>} */ | |
var args = Array.prototype.slice.call(arguments, 1); | |
return function() { | |
/** @type {Array.<?>} */ | |
var newArgs = args.slice(); | |
newArgs.push.apply(newArgs, arguments); | |
return fn.apply(this, newArgs); | |
}; | |
}; | |
/** @type {function (): number} */ | |
var _randomVal = Date.now || function() { | |
return+new Date; | |
}; | |
/** | |
* @param {Function} obj | |
* @param {Function} type | |
* @return {undefined} | |
*/ | |
var isPlainObject = function(obj, type) { | |
/** | |
* @return {undefined} | |
*/ | |
function Fn() { | |
} | |
Fn.prototype = type.prototype; | |
obj.pk = type.prototype; | |
obj.prototype = new Fn; | |
/** @type {Function} */ | |
obj.prototype.constructor = obj; | |
/** | |
* @param {?} opt_context | |
* @param {?} method | |
* @param {?} dataAndEvents | |
* @return {?} | |
*/ | |
obj.jk = function(opt_context, method, dataAndEvents) { | |
/** @type {Array} */ | |
var args = Array(arguments.length - 2); | |
/** @type {number} */ | |
var i = 2; | |
for (;i < arguments.length;i++) { | |
args[i - 2] = arguments[i]; | |
} | |
return type.prototype[method].apply(opt_context, args); | |
}; | |
}; | |
/** @type {function (this:Function, (Object|null|undefined), ...[*]): Function} */ | |
Function.prototype.bind = Function.prototype.bind || function(walkers, dataAndEvents) { | |
if (1 < arguments.length) { | |
/** @type {Array.<?>} */ | |
var args = Array.prototype.slice.call(arguments, 1); | |
args.unshift(this, walkers); | |
return wrapper.apply(null, args); | |
} | |
return wrapper(this, walkers); | |
}; | |
/** @type {Array} */ | |
var codeSegments = ["iPhone OS 5_", "iPhone OS 4_", "SC-02C Build/GINGERBREAD"]; | |
/** @type {string} */ | |
var ua = window.navigator ? window.navigator.userAgent : ""; | |
/** | |
* @return {?} | |
*/ | |
var createTextNode = function() { | |
return 5 == rgbToHex(newRed) || (6 == rgbToHex(newRed) || 7 == rgbToHex(newRed)); | |
}; | |
/** @type {RegExp} */ | |
var newRed = /MSIE\s+(\d+)\./; | |
/** @type {RegExp} */ | |
var r = /Opera\/.*Version\/(\d+)\./; | |
/** @type {RegExp} */ | |
var elems = /Firefox\/(\d+)\./; | |
/** @type {RegExp} */ | |
var angle = /Version\/(\d+)\..*Safari/; | |
/** | |
* @param {Object} r | |
* @return {?} | |
*/ | |
var rgbToHex = function(r) { | |
r = (r = r.exec(ua)) ? r[1] : ""; | |
return 0 < r.length && (r = parseInt(r, 10)) ? r : null; | |
}; | |
/** | |
* @return {?} | |
*/ | |
var endsWith = function() { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < codeSegments.length;i++) { | |
if (-1 != ua.indexOf(codeSegments[i])) { | |
return true; | |
} | |
} | |
return false; | |
}; | |
/** | |
* @param {string} text | |
* @return {?} | |
*/ | |
var trim = function(text) { | |
/** @type {string} */ | |
text = String(text); | |
if (/^\s*$/.test(text) ? 0 : /^[\],:{}\s\u2028\u2029]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, "@").replace(/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]").replace(/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g, ""))) { | |
try { | |
return eval("(" + text + ")"); | |
} catch (b) { | |
} | |
} | |
throw Error("Invalid JSON string: " + text); | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var ke = function() { | |
this.zd = void 0; | |
}; | |
/** | |
* @param {?} options | |
* @param {Object} value | |
* @param {Array} ret | |
* @return {undefined} | |
*/ | |
var walk = function(options, value, ret) { | |
if (null == value) { | |
ret.push("null"); | |
} else { | |
if ("object" == typeof value) { | |
if ("array" == isArray(value)) { | |
/** @type {Object} */ | |
var text = value; | |
value = text.length; | |
ret.push("["); | |
/** @type {string} */ | |
var c = ""; | |
/** @type {number} */ | |
var j = 0; | |
for (;j < value;j++) { | |
ret.push(c); | |
c = text[j]; | |
walk(options, options.zd ? options.zd.call(text, String(j), c) : c, ret); | |
/** @type {string} */ | |
c = ","; | |
} | |
ret.push("]"); | |
return; | |
} | |
if (value instanceof String || (value instanceof Number || value instanceof Boolean)) { | |
/** @type {*} */ | |
value = value.valueOf(); | |
} else { | |
ret.push("{"); | |
/** @type {string} */ | |
j = ""; | |
for (text in value) { | |
if (Object.prototype.hasOwnProperty.call(value, text)) { | |
c = value[text]; | |
if ("function" != typeof c) { | |
ret.push(j); | |
encode(text, ret); | |
ret.push(":"); | |
walk(options, options.zd ? options.zd.call(value, text, c) : c, ret); | |
/** @type {string} */ | |
j = ","; | |
} | |
} | |
} | |
ret.push("}"); | |
return; | |
} | |
} | |
switch(typeof value) { | |
case "string": | |
encode(value, ret); | |
break; | |
case "number": | |
ret.push(isFinite(value) && !isNaN(value) ? value : "null"); | |
break; | |
case "boolean": | |
ret.push(value); | |
break; | |
case "function": | |
break; | |
default: | |
throw Error("Unknown type: " + typeof value);; | |
} | |
} | |
}; | |
var flags = { | |
'"' : '\\"', | |
"\\" : "\\\\", | |
"/" : "\\/", | |
"\b" : "\\b", | |
"\f" : "\\f", | |
"\n" : "\\n", | |
"\r" : "\\r", | |
"\t" : "\\t", | |
"\x0B" : "\\u000b" | |
}; | |
/** @type {RegExp} */ | |
var nbspRegExp = /\uffff/.test("\uffff") ? /[\\\"\x00-\x1f\x7f-\uffff]/g : /[\\\"\x00-\x1f\x7f-\xff]/g; | |
/** | |
* @param {string} text | |
* @param {Array} string | |
* @return {undefined} | |
*/ | |
var encode = function(text, string) { | |
string.push('"', text.replace(nbspRegExp, function(key) { | |
var value = flags[key]; | |
if (!value) { | |
/** @type {string} */ | |
value = "\\u" + (key.charCodeAt(0) | 65536).toString(16).substr(1); | |
/** @type {string} */ | |
flags[key] = value; | |
} | |
return value; | |
}), '"'); | |
}; | |
/** | |
* @param {string} path | |
* @param {Object} imageElement | |
* @return {undefined} | |
*/ | |
var loadImage = function(path, imageElement) { | |
var source = imageElement || new Image; | |
source.onload = source.onerror = executeScript(source); | |
/** @type {string} */ | |
source.src = path; | |
}; | |
/** | |
* @param {Array} command | |
* @return {undefined} | |
*/ | |
var execCommand = function(command) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < command.length;i++) { | |
loadImage(command[i]); | |
} | |
}; | |
/** | |
* @param {Node} source | |
* @return {?} | |
*/ | |
var executeScript = function(source) { | |
return function() { | |
/** @type {null} */ | |
source.onload = source.onerror = null; | |
}; | |
}; | |
/** | |
* @param {?} n | |
* @param {?} num | |
* @return {undefined} | |
*/ | |
var plural = function(n, num) { | |
/** @type {number} */ | |
this.qc = Math.ceil(n); | |
/** @type {number} */ | |
this.oc = Math.floor(num); | |
}; | |
/** | |
* @return {?} | |
*/ | |
plural.prototype.da = function() { | |
return this.qc + "px - " + this.oc + "px"; | |
}; | |
/** | |
* @param {?} n | |
* @return {?} | |
*/ | |
plural.prototype.S = function(n) { | |
/** @type {number} */ | |
n = parseInt(n, 10); | |
return isNaN(n) ? null : Math.max(this.qc, Math.min(this.oc, n)); | |
}; | |
/** | |
* @param {string} c | |
* @return {?} | |
*/ | |
plural.prototype.ca = function(c) { | |
return this.S(c); | |
}; | |
/** @type {string} */ | |
var url_or_hash = (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/uds"; | |
/** @type {string} */ | |
var parameter = (window._googCsaAlwaysHttps ? "https:" : "") + "//ads.google.com/uds"; | |
/** @type {string} */ | |
var reqUrl = (window._googCsaAlwaysHttps ? "https:" : "") + "//afs.googlesyndication.com/uds"; | |
/** | |
* @return {?} | |
*/ | |
var onload = function() { | |
if ("undefined" != typeof gwsHost_) { | |
return gwsHost_; | |
} | |
if ("undefined" != typeof name) { | |
return(window._googCsaAlwaysHttps ? "https://" : "//") + name; | |
} | |
/** @type {string} */ | |
var url = ""; | |
if ("undefined" != typeof opts) { | |
/** @type {string} */ | |
url = opts; | |
} else { | |
if (window.google) { | |
if (window.google.loader) { | |
if (window.google.loader.ServiceBase) { | |
url = window.google.loader.ServiceBase; | |
} | |
} | |
} | |
} | |
if (1 == window.googleSynd) { | |
if (url == reqUrl) { | |
/** @type {string} */ | |
url = parameter; | |
} | |
} | |
/** @type {string} */ | |
url = url ? url : url_or_hash; | |
return url.match(/(.+)\/uds$/)[1]; | |
}; | |
/** | |
* @param {?} standalone | |
* @param {?} version | |
* @param {?} encoding | |
* @param {?} vn | |
* @param {?} dataAndEvents | |
* @return {undefined} | |
*/ | |
var XMLDeclaration = function(standalone, version, encoding, vn, dataAndEvents) { | |
this.fj = standalone; | |
this.lj = version; | |
this.Ui = encoding; | |
this.version = vn; | |
this.Ie = dataAndEvents; | |
}; | |
onload(); | |
var oSpace = {}; | |
/** | |
* @param {?} opt_attributes | |
* @param {string} str | |
* @return {?} | |
*/ | |
XMLDeclaration.prototype.log = function(opt_attributes, str) { | |
var n; | |
if (true === window.IS_GOOGLE_AFS_IFRAME_ && window.parent == window) { | |
/** @type {boolean} */ | |
n = false; | |
} else { | |
/** @type {string} */ | |
n = (window.google && (window.google.loader && window.google.loader.GoogleApisBase) ? window.google.loader.GoogleApisBase : firstByIndex ? firstByIndex : (window._googCsaAlwaysHttps ? "https:" : "") + "//ajax.googleapis.com/ajax") + "/services/js/error"; | |
var data = {}; | |
/** @type {string} */ | |
data.mn = this.fj + "." + this.lj; | |
data.vh = this.Ui; | |
data.v = this.version; | |
data.em = opt_attributes.message; | |
/** @type {string} */ | |
data.cem = str; | |
/** @type {Array} */ | |
var tagNameArr = []; | |
var name; | |
for (name in data) { | |
if (data.hasOwnProperty(name)) { | |
if (data[name]) { | |
tagNameArr.push([name, encodeURIComponent(data[name])].join("=")); | |
} | |
} | |
} | |
/** @type {Element} */ | |
data = document.createElement("img"); | |
/** @type {string} */ | |
n = n + "?" + tagNameArr.join("&"); | |
if (oSpace[n]) { | |
/** @type {boolean} */ | |
n = false; | |
} else { | |
/** @type {string} */ | |
data.src = [n, "&nc", (new Date).getTime()].join(""); | |
/** @type {boolean} */ | |
n = oSpace[n] = true; | |
} | |
} | |
return n; | |
}; | |
/** | |
* @param {Function} callback | |
* @param {string} obj | |
* @return {?} | |
*/ | |
var _handle = function(callback, obj) { | |
var options = util; | |
return function() { | |
/** @type {Array.<?>} */ | |
var err = Array.prototype.slice.call(arguments, 0) || []; | |
try { | |
return callback.apply(this, err); | |
} catch (backtrace) { | |
err = backtrace; | |
if ("string" == (typeof err).toLowerCase()) { | |
err = { | |
message : err | |
}; | |
} | |
var data = err.message; | |
if (obj) { | |
if (-1 == data.indexOf(options.Ie)) { | |
options.log(err, obj); | |
} | |
} | |
throw-1 != data.indexOf(options.Ie) ? data : options.Ie + data; | |
} | |
}; | |
}; | |
/** | |
* @param {string} fn | |
* @return {?} | |
*/ | |
var removeListener = function(fn) { | |
return "google.ads.search.Ads: " + fn; | |
}; | |
/** @type {string} */ | |
var expires = "unknown"; | |
if (window.google && window.google.ads) { | |
var err = window.google.ads; | |
if (err && err.LoadArgs) { | |
var results = err.LoadArgs.match(/file=([^&]*)/); | |
expires = results && results[1] ? results[1] : ""; | |
} else { | |
/** @type {string} */ | |
expires = ""; | |
} | |
} else { | |
if ("undefined" != typeof offset) { | |
/** @type {string} */ | |
expires = offset; | |
} | |
} | |
/** @type {string} */ | |
var version = "unknown"; | |
if (window.google && window.google.ads) { | |
var er = window.google.ads; | |
if (er && er.LoadArgs) { | |
var arr = er.LoadArgs.match(/packages=([^&]*)/); | |
version = arr && arr[1] ? arr[1] : ""; | |
} else { | |
/** @type {string} */ | |
version = ""; | |
} | |
} else { | |
if ("undefined" != typeof SNAP_VERSION) { | |
/** @type {string} */ | |
version = SNAP_VERSION; | |
} | |
} | |
/** @type {string} */ | |
var reason_start = "unknown"; | |
if (window.google && window.google.ads) { | |
reason_start = window.google.ads.JSHash; | |
} else { | |
if ("undefined" != typeof xformed) { | |
/** @type {string} */ | |
reason_start = xformed; | |
} | |
} | |
/** @type {string} */ | |
var play_context = "unknown"; | |
if (window.google && window.google.ads) { | |
play_context = window.google.ads.Version; | |
} else { | |
if ("undefined" != typeof io) { | |
/** @type {string} */ | |
play_context = io; | |
} | |
} | |
var util = new XMLDeclaration(expires, version, reason_start, play_context, "google.ads.search.Ads: "); | |
/** | |
* @param {Function} obj | |
* @param {string} value | |
* @return {?} | |
*/ | |
var cb = function(obj, value) { | |
return value ? _handle(obj, value) : _handle(obj); | |
}; | |
/** | |
* @param {string} match | |
* @return {undefined} | |
*/ | |
var token = function(match) { | |
/** @type {Array} */ | |
this.Fd = []; | |
/** @type {Array} */ | |
this.ce = []; | |
match = match.split("#"); | |
this.gg = match[0]; | |
/** @type {string} */ | |
this.ad = 1 < match.length ? decodeURI(match[1]) : ""; | |
/** @type {number} */ | |
this.maxLength = 1999; | |
}; | |
/** | |
* @param {?} object | |
* @param {string} data | |
* @param {number} msg | |
* @param {boolean} dataAndEvents | |
* @return {undefined} | |
*/ | |
var callback = function(object, data, msg, dataAndEvents) { | |
if (msg || (0 === msg || false === msg)) { | |
(dataAndEvents ? object.Fd : object.ce).push([encodeURIComponent(data), encodeURIComponent("" + msg)]); | |
} | |
}; | |
/** | |
* @param {?} options | |
* @return {?} | |
*/ | |
var require = function(options) { | |
var res = options.gg; | |
/** @type {boolean} */ | |
var c = -1 != options.gg.indexOf("?"); | |
var i; | |
/** @type {number} */ | |
i = 0; | |
for (;i < options.ce.length;i++) { | |
var number = (c ? "&" : "?") + options.ce[i].join("="); | |
if (number.length + res.length <= options.maxLength) { | |
res += number; | |
/** @type {boolean} */ | |
c = true; | |
} | |
} | |
/** @type {number} */ | |
i = 0; | |
for (;i < options.Fd.length;i++) { | |
if (options.Fd[i][0].length + 3 + res.length <= options.maxLength) { | |
res += (c ? "&" : "?") + options.Fd[i].join("="); | |
/** @type {boolean} */ | |
c = true; | |
} | |
} | |
res = res.substring(0, options.maxLength); | |
res = res.replace(/%\w?$/, ""); | |
if (options.ad) { | |
res += "#" + encodeURI(options.ad); | |
} | |
return res; | |
}; | |
/** @type {string} */ | |
var protocol = (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com"; | |
/** @type {RegExp} */ | |
var ignore = /^https?:\/\//; | |
/** | |
* @param {string} path | |
* @return {?} | |
*/ | |
var resolveModule = function(path) { | |
return ignore.test(path) ? path : "/" == path.charAt(0) ? protocol + path : protocol + "/" + path; | |
}; | |
/** @type {RegExp} */ | |
var re = /\/aclk\?.*/; | |
var sorted = { | |
ads : 0, | |
plas : 1, | |
singleProduct : 2, | |
relatedsearch : 3 | |
}; | |
/** @type {string} */ | |
var ret = (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/csi?s=csa&v=3&action="; | |
/** @type {boolean} */ | |
var hasFocus = 42 == Math.floor(100 * Math.random()); | |
var items = {}; | |
/** | |
* @param {string} token | |
* @param {number} execAsap | |
* @return {undefined} | |
*/ | |
var handler = function(token, execAsap) { | |
this.Zg = execAsap || (new Date).getTime(); | |
/** @type {string} */ | |
this.action = token; | |
}; | |
/** | |
* @param {string} dataAndEvents | |
* @return {?} | |
*/ | |
handler.prototype.clone = function(dataAndEvents) { | |
return new handler(dataAndEvents, this.Zg); | |
}; | |
/** | |
* @param {Object} data | |
* @param {string} x | |
* @return {undefined} | |
*/ | |
var process = function(data, x) { | |
if (delta) { | |
if (hasFocus) { | |
items[data.action] = items[data.action] || []; | |
items[data.action].push([x, (new Date).getTime() - data.Zg].join(".")); | |
} | |
} | |
}; | |
/** | |
* @param {string} name | |
* @return {undefined} | |
*/ | |
var removeNode = function(name) { | |
var props = delta; | |
props.action = props.action ? props.action + ("," + name) : name; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var restore = function() { | |
if (delta && (hasFocus && "//afs.googlesyndication.com" != onload())) { | |
var tests = items; | |
items = {}; | |
var testName; | |
for (testName in tests) { | |
if (tests.hasOwnProperty(testName)) { | |
var test = tests[testName]; | |
if (test) { | |
if (0 < test.length) { | |
loadImage([ret, testName, "&rt=", test.join(",")].join("")); | |
} | |
} | |
} | |
} | |
} | |
}; | |
/** @type {null} */ | |
var delta = null; | |
if (window._googCsa && window._googCsa.t) { | |
delta = new handler("ppla", window._googCsa.t); | |
} else { | |
if (window.googleNDT_ && !window.googleLT_) { | |
delta = new handler("pplnd", window.googleNDT_); | |
} else { | |
if (window.googleLT_) { | |
delta = new handler("pplal", window.googleLT_); | |
} | |
} | |
} | |
var arr2 = { | |
"google-hotels" : true | |
}; | |
var nb = window.caps_ && window.caps_.largeFonts; | |
/** @type {number} */ | |
var threshold = !window.IS_GOOGLE_AFS_IFRAME_ || nb ? 8 : 6; | |
/** @type {number} */ | |
var pageCount = !window.IS_GOOGLE_AFS_IFRAME_ || nb ? 24 : 16; | |
var ELEMENT_NODE = new plural(8, pageCount); | |
/** | |
* @param {Object} value | |
* @param {string} sel | |
* @return {?} | |
*/ | |
var matches = function(value, sel) { | |
var match = value.a.S(sel); | |
if (null == match && !value.K) { | |
throw removeListener(value.key + " has an invalid value. Valid input values: [" + value.a.da() + "]."); | |
} | |
return match; | |
}; | |
/** | |
* @param {Object} obj | |
* @param {Array} a | |
* @return {undefined} | |
*/ | |
var win = function(obj, a) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < a.length;i++) { | |
obj[a[i].key] = a[i]; | |
} | |
}; | |
/** | |
* @return {?} | |
*/ | |
var detect = function() { | |
var suiteView = randomName(); | |
var dateSQL = any(); | |
return isUndefined(suiteView, function(dataAndEvents, word) { | |
return dateSQL.hasOwnProperty(word); | |
}); | |
}; | |
/** | |
* @param {?} value | |
* @return {?} | |
*/ | |
var isFunction = function(value) { | |
/** @type {boolean} */ | |
var b = 8 == rgbToHex(newRed); | |
var hex = rgbToHex(r); | |
var isArray = rgbToHex(elems); | |
var c = rgbToHex(angle); | |
return!!(obj.S(value.waitForAds) && (!b && ((null == hex || 11 < hex) && ((null == isArray || 3 < isArray) && (null == c || 4 < c))))); | |
}; | |
/** | |
* @param {string} x | |
* @return {?} | |
*/ | |
var round = function(x) { | |
return(x = x.match(/slave-(\d+)-/)) ? parseInt(x[1], 10) + 1 : 1; | |
}; | |
/** | |
* @param {string} body | |
* @param {string} arg | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var send = function(body, arg, data) { | |
/** @type {Array} */ | |
var _results = []; | |
/** @type {number} */ | |
var root = 0; | |
var item; | |
for (;item = data[root];root++) { | |
item = new token(item); | |
callback(item, body, arg); | |
_results.push(require(item)); | |
} | |
return _results; | |
}; | |
/** | |
* @param {Array} text | |
* @return {?} | |
*/ | |
var generate = function(text) { | |
/** @type {Array} */ | |
var _results = []; | |
/** @type {number} */ | |
var currentIndex = 0; | |
for (;currentIndex < text.length;currentIndex++) { | |
var view = new token(text[currentIndex]); | |
callback(view, "nc", [Math.round(9E6 * Math.random()), (new Date).getTime()].join("")); | |
_results.push(require(view)); | |
} | |
return _results; | |
}; | |
/** | |
* @param {Object} c | |
* @return {?} | |
*/ | |
var tmpl = function(c) { | |
var i = c.pubId; | |
return/^pub-.*/.test(i) || ("gcsc" in c || i in arr2); | |
}; | |
/** @type {null} */ | |
var readyList = null; | |
/** @type {null} */ | |
var all = null; | |
/** | |
* @param {string} from_instance | |
* @return {undefined} | |
*/ | |
var copy = function(from_instance) { | |
/** @type {string} */ | |
this.sessionId = from_instance; | |
this.state = {}; | |
/** @type {null} */ | |
this.Ka = null; | |
/** @type {boolean} */ | |
this.P = false; | |
}; | |
copy = cb(copy, "fsI"); | |
p = copy.prototype; | |
/** | |
* @param {string} k | |
* @return {?} | |
*/ | |
p.se = function(k) { | |
return this.state.hasOwnProperty(k) ? this.state[k].value : null; | |
}; | |
p.se = cb(copy.prototype.se, "fsiGS"); | |
/** | |
* @param {string} id | |
* @param {string} isXML | |
* @return {undefined} | |
*/ | |
p.Dd = function(id, isXML) { | |
if (!this.state.hasOwnProperty(id)) { | |
this.state[id] = new e; | |
} | |
this.ub(id, isXML); | |
}; | |
p.Dd = cb(copy.prototype.Dd, "fsiSS"); | |
/** | |
* @param {string} k | |
* @return {?} | |
*/ | |
p.le = function(k) { | |
return this.state[k].value; | |
}; | |
p.le = cb(copy.prototype.le, "fsiGI"); | |
/** | |
* @param {string} id | |
* @param {string} tag | |
* @return {undefined} | |
*/ | |
p.Lb = function(id, tag) { | |
if (!this.state.hasOwnProperty(id)) { | |
this.state[id] = new node; | |
} | |
this.ub(id, tag); | |
}; | |
p.Lb = cb(copy.prototype.Lb, "fsiSI"); | |
/** | |
* @param {string} key | |
* @param {boolean} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
p.Kb = function(key, deepDataAndEvents) { | |
if (!this.state.hasOwnProperty(key)) { | |
this.state[key] = new C; | |
} | |
this.ub(key, deepDataAndEvents); | |
}; | |
p.Kb = cb(copy.prototype.Kb, "fsiSB"); | |
/** | |
* @param {string} id | |
* @param {Object} n | |
* @param {Function} obj | |
* @return {undefined} | |
*/ | |
p.aa = function(id, n, obj) { | |
if (null == readyList) { | |
acc(); | |
} | |
if (readyList != scope || n != e) { | |
if (!this.state.hasOwnProperty(id)) { | |
this.state[id] = new n; | |
} | |
n = this.state[id]; | |
n.bb = obj || null; | |
if (n.bb) { | |
if (null != n.value) { | |
n.bb(this, this.sessionId, id, n.value); | |
} | |
} | |
} | |
}; | |
p.aa = cb(copy.prototype.aa, "fsiSTC"); | |
/** | |
* @return {?} | |
*/ | |
p.Fb = function() { | |
return!!(this.Ka && (this.Ka.parentNode && this.Ka.contentWindow)); | |
}; | |
p.Fb = cb(copy.prototype.Fb, "fsiHVI"); | |
/** | |
* @param {string} id | |
* @param {string} value | |
* @return {undefined} | |
*/ | |
p.ub = function(id, value) { | |
var item = this.state[id]; | |
value = item.xa(id, value); | |
if (null != value) { | |
if (item.value != value) { | |
item = this.state[id]; | |
/** @type {string} */ | |
item.value = value; | |
/** @type {boolean} */ | |
this.P = item.P = true; | |
} | |
} | |
}; | |
p.ub = cb(copy.prototype.ub, "fsiS"); | |
/** | |
* @return {undefined} | |
*/ | |
p.ud = function() { | |
if (this.P) { | |
var k; | |
for (k in this.state) { | |
if (this.state.hasOwnProperty(k)) { | |
var r = this.state[k]; | |
if (r.P) { | |
/** @type {boolean} */ | |
r.P = false; | |
if (r.bb) { | |
r.bb(this, this.sessionId, k, r.value); | |
} | |
} | |
} | |
} | |
/** @type {boolean} */ | |
this.P = false; | |
} | |
}; | |
p.ud = cb(copy.prototype.ud, "fsiNC"); | |
/** | |
* @param {boolean} recurring | |
* @return {?} | |
*/ | |
p.fd = function(recurring) { | |
/** @type {Array} */ | |
var tagNameArr = ["FSXDC"]; | |
var key; | |
for (key in this.state) { | |
if (this.state.hasOwnProperty(key)) { | |
var current = this.state[key]; | |
if (recurring || current.P) { | |
var querystring = current.Ia(); | |
tagNameArr.push([encodeURIComponent(key), current.Id, querystring].join(":")); | |
/** @type {boolean} */ | |
current.P = false; | |
} | |
} | |
} | |
/** @type {boolean} */ | |
this.P = false; | |
return tagNameArr.join(","); | |
}; | |
p.fd = cb(copy.prototype.fd, "fsiGCM"); | |
/** | |
* @param {(Array|string)} path | |
* @return {undefined} | |
*/ | |
p.cd = function(path) { | |
if (path && (path.split && (path = path.split(","), "FSXDC" == path[0]))) { | |
/** @type {number} */ | |
var i = 1; | |
for (;i < path.length;i++) { | |
var m = path[i].split(":"); | |
/** @type {string} */ | |
var key = decodeURIComponent(m[0]); | |
if (!this.state.hasOwnProperty(key)) { | |
this.state[key] = new (tmp[parseInt(m[1], 10)]); | |
} | |
m = this.state[key].Fa(m[2]); | |
this.ub(key, m); | |
} | |
this.ud(); | |
} | |
}; | |
p.cd = cb(copy.prototype.cd, "fsiECM"); | |
/** | |
* @param {string} x | |
* @param {string} str | |
* @return {undefined} | |
*/ | |
var out = function(x, str) { | |
util.log({ | |
message : x | |
}, str); | |
}; | |
out = cb(out, "fsLE"); | |
/** | |
* @return {undefined} | |
*/ | |
var C = function() { | |
/** @type {null} */ | |
this.bb = this.value = null; | |
/** @type {boolean} */ | |
this.P = false; | |
}; | |
C = cb(C, "fsB"); | |
p = C.prototype; | |
/** @type {number} */ | |
p.Id = 0; | |
/** @type {number} */ | |
p.Fc = 1; | |
/** | |
* @param {string} timer | |
* @param {string} putativeSpy | |
* @return {?} | |
*/ | |
p.xa = function(timer, putativeSpy) { | |
return!!putativeSpy; | |
}; | |
p.xa = cb(C.prototype.xa, "fsbGVV"); | |
/** | |
* @return {?} | |
*/ | |
p.yb = function() { | |
return this.value ? 1 : 0; | |
}; | |
p.yb = cb(C.prototype.yb, "fsbTB"); | |
/** | |
* @param {number} dataAndEvents | |
* @return {?} | |
*/ | |
p.Ib = function(dataAndEvents) { | |
return!!dataAndEvents; | |
}; | |
p.Ib = cb(C.prototype.Ib, "fsbPFB"); | |
/** | |
* @return {?} | |
*/ | |
p.Ia = function() { | |
return this.value ? "t" : "f"; | |
}; | |
p.Ia = cb(C.prototype.Ia, "fsbTES"); | |
/** | |
* @param {string} reset | |
* @return {?} | |
*/ | |
p.Fa = function(reset) { | |
return "t" == reset; | |
}; | |
p.Fa = cb(C.prototype.Fa, "fsbPES"); | |
/** | |
* @return {undefined} | |
*/ | |
var node = function() { | |
/** @type {null} */ | |
this.bb = this.value = null; | |
/** @type {boolean} */ | |
this.P = false; | |
}; | |
node = cb(node, "fsSI"); | |
p = node.prototype; | |
/** @type {number} */ | |
p.Id = 1; | |
/** @type {number} */ | |
p.Fc = 14; | |
/** @type {number} */ | |
p.xf = (1 << node.prototype.Fc) - 1; | |
/** | |
* @param {string} timer | |
* @param {string} b | |
* @return {?} | |
*/ | |
p.xa = function(timer, b) { | |
/** @type {number} */ | |
var num2 = parseInt(b, 10); | |
if (isNaN(num2)) { | |
return out("Tried to set int value to a non-number ( " + timer + " = " + b + ")", "sIGVV"), null; | |
} | |
if (num2 > this.xf) { | |
out("Tried to set int value to a number too large ( " + timer + " = " + b + ")", "sIGVV"); | |
num2 = this.xf; | |
} | |
if (0 > num2) { | |
out("Tried to set int value to a number too small ( " + timer + " = " + b + ")", "sIGVV"); | |
/** @type {number} */ | |
num2 = 0; | |
} | |
return num2; | |
}; | |
p.xa = cb(node.prototype.xa, "fssiGVV"); | |
/** | |
* @return {?} | |
*/ | |
p.yb = function() { | |
return this.value || 0; | |
}; | |
p.yb = cb(node.prototype.yb, "fssiTB"); | |
/** | |
* @param {number} dataAndEvents | |
* @return {?} | |
*/ | |
p.Ib = function(dataAndEvents) { | |
return dataAndEvents; | |
}; | |
p.Ib = cb(node.prototype.Ib, "fssiPFB"); | |
/** | |
* @return {?} | |
*/ | |
p.Ia = function() { | |
return this.value + ""; | |
}; | |
p.Ia = cb(node.prototype.Ia, "fssiTES"); | |
/** | |
* @param {?} m1 | |
* @return {?} | |
*/ | |
p.Fa = function(m1) { | |
return parseInt(m1, 10); | |
}; | |
p.Fa = cb(node.prototype.Fa, "fssiPES"); | |
/** | |
* @return {undefined} | |
*/ | |
var e = function() { | |
/** @type {null} */ | |
this.bb = this.value = null; | |
/** @type {boolean} */ | |
this.P = false; | |
}; | |
e = cb(e, "fsES"); | |
p = e.prototype; | |
/** @type {number} */ | |
p.Id = 2; | |
/** | |
* @param {string} timer | |
* @param {boolean} right | |
* @return {?} | |
*/ | |
p.xa = function(timer, right) { | |
return right = right ? right.toString() : ""; | |
}; | |
p.xa = cb(e.prototype.xa, "fsesGVV"); | |
/** | |
* @return {?} | |
*/ | |
p.Ia = function() { | |
return this.value ? encodeURIComponent(this.value) : ""; | |
}; | |
p.Ia = cb(e.prototype.Ia, "fsesTES"); | |
/** | |
* @param {?} part | |
* @return {?} | |
*/ | |
p.Fa = function(part) { | |
return decodeURIComponent(part); | |
}; | |
p.Fa = cb(e.prototype.Fa, "fsesPES"); | |
/** @type {Array} */ | |
var tmp = [C, node, e]; | |
/** | |
* @param {Object} obj | |
* @return {?} | |
*/ | |
var _ = function(obj) { | |
if (null == readyList) { | |
acc(); | |
} | |
return readyList.Ha(obj); | |
}; | |
_ = cb(_, "fsSC"); | |
/** | |
* @param {Object} obj | |
* @param {Function} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
var formatted = function(obj, deepDataAndEvents) { | |
if (null == readyList) { | |
acc(); | |
} | |
if (null == all) { | |
all = {}; | |
errors(); | |
} | |
/** @type {Function} */ | |
obj.Ka = deepDataAndEvents; | |
/** @type {Object} */ | |
all[obj.sessionId] = obj; | |
}; | |
formatted = cb(formatted, "fsLFC"); | |
/** | |
* @return {undefined} | |
*/ | |
var errors = function() { | |
window.setInterval(foo, 500); | |
readyList.za(); | |
}; | |
errors = cb(errors, "fsIL"); | |
/** | |
* @return {undefined} | |
*/ | |
var foo = function() { | |
var id; | |
for (id in all) { | |
if (all.hasOwnProperty(id)) { | |
var target = all[id]; | |
if (!target.Fb()) { | |
/** @type {null} */ | |
target.Ka = null; | |
delete all[id]; | |
} | |
} | |
} | |
}; | |
foo = cb(foo, "fsCDI"); | |
/** | |
* @return {undefined} | |
*/ | |
var acc = function() { | |
that.Ee(); | |
/** @type {({Cd: function (string): undefined, Ha: ?, Ud: function (HTMLElement): undefined, ba: function (): undefined, cf: function (Object, string, Text): undefined, qe: function (Object, string): ?, uf: string, za: function (): undefined}|{Ee: function (): undefined, Ha: ?, Qe: (Document|Window), ba: function (Event): undefined, za: function (): undefined}|{Ha: ?, Zd: function (string, string): undefined, ba: function (): undefined, be: function (Node, number): undefined, me: function (?): ?, za: function (): undefined})} */ | |
readyList = that.Qe ? that : createTextNode() ? scope : _this; | |
}; | |
acc = cb(acc, "fsLT"); | |
var scope = { | |
uf : "exists", | |
/** | |
* @param {Object} parent | |
* @return {?} | |
*/ | |
Ha : function(parent) { | |
if (!parent.P) { | |
return true; | |
} | |
var k; | |
for (k in parent.state) { | |
if (parent.state.hasOwnProperty(k)) { | |
var p = parent.state[k]; | |
if (p.P && p.yb) { | |
var pl = p.Fc; | |
var b = p.yb(); | |
/** @type {string} */ | |
var name = k + ":"; | |
scope.Cd(name + scope.uf); | |
/** @type {number} */ | |
var extension = 0; | |
/** @type {number} */ | |
var c = 1; | |
for (;extension < pl;extension++, c <<= 1) { | |
/** @type {string} */ | |
var newName = name + extension; | |
if (b & c) { | |
scope.Cd(newName); | |
} else { | |
scope.Ud(newName); | |
} | |
} | |
/** @type {boolean} */ | |
p.P = false; | |
} | |
} | |
} | |
/** @type {boolean} */ | |
parent.P = false; | |
return true; | |
} | |
}; | |
scope.Ha = cb(scope.Ha, "fsnbtSC"); | |
/** | |
* @return {undefined} | |
*/ | |
scope.za = function() { | |
window.setInterval(scope.ba, 50); | |
}; | |
scope.za = cb(scope.za, "fsnbtIL"); | |
/** | |
* @return {undefined} | |
*/ | |
scope.ba = function() { | |
var id; | |
for (id in all) { | |
if (all.hasOwnProperty(id)) { | |
var e = all[id]; | |
if (e.Fb()) { | |
var udataCur = e.Ka.contentWindow; | |
var i; | |
for (i in e.state) { | |
if (e.state.hasOwnProperty(i)) { | |
scope.cf(e, i, udataCur); | |
} | |
} | |
e.ud(); | |
} | |
} | |
} | |
}; | |
scope.ba = cb(scope.ba, "fsnbtEC"); | |
/** | |
* @param {Object} e | |
* @param {string} k | |
* @param {Text} value | |
* @return {undefined} | |
*/ | |
scope.cf = function(e, k, value) { | |
/** @type {function (Object, string): ?} */ | |
var lookupIterator = scope.qe; | |
/** @type {string} */ | |
var startPage = k + ":"; | |
if (lookupIterator(value, startPage + scope.uf)) { | |
var input = e.state[k]; | |
var il = input.Fc; | |
/** @type {number} */ | |
var node = 0; | |
/** @type {number} */ | |
var i = 0; | |
/** @type {number} */ | |
var n = 1; | |
for (;i < il;i++, n <<= 1) { | |
var iterator = lookupIterator(value, startPage + i); | |
if (null === iterator) { | |
return; | |
} | |
if (iterator) { | |
node += n; | |
} | |
} | |
value = input.Ib(node); | |
e.ub(k, value); | |
} | |
}; | |
scope.cf = cb(scope.cf, "fsnbtSV"); | |
/** | |
* @param {Object} obj | |
* @param {string} key | |
* @return {?} | |
*/ | |
scope.qe = function(obj, key) { | |
/** @type {null} */ | |
var rv = null; | |
try { | |
/** @type {boolean} */ | |
rv = key in obj; | |
} catch (d) { | |
out(key, "fsnbtGSB2"); | |
} | |
return rv; | |
}; | |
scope.qe = cb(scope.qe, "fsnbtGSB"); | |
/** | |
* @param {string} name | |
* @return {undefined} | |
*/ | |
scope.Cd = function(name) { | |
if (!document.getElementById(name)) { | |
/** @type {Element} */ | |
var img = document.createElement("img"); | |
/** @type {string} */ | |
img.name = name; | |
/** @type {string} */ | |
img.id = name; | |
/** @type {number} */ | |
img.height = 0; | |
/** @type {number} */ | |
img.width = 0; | |
document.body.appendChild(img); | |
} | |
}; | |
scope.Cd = cb(scope.Cd, "fsnbtSSB"); | |
/** | |
* @param {HTMLElement} table | |
* @return {undefined} | |
*/ | |
scope.Ud = function(table) { | |
if (table = document.getElementById(table)) { | |
table.parentNode.removeChild(table); | |
} | |
}; | |
scope.Ud = cb(scope.Ud, "fsnbtCSB"); | |
var that = { | |
/** | |
* @param {Object} stream | |
* @return {?} | |
*/ | |
Ha : function(stream) { | |
if (stream.P) { | |
if (!that.Qe) { | |
return false; | |
} | |
that.Qe.postMessage(stream.fd(false), "*"); | |
} | |
return true; | |
} | |
}; | |
that.Ha = cb(that.Ha, "fspmtSC"); | |
/** | |
* @return {undefined} | |
*/ | |
that.za = function() { | |
if (window.attachEvent) { | |
window.attachEvent("onmessage", that.ba); | |
} else { | |
if (window.addEventListener) { | |
window.addEventListener("message", that.ba, false); | |
} | |
} | |
}; | |
that.za = cb(that.za, "fspmtIL"); | |
/** | |
* @param {Event} e | |
* @return {undefined} | |
*/ | |
that.ba = function(e) { | |
if (e = e ? e : window.event) { | |
var id; | |
for (id in all) { | |
if (all.hasOwnProperty(id)) { | |
var t = all[id]; | |
if (t.Fb() && e.source == t.Ka.contentWindow) { | |
t.cd(e.data); | |
break; | |
} | |
} | |
} | |
} | |
}; | |
that.ba = cb(that.ba, "fspmtEC"); | |
/** | |
* @return {undefined} | |
*/ | |
that.Ee = function() { | |
/** @type {Window} */ | |
var win = window.parent; | |
try { | |
/** @type {(Document|Window|null)} */ | |
var root = win.postMessage ? win : win.document.postMessage ? win.document : null; | |
if (root) { | |
if (root.postMessage) { | |
/** @type {(Document|Window)} */ | |
that.Qe = root; | |
} | |
} | |
} catch (c) { | |
} | |
}; | |
that.Ee = cb(that.Ee, "fspmtLPM"); | |
var _this = { | |
/** | |
* @param {Object} stream | |
* @return {?} | |
*/ | |
Ha : function(stream) { | |
if (stream.P) { | |
if (!window.relay) { | |
return false; | |
} | |
_this.Zd(window.relay, stream.fd(true)); | |
} | |
return true; | |
} | |
}; | |
_this.Ha = cb(_this.Ha, "fsnitSC"); | |
/** | |
* @return {undefined} | |
*/ | |
_this.za = function() { | |
window.setInterval(_this.ba, 5); | |
}; | |
_this.za = cb(_this.za, "fsnitIL"); | |
/** | |
* @return {undefined} | |
*/ | |
_this.ba = function() { | |
var id; | |
for (id in all) { | |
if (all.hasOwnProperty(id)) { | |
var e = all[id]; | |
var start = _this.me(e); | |
if (start) { | |
e.cd(start); | |
} | |
} | |
} | |
}; | |
_this.ba = cb(_this.ba, "fsnitEC"); | |
/** | |
* @param {?} e | |
* @return {?} | |
*/ | |
_this.me = function(e) { | |
try { | |
if (e.Fb()) { | |
var win = e.Ka.contentWindow; | |
if (win.frames && (win.frames.length && (0 < win.frames.length && win.frames[win.frames.length - 1].name))) { | |
return win.frames[win.frames.length - 1].name; | |
} | |
} | |
} catch (c) { | |
} | |
return null; | |
}; | |
_this.me = cb(_this.me, "fsnitGM"); | |
/** | |
* @param {string} uri | |
* @param {string} name | |
* @return {undefined} | |
*/ | |
_this.Zd = function(uri, name) { | |
/** @type {Element} */ | |
var iframe = document.createElement("iframe"); | |
/** @type {string} */ | |
iframe.style.position = "absolute"; | |
/** @type {string} */ | |
iframe.style.top = "0"; | |
/** @type {string} */ | |
iframe.style.left = "0"; | |
/** @type {string} */ | |
iframe.style.display = "none"; | |
/** @type {string} */ | |
iframe.width = "0"; | |
/** @type {string} */ | |
iframe.height = "0"; | |
/** @type {string} */ | |
iframe.src = uri + "crossdomain.xml"; | |
/** @type {string} */ | |
iframe.name = name; | |
/** | |
* @return {undefined} | |
*/ | |
iframe.onload = function() { | |
_this.be(this, 100); | |
}; | |
document.body.appendChild(iframe); | |
}; | |
_this.Zd = cb(_this.Zd, "fsnitCRI"); | |
/** | |
* @param {Node} t | |
* @param {number} milliseconds | |
* @return {undefined} | |
*/ | |
_this.be = function(t, milliseconds) { | |
window.setTimeout(function() { | |
t.parentNode.removeChild(t); | |
}, milliseconds); | |
}; | |
_this.be = cb(_this.be, "fsnitDMI"); | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Object} done | |
* @return {?} | |
*/ | |
var scale = function(done) { | |
return function(id, dataAndEvents) { | |
return "undefined" == typeof done[id] ? dataAndEvents || null : done[id]; | |
}; | |
}; | |
/** | |
* @param {Object} arg | |
* @return {?} | |
*/ | |
var _filter = function(arg) { | |
return function(x, elt) { | |
if (arg.hasOwnProperty(x)) { | |
var codeSegments = arg[x].split(","); | |
/** @type {number} */ | |
var i = 0; | |
for (;i < codeSegments.length;i++) { | |
if (codeSegments[i] == elt) { | |
return true; | |
} | |
} | |
return false; | |
} | |
return true; | |
}; | |
}; | |
/** | |
* @param {string} data | |
* @param {Object} b | |
* @return {?} | |
*/ | |
var equals = function(data, b) { | |
return!b.clickBg && !b.mclickBg || (!data.clickableBackgrounds || b.isHighendMobile && !b.mclickBg) ? false : true; | |
}; | |
/** | |
* @param {Object} expr | |
* @return {?} | |
*/ | |
var eval = function(expr) { | |
return 6 == rgbToHex(newRed) ? true : "_blank" == (expr.linkTarget ? expr.linkTarget : "_top"); | |
}; | |
/** | |
* @param {Object} actual | |
* @param {Function} message | |
* @return {?} | |
*/ | |
var equal = function(actual, message) { | |
return 1 == (true === actual.heightConstrained && !!message.mayLimitHeight); | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** @type {number} */ | |
var Rb = 1; | |
/** | |
* @return {?} | |
*/ | |
var min = function() { | |
return "e" + Rb++; | |
}; | |
/** | |
* @param {?} dataAndEvents | |
* @return {undefined} | |
*/ | |
var TemplateClass = function(dataAndEvents) { | |
this.vb = dataAndEvents; | |
}; | |
/** | |
* @return {?} | |
*/ | |
TemplateClass.prototype.f = function() { | |
return this.vb; | |
}; | |
var result = new TemplateClass(""); | |
} | |
var hasMembers; | |
/** @type {function (string): ?} */ | |
var pad = String.prototype.trim ? function(buf) { | |
return buf.trim(); | |
} : function(lastLine) { | |
return lastLine.replace(/^[\s\xa0]+|[\s\xa0]+$/g, ""); | |
}; | |
/** | |
* @param {string} requestUrl | |
* @return {?} | |
*/ | |
var complete = function(requestUrl) { | |
if (!rhtml.test(requestUrl)) { | |
return requestUrl; | |
} | |
if (-1 != requestUrl.indexOf("&")) { | |
requestUrl = requestUrl.replace(rreturn, "&"); | |
} | |
if (-1 != requestUrl.indexOf("<")) { | |
requestUrl = requestUrl.replace(rCurrLoc, "<"); | |
} | |
if (-1 != requestUrl.indexOf(">")) { | |
requestUrl = requestUrl.replace(rclass, ">"); | |
} | |
if (-1 != requestUrl.indexOf('"')) { | |
requestUrl = requestUrl.replace(badChars, """); | |
} | |
if (-1 != requestUrl.indexOf("'")) { | |
requestUrl = requestUrl.replace(normalizr, "'"); | |
} | |
if (-1 != requestUrl.indexOf("\x00")) { | |
requestUrl = requestUrl.replace(newlineRe, "�"); | |
} | |
return requestUrl; | |
}; | |
/** @type {RegExp} */ | |
var rreturn = /&/g; | |
/** @type {RegExp} */ | |
var rCurrLoc = /</g; | |
/** @type {RegExp} */ | |
var rclass = />/g; | |
/** @type {RegExp} */ | |
var badChars = /"/g; | |
/** @type {RegExp} */ | |
var normalizr = /'/g; | |
/** @type {RegExp} */ | |
var newlineRe = /\x00/g; | |
/** @type {RegExp} */ | |
var rhtml = /[\x00&<>"']/; | |
/** | |
* @return {?} | |
*/ | |
var randomColor = function() { | |
return Math.floor(2147483648 * Math.random()).toString(36) + Math.abs(Math.floor(2147483648 * Math.random()) ^ _randomVal()).toString(36); | |
}; | |
/** | |
* @param {(boolean|number|string)} a | |
* @param {(boolean|number|string)} b | |
* @return {?} | |
*/ | |
var cmp = function(a, b) { | |
return a < b ? -1 : a > b ? 1 : 0; | |
}; | |
var aProt = Array.prototype; | |
/** @type {function (?, number, ?): ?} */ | |
var promote = aProt.indexOf ? function(object, mapper, graphics) { | |
return aProt.indexOf.call(object, mapper, graphics); | |
} : function(arr, obj, fromIndex) { | |
fromIndex = null == fromIndex ? 0 : 0 > fromIndex ? Math.max(0, arr.length + fromIndex) : fromIndex; | |
if (isObject(arr)) { | |
return isObject(obj) && 1 == obj.length ? arr.indexOf(obj, fromIndex) : -1; | |
} | |
for (;fromIndex < arr.length;fromIndex++) { | |
if (fromIndex in arr && arr[fromIndex] === obj) { | |
return fromIndex; | |
} | |
} | |
return-1; | |
}; | |
/** @type {function (Array, Function, ?): ?} */ | |
var repeat = aProt.filter ? function(next_scope, mapper, graphics) { | |
return aProt.filter.call(next_scope, mapper, graphics); | |
} : function(arr, f, opt_this) { | |
var e = arr.length; | |
/** @type {Array} */ | |
var res = []; | |
/** @type {number} */ | |
var resLength = 0; | |
var arr2 = isObject(arr) ? arr.split("") : arr; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < e;i++) { | |
if (i in arr2) { | |
var val = arr2[i]; | |
if (f.call(opt_this, val, i, arr)) { | |
res[resLength++] = val; | |
} | |
} | |
} | |
return res; | |
}; | |
/** @type {function (?, Function, ?): ?} */ | |
var connect = aProt.map ? function(next_scope, mapper, graphics) { | |
return aProt.map.call(next_scope, mapper, graphics); | |
} : function(arr, f, opt_obj) { | |
var e = arr.length; | |
/** @type {Array} */ | |
var res = Array(e); | |
var arr2 = isObject(arr) ? arr.split("") : arr; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < e;i++) { | |
if (i in arr2) { | |
res[i] = f.call(opt_obj, arr2[i], i, arr); | |
} | |
} | |
return res; | |
}; | |
/** | |
* @param {Object} obj | |
* @param {Function} f | |
* @return {?} | |
*/ | |
var isUndefined = function(obj, f) { | |
var copy = {}; | |
var key; | |
for (key in obj) { | |
if (f.call(void 0, obj[key], key, obj)) { | |
copy[key] = obj[key]; | |
} | |
} | |
return copy; | |
}; | |
/** | |
* @param {Array} ev | |
* @return {?} | |
*/ | |
var _fn = function(ev) { | |
/** @type {number} */ | |
var argLength = arguments.length; | |
if (1 == argLength && "array" == isArray(arguments[0])) { | |
return _fn.apply(null, arguments[0]); | |
} | |
var wkw = {}; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < argLength;i++) { | |
/** @type {boolean} */ | |
wkw[arguments[i]] = true; | |
} | |
return wkw; | |
}; | |
_fn("area base br col command embed hr img input keygen link meta param source track wbr".split(" ")); | |
/** @type {RegExp} */ | |
var _problemUrlChars = /<[^>]*>|&[^;]+;/g; | |
/** | |
* @param {string} url | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var getQuery = function(url, opt_attributes) { | |
return opt_attributes ? url.replace(_problemUrlChars, "") : url; | |
}; | |
/** @type {RegExp} */ | |
var regex = RegExp("[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]"); | |
/** @type {RegExp} */ | |
var regexp = RegExp("^[^A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]*[\u0591-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc]"); | |
/** @type {RegExp} */ | |
var STACK_TRACE_REGEXP = /^http:\/\/.*/; | |
/** @type {RegExp} */ | |
var rspace = /\s+/; | |
/** @type {RegExp} */ | |
var reParent = /\d/; | |
/** | |
* @return {undefined} | |
*/ | |
var current = function() { | |
/** @type {string} */ | |
this.wj = ""; | |
this.Ih = ParseUser; | |
}; | |
var ParseUser = {}; | |
/** | |
* @return {undefined} | |
*/ | |
var Sprite = function() { | |
/** @type {string} */ | |
this.Se = ""; | |
this.Jh = random; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Sprite.prototype.kg = function() { | |
return 1; | |
}; | |
var random = {}; | |
/** | |
* @return {undefined} | |
*/ | |
var type = function() { | |
/** @type {string} */ | |
this.Se = ""; | |
this.Hh = listener; | |
/** @type {null} */ | |
this.vi = null; | |
}; | |
/** | |
* @return {?} | |
*/ | |
type.prototype.kg = function() { | |
return this.vi; | |
}; | |
var listener = {}; | |
/** | |
* @return {?} | |
*/ | |
var tryIt = function() { | |
return null; | |
}; | |
/** | |
* @param {Function} func | |
* @return {?} | |
*/ | |
var once = function(func) { | |
/** @type {Arguments} */ | |
var functions = arguments; | |
/** @type {number} */ | |
var length = functions.length; | |
return function() { | |
var memo; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < length;i++) { | |
memo = functions[i].apply(this, arguments); | |
} | |
return memo; | |
}; | |
}; | |
/** | |
* @param {?} a | |
* @param {?} b | |
* @param {number} x | |
* @return {?} | |
*/ | |
var Number = function(a, b, x) { | |
return a + x * (b - a); | |
}; | |
var userAgent; | |
a: { | |
var nav = global.navigator; | |
if (nav) { | |
var originalUserAgent = nav.userAgent; | |
if (originalUserAgent) { | |
userAgent = originalUserAgent; | |
break a; | |
} | |
} | |
/** @type {string} */ | |
userAgent = ""; | |
} | |
/** | |
* @return {?} | |
*/ | |
var isBogus = function() { | |
return-1 != userAgent.indexOf("Edge"); | |
}; | |
/** @type {boolean} */ | |
var os = -1 != userAgent.indexOf("Opera") || -1 != userAgent.indexOf("OPR"); | |
/** @type {boolean} */ | |
var isValid = -1 != userAgent.indexOf("Edge") || (-1 != userAgent.indexOf("Trident") || -1 != userAgent.indexOf("MSIE")); | |
/** @type {boolean} */ | |
var strict = -1 != userAgent.indexOf("Gecko") && (!(-1 != userAgent.toLowerCase().indexOf("webkit") && !isBogus()) && (!(-1 != userAgent.indexOf("Trident") || -1 != userAgent.indexOf("MSIE")) && !isBogus())); | |
/** @type {boolean} */ | |
var documentElement = -1 != userAgent.toLowerCase().indexOf("webkit") && !isBogus(); | |
/** | |
* @return {?} | |
*/ | |
var valueAccessor = function() { | |
var ua = userAgent; | |
if (strict) { | |
return/rv\:([^\);]+)(\)|;)/.exec(ua); | |
} | |
if (isValid && isBogus()) { | |
return/Edge\/([\d\.]+)/.exec(ua); | |
} | |
if (isValid) { | |
return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(ua); | |
} | |
if (documentElement) { | |
return/WebKit\/(\S+)/.exec(ua); | |
} | |
}; | |
/** | |
* @return {?} | |
*/ | |
var iframeCssFixes = function() { | |
var doc = global.document; | |
return doc ? doc.documentMode : void 0; | |
}; | |
var cDigit = function() { | |
if (os && global.opera) { | |
var v = global.opera.version; | |
return "function" == isArray(v) ? v() : v; | |
} | |
/** @type {string} */ | |
v = ""; | |
var value = valueAccessor(); | |
if (value) { | |
v = value ? value[1] : ""; | |
} | |
return isValid && (!isBogus() && (value = iframeCssFixes(), value > parseFloat(v))) ? String(value) : v; | |
}(); | |
var opt_nodes = {}; | |
/** | |
* @param {string} ms | |
* @return {?} | |
*/ | |
var format = function(ms) { | |
var node; | |
if (!(node = opt_nodes[ms])) { | |
/** @type {number} */ | |
node = 0; | |
var v1Subs = pad(String(cDigit)).split("."); | |
var v2Subs = pad(String(ms)).split("."); | |
/** @type {number} */ | |
var subCount = Math.max(v1Subs.length, v2Subs.length); | |
/** @type {number} */ | |
var subIdx = 0; | |
for (;0 == node && subIdx < subCount;subIdx++) { | |
var value = v1Subs[subIdx] || ""; | |
var v2Sub = v2Subs[subIdx] || ""; | |
/** @type {RegExp} */ | |
var re = RegExp("(\\d*)(\\D*)", "g"); | |
/** @type {RegExp} */ | |
var regex = RegExp("(\\d*)(\\D*)", "g"); | |
do { | |
/** @type {Array} */ | |
var a = re.exec(value) || ["", "", ""]; | |
/** @type {Array} */ | |
var b = regex.exec(v2Sub) || ["", "", ""]; | |
if (0 == a[0].length && 0 == b[0].length) { | |
break; | |
} | |
node = cmp(0 == a[1].length ? 0 : parseInt(a[1], 10), 0 == b[1].length ? 0 : parseInt(b[1], 10)) || (cmp(0 == a[2].length, 0 == b[2].length) || cmp(a[2], b[2])); | |
} while (0 == node); | |
} | |
/** @type {boolean} */ | |
node = opt_nodes[ms] = 0 <= node; | |
} | |
return node; | |
}; | |
var DOC = global.document; | |
var checkStart = iframeCssFixes(); | |
var Pc = !DOC || (!isValid || !checkStart && isBogus()) ? void 0 : checkStart || ("CSS1Compat" == DOC.compatMode ? parseInt(cDigit, 10) : 5); | |
/** | |
* @param {number} x | |
* @param {number} y | |
* @return {undefined} | |
*/ | |
var Rect = function(x, y) { | |
this.x = void 0 !== x ? x : 0; | |
this.y = void 0 !== y ? y : 0; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Rect.prototype.clone = function() { | |
return new Rect(this.x, this.y); | |
}; | |
/** | |
* @return {?} | |
*/ | |
Rect.prototype.ceil = function() { | |
/** @type {number} */ | |
this.x = Math.ceil(this.x); | |
/** @type {number} */ | |
this.y = Math.ceil(this.y); | |
return this; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Rect.prototype.floor = function() { | |
/** @type {number} */ | |
this.x = Math.floor(this.x); | |
/** @type {number} */ | |
this.y = Math.floor(this.y); | |
return this; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Rect.prototype.round = function() { | |
/** @type {number} */ | |
this.x = Math.round(this.x); | |
/** @type {number} */ | |
this.y = Math.round(this.y); | |
return this; | |
}; | |
/** | |
* @param {?} w | |
* @param {?} h | |
* @return {undefined} | |
*/ | |
var Node = function(w, h) { | |
this.width = w; | |
this.height = h; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Node.prototype.clone = function() { | |
return new Node(this.width, this.height); | |
}; | |
/** | |
* @return {?} | |
*/ | |
Node.prototype.ceil = function() { | |
/** @type {number} */ | |
this.width = Math.ceil(this.width); | |
/** @type {number} */ | |
this.height = Math.ceil(this.height); | |
return this; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Node.prototype.floor = function() { | |
/** @type {number} */ | |
this.width = Math.floor(this.width); | |
/** @type {number} */ | |
this.height = Math.floor(this.height); | |
return this; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Node.prototype.round = function() { | |
/** @type {number} */ | |
this.width = Math.round(this.width); | |
/** @type {number} */ | |
this.height = Math.round(this.height); | |
return this; | |
}; | |
if (!(!strict && !isValid)) { | |
if (!(isValid && (isValid && (isBogus() || 9 <= Pc)))) { | |
if (strict) { | |
format("1.9.1"); | |
} | |
} | |
} | |
if (isValid) { | |
format("9"); | |
} | |
/** | |
* @param {Error} el | |
* @return {?} | |
*/ | |
var isNode = function(el) { | |
return el ? new target(getWindow(el)) : hasMembers || (hasMembers = new target); | |
}; | |
/** | |
* @param {Object} el | |
* @return {?} | |
*/ | |
var getWindow = function(el) { | |
return 9 == el.nodeType ? el : el.ownerDocument || el.document; | |
}; | |
/** | |
* @param {(Document|string)} el | |
* @return {undefined} | |
*/ | |
var target = function(el) { | |
this.Rb = el || (global.document || document); | |
}; | |
/** | |
* @param {?} value | |
* @return {?} | |
*/ | |
target.prototype.lg = function(value) { | |
return isObject(value) ? this.Rb.getElementById(value) : value; | |
}; | |
/** | |
* @param {string} name | |
* @return {?} | |
*/ | |
target.prototype.createElement = function(name) { | |
return this.Rb.createElement(name); | |
}; | |
/** | |
* @param {?} text | |
* @param {string} val | |
* @return {?} | |
*/ | |
var toDom = function(text, val) { | |
var fragment = text.Rb; | |
var node = fragment.createElement("DIV"); | |
if (isValid) { | |
/** @type {string} */ | |
node.innerHTML = "<br>" + val; | |
node.removeChild(node.firstChild); | |
} else { | |
/** @type {string} */ | |
node.innerHTML = val; | |
} | |
if (1 == node.childNodes.length) { | |
node = node.removeChild(node.firstChild); | |
} else { | |
fragment = fragment.createDocumentFragment(); | |
for (;node.firstChild;) { | |
fragment.appendChild(node.firstChild); | |
} | |
node = fragment; | |
} | |
return node; | |
}; | |
/** | |
* @param {Element} element | |
* @param {Element} child | |
* @return {undefined} | |
*/ | |
target.prototype.appendChild = function(element, child) { | |
element.appendChild(child); | |
}; | |
/** | |
* @param {Object} parent | |
* @param {Object} descendant | |
* @return {?} | |
*/ | |
target.prototype.contains = function(parent, descendant) { | |
if (parent.contains && 1 == descendant.nodeType) { | |
return parent == descendant || parent.contains(descendant); | |
} | |
if ("undefined" != typeof parent.compareDocumentPosition) { | |
return parent == descendant || Boolean(parent.compareDocumentPosition(descendant) & 16); | |
} | |
for (;descendant && parent != descendant;) { | |
descendant = descendant.parentNode; | |
} | |
return descendant == parent; | |
}; | |
if (isValid) { | |
format(8); | |
} | |
var lowerTagName = {}; | |
var n = {}; | |
var me = {}; | |
var elem = {}; | |
var wildcardName = {}; | |
/** | |
* @return {?} | |
*/ | |
var fun = function() { | |
throw Error("Do not instantiate directly"); | |
}; | |
/** @type {null} */ | |
fun.prototype.Na = null; | |
/** | |
* @return {?} | |
*/ | |
fun.prototype.toString = function() { | |
return this.content; | |
}; | |
/** | |
* @param {string} object | |
* @param {?} elt | |
* @return {?} | |
*/ | |
var indexOf = function(object, elt) { | |
return null != object && object.fb === elt; | |
}; | |
/** | |
* @param {string} putativeSpy | |
* @return {?} | |
*/ | |
var sorter = function(putativeSpy) { | |
if (null != putativeSpy) { | |
switch(putativeSpy.Na) { | |
case 1: | |
return 1; | |
case -1: | |
return-1; | |
case 0: | |
return 0; | |
} | |
} | |
return null; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var src = function() { | |
fun.call(this); | |
}; | |
isPlainObject(src, fun); | |
src.prototype.fb = lowerTagName; | |
/** | |
* @param {?} value | |
* @return {?} | |
*/ | |
var $ = function(value) { | |
return null != value && value.fb === lowerTagName ? value : value instanceof type ? func(value instanceof type && (value.constructor === type && value.Hh === listener) ? value.Se : "type_error:SafeHtml", value.kg()) : func(complete(String(String(value))), sorter(value)); | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var model = function() { | |
fun.call(this); | |
}; | |
isPlainObject(model, fun); | |
model.prototype.fb = {}; | |
/** @type {number} */ | |
model.prototype.Na = 1; | |
/** | |
* @return {undefined} | |
*/ | |
var value = function() { | |
fun.call(this); | |
}; | |
isPlainObject(value, fun); | |
value.prototype.fb = n; | |
/** @type {number} */ | |
value.prototype.Na = 1; | |
/** | |
* @return {undefined} | |
*/ | |
var req = function() { | |
fun.call(this); | |
}; | |
isPlainObject(req, fun); | |
req.prototype.fb = me; | |
/** @type {number} */ | |
req.prototype.Na = 1; | |
/** | |
* @return {undefined} | |
*/ | |
var source = function() { | |
fun.call(this); | |
}; | |
isPlainObject(source, fun); | |
source.prototype.fb = elem; | |
/** @type {number} */ | |
source.prototype.Na = 1; | |
/** | |
* @param {?} obj | |
* @param {number} silent | |
* @return {undefined} | |
*/ | |
var view = function(obj, silent) { | |
/** @type {string} */ | |
this.content = String(obj); | |
this.Na = null != silent ? silent : null; | |
}; | |
isPlainObject(view, fun); | |
view.prototype.fb = wildcardName; | |
/** | |
* @param {Function} fn | |
* @return {?} | |
*/ | |
var when = function(fn) { | |
/** | |
* @param {?} c | |
* @return {undefined} | |
*/ | |
function handler(c) { | |
this.content = c; | |
} | |
handler.prototype = fn.prototype; | |
return function(opt_message) { | |
return new handler(String(opt_message)); | |
}; | |
}; | |
var func = function(b) { | |
/** | |
* @param {?} value | |
* @return {undefined} | |
*/ | |
function __(value) { | |
this.content = value; | |
} | |
__.prototype = b.prototype; | |
return function(opt_message, lvl) { | |
var o = new __(String(opt_message)); | |
if (void 0 !== lvl) { | |
/** @type {number} */ | |
o.Na = lvl; | |
} | |
return o; | |
}; | |
}(src); | |
when(model); | |
when(value); | |
var fix_xhr = when(req); | |
var log = when(source); | |
/** | |
* @param {Object} o | |
* @param {?} iterable | |
* @return {?} | |
*/ | |
var beget = function(o, iterable) { | |
/** | |
* @return {undefined} | |
*/ | |
function F() { | |
} | |
/** @type {Object} */ | |
F.prototype = o; | |
var object = new F; | |
var key; | |
for (key in iterable) { | |
object[key] = iterable[key]; | |
} | |
return object; | |
}; | |
/** | |
* @param {Function} o | |
* @return {?} | |
*/ | |
var validator = function(o) { | |
/** | |
* @param {?} content | |
* @return {undefined} | |
*/ | |
function node(content) { | |
this.content = content; | |
} | |
node.prototype = o.prototype; | |
return function(data) { | |
return(data = String(data)) ? new node(data) : ""; | |
}; | |
}; | |
/** | |
* @param {string} str | |
* @return {?} | |
*/ | |
var is = function(str) { | |
return(str = String(str)) ? new view(str, void 0) : ""; | |
}; | |
var apply = function(b) { | |
/** | |
* @param {?} count | |
* @return {undefined} | |
*/ | |
function c(count) { | |
this.content = count; | |
} | |
c.prototype = b.prototype; | |
return function(obj, lvl) { | |
/** @type {string} */ | |
var o = String(obj); | |
if (!o) { | |
return ""; | |
} | |
o = new c(o); | |
if (void 0 !== lvl) { | |
/** @type {number} */ | |
o.Na = lvl; | |
} | |
return o; | |
}; | |
}(src); | |
validator(model); | |
validator(value); | |
validator(req); | |
var valid = validator(source); | |
/** | |
* @param {?} selector | |
* @return {?} | |
*/ | |
var parent = function(selector) { | |
return $(selector); | |
}; | |
/** | |
* @param {?} values | |
* @return {?} | |
*/ | |
var start = function(values) { | |
return indexOf(values, lowerTagName) ? (values = String(values.content).replace(rLt, "").replace(rQuot, "<"), String(values).replace(rApos, boundary)) : complete(String(values)); | |
}; | |
/** | |
* @param {Object} a | |
* @return {?} | |
*/ | |
var slice = function(a) { | |
if (indexOf(a, me)) { | |
return a.content.replace(/([^"'\s])$/, "$1 "); | |
} | |
/** @type {string} */ | |
a = String(a); | |
/** @type {string} */ | |
a = exclude.test(a) ? a : "zSoyz"; | |
return a; | |
}; | |
/** | |
* @param {?} content | |
* @return {?} | |
*/ | |
var replace = function(content) { | |
if (indexOf(content, n)) { | |
return String(content).replace(r20, block); | |
} | |
if (content instanceof Sprite) { | |
content = content instanceof Sprite && (content.constructor === Sprite && content.Jh === random) ? content.Se : "type_error:SafeUrl"; | |
/** @type {string} */ | |
content = String(content).replace(r20, block); | |
} else { | |
/** @type {string} */ | |
content = String(content); | |
/** @type {string} */ | |
content = supportedTransforms.test(content) ? content.replace(r20, block) : "#zSoyz"; | |
} | |
return content; | |
}; | |
/** | |
* @param {string} type | |
* @return {?} | |
*/ | |
var toString = function(type) { | |
if (indexOf(type, elem)) { | |
return type.content; | |
} | |
if (null == type) { | |
/** @type {string} */ | |
type = ""; | |
} else { | |
if (type instanceof current) { | |
type = type instanceof current && (type.constructor === current && type.Ih === ParseUser) ? type.wj : "type_error:SafeStyle"; | |
} else { | |
/** @type {string} */ | |
type = String(type); | |
/** @type {string} */ | |
type = manipulation_rcheckableType.test(type) ? type : "zSoyz"; | |
} | |
} | |
return type; | |
}; | |
/** | |
* @param {string} value | |
* @return {?} | |
*/ | |
var quote = function(value) { | |
var key = sorter(value); | |
if (null == key) { | |
/** @type {number} */ | |
var string = key = 0; | |
/** @type {boolean} */ | |
var multiple = false; | |
value = getQuery(value + "", indexOf(value, lowerTagName)).split(rspace); | |
/** @type {number} */ | |
var index = 0; | |
for (;index < value.length;index++) { | |
var url = value[index]; | |
if (regexp.test(getQuery(url, void 0))) { | |
key++; | |
string++; | |
} else { | |
if (STACK_TRACE_REGEXP.test(url)) { | |
/** @type {boolean} */ | |
multiple = true; | |
} else { | |
if (regex.test(getQuery(url, void 0))) { | |
string++; | |
} else { | |
if (reParent.test(url)) { | |
/** @type {boolean} */ | |
multiple = true; | |
} | |
} | |
} | |
} | |
} | |
/** @type {number} */ | |
key = 0 == string ? multiple ? 1 : 0 : 0.4 < key / string ? -1 : 1; | |
} | |
return key; | |
}; | |
var _entryCharToButtonIdMap = { | |
"\x00" : "�", | |
"\t" : "	", | |
"\n" : " ", | |
"\x0B" : "", | |
"\f" : "", | |
"\r" : " ", | |
" " : " ", | |
'"' : """, | |
"&" : "&", | |
"'" : "'", | |
"-" : "-", | |
"/" : "/", | |
"<" : "<", | |
"=" : "=", | |
">" : ">", | |
"`" : "`", | |
"\u0085" : "…", | |
"\u00a0" : " ", | |
"\u2028" : "
", | |
"\u2029" : "
" | |
}; | |
/** | |
* @param {?} timeoutKey | |
* @return {?} | |
*/ | |
var boundary = function(timeoutKey) { | |
return _entryCharToButtonIdMap[timeoutKey]; | |
}; | |
var special = { | |
"\x00" : "%00", | |
"\u0001" : "%01", | |
"\u0002" : "%02", | |
"\u0003" : "%03", | |
"\u0004" : "%04", | |
"\u0005" : "%05", | |
"\u0006" : "%06", | |
"\u0007" : "%07", | |
"\b" : "%08", | |
"\t" : "%09", | |
"\n" : "%0A", | |
"\x0B" : "%0B", | |
"\f" : "%0C", | |
"\r" : "%0D", | |
"\u000e" : "%0E", | |
"\u000f" : "%0F", | |
"\u0010" : "%10", | |
"\u0011" : "%11", | |
"\u0012" : "%12", | |
"\u0013" : "%13", | |
"\u0014" : "%14", | |
"\u0015" : "%15", | |
"\u0016" : "%16", | |
"\u0017" : "%17", | |
"\u0018" : "%18", | |
"\u0019" : "%19", | |
"\u001a" : "%1A", | |
"\u001b" : "%1B", | |
"\u001c" : "%1C", | |
"\u001d" : "%1D", | |
"\u001e" : "%1E", | |
"\u001f" : "%1F", | |
" " : "%20", | |
'"' : "%22", | |
"'" : "%27", | |
"(" : "%28", | |
")" : "%29", | |
"<" : "%3C", | |
">" : "%3E", | |
"\\" : "%5C", | |
"{" : "%7B", | |
"}" : "%7D", | |
"\u007f" : "%7F", | |
"\u0085" : "%C2%85", | |
"\u00a0" : "%C2%A0", | |
"\u2028" : "%E2%80%A8", | |
"\u2029" : "%E2%80%A9", | |
"\uff01" : "%EF%BC%81", | |
"\uff03" : "%EF%BC%83", | |
"\uff04" : "%EF%BC%84", | |
"\uff06" : "%EF%BC%86", | |
"\uff07" : "%EF%BC%87", | |
"\uff08" : "%EF%BC%88", | |
"\uff09" : "%EF%BC%89", | |
"\uff0a" : "%EF%BC%8A", | |
"\uff0b" : "%EF%BC%8B", | |
"\uff0c" : "%EF%BC%8C", | |
"\uff0f" : "%EF%BC%8F", | |
"\uff1a" : "%EF%BC%9A", | |
"\uff1b" : "%EF%BC%9B", | |
"\uff1d" : "%EF%BC%9D", | |
"\uff1f" : "%EF%BC%9F", | |
"\uff20" : "%EF%BC%A0", | |
"\uff3b" : "%EF%BC%BB", | |
"\uff3d" : "%EF%BC%BD" | |
}; | |
/** | |
* @param {?} type | |
* @return {?} | |
*/ | |
var block = function(type) { | |
return special[type]; | |
}; | |
/** @type {RegExp} */ | |
var rApos = /[\x00\x22\x27\x3c\x3e]/g; | |
/** @type {RegExp} */ | |
var r20 = /[\x00- \x22\x27-\x29\x3c\x3e\\\x7b\x7d\x7f\x85\xa0\u2028\u2029\uff01\uff03\uff04\uff06-\uff0c\uff0f\uff1a\uff1b\uff1d\uff1f\uff20\uff3b\uff3d]/g; | |
/** @type {RegExp} */ | |
var manipulation_rcheckableType = /^(?!-*(?:expression|(?:moz-)?binding))(?:[.#]?-?(?:[_a-z0-9-]+)(?:-[_a-z0-9-]+)*-?|-?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)(?:[a-z]{1,2}|%)?|!important|)$/i; | |
/** @type {RegExp} */ | |
var supportedTransforms = /^(?![^#?]*\/(?:\.|%2E){2}(?:[\/?#]|$))(?:(?:https?|mailto):|[^&:\/?#]*(?:[\/?#]|$))/i; | |
/** @type {RegExp} */ | |
var exclude = /^(?!style|on|action|archive|background|cite|classid|codebase|data|dsync|href|longdesc|src|usemap)(?:[a-z0-9_$:-]*)$/i; | |
/** @type {RegExp} */ | |
var rLt = /<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g; | |
/** @type {RegExp} */ | |
var rQuot = /</g; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var animate = function(opt_attributes) { | |
return func("<span class='individualLabel " + (opt_attributes.X ? start(opt_attributes.X) : "") + "'>" + $(opt_attributes.text) + "</span>"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} clear | |
* @param {Function} opt_rightAlign | |
* @return {undefined} | |
*/ | |
var Renderer = function(clear, opt_rightAlign) { | |
this.Yh = clear; | |
this.C = opt_rightAlign || animate; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Renderer.prototype.f = function() { | |
return this.C({ | |
text : this.Yh, | |
X : null | |
}); | |
}; | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var getStyle = function(opt_attributes) { | |
/** @type {string} */ | |
var later = ""; | |
opt_attributes = opt_attributes.elements; | |
var valuesLen = opt_attributes.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < valuesLen;i++) { | |
later += $(opt_attributes[i]); | |
} | |
return func(later); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} lb | |
* @param {Function} value | |
* @return {undefined} | |
*/ | |
var Float32Array = function(lb, value) { | |
this.D = min(); | |
this.lb = lb; | |
this.C = value || createSvgElement_; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Float32Array.prototype.f = function() { | |
/** @type {Array} */ | |
var eventPath = []; | |
/** @type {number} */ | |
var l = 0; | |
for (;l < this.lb.length;l++) { | |
eventPath.push(this.lb[l].f()); | |
} | |
return this.C({ | |
uid : this.D, | |
yd : eventPath | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
Float32Array.prototype.G = function(d) { | |
/** @type {Array} */ | |
var vars = []; | |
/** @type {number} */ | |
var j = 0; | |
for (;j < this.lb.length;j++) { | |
if (this.lb[j].G) { | |
/** @type {Array} */ | |
vars = vars.concat(this.lb[j].G(d)); | |
} | |
} | |
return vars; | |
}; | |
/** | |
* @param {Window} d | |
* @param {Object} opts | |
* @return {undefined} | |
*/ | |
Float32Array.prototype.W = function(d, opts) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < this.lb.length;i++) { | |
var t = this.lb[i]; | |
if (t.W) { | |
t.W(d, opts); | |
} | |
} | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var createSvgElement_ = function(opt_attributes) { | |
return getStyle({ | |
elements : opt_attributes.yd | |
}); | |
}; | |
} | |
/** | |
* @return {?} | |
*/ | |
var innerHeight = function() { | |
return log("display: -moz-inline-box; display:inline-block; zoom: 1; *display: inline;"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var errorHandler = function(opt_attributes) { | |
return log("-webkit-box-shadow: " + toString(opt_attributes.value) + "; -moz-box-shadow: " + toString(opt_attributes.value) + "; box-shadow: " + toString(opt_attributes.value) + ";"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var reject = function(opt_attributes) { | |
return fix_xhr('target="' + (opt_attributes.j ? "_blank" : "_top") + '"'); | |
}; | |
/** | |
* @param {Text} params | |
* @return {?} | |
*/ | |
var load = function(params) { | |
/** @type {string} */ | |
var direction = params.Tb ? "right" : "left"; | |
/** @type {string} */ | |
params = "" + ('<div style="overflow: hidden;"><div style="float: ' + start(toString(direction)) + "; width: " + start(toString(params.oa + "px")) + ';">' + $(params.Pa) + '</div><div style="margin-' + start(toString(direction)) + ": " + start(toString(params.oa + params.$a + "px")) + ';">' + $(params.Qa) + "</div></div>"); | |
return func(params); | |
}; | |
/** | |
* @param {Text} options | |
* @return {?} | |
*/ | |
var bind = function(options) { | |
/** @type {string} */ | |
var corners = options.Tb ? "right" : "left"; | |
return options = "" + ('<div style="overflow: hidden;"><div style="float: ' + corners + "; width: " + (options.oa + "px") + ';">' + options.Pa + '</div><div style="margin-' + corners + ": " + (options.oa + options.$a + "px") + ';">' + options.Qa + "</div></div>"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} endRow | |
* @param {?} endColumn | |
* @param {?} isInt | |
* @param {?} R | |
* @param {Function} success | |
* @return {undefined} | |
*/ | |
var Range = function(endRow, endColumn, isInt, R, success) { | |
this.D = min(); | |
this.ma = endRow; | |
this.Yb = endColumn; | |
this.vb = isInt; | |
this.R = R; | |
this.C = success || fail; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Range.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
url : this.ma, | |
ya : this.Yb, | |
text : this.vb, | |
j : this.R | |
}); | |
}; | |
/** | |
* @param {string} self | |
* @param {Object} pos | |
* @return {?} | |
*/ | |
var contains = function(self, pos) { | |
/** @type {Array} */ | |
var configList = []; | |
if (self.ctc) { | |
configList.push(new Range(self.ctc.u, (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/images/afs/mobile/button_ctc.png", self.ctc.bt, pos.j, void 0)); | |
} | |
if (self.ctd) { | |
configList.push(new Range(self.u, (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/images/afs/mobile/ctd-dl-icon.png", self.ctd.ps, pos.j, void 0)); | |
} | |
if (1 <= configList.length) { | |
if (!(self.ctc && self.ctc.coa || self.ctd)) { | |
configList.push(new Range(self.u, (window._googCsaAlwaysHttps ? "https:" : "") + "//www.google.com/images/afs/mobile/button_visit_site.png", pos.ek, pos.j, void 0)); | |
} | |
} | |
return configList; | |
}; | |
/** | |
* @param {string} value | |
* @param {Object} m | |
* @return {?} | |
*/ | |
var h = function(value, m) { | |
var left = contains(value, m); | |
return 1 < left.length ? new Float32Array(left, decode) : result; | |
}; | |
} | |
/** | |
* @param {Element} item | |
* @param {string} className | |
* @return {?} | |
*/ | |
var addClass = function(item, className) { | |
if (item.classList) { | |
return item.classList.contains(className); | |
} | |
var codeSegments = item.className.split(" "); | |
/** @type {number} */ | |
var i = 0; | |
for (;i < codeSegments.length;i++) { | |
if (codeSegments[i] == className) { | |
return true; | |
} | |
} | |
return false; | |
}; | |
/** | |
* @param {Element} elem | |
* @param {string} c | |
* @return {undefined} | |
*/ | |
var removeClass = function(elem, c) { | |
if (elem.classList) { | |
elem.classList.remove(c); | |
} else { | |
var tail = elem.className.split(" "); | |
/** @type {Array} */ | |
var context = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < tail.length;i++) { | |
if (tail[i] != c) { | |
context.push(tail[i]); | |
} | |
} | |
/** @type {string} */ | |
elem.className = context.join(" "); | |
} | |
}; | |
/** | |
* @param {Element} elem | |
* @param {string} name | |
* @return {undefined} | |
*/ | |
var close = function(elem, name) { | |
if (elem.classList) { | |
elem.classList.add(name); | |
} else { | |
if (elem.className) { | |
if (!addClass(elem, name)) { | |
elem.className += " " + name; | |
} | |
} else { | |
/** @type {string} */ | |
elem.className = name; | |
} | |
} | |
}; | |
/** | |
* @param {Object} node | |
* @param {string} selector | |
* @param {string} className | |
* @return {?} | |
*/ | |
var qsa = function(node, selector, className) { | |
/** @type {Array} */ | |
var paragraph = []; | |
if ("getElementsByClassName" in document) { | |
node = node.getElementsByClassName(className); | |
/** @type {number} */ | |
var _i = 0; | |
var child; | |
for (;child = node[_i];_i++) { | |
if (child.nodeName) { | |
if (child.nodeName.toLowerCase() == selector) { | |
paragraph.push(child); | |
} | |
} | |
} | |
} else { | |
node = node.getElementsByTagName(selector); | |
/** @type {number} */ | |
_i = 0; | |
for (;child = node[_i];_i++) { | |
if (addClass(child, className)) { | |
paragraph.push(child); | |
} | |
} | |
} | |
return paragraph; | |
}; | |
/** | |
* @param {?} v23 | |
* @param {?} id | |
* @return {?} | |
*/ | |
var parseFloat = function(v23, id) { | |
var ret = v23.getElementById(id); | |
if (!ret) { | |
throw "Could not find element with id: " + id; | |
} | |
return ret; | |
}; | |
/** | |
* @param {Object} element | |
* @param {?} id | |
* @return {?} | |
*/ | |
var visit = function(element, id) { | |
for (;element.parentNode;) { | |
if (element = element.parentNode, element.id == id) { | |
return true; | |
} | |
} | |
return false; | |
}; | |
/** | |
* @param {Object} result | |
* @return {?} | |
*/ | |
var fragment = function(result) { | |
/** @type {Element} */ | |
var tip = document.createElement("div"); | |
result = isObject(result) ? result : result.content; | |
/** @type {string} */ | |
tip.innerHTML = "<table><tbody>" + result + "</tbody></table>"; | |
var elem; | |
try { | |
/** @type {(Node|null)} */ | |
elem = tip.firstChild.firstChild.firstChild; | |
} catch (d) { | |
return null; | |
} | |
return 1 == elem.nodeType && "tr" == elem.tagName.toLowerCase() ? elem : null; | |
}; | |
/** | |
* @param {Element} element | |
* @return {?} | |
*/ | |
var runTest = function(element) { | |
var parent = element.parentNode; | |
var next = element.nextSibling; | |
/** @type {Element} */ | |
var d = document.createElement("div"); | |
d.appendChild(element); | |
if (parent) { | |
if (next) { | |
parent.insertBefore(d, next); | |
} else { | |
parent.appendChild(d); | |
} | |
} | |
return d; | |
}; | |
/** | |
* @param {Window} target | |
* @param {?} scope | |
* @param {?} attr | |
* @return {?} | |
*/ | |
var link = function(target, scope, attr) { | |
return function() { | |
if (300 <= target.innerWidth) { | |
/** @type {string} */ | |
parseFloat(target.document, scope).style.display = "block"; | |
/** @type {string} */ | |
parseFloat(target.document, attr).style.display = "none"; | |
} else { | |
/** @type {string} */ | |
parseFloat(target.document, scope).style.display = "none"; | |
/** @type {string} */ | |
parseFloat(target.document, attr).style.display = "block"; | |
} | |
}; | |
}; | |
/** | |
* @param {Object} el | |
* @param {string} type | |
* @param {Function} eventName | |
* @return {undefined} | |
*/ | |
var addEvent = function(el, type, eventName) { | |
if (el.addEventListener) { | |
el.addEventListener(type, eventName, false); | |
} else { | |
if (el.attachEvent) { | |
el.attachEvent("on" + type, eventName); | |
} else { | |
var postfix = el["on" + type]; | |
el["on" + type] = null != postfix ? once(eventName, postfix) : eventName; | |
} | |
} | |
}; | |
/** | |
* @param {Object} el | |
* @param {Function} fn | |
* @return {undefined} | |
*/ | |
var attach = function(el, fn) { | |
addEvent(el, "mousedown", fn); | |
addEvent(el, "mousedown", function(el, sType, fn) { | |
/** @type {boolean} */ | |
var f = false; | |
return function() { | |
if (!f) { | |
if (el.removeEventListener) { | |
el.removeEventListener(sType, fn, false); | |
} else { | |
if (el.detachEvent) { | |
el.detachEvent("on" + sType, fn); | |
} | |
} | |
/** @type {boolean} */ | |
f = true; | |
} | |
}; | |
}(el, "mousedown", fn)); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var loop = function(opt_attributes) { | |
return func('<div id="' + start(opt_attributes.Bc) + '" style="display:' + start(toString(opt_attributes.yc ? "none" : "block")) + ';"><div>' + $(opt_attributes.Ba) + "</div>" + parent(load({ | |
Pa : apply("" + (opt_attributes.ea && opt_attributes.ga ? '<div class="ctd-itd"><a class="ctd-il" href="' + start(replace(opt_attributes.jc)) + '"><span class="ctd-ico-s"></span><img class="ctd-ico' + (opt_attributes.dc ? " rc" : "") + '" ' + slice(opt_attributes.ga) + '="45" src="' + start(replace(opt_attributes.ea)) + '" alt></a>' + (opt_attributes.I && opt_attributes.L ? end({ | |
I : opt_attributes.I, | |
L : opt_attributes.L, | |
fc : false | |
}) : "") + "</div>" : "")), | |
Qa : apply('<div class="ctd-td-cr">' + (!opt_attributes.I || (!opt_attributes.L || opt_attributes.ea && opt_attributes.ga) ? "" : end({ | |
I : opt_attributes.I, | |
L : opt_attributes.L, | |
fc : true | |
})) + $(opt_attributes.Ca) + '<div class="ctd-text" id="' + start(opt_attributes.Qb) + '">' + $(opt_attributes.od) + "</div></div>"), | |
oa : opt_attributes.ea && opt_attributes.ga ? 45 : 0, | |
$a : 0, | |
Tb : opt_attributes.g | |
})) + "</div>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var push = function(opt_attributes) { | |
return func('<div id="' + start(opt_attributes.Bc) + '" style="display:' + start(toString(opt_attributes.yc ? "none" : "block")) + ';"><div>' + $(opt_attributes.Ba) + "</div>" + parent(load({ | |
Pa : apply("" + (opt_attributes.ea && opt_attributes.ga ? '<div class="ctd-itd"><a class="ctd-il" href="' + start(replace(opt_attributes.jc)) + '"><span class="ctd-ico-s"></span><img class="ctd-ico' + (opt_attributes.dc ? " rc" : "") + '" ' + slice(opt_attributes.ga) + '="45" src="' + start(replace(opt_attributes.ea)) + '" alt></a>' + (opt_attributes.I && opt_attributes.L ? end({ | |
I : opt_attributes.I, | |
L : opt_attributes.L, | |
fc : false | |
}) : "") + "</div>" : "")), | |
Qa : apply('<div class="ctd-td-cr">' + (!opt_attributes.I || (!opt_attributes.L || opt_attributes.ea && opt_attributes.ga) ? "" : end({ | |
I : opt_attributes.I, | |
L : opt_attributes.L, | |
fc : true | |
})) + '<div class="ctd-text" id="' + start(opt_attributes.Qb) + '">' + $(opt_attributes.Ca) + "</div></div>"), | |
oa : opt_attributes.ea && opt_attributes.ga ? 45 : 0, | |
$a : 0, | |
Tb : opt_attributes.g | |
})) + "</div>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var ready = function(opt_attributes) { | |
return func("<div>" + (opt_attributes.ea && opt_attributes.ga ? '<a class="ctd-i-mini" href="' + start(replace(opt_attributes.jc)) + '"><img class="ctd-ico' + (opt_attributes.dc ? " rc-mini" : "") + '" style="' + start(toString(opt_attributes.ga)) + ': inherit; vertical-align: text-bottom;" src="' + start(replace(opt_attributes.ea)) + '"></a>' : "") + $(opt_attributes.Wi) + (opt_attributes.I && opt_attributes.L ? " " + end({ | |
I : opt_attributes.I, | |
L : opt_attributes.L, | |
fc : true | |
}) : "") + $(opt_attributes.Xi) + "</div>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var end = function(opt_attributes) { | |
return func('<div class="ctd-rate"><div class="ctd-rate-bg"><div class="ctd-rate-fg" style="width: ' + start(toString(opt_attributes.I / 5 * 100)) + '%;"></div></div><div class="ctd-rate-txt' + (opt_attributes.fc ? " inline" : "") + '">(<span class="ctd-usr-ico"></span>' + $(opt_attributes.L) + ")</div></div>"); | |
}; | |
/** | |
* @param {?} res | |
* @return {?} | |
*/ | |
var loaded = function(res) { | |
return func('<img class="adIcon" src="' + start(replace(res.sa)) + '"/>'); | |
}; | |
/** | |
* @param {?} rest | |
* @return {?} | |
*/ | |
var parseStartTag = function(rest) { | |
return func('<iframe class="adIcon" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowTransparency="true" sandbox="" src="' + start(replace(rest.sa)) + '"></iframe>'); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} opt_vars | |
* @param {?} opt_size | |
* @return {undefined} | |
*/ | |
var Player = function(opt_vars, opt_size) { | |
this.Pj = opt_vars; | |
this.C = opt_size; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Player.prototype.f = function() { | |
return this.C({ | |
sa : this.Pj | |
}); | |
}; | |
} | |
/** | |
* @param {Object} doc | |
* @return {?} | |
*/ | |
var getOffset = function(doc) { | |
var el = getWindow(doc); | |
var pos = new Rect(0, 0); | |
var node; | |
node = el ? getWindow(el) : document; | |
var opt_useFirstChild; | |
if (!(opt_useFirstChild = !isValid || isValid && (isBogus() || 9 <= Pc))) { | |
/** @type {boolean} */ | |
opt_useFirstChild = "CSS1Compat" == isNode(node).Rb.compatMode; | |
} | |
if (doc == (opt_useFirstChild ? node.documentElement : node.body)) { | |
return pos; | |
} | |
var viewport; | |
a: { | |
try { | |
viewport = doc.getBoundingClientRect(); | |
} catch (g) { | |
viewport = { | |
left : 0, | |
top : 0, | |
right : 0, | |
bottom : 0 | |
}; | |
break a; | |
} | |
if (isValid) { | |
if (doc.ownerDocument.body) { | |
doc = doc.ownerDocument; | |
viewport.left -= doc.documentElement.clientLeft + doc.body.clientLeft; | |
viewport.top -= doc.documentElement.clientTop + doc.body.clientTop; | |
} | |
} | |
} | |
doc = isNode(el).Rb; | |
el = documentElement || "CSS1Compat" != doc.compatMode ? doc.body || doc.documentElement : doc.documentElement; | |
doc = doc.parentWindow || doc.defaultView; | |
el = isValid && (format("10") && doc.pageYOffset != el.scrollTop) ? new Rect(el.scrollLeft, el.scrollTop) : new Rect(doc.pageXOffset || el.scrollLeft, doc.pageYOffset || el.scrollTop); | |
pos.x = viewport.left + el.x; | |
pos.y = viewport.top + el.y; | |
return pos; | |
}; | |
if (isValid) { | |
format(12); | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var createDocument = function(opt_attributes) { | |
return func(g({ | |
text : opt_attributes.text.c, | |
Aa : opt_attributes.text.rtl, | |
g : opt_attributes.g | |
})); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var forEach = function(opt_attributes) { | |
return func(g({ | |
text : opt_attributes.text, | |
Aa : 0 > quote(opt_attributes.text), | |
g : opt_attributes.g | |
})); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var g = function(opt_attributes) { | |
return func(0 < opt_attributes.text.toString().length ? '<span dir="' + (opt_attributes.Aa ? "rtl" : "ltr") + '">' + $(opt_attributes.text) + "</span>" + (opt_attributes.g ? "‏" : "‎") : ""); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var exports = function(opt_attributes) { | |
return func('<a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '" class="titleLink"' + slice(reject(opt_attributes)) + ">" + parent(createDocument(opt_attributes)) + "</a>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var test = function(opt_attributes) { | |
return func('<div class="ctcT"><img src="//www.google.com/images/mobile_ad/phone_icon-lb32.png" class="ctcCOI" /><a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '"' + slice(reject(opt_attributes)) + ">" + parent(g({ | |
text : opt_attributes.rj, | |
Aa : false, | |
g : opt_attributes.g | |
})) + "</a>" + (opt_attributes.cg ? '<span class="ctcLD"> (' + parent(forEach({ | |
text : opt_attributes.cg, | |
g : opt_attributes.g | |
})) + ")</span>" : "") + "</div>" + (opt_attributes.Oi ? "" : '<span class="ctcCO">' + parent(createDocument(opt_attributes)) + "</span>")); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var execute = function(opt_attributes) { | |
return func('<a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '" class="domainLink"' + slice(reject(opt_attributes)) + ">" + parent(g({ | |
text : opt_attributes.text, | |
Aa : false, | |
g : opt_attributes.g | |
})) + "</a>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var flush = function(opt_attributes) { | |
var props = func; | |
var config; | |
config = opt_attributes.ah; | |
var o = opt_attributes.bh; | |
opt_attributes = opt_attributes.g; | |
/** @type {string} */ | |
var name = ""; | |
if (o && 0 < o.c.toString().length) { | |
var green = config.rtl || o.rtl; | |
/** @type {string} */ | |
name = name + g({ | |
Aa : green, | |
g : opt_attributes, | |
text : apply(createDocument({ | |
text : config, | |
g : green | |
}) + " " + createDocument({ | |
text : o, | |
g : green | |
})) | |
}); | |
} else { | |
name += createDocument({ | |
text : config, | |
g : opt_attributes | |
}); | |
} | |
config = func(name); | |
return props('<span class="descText">' + $(config) + "</span>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var write = function(opt_attributes) { | |
return func('<a id="' + start(opt_attributes.uid) + '" href="' + start(replace(opt_attributes.url)) + '" class="textLink"' + slice(reject(opt_attributes)) + ">" + flush(opt_attributes) + "</a>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var use = function(opt_attributes) { | |
return func("<div>" + $(opt_attributes.Ba) + "</div>" + $(opt_attributes.Ca) + "<br />" + $(opt_attributes.od)); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var limit = function(opt_attributes) { | |
return func("<div>" + $(opt_attributes.Ba) + "</div>" + $(opt_attributes.Ca)); | |
}; | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var onSuccess = function(data) { | |
/** @type {string} */ | |
var options = ""; | |
switch(data.rc) { | |
case 1: | |
options += "oneLine"; | |
break; | |
case 2: | |
options += "twoLine"; | |
break; | |
case 3: | |
options += "threeLine"; | |
} | |
options = is(options); | |
/** @type {string} */ | |
data = "" + ('<div class="adStd ' + start(options) + '"' + (data.cb ? 'data-click-s="' + start(data.url) + '"' + slice(fix_xhr('data-click-trg="' + (data.j ? "_blank" : "_top") + '"')) : "") + ">" + $(data.content) + "</div>"); | |
return func(data); | |
}; | |
/** | |
* @param {?} object | |
* @return {?} | |
*/ | |
var freeze = function(object) { | |
freeze[" "](object); | |
return object; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
freeze[" "] = function() { | |
}; | |
if (isValid) { | |
format("9"); | |
} | |
if (!!documentElement) { | |
format("528"); | |
} | |
if (!(strict && format("1.9b"))) { | |
if (!(isValid && format("8"))) { | |
if (!(os && format("9.5"))) { | |
if (documentElement) { | |
format("528"); | |
} | |
} | |
} | |
} | |
if (!(strict && !format("8"))) { | |
if (isValid) { | |
format("9"); | |
} | |
} | |
/** | |
* @param {?} y | |
* @param {?} x | |
* @param {?} node | |
* @param {?} ypos | |
* @param {?} mass | |
* @param {?} xpos | |
* @param {?} coordinates | |
* @param {?} round | |
* @return {undefined} | |
*/ | |
var Point = function(y, x, node, ypos, mass, xpos, coordinates, round) { | |
this.Dc = y; | |
this.pf = x; | |
this.nf = node; | |
this.qf = ypos; | |
this.of = mass; | |
this.rf = xpos; | |
this.Gd = coordinates; | |
this.sf = round; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Point.prototype.clone = function() { | |
return new Point(this.Dc, this.pf, this.nf, this.qf, this.of, this.rf, this.Gd, this.sf); | |
}; | |
/** | |
* @param {Object} options | |
* @param {number} a | |
* @return {?} | |
*/ | |
var number = function(options, a) { | |
if (0 == a) { | |
return options.Dc; | |
} | |
if (1 == a) { | |
return options.Gd; | |
} | |
var c = Number(options.Dc, options.nf, a); | |
var b = Number(options.nf, options.of, a); | |
var y = Number(options.of, options.Gd, a); | |
c = Number(c, b, a); | |
b = Number(b, y, a); | |
return Number(c, b, a); | |
}; | |
/** | |
* @param {?} b | |
* @return {?} | |
*/ | |
var loadConfig = function(b) { | |
var x = point; | |
/** @type {number} */ | |
var args = (b - x.Dc) / (x.Gd - x.Dc); | |
if (0 >= args) { | |
return 0; | |
} | |
if (1 <= args) { | |
return 1; | |
} | |
/** @type {number} */ | |
var triggerArguments = 0; | |
/** @type {number} */ | |
var lastArgs = 1; | |
/** @type {number} */ | |
var f = 0; | |
for (;8 > f;f++) { | |
var a = number(x, args); | |
/** @type {number} */ | |
var c = (number(x, args + 1E-6) - a) / 1E-6; | |
if (1E-6 > Math.abs(a - b)) { | |
return args; | |
} | |
if (1E-6 > Math.abs(c)) { | |
break; | |
} else { | |
if (a < b) { | |
/** @type {number} */ | |
triggerArguments = args; | |
} else { | |
/** @type {number} */ | |
lastArgs = args; | |
} | |
args -= (a - b) / c; | |
} | |
} | |
/** @type {number} */ | |
f = 0; | |
for (;1E-6 < Math.abs(a - b) && 8 > f;f++) { | |
if (a < b) { | |
/** @type {number} */ | |
triggerArguments = args; | |
/** @type {number} */ | |
args = (args + lastArgs) / 2; | |
} else { | |
/** @type {number} */ | |
lastArgs = args; | |
/** @type {number} */ | |
args = (args + triggerArguments) / 2; | |
} | |
a = number(x, args); | |
} | |
return args; | |
}; | |
var point = new Point(0, 0, 0.25, 0.1, 0.25, 1, 1, 1); | |
/** | |
* @param {?} config | |
* @return {?} | |
*/ | |
var route = function(config) { | |
config = loadConfig(config); | |
if (0 == config) { | |
config = point.pf; | |
} else { | |
if (1 == config) { | |
config = point.sf; | |
} else { | |
var c = Number(point.pf, point.qf, config); | |
var val = Number(point.qf, point.rf, config); | |
var b = Number(point.rf, point.sf, config); | |
c = Number(c, val, config); | |
val = Number(val, b, config); | |
config = Number(c, val, config); | |
} | |
} | |
return config; | |
}; | |
/** | |
* @param {Element} node | |
* @param {number} a | |
* @param {number} e | |
* @return {?} | |
*/ | |
var increment = function(node, a, e) { | |
/** @type {number} */ | |
var d = e - a; | |
return function(x) { | |
/** @type {string} */ | |
node.style.left = a + x * d + "px"; | |
}; | |
}; | |
/** | |
* @param {number} failing_message | |
* @return {undefined} | |
*/ | |
var report = function(failing_message) { | |
this.Cc = void 0; | |
/** @type {number} */ | |
this.eg = failing_message; | |
/** @type {boolean} */ | |
this.rb = false; | |
/** @type {function (?): ?} */ | |
this.Vj = route; | |
/** @type {number} */ | |
this.ug = 0; | |
}; | |
/** | |
* @param {Object} options | |
* @return {?} | |
*/ | |
var tick = function(options) { | |
if (options.rb || !options.Cc) { | |
return false; | |
} | |
/** @type {boolean} */ | |
options.rb = true; | |
var remove = options.Cc; | |
var css = wrapper(function(func, dataAndEvents) { | |
var node = this.Vj(func); | |
if (dataAndEvents) { | |
/** @type {number} */ | |
node = 0; | |
} else { | |
if (1 <= func) { | |
/** @type {number} */ | |
node = 1; | |
} | |
} | |
remove(node); | |
}, options); | |
if (window.requestAnimationFrame && window.performance) { | |
/** @type {number} */ | |
var source = window.performance.now(); | |
/** @type {boolean} */ | |
var cssObj = true; | |
var func = wrapper(function(target) { | |
/** @type {number} */ | |
target = (target - source) / this.eg; | |
css(target, cssObj); | |
/** @type {boolean} */ | |
cssObj = false; | |
if (1 <= target) { | |
remove(1); | |
/** @type {boolean} */ | |
this.rb = false; | |
} else { | |
window.requestAnimationFrame(func); | |
} | |
}, options); | |
window.requestAnimationFrame(func); | |
} else { | |
/** @type {number} */ | |
source = (new Date).getTime(); | |
/** @type {boolean} */ | |
cssObj = true; | |
func = wrapper(function() { | |
/** @type {number} */ | |
var ol = ((new Date).getTime() - source) / this.eg; | |
css(ol, cssObj); | |
/** @type {boolean} */ | |
cssObj = false; | |
if (1 <= ol) { | |
remove(1); | |
/** @type {boolean} */ | |
this.rb = false; | |
window.clearInterval(this.ug); | |
} | |
}, options); | |
/** @type {number} */ | |
options.ug = window.setInterval(func, 1E3 / 60); | |
} | |
return true; | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var getElementById = function(opt_attributes) { | |
return func('<a href="' + start(replace(opt_attributes.href)) + '" target="' + (opt_attributes.j ? "_blank" : "_top") + '"' + (opt_attributes.Oa ? 'id="' + start(opt_attributes.Oa) + '"' : "") + " " + (opt_attributes.na ? 'class="' + start(opt_attributes.na) + '"' : "") + ">" + $(opt_attributes.content) + "</a>"); | |
}; | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var decode = function(data) { | |
/** @type {string} */ | |
var fn = ""; | |
if (data.yd) { | |
/** @type {string} */ | |
fn = fn + ('<div class="buttonsWrapper" id="' + start(data.uid) + '">'); | |
var arr = data.yd; | |
var e = arr.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < e;i++) { | |
var val = arr[i]; | |
/** @type {string} */ | |
fn = fn + ('<div style="width: ' + start(toString(Math.floor(1 / data.yd.length * 100))) + '%;" class="inlineButton' + (0 == i ? " firstButton" : "") + '">' + $(val) + "</div>"); | |
} | |
fn += "</div>"; | |
} | |
return func(fn); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var fail = function(opt_attributes) { | |
return func('<div class="button" id="' + start(opt_attributes.uid) + '"><div class="buttonImageWrapper"><a href="' + start(replace(opt_attributes.url)) + '" ' + slice(reject(opt_attributes)) + '><img class="buttonImage" src="' + start(replace(opt_attributes.ya)) + '" width="28" height="28"></a></div><div class="buttonTextWrapper"><a href="' + start(replace(opt_attributes.url)) + '" class="buttonText" ' + slice(reject(opt_attributes)) + ">" + $(opt_attributes.text) + "</a></div></div>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var text = function(opt_attributes) { | |
return "" + emit({ | |
text : opt_attributes.text.c, | |
Aa : opt_attributes.text.rtl, | |
g : opt_attributes.g | |
}); | |
}; | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var emit = function(data) { | |
return'<span dir="' + (data.Aa ? "rtl" : "ltr") + '">' + data.text + "</span>" + (data.g ? "‏" : "‎"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var after = function(opt_attributes) { | |
return func(opt_attributes.De ? "<div class='location'>" + parent(forEach({ | |
text : opt_attributes.De, | |
g : opt_attributes.g | |
})) + "</div>" : ""); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} vertexShader | |
* @param {?} vertex | |
* @param {Function} displayName | |
* @return {undefined} | |
*/ | |
var Program = function(vertexShader, vertex, displayName) { | |
this.D = min(); | |
this.vb = vertexShader; | |
this.H = vertex; | |
this.C = displayName || after; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Program.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
De : this.vb, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {Object} value | |
* @param {Object} t | |
* @return {?} | |
*/ | |
var calc = function(value, t) { | |
return value.location ? new Program(value.location, t.g) : result; | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} filterFn | |
* @param {?} o | |
* @param {string} onFinished | |
* @param {?} stream | |
* @return {undefined} | |
*/ | |
var Loader = function(filterFn, o, onFinished, stream) { | |
this.D = min(); | |
this.ra = filterFn; | |
this.ue = o; | |
/** @type {string} */ | |
this.hk = onFinished; | |
this.C = stream || _set; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Loader.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
vd : this.ra, | |
nb : this.ue, | |
kh : this.hk | |
}); | |
}; | |
/** | |
* @param {string} obj | |
* @param {Object} val | |
* @return {?} | |
*/ | |
var getter = function(obj, val) { | |
var isLarge = obj.gt && ("oh" == obj.gt.r && obj.gt.t) ? obj.gt.t : null; | |
return obj.oh && 0 < obj.oh.length || isLarge ? new Loader(obj.oh, isLarge, val.ij) : result; | |
}; | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var each = function(opt_attributes) { | |
/** @type {string} */ | |
var fn = ""; | |
if (opt_attributes.Pe) { | |
/** @type {string} */ | |
fn = fn + "<div class='plus-ones'>"; | |
var values = opt_attributes.Pe; | |
var valuesLen = values.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < valuesLen;i++) { | |
var val = values[i]; | |
/** @type {string} */ | |
fn = fn + ("TARGET" == val ? parent(func('target="' + (opt_attributes.j ? "_blank" : "_top") + '"')) : $(val)); | |
} | |
fn += "</div>"; | |
} | |
return func(fn); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} compute | |
* @param {?} R | |
* @param {?} t | |
* @param {Function} Var | |
* @return {undefined} | |
*/ | |
var X = function(compute, R, t, Var) { | |
this.D = min(); | |
this.Tj = compute; | |
this.R = R; | |
this.H = t; | |
this.C = Var || each; | |
}; | |
/** | |
* @return {?} | |
*/ | |
X.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
Pe : this.Tj, | |
j : this.R, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {string} value | |
* @param {Object} options | |
* @return {?} | |
*/ | |
var validate = function(value, options) { | |
return value.plus_ones ? new X(step(value), options.j, options.g) : result; | |
}; | |
/** | |
* @param {string} value | |
* @return {?} | |
*/ | |
var step = function(value) { | |
/** @type {Array} */ | |
var ret = []; | |
if (value.plus_ones) { | |
/** @type {number} */ | |
var i = 0; | |
var valuesLen = value.plus_ones.length; | |
for (;i < valuesLen;i++) { | |
ret.push(func(value.plus_ones[i])); | |
} | |
} | |
return ret; | |
}; | |
} | |
/** | |
* @param {?} args | |
* @return {?} | |
*/ | |
var constructor = function(args) { | |
return func(args.zc ? template({ | |
I : args.zc.r, | |
dk : true | |
}) + '<span class="sr-p"> </span><span class="sr-gt"> (' + parent(getElementById({ | |
href : args.zc.u, | |
content : Math.round(10 * args.zc.r) / 10, | |
j : args.j, | |
na : "sr-gt sr-gl" | |
})) + ")</span>" : ""); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var check = function(opt_attributes) { | |
/** @type {string} */ | |
var point = '<div class="sr-div">'; | |
var resultItems = opt_attributes.Sj; | |
var valuesLen = resultItems.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < valuesLen;i++) { | |
var result = resultItems[i]; | |
/** @type {string} */ | |
point = point + ("RATING" == result ? template({ | |
I : opt_attributes.r | |
}) + '<span class="sr-p"> </span>' : "LINK_START" == result ? '<a href="' + start(replace(opt_attributes.ck)) + '" class="sr-rl"' + slice(reject(opt_attributes)) + ">" : "LINK_END" == result ? "</a>" : "NUM_START" == result ? '<span class="sr-number">' : "NUM_END" == result ? "</span> " : parent(forEach({ | |
text : result, | |
g : opt_attributes.g | |
}))); | |
} | |
return func(point + "</div>"); | |
}; | |
/** | |
* @param {?} data | |
* @return {?} | |
*/ | |
var template = function(data) { | |
return func('<div class="sr-nsc"><img src="//www.google.com/images/sr-star-off.png" class="sr-star"/><img src="//www.google.com/images/sr-star-on' + (data.dk ? "-gray" : "") + '.png" class="sr-star" style="clip: rect(0px, ' + start(toString(13.2 * data.I)) + 'px, 13px, 0px);"/></div>'); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} initialState | |
* @param {string} R | |
* @param {?} debugMode | |
* @param {?} round | |
* @param {?} sock | |
* @param {Function} rootModel | |
* @return {undefined} | |
*/ | |
var Game = function(initialState, R, debugMode, round, sock, rootModel) { | |
this.D = min(); | |
this.vb = initialState; | |
/** @type {string} */ | |
this.R = R; | |
this.Ga = debugMode; | |
this.ma = round; | |
this.H = sock; | |
this.C = rootModel || check; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Game.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
Sj : this.vb, | |
j : this.R, | |
r : this.Ga, | |
ck : this.ma, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {string} d | |
* @param {Object} v | |
* @return {?} | |
*/ | |
var val = function(d, v) { | |
return d.sr && (d.sr.nt && (d.sr.r && d.sr.u)) ? new Game(d.sr.nt, v.j, d.sr.r, d.sr.u, v.g) : result; | |
}; | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var toggle = function(opt_attributes) { | |
/** @type {string} */ | |
var fn = ""; | |
if (opt_attributes.af && 0 < opt_attributes.af.length) { | |
/** @type {string} */ | |
fn = fn + ('<table class="sl-table" cellspacing="0" cellpadding="0" id="' + start(opt_attributes.uid) + '"><tbody><tr><td>'); | |
var employees = opt_attributes.af; | |
var l = employees.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < l;i++) { | |
fn += show({ | |
position : "left", | |
Ed : employees[i], | |
j : opt_attributes.j, | |
g : opt_attributes.g | |
}); | |
} | |
fn += "</td><td>"; | |
employees = opt_attributes.Nj; | |
l = employees.length; | |
/** @type {number} */ | |
i = 0; | |
for (;i < l;i++) { | |
fn += show({ | |
position : "right", | |
Ed : employees[i], | |
j : opt_attributes.j, | |
g : opt_attributes.g | |
}); | |
} | |
fn += "</td></tr></tbody></table>"; | |
if (opt_attributes.Je && (opt_attributes.ha && 0 < opt_attributes.ha.length)) { | |
fn += '<div class="c_">'; | |
employees = opt_attributes.ha; | |
l = employees.length; | |
/** @type {number} */ | |
i = 0; | |
for (;i < l;i++) { | |
fn += show({ | |
position : "left", | |
Ed : employees[i], | |
j : opt_attributes.j, | |
g : opt_attributes.g | |
}); | |
} | |
fn += "</div>"; | |
} | |
} | |
return func(fn); | |
}; | |
/** | |
* @param {?} e | |
* @return {?} | |
*/ | |
var show = function(e) { | |
return func("<div class='sl-" + start(e.position) + "'><a href=\"" + start(replace(e.Ed.u)) + '" class="sl" ' + slice(reject(e)) + ">" + parent(forEach({ | |
text : e.Ed.t, | |
g : e.g | |
})) + "</a></div>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var off = function(opt_attributes) { | |
/** @type {string} */ | |
var point = '<ul class="sitelinks">'; | |
var codeSegments = opt_attributes.ha; | |
var valuesLen = codeSegments.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < valuesLen;i++) { | |
var options = codeSegments[i]; | |
/** @type {string} */ | |
point = point + ('<li class="' + (2 == opt_attributes.Zf ? "twoColSitelink " : "") + start(opt_attributes.$e) + '"><div class="sitelink-spacer"><div class="sitelink-nowrap" style="direction: ' + (0 > quote(options.t) ? "rtl" : "ltr") + ';"><a href="' + start(replace(options.u)) + '" class="' + start(opt_attributes.$e) + '" ' + slice(reject(opt_attributes)) + ">" + $(options.t) + "</a></div></div></li>"); | |
} | |
return func(point + "</ul>"); | |
}; | |
/** | |
* @param {Object} args | |
* @return {?} | |
*/ | |
var remove = function(args) { | |
return func('<div class="sitelinksWrapper_js ' + start(args.nh) + '" ' + (args.uid ? ' id="' + start(args.uid) + '" ' : "") + '><div class="wideSitelinksWrapper_js">' + off({ | |
ha : args.ha, | |
j : args.j, | |
Zf : 2, | |
$e : args.Wg | |
}) + '</div><div class="narrowSitelinksWrapper_js" style="display: none;">' + off({ | |
ha : args.ha.slice(0, 3), | |
j : args.j, | |
Zf : 1, | |
$e : args.Vg | |
}) + "</div></div>"); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var removeModel = function(opt_attributes) { | |
return func(remove({ | |
uid : opt_attributes.uid, | |
ha : opt_attributes.ha, | |
j : opt_attributes.j, | |
Wg : "sitelinksTruncatedWide", | |
Vg : "sitelinksTruncatedNarrow", | |
nh : "nonSfblSitelinksWrapper" | |
})); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Array} consumerKey | |
* @param {string} R | |
* @param {Array} realm | |
* @param {?} nonceSize | |
* @param {Function} a | |
* @return {undefined} | |
*/ | |
var OAuth = function(consumerKey, R, realm, nonceSize, a) { | |
this.D = min(); | |
/** @type {Array} */ | |
this.Nb = consumerKey; | |
/** @type {string} */ | |
this.R = R; | |
/** @type {Array} */ | |
this.Aj = realm; | |
this.H = nonceSize; | |
this.C = a || toggle; | |
}; | |
/** | |
* @return {?} | |
*/ | |
OAuth.prototype.f = function() { | |
/** @type {Array} */ | |
var arrayOfArgs = []; | |
/** @type {Array} */ | |
var matched = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < this.Nb.length;i++) { | |
if (0 == i % 2) { | |
arrayOfArgs.push(this.Nb[i]); | |
} else { | |
matched.push(this.Nb[i]); | |
} | |
} | |
return this.C({ | |
uid : this.D, | |
ha : this.Nb, | |
af : arrayOfArgs, | |
Nj : matched, | |
j : this.R, | |
Je : this.Aj, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {?} v23 | |
* @return {?} | |
*/ | |
OAuth.prototype.G = function(v23) { | |
return addLink(v23, this.D); | |
}; | |
/** | |
* @param {?} v23 | |
* @param {?} url | |
* @return {?} | |
*/ | |
var addLink = function(v23, url) { | |
/** @type {Array} */ | |
var value = []; | |
var items = parseFloat(v23, url).getElementsByTagName("a"); | |
/** @type {number} */ | |
var i = 0; | |
var item; | |
for (;item = items[i];i++) { | |
value.push(new Resource(item, "&nb=6")); | |
} | |
return value; | |
}; | |
/** | |
* @param {string} value | |
* @param {Object} options | |
* @return {?} | |
*/ | |
var build = function(value, options) { | |
return value.sls && 0 < value.sls.length ? options.Mj ? new ctor(value.sls, options.j) : new OAuth(value.sls, options.j, options.Je, options.g) : result; | |
}; | |
/** | |
* @param {Array} maxNum | |
* @param {?} R | |
* @param {Function} initiator | |
* @return {undefined} | |
*/ | |
var ctor = function(maxNum, R, initiator) { | |
this.D = min(); | |
/** @type {Array} */ | |
this.Nb = maxNum; | |
this.R = R; | |
this.C = initiator || removeModel; | |
}; | |
/** | |
* @return {?} | |
*/ | |
ctor.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
ha : this.Nb, | |
j : this.R | |
}); | |
}; | |
/** | |
* @param {?} v23 | |
* @return {?} | |
*/ | |
ctor.prototype.G = function(v23) { | |
return addLink(v23, this.D); | |
}; | |
} | |
var _ColorsRef = { | |
aliceblue : "#f0f8ff", | |
antiquewhite : "#faebd7", | |
aqua : "#00ffff", | |
aquamarine : "#7fffd4", | |
azure : "#f0ffff", | |
beige : "#f5f5dc", | |
bisque : "#ffe4c4", | |
black : "#000000", | |
blanchedalmond : "#ffebcd", | |
blue : "#0000ff", | |
blueviolet : "#8a2be2", | |
brown : "#a52a2a", | |
burlywood : "#deb887", | |
cadetblue : "#5f9ea0", | |
chartreuse : "#7fff00", | |
chocolate : "#d2691e", | |
coral : "#ff7f50", | |
cornflowerblue : "#6495ed", | |
cornsilk : "#fff8dc", | |
crimson : "#dc143c", | |
cyan : "#00ffff", | |
darkblue : "#00008b", | |
darkcyan : "#008b8b", | |
darkgoldenrod : "#b8860b", | |
darkgray : "#a9a9a9", | |
darkgreen : "#006400", | |
darkgrey : "#a9a9a9", | |
darkkhaki : "#bdb76b", | |
darkmagenta : "#8b008b", | |
darkolivegreen : "#556b2f", | |
darkorange : "#ff8c00", | |
darkorchid : "#9932cc", | |
darkred : "#8b0000", | |
darksalmon : "#e9967a", | |
darkseagreen : "#8fbc8f", | |
darkslateblue : "#483d8b", | |
darkslategray : "#2f4f4f", | |
darkslategrey : "#2f4f4f", | |
darkturquoise : "#00ced1", | |
darkviolet : "#9400d3", | |
deeppink : "#ff1493", | |
deepskyblue : "#00bfff", | |
dimgray : "#696969", | |
dimgrey : "#696969", | |
dodgerblue : "#1e90ff", | |
firebrick : "#b22222", | |
floralwhite : "#fffaf0", | |
forestgreen : "#228b22", | |
fuchsia : "#ff00ff", | |
gainsboro : "#dcdcdc", | |
ghostwhite : "#f8f8ff", | |
gold : "#ffd700", | |
goldenrod : "#daa520", | |
gray : "#808080", | |
green : "#008000", | |
greenyellow : "#adff2f", | |
grey : "#808080", | |
honeydew : "#f0fff0", | |
hotpink : "#ff69b4", | |
indianred : "#cd5c5c", | |
indigo : "#4b0082", | |
ivory : "#fffff0", | |
khaki : "#f0e68c", | |
lavender : "#e6e6fa", | |
lavenderblush : "#fff0f5", | |
lawngreen : "#7cfc00", | |
lemonchiffon : "#fffacd", | |
lightblue : "#add8e6", | |
lightcoral : "#f08080", | |
lightcyan : "#e0ffff", | |
lightgoldenrodyellow : "#fafad2", | |
lightgray : "#d3d3d3", | |
lightgreen : "#90ee90", | |
lightgrey : "#d3d3d3", | |
lightpink : "#ffb6c1", | |
lightsalmon : "#ffa07a", | |
lightseagreen : "#20b2aa", | |
lightskyblue : "#87cefa", | |
lightslategray : "#778899", | |
lightslategrey : "#778899", | |
lightsteelblue : "#b0c4de", | |
lightyellow : "#ffffe0", | |
lime : "#00ff00", | |
limegreen : "#32cd32", | |
linen : "#faf0e6", | |
magenta : "#ff00ff", | |
maroon : "#800000", | |
mediumaquamarine : "#66cdaa", | |
mediumblue : "#0000cd", | |
mediumorchid : "#ba55d3", | |
mediumpurple : "#9370db", | |
mediumseagreen : "#3cb371", | |
mediumslateblue : "#7b68ee", | |
mediumspringgreen : "#00fa9a", | |
mediumturquoise : "#48d1cc", | |
mediumvioletred : "#c71585", | |
midnightblue : "#191970", | |
mintcream : "#f5fffa", | |
mistyrose : "#ffe4e1", | |
moccasin : "#ffe4b5", | |
navajowhite : "#ffdead", | |
navy : "#000080", | |
oldlace : "#fdf5e6", | |
olive : "#808000", | |
olivedrab : "#6b8e23", | |
orange : "#ffa500", | |
orangered : "#ff4500", | |
orchid : "#da70d6", | |
palegoldenrod : "#eee8aa", | |
palegreen : "#98fb98", | |
paleturquoise : "#afeeee", | |
palevioletred : "#db7093", | |
papayawhip : "#ffefd5", | |
peachpuff : "#ffdab9", | |
peru : "#cd853f", | |
pink : "#ffc0cb", | |
plum : "#dda0dd", | |
powderblue : "#b0e0e6", | |
purple : "#800080", | |
red : "#ff0000", | |
rosybrown : "#bc8f8f", | |
royalblue : "#4169e1", | |
saddlebrown : "#8b4513", | |
salmon : "#fa8072", | |
sandybrown : "#f4a460", | |
seagreen : "#2e8b57", | |
seashell : "#fff5ee", | |
sienna : "#a0522d", | |
silver : "#c0c0c0", | |
skyblue : "#87ceeb", | |
slateblue : "#6a5acd", | |
slategray : "#708090", | |
slategrey : "#708090", | |
snow : "#fffafa", | |
springgreen : "#00ff7f", | |
steelblue : "#4682b4", | |
tan : "#d2b48c", | |
teal : "#008080", | |
thistle : "#d8bfd8", | |
tomato : "#ff6347", | |
turquoise : "#40e0d0", | |
violet : "#ee82ee", | |
wheat : "#f5deb3", | |
white : "#ffffff", | |
whitesmoke : "#f5f5f5", | |
yellow : "#ffff00", | |
yellowgreen : "#9acd32" | |
}; | |
/** | |
* @param {string} str | |
* @return {?} | |
*/ | |
var parseTime = function(str) { | |
var result = {}; | |
/** @type {string} */ | |
str = String(str); | |
/** @type {string} */ | |
var value = "#" == str.charAt(0) ? str : "#" + str; | |
if (rchecked.test(value)) { | |
return result.jd = match(value), result.type = "hex", result; | |
} | |
a: { | |
/** @type {(Array.<string>|null)} */ | |
var pos = str.match(pat); | |
if (pos) { | |
/** @type {number} */ | |
value = Number(pos[1]); | |
/** @type {number} */ | |
var month = Number(pos[2]); | |
/** @type {number} */ | |
pos = Number(pos[3]); | |
if (0 <= value && (255 >= value && (0 <= month && (255 >= month && (0 <= pos && 255 >= pos))))) { | |
/** @type {Array} */ | |
value = [value, month, pos]; | |
break a; | |
} | |
} | |
/** @type {Array} */ | |
value = []; | |
} | |
if (value.length) { | |
return result.jd = serialize(value[0], value[1], value[2]), result.type = "rgb", result; | |
} | |
if (_ColorsRef && (value = _ColorsRef[str.toLowerCase()])) { | |
return result.jd = value, result.type = "named", result; | |
} | |
throw Error(str + " is not a valid color string"); | |
}; | |
/** @type {RegExp} */ | |
var cx = /#(.)(.)(.)/; | |
/** | |
* @param {string} text | |
* @return {?} | |
*/ | |
var match = function(text) { | |
if (!rchecked.test(text)) { | |
throw Error("'" + text + "' is not a valid hex color"); | |
} | |
if (4 == text.length) { | |
text = text.replace(cx, "#$1$1$2$2$3$3"); | |
} | |
return text.toLowerCase(); | |
}; | |
/** | |
* @param {number} val | |
* @param {number} index | |
* @param {number} number | |
* @return {?} | |
*/ | |
var serialize = function(val, index, number) { | |
/** @type {number} */ | |
val = Number(val); | |
/** @type {number} */ | |
index = Number(index); | |
/** @type {number} */ | |
number = Number(number); | |
if (isNaN(val) || (0 > val || (255 < val || (isNaN(index) || (0 > index || (255 < index || (isNaN(number) || (0 > number || 255 < number)))))))) { | |
throw Error('"(' + val + "," + index + "," + number + '") is not a valid RGB color'); | |
} | |
val = arrayIndexOf(val.toString(16)); | |
index = arrayIndexOf(index.toString(16)); | |
number = arrayIndexOf(number.toString(16)); | |
return "#" + val + index + number; | |
}; | |
/** @type {RegExp} */ | |
var rchecked = /^#(?:[0-9a-f]{3}){1,2}$/i; | |
/** @type {RegExp} */ | |
var pat = /^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i; | |
/** | |
* @param {string} a | |
* @return {?} | |
*/ | |
var arrayIndexOf = function(a) { | |
return 1 == a.length ? "0" + a : a; | |
}; | |
/** | |
* @param {Array} x | |
* @param {Array} obj | |
* @return {?} | |
*/ | |
var _get = function(x, obj) { | |
/** @type {Array} */ | |
var results = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < obj.length;i++) { | |
results.push({ | |
color : obj[i], | |
bg : isEmpty(obj[i], x) + makeStructured(obj[i], x) | |
}); | |
} | |
results.sort(function(b, a) { | |
return a.bg - b.bg; | |
}); | |
return results[0].color; | |
}; | |
/** | |
* @param {Array} value | |
* @param {Array} str | |
* @return {?} | |
*/ | |
var isEmpty = function(value, str) { | |
return Math.abs(Math.round((299 * value[0] + 587 * value[1] + 114 * value[2]) / 1E3) - Math.round((299 * str[0] + 587 * str[1] + 114 * str[2]) / 1E3)); | |
}; | |
/** | |
* @param {Array} obj | |
* @param {Array} v00 | |
* @return {?} | |
*/ | |
var makeStructured = function(obj, v00) { | |
return Math.abs(obj[0] - v00[0]) + Math.abs(obj[1] - v00[1]) + Math.abs(obj[2] - v00[2]); | |
}; | |
/** | |
* @param {?} obj | |
* @return {undefined} | |
*/ | |
var objectType = function(obj) { | |
this.Nf = obj; | |
}; | |
/** | |
* @return {?} | |
*/ | |
objectType.prototype.da = function() { | |
/** @type {string} */ | |
var da = "A CSS color"; | |
if (this.Nf) { | |
da += " including 'transparent'"; | |
} | |
return da; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
objectType.prototype.S = function(n) { | |
if (this.Nf && (isObject(n) && "transparent" == n.toLowerCase())) { | |
return "transparent"; | |
} | |
try { | |
return parseTime("" + n).jd; | |
} catch (b) { | |
return null; | |
} | |
}; | |
/** @type {function (): ?} */ | |
objectType.prototype.ca = tryIt; | |
var docCount = new objectType(false); | |
/** | |
* @param {Array} array | |
* @return {?} | |
*/ | |
var clean = function(array) { | |
/** @type {string} */ | |
var ret = ""; | |
array = array.Bj; | |
var ln = array.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < ln;i++) { | |
ret += '<div class="ad' + (0 == i ? " f" : "") + (i == ln - 1 ? " l" : "") + ' adUnit_js">' + array[i] + "</div>"; | |
} | |
return ret; | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var onLoad = function(opt_attributes) { | |
return "" + (opt_attributes.B.adIconUrl && ("ad-left" == opt_attributes.B.adIconLocation && opt_attributes.B.img) ? (opt_attributes.Tc ? '<a href="' + opt_attributes.B.u + '" ' + reject(opt_attributes) + 'id="' + opt_attributes.Zi + '">' : "") + '<img class="adIcon" src="' + opt_attributes.B.adIconUrl + '"/>' + (opt_attributes.Tc ? "</a>" : "") : ""); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var call = function(opt_attributes) { | |
return "" + (opt_attributes.B.adIconUrl && ("ad-left" == opt_attributes.B.adIconLocation && !opt_attributes.B.img) ? '<iframe class="adIcon" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" allowTransparency="true" sandbox="" src="' + opt_attributes.B.adIconUrl + '"></iframe>' : ""); | |
}; | |
/** | |
* @param {?} o | |
* @return {?} | |
*/ | |
var def = function(o) { | |
return "" + (o.Rd ? '<span class="' + (o.X ? $(o.X) : "") + '" id="attribution">' + (o.Pc ? '<a href="' + $(o.Pc) + '" target="_blank">' : "") + $(o.Rd) + (o.Pc ? "</a>" : "") + "</span>" : ""); | |
}; | |
/** | |
* @param {(Object|string)} o | |
* @return {?} | |
*/ | |
var toArray = function(o) { | |
var id; | |
if (o.gc) { | |
/** @type {string} */ | |
id = '<span class="' + (o.X ? $(o.X) : "") + '" id="' + $(o.id) + '">'; | |
o = o.gc; | |
o = indexOf(o, wildcardName) ? "zSoyz" : o; | |
/** @type {string} */ | |
id = id + o + "</span>"; | |
} else { | |
/** @type {string} */ | |
id = ""; | |
} | |
return "" + id; | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var onReadyStateChange = function(opt_attributes) { | |
/** @type {string} */ | |
var a = (opt_attributes.Tg ? "" : call(opt_attributes)) + '<div class="a_ b_' + (opt_attributes.B.rais && 0 < opt_attributes.B.rais.length ? " raiDiv" : "") + '" id="' + opt_attributes.uid + '">' + (opt_attributes.Tg ? "" : onLoad({ | |
B : opt_attributes.B, | |
Tc : opt_attributes.Vd, | |
j : opt_attributes.j, | |
Zi : opt_attributes.Sh | |
})) + '<div class="adD' + (opt_attributes.nk ? " nesWrapper" : "") + (opt_attributes.B.topad ? " g_" : "") + '">'; | |
var b; | |
b = opt_attributes.Uj ? func('<a href="' + start(replace(opt_attributes.B.u)) + '" class="thumbicon" style="background-image:url(\'' + start(replace(opt_attributes.B.kodachrome.u)) + "');\"" + slice(reject(opt_attributes)) + "></a>") : ""; | |
return a + b + opt_attributes.Th + opt_attributes.ai + "</div></div>" + ("" + (opt_attributes.B.adIconUrl && ("ad-left" == opt_attributes.B.adIconLocation && !opt_attributes.B.img) ? '<div style="clear: both;"></div>' : "")); | |
}; | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var trigger = function(data) { | |
return func(data.text ? '<div class="l_">' + $(data.text) + "</div>" : ""); | |
}; | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var fn = function(opt_attributes) { | |
/** @type {string} */ | |
var url = ""; | |
if (opt_attributes.Ad && 0 < opt_attributes.Ad.length) { | |
/** @type {string} */ | |
url = url + '<div class="apareviews">'; | |
var codeSegments = opt_attributes.Ad; | |
var valuesLen = codeSegments.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < valuesLen;i++) { | |
var data = codeSegments[i]; | |
data = { | |
text : data.t, | |
source : data.s, | |
Xg : data.su, | |
g : opt_attributes.g | |
}; | |
data = func(data.text ? '<div class="apareview">' + parent(forEach(data)) + " - " + (data.Xg ? '<a href="' + start(replace(data.Xg)) + '" class="reviewlink"' + slice(reject({ | |
j : true | |
})) + ">" + parent(forEach({ | |
text : data.source, | |
g : data.g | |
})) + "</a>" : parent(forEach({ | |
text : data.source, | |
g : data.g | |
}))) + "</div>" : ""); | |
/** @type {string} */ | |
url = url + data; | |
} | |
url += "</div>"; | |
} else { | |
if (opt_attributes.nb) { | |
url += parent(trigger({ | |
text : opt_attributes.nb | |
})); | |
} | |
} | |
return func(url); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} line | |
* @param {?} _arg | |
* @param {?} parentEl | |
* @param {Function} context | |
* @return {undefined} | |
*/ | |
var Text = function(line, _arg, parentEl, context) { | |
this.D = min(); | |
this.Dj = line; | |
this.ue = _arg; | |
this.H = parentEl; | |
this.C = context || fn; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Text.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
Ad : this.Dj, | |
nb : this.ue, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {string} options | |
* @param {Object} settings | |
* @return {?} | |
*/ | |
var animation = function(options, settings) { | |
var _x = options.gt && ("ar" == options.gt.r && options.gt.t) ? options.gt.t : null; | |
return options.ar && 0 < options.ar.length || _x ? new Text(options.ar, _x, settings.g) : result; | |
}; | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var _set = function(opt_attributes) { | |
/** @type {string} */ | |
var later = ""; | |
if (opt_attributes.vd && 0 < opt_attributes.vd.length) { | |
later += '<div class="m_">' + (opt_attributes.kh ? '<img class="p_" src="//www.google.com/images/afs/offer_tag_light.png" />' : ""); | |
opt_attributes = opt_attributes.vd; | |
var valuesLen = opt_attributes.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < valuesLen;i++) { | |
later += '<span class="n_">' + (0 != i ? "· " : "") + '<span class="o_">' + $(opt_attributes[i].t) + "</span> </span>"; | |
} | |
later += "</div>"; | |
} else { | |
if (opt_attributes.nb) { | |
later += parent(trigger({ | |
text : opt_attributes.nb | |
})); | |
} | |
} | |
return func(later); | |
}; | |
/** @type {null} */ | |
var bool = null; | |
/** | |
* @return {?} | |
*/ | |
var setFillAndStroke = function() { | |
if (null != bool) { | |
return bool; | |
} | |
/** @type {Element} */ | |
var container = document.createElement("div"); | |
/** @type {string} */ | |
container.style.width = "1px"; | |
/** @type {string} */ | |
container.style.height = "1px"; | |
/** @type {string} */ | |
container.style.border = "1px solid black"; | |
/** @type {string} */ | |
container.style.padding = "1px"; | |
/** @type {string} */ | |
container.style.visibility = "hidden"; | |
document.body.appendChild(container); | |
var width = container.offsetWidth; | |
document.body.removeChild(container); | |
return bool = 5 == width; | |
}; | |
/** | |
* @param {string} obj | |
* @return {?} | |
*/ | |
var isNaN = function(obj) { | |
return setShortStyleProperty(obj, true); | |
}; | |
/** | |
* @param {string} value | |
* @return {?} | |
*/ | |
var stringify = function(value) { | |
return value.replace(/<[^>^<]*>/g, ""); | |
}; | |
/** | |
* @param {Object} style | |
* @return {?} | |
*/ | |
var style = function(style) { | |
var value = style.offsetWidth; | |
if (!setFillAndStroke()) { | |
return value; | |
} | |
var doc = document.defaultView || {}; | |
if (doc && doc.getComputedStyle) { | |
style = doc.getComputedStyle(style, false); | |
value -= getComputedStyle(style.getPropertyValue("padding-left")) + getComputedStyle(style.getPropertyValue("padding-right")); | |
} else { | |
style = style.currentStyle; | |
value -= getComputedStyle(style.paddingLeft) + getComputedStyle(style.paddingRight); | |
} | |
return value; | |
}; | |
/** | |
* @param {Node} node | |
* @return {?} | |
*/ | |
var createElement = function(node) { | |
var n = node.cloneNode(true); | |
/** @type {string} */ | |
n.style.visibility = "hidden"; | |
/** @type {string} */ | |
n.style.position = "absolute"; | |
if (createTextNode()) { | |
var el = node.ownerDocument.createElement("div"); | |
/** @type {string} */ | |
el.style.visibility = "hidden"; | |
/** @type {string} */ | |
el.style.position = "relative"; | |
/** @type {string} */ | |
el.style.width = "9999px"; | |
el.appendChild(n); | |
node.parentNode.appendChild(el); | |
} else { | |
/** @type {string} */ | |
n.style.top = "0"; | |
/** @type {string} */ | |
n.style.whiteSpace = "nowrap"; | |
node.parentNode.appendChild(n); | |
} | |
node = new Node(n.offsetWidth, n.offsetHeight); | |
if (createTextNode()) { | |
el.parentNode.removeChild(el); | |
} else { | |
n.parentNode.removeChild(n); | |
} | |
return node; | |
}; | |
/** @type {RegExp} */ | |
var percentPattern = /([?|&]{1}nm=)([\d]{1,})/; | |
/** @type {RegExp} */ | |
var cjsRequireRegExp = /(\?|&)clkt=-?[\d]*/g; | |
/** @type {RegExp} */ | |
var rxhtmlTag = /[&\?]nb=\d/; | |
/** @type {RegExp} */ | |
var rSlash = /(\?|&)nx=-?[\d]+/g; | |
/** @type {RegExp} */ | |
var trimReplace = /(\?|&)ny=-?[\d]+/g; | |
/** | |
* @param {Array} ca | |
* @return {?} | |
*/ | |
var create = function(ca) { | |
return function() { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < ca.length;i++) { | |
var c = ca[i]; | |
var value = c.element.href; | |
var reqVerArray = value.match(percentPattern); | |
if (reqVerArray) { | |
if (3 == reqVerArray.length) { | |
value = value.replace(percentPattern, reqVerArray[1] + (parseInt(reqVerArray[2], 10) + 1)); | |
} | |
} else { | |
value += (-1 == value.indexOf("?") ? "?" : "&") + "nm=1"; | |
} | |
append(c, value); | |
} | |
}; | |
}; | |
/** | |
* @param {?} el | |
* @return {?} | |
*/ | |
var compile = function(el) { | |
return function() { | |
if (el.He) { | |
/** @type {string} */ | |
var post = "&clkt=" + ((new Date).getTime() - el.He); | |
var base = el.element.href; | |
base = base.replace(cjsRequireRegExp, ""); | |
append(el, base + post); | |
} | |
}; | |
}; | |
/** | |
* @param {?} el | |
* @return {?} | |
*/ | |
var postLink = function(el) { | |
return function(e) { | |
/** @type {number} */ | |
el.He = (new Date).getTime(); | |
var pos = getOffset(el.element); | |
var y = e.clientY; | |
/** @type {number} */ | |
e = Math.round(e.clientX - pos.x); | |
/** @type {number} */ | |
pos = Math.round(y - pos.y); | |
y = el.element.href; | |
y = y.replace(rSlash, ""); | |
y = y.replace(trimReplace, ""); | |
/** @type {string} */ | |
y = y + ("&nx=" + e) + ("&ny=" + pos); | |
append(el, y); | |
}; | |
}; | |
/** | |
* @param {string} result | |
* @param {string} prefix | |
* @param {string} v | |
* @return {?} | |
*/ | |
var getName = function(result, prefix, v) { | |
return-1 == result.indexOf(prefix) && (1950 > result.length + prefix.length && (result += prefix + encodeURIComponent(v), 1950 < result.length)) ? result.substring(0, 1950) : result; | |
}; | |
/** | |
* @param {?} el | |
* @param {(number|string)} o | |
* @return {undefined} | |
*/ | |
var insert = function(el, o) { | |
attach(el.element, function() { | |
var a; | |
var b; | |
try { | |
a = isNaN(o); | |
b = setShortStyleProperty(o, false); | |
} catch (e) { | |
} | |
if (a && b) { | |
var value = el.element.href; | |
value = getName(value, "&is=", [b, a].join("x")); | |
append(el, value); | |
} | |
}); | |
}; | |
/** | |
* @param {Element} element | |
* @param {?} resource_id | |
* @return {undefined} | |
*/ | |
var Resource = function(element, resource_id) { | |
this.mi = resource_id; | |
/** @type {Element} */ | |
this.element = element; | |
/** @type {null} */ | |
this.He = null; | |
}; | |
/** | |
* @param {?} container | |
* @param {?} value | |
* @return {undefined} | |
*/ | |
var append = function(container, value) { | |
var el = container.element; | |
if (!(2E3 < value.length)) { | |
/** @type {Array} */ | |
var codeSegments = []; | |
var i = el.innerHTML; | |
var first = el.firstChild; | |
for (;first;first = first.nextSibling) { | |
codeSegments.push(first.cloneNode(true)); | |
} | |
el.href = value; | |
if (isValid && el.innerHTML != i) { | |
/** @type {string} */ | |
el.innerHTML = ""; | |
/** @type {number} */ | |
i = 0; | |
for (;i < codeSegments.length;i++) { | |
el.appendChild(codeSegments[i]); | |
} | |
} | |
} | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
Resource.prototype.Qd = function() { | |
addEvent(this.element, "mouseover", create([this])); | |
addEvent(this.element, "mousedown", postLink(this)); | |
addEvent(this.element, "mouseup", compile(this)); | |
var value = this.element.href; | |
value = value.replace(rxhtmlTag, ""); | |
value = value + this.mi; | |
append(this, value); | |
}; | |
/** | |
* @param {(Array|string)} data | |
* @param {Object} e | |
* @param {number} target | |
* @param {Object} options | |
* @return {undefined} | |
*/ | |
var refresh = function(data, e, target, options) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < data.length;i++) { | |
var el = data[i]; | |
el.Qd(); | |
insert(el, target); | |
if (void 0 != options.resultUrl) { | |
var val = options.resultUrl; | |
val = void 0 == val ? document.location.href : val; | |
if ("" != val) { | |
var value = el.element.href; | |
value = getName(value, "&res_url=", val); | |
append(el, value); | |
} | |
} | |
if (void 0 != options.refererUrl) { | |
val = options.refererUrl; | |
val = void 0 == val ? document.referrer : val; | |
if ("" != val) { | |
value = el.element.href; | |
value = getName(value, "&rurl=", val); | |
append(el, value); | |
} | |
} | |
} | |
if (0 < data.length) { | |
addEvent(e, "mouseover", create(data)); | |
} | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** @type {RegExp} */ | |
var isSimple = /^https?:\/\/afs.googleusercontent.com\//; | |
/** | |
* @param {Array} images | |
* @param {string} qualifier | |
* @param {?} x | |
* @param {string} recurring | |
* @return {undefined} | |
*/ | |
var formatter = function(images, qualifier, x, recurring) { | |
if (!recurring || isSimple.test(qualifier)) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < images.length;i++) { | |
/** @type {string} */ | |
images[i].adIconUrl = qualifier; | |
images[i].adIconLocation = x; | |
/** @type {string} */ | |
images[i].img = recurring; | |
} | |
} | |
}; | |
formatter = cb(formatter, "aiIID"); | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} data | |
* @param {number} element | |
* @param {?} obj | |
* @param {Object} elements | |
* @return {undefined} | |
*/ | |
var register = function(data, element, obj, elements) { | |
if ((data = concatCall(data, elements)) && 0 < data.length) { | |
if (elements.adClicktracking) { | |
obj = send("block", "" + obj, data); | |
elements = qsa(element, "div", "b_"); | |
elements = elements.concat(qsa(element, "tr", "b_")); | |
/** @type {number} */ | |
element = 0; | |
var instance; | |
for (;instance = elements[element];element++) { | |
data = obj; | |
data = send("ad", "" + (element + 1), data); | |
bindEvents(instance, data); | |
} | |
} else { | |
bindEvents(element, data); | |
} | |
} | |
}; | |
/** | |
* @param {?} data | |
* @param {Object} elements | |
* @return {?} | |
*/ | |
var concatCall = function(data, elements) { | |
return elements.clicktracking && (data.clicktrackUrl && 0 < data.clicktrackUrl.length) ? data.clicktrackUrl : null; | |
}; | |
/** | |
* @param {Object} element | |
* @param {?} el | |
* @return {undefined} | |
*/ | |
var bindEvents = function(element, el) { | |
var codeSegments = element.getElementsByTagName("a"); | |
/** @type {number} */ | |
var i = 0; | |
for (;i < codeSegments.length;i++) { | |
var e = codeSegments[i]; | |
if (re.test(e.href)) { | |
if ("ontouchstart" in document.documentElement) { | |
addEvent(e, "touchstart", touchstart); | |
addEvent(e, "touchmove", touchmove); | |
addEvent(e, "touchend", function() { | |
if (Zf) { | |
execCommand(generate(el)); | |
} | |
/** @type {boolean} */ | |
Zf = false; | |
}); | |
} else { | |
addEvent(e, "mousedown", function(event) { | |
/** @type {boolean} */ | |
var c = false; | |
if (c = event.which ? 2 > event.which : 2 > event.button) { | |
execCommand(generate(el)); | |
} | |
}); | |
} | |
} | |
} | |
}; | |
var x; | |
var y; | |
/** @type {boolean} */ | |
var Zf = false; | |
/** | |
* @param {Object} e | |
* @return {undefined} | |
*/ | |
var touchstart = function(e) { | |
/** @type {boolean} */ | |
Zf = false; | |
e = e.touches; | |
if (1 == e.length) { | |
e = e[0]; | |
x = e.clientX; | |
y = e.clientY; | |
/** @type {boolean} */ | |
Zf = true; | |
} | |
}; | |
/** | |
* @param {Object} event | |
* @return {undefined} | |
*/ | |
var touchmove = function(event) { | |
event = event.touches[0]; | |
if (10 < Math.abs(event.clientX - x) || 10 < Math.abs(event.clientY - y)) { | |
/** @type {boolean} */ | |
Zf = false; | |
} | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Object} done | |
* @return {?} | |
*/ | |
var transform = function(done) { | |
/** @type {Array} */ | |
var out = []; | |
done = qsa(done, "div", "adUnit_js"); | |
/** @type {number} */ | |
var id = 0; | |
var matches; | |
for (;matches = done[id];id++) { | |
matches = qsa(matches, "div", "adStd"); | |
/** @type {number} */ | |
var sel = 0; | |
var copies; | |
for (;copies = matches[sel];sel++) { | |
out.push(copies); | |
} | |
} | |
return out; | |
}; | |
transform = cb(transform, "fCE"); | |
/** | |
* @param {HTMLElement} e | |
* @param {number} index | |
* @param {string} data | |
* @return {undefined} | |
*/ | |
var click = function(e, index, data) { | |
var udataCur = e.getAttribute("data-click-s"); | |
var suiteView = e.getAttribute("data-click-trg"); | |
if (udataCur) { | |
if (suiteView) { | |
addEvent(e, "click", select(udataCur, suiteView, data && 0 < data.length ? generate(send("ad", "" + (index + 1), data)) : null)); | |
} | |
} | |
}; | |
click = cb(click, "aCB"); | |
/** | |
* @param {Object} v | |
* @param {string} data | |
* @param {(number|string)} index | |
* @return {undefined} | |
*/ | |
var enter = function(v, data, index) { | |
if (data) { | |
if (0 < data.length) { | |
data = send("block", "" + index, data); | |
} | |
} | |
v = transform(v); | |
/** @type {number} */ | |
index = 0; | |
var e; | |
for (;e = v[index];index++) { | |
click(e, index, data); | |
} | |
}; | |
enter = cb(enter, "cbACB"); | |
/** | |
* @param {string} value | |
* @param {string} obj | |
* @param {Array} data | |
* @return {?} | |
*/ | |
var select = function(value, obj, data) { | |
return function(e) { | |
if (e) { | |
if (e = e.target || e.srcElement) { | |
if (3 == e.nodeType) { | |
e = e.parentNode; | |
} | |
if (!focus(e)) { | |
if (data) { | |
execCommand(data); | |
} | |
value += "&nb=2"; | |
if ("_blank" == obj) { | |
window.open(value); | |
} else { | |
/** @type {string} */ | |
window.top.location.href = value; | |
} | |
} | |
} | |
} | |
}; | |
}; | |
select = cb(select, "cbBCH"); | |
/** | |
* @param {Object} elm | |
* @return {?} | |
*/ | |
var focus = function(elm) { | |
for (;elm && !addClass(elm, "adStd");) { | |
if ("a" == elm.nodeName.toLowerCase()) { | |
return true; | |
} | |
elm = elm.parentNode; | |
} | |
return false; | |
}; | |
focus = cb(focus, "cbLTOCH"); | |
} | |
/** | |
* @param {Node} node | |
* @param {boolean} code | |
* @return {?} | |
*/ | |
var highlight = function(node, code) { | |
if (!node) { | |
return false; | |
} | |
if (3 == node.nodeType && (node.nodeValue && (code && (node.nodeValue += " ..."), 4 < node.nodeValue.length))) { | |
var text = node.nodeValue; | |
/** @type {number} */ | |
var availableTextChars = node.nodeValue.length - 1; | |
if (text.length > availableTextChars) { | |
/** @type {string} */ | |
text = text.substring(0, availableTextChars - 3) + "..."; | |
} | |
node.nodeValue = text; | |
return false; | |
} | |
text = node.textContent || node.innerText; | |
if (!text || text.length <= (code ? 0 : 4)) { | |
return node.parentNode.removeChild(node), true; | |
} | |
text = highlight(node.lastChild, code); | |
for (;text;) { | |
text = highlight(node.lastChild, text); | |
} | |
return false; | |
}; | |
/** | |
* @param {Element} node | |
* @param {number} h | |
* @return {undefined} | |
*/ | |
var hide = function(node, h) { | |
if (!(0 >= h)) { | |
var cnl = node.innerHTML.length; | |
for (;0 < cnl && node.offsetHeight > h;cnl--) { | |
/** @type {Element} */ | |
var startNode = node; | |
var code = highlight(startNode.lastChild, false); | |
for (;code;) { | |
code = highlight(startNode.lastChild, code); | |
} | |
} | |
if (node.offsetHeight > h) { | |
/** @type {string} */ | |
node.innerHTML = ""; | |
} | |
} | |
}; | |
/** | |
* @param {Element} node | |
* @param {number} opt_attributes | |
* @return {undefined} | |
*/ | |
var slide = function(node, opt_attributes) { | |
var whiteSpace = node.style.whiteSpace; | |
var wordWrap = node.style.wordWrap; | |
/** @type {string} */ | |
node.style.whiteSpace = "nowrap"; | |
/** @type {string} */ | |
node.style.wordWrap = "normal"; | |
var height = node.offsetHeight; | |
node.style.whiteSpace = whiteSpace; | |
node.style.wordWrap = wordWrap; | |
hide(node, height * opt_attributes + opt_attributes); | |
}; | |
/** | |
* @param {Element} a | |
* @param {undefined} y | |
* @param {?} content | |
* @param {?} xhtml | |
* @param {?} c | |
* @return {undefined} | |
*/ | |
var f = function(a, y, content, xhtml, c) { | |
var h = a.offsetHeight; | |
if (!(h <= y)) { | |
var t = runTest(a); | |
a = runTest(t); | |
/** @type {string} */ | |
t.style.overflow = "hidden"; | |
/** @type {string} */ | |
t.style.position = "relative"; | |
/** @type {Element} */ | |
var e = document.createElement("div"); | |
try { | |
/** @type {string} */ | |
e.style.backgroundImage = "linear-gradient(to bottom, rgba(255,255,255,0), #ffffff)"; | |
} catch (p) { | |
} | |
/** @type {string} */ | |
e.style.height = "30px"; | |
/** @type {string} */ | |
e.style.position = "absolute"; | |
/** @type {number} */ | |
e.style.bottom = 0; | |
/** @type {string} */ | |
e.style.width = "100%"; | |
/** @type {string} */ | |
e.style.pointerEvents = "none"; | |
t.appendChild(e); | |
/** @type {Element} */ | |
var element = document.createElement("div"); | |
element.innerHTML = content; | |
/** @type {string} */ | |
element.className = "expander"; | |
/** @type {string} */ | |
element.style.textAlign = "center"; | |
element.style.color = c; | |
/** @type {string} */ | |
element.style.cursor = "pointer"; | |
/** @type {string} */ | |
element.style.fontSize = "11px"; | |
a.appendChild(element); | |
/** @type {number} */ | |
var bottom = y - element.offsetHeight; | |
/** @type {string} */ | |
t.style.height = bottom + "px"; | |
/** @type {number} */ | |
var i = h - bottom; | |
/** @type {(HTMLElement|null)} */ | |
var n = document.getElementById("adBlock"); | |
/** | |
* @param {number} dataAndEvents | |
* @return {undefined} | |
*/ | |
var init = function(dataAndEvents) { | |
/** @type {(null|number)} */ | |
var h = n ? n.offsetHeight : null; | |
/** @type {string} */ | |
t.style.height = bottom + dataAndEvents * i + "px"; | |
if (0.8 <= dataAndEvents) { | |
element.innerHTML = xhtml; | |
/** @type {string} */ | |
e.style.background = ""; | |
} | |
if (n) { | |
if (h) { | |
if (n.offsetHeight > h) { | |
if (n) { | |
if (0.2 >= dataAndEvents) { | |
/** @type {string} */ | |
n.style.paddingBottom = "4px"; | |
} | |
} | |
if (n && 0.98 <= dataAndEvents) { | |
/** @type {string} */ | |
n.style.paddingBottom = "1px"; | |
} else { | |
if (n && 0.97 <= dataAndEvents) { | |
/** @type {string} */ | |
n.style.paddingBottom = "2px"; | |
} else { | |
if (n) { | |
if (0.96 <= dataAndEvents) { | |
/** @type {string} */ | |
n.style.paddingBottom = "3px"; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
if (n) { | |
if (1 == dataAndEvents) { | |
/** @type {string} */ | |
n.style.paddingBottom = ""; | |
} | |
} | |
if (window.onresize) { | |
window.onresize(); | |
} | |
}; | |
/** | |
* @param {number} dataAndEvents | |
* @return {undefined} | |
*/ | |
var drawScroll = function(dataAndEvents) { | |
/** @type {string} */ | |
t.style.height = h - dataAndEvents * i + "px"; | |
if (0.2 >= dataAndEvents) { | |
try { | |
/** @type {string} */ | |
e.style.backgroundImage = "linear-gradient(to bottom, rgba(255,255,255,0), #ffffff)"; | |
} catch (b) { | |
} | |
} | |
if (0.8 <= dataAndEvents) { | |
element.innerHTML = content; | |
} | |
if (window.onresize) { | |
window.onresize(); | |
} | |
}; | |
var memory = new report(400); | |
addEvent(element, "click", function() { | |
if (memory.rb || element.innerHTML != content) { | |
if (!memory.rb) { | |
/** @type {function (number): undefined} */ | |
memory.Cc = drawScroll; | |
tick(memory); | |
} | |
} else { | |
/** @type {function (number): undefined} */ | |
memory.Cc = init; | |
tick(memory); | |
} | |
}); | |
} | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Window} b | |
* @param {?} message | |
* @param {?} xhtml | |
* @return {undefined} | |
*/ | |
var assertEquals = function(b, message, xhtml) { | |
slide(parseFloat(b.document, message), 2); | |
addEvent(b, "resize", function() { | |
var e = parseFloat(b.document, message); | |
e.innerHTML = xhtml; | |
slide(e, 2); | |
}); | |
}; | |
/** | |
* @param {?} escape | |
* @param {string} i | |
* @param {?} page | |
* @param {?} val | |
* @param {?} index | |
* @param {?} data | |
* @param {string} list | |
* @param {?} nc | |
* @param {?} x | |
* @param {string} n | |
* @param {?} error | |
* @param {?} selection | |
* @param {?} v | |
* @param {Function} row_id | |
* @return {undefined} | |
*/ | |
var item = function(escape, i, page, val, index, data, list, nc, x, n, error, selection, v, row_id) { | |
this.D = min(); | |
this.J = escape; | |
/** @type {string} */ | |
this.O = i; | |
this.ib = min(); | |
this.N = page; | |
this.cc = val; | |
this.pb = index; | |
this.ia = data; | |
/** @type {string} */ | |
this.Xb = list; | |
this.nc = nc; | |
this.kc = x; | |
/** @type {string} */ | |
this.ec = n; | |
this.Ga = error; | |
this.sb = selection; | |
this.H = v; | |
this.$ = row_id || loop; | |
this.Ab = min(); | |
this.va = min(); | |
}; | |
/** | |
* @return {?} | |
*/ | |
item.prototype.f = function() { | |
var value = getStyle({ | |
elements : [this.ia.f(), this.N.f()] | |
}); | |
var elements = getStyle({ | |
elements : [this.J.f(), this.pb.f()] | |
}); | |
var arr = this.cc ? value : this.O.f(); | |
var computed = this.cc ? this.O.f() : value; | |
value = this.$({ | |
Ba : elements, | |
Ca : arr, | |
od : computed, | |
Bc : this.D, | |
Qb : this.ib, | |
ea : this.Xb, | |
ga : this.nc, | |
jc : this.kc, | |
dc : this.ec, | |
I : this.Ga, | |
L : this.sb, | |
yc : false, | |
g : this.H | |
}); | |
elements = this.$({ | |
Ba : elements, | |
Ca : arr, | |
od : computed, | |
Bc : this.Ab, | |
Qb : this.va, | |
I : this.Ga, | |
L : this.sb, | |
yc : true, | |
g : this.H | |
}); | |
return getStyle({ | |
elements : [value, elements] | |
}); | |
}; | |
/** | |
* @param {Window} input | |
* @return {undefined} | |
*/ | |
item.prototype.W = function(input) { | |
var html = parseFloat(input.document, this.ib).innerHTML; | |
assertEquals(input, this.ib, html); | |
if (this.va) { | |
html = parseFloat(input.document, this.va).innerHTML; | |
assertEquals(input, this.va, html); | |
} | |
if (this.Ab) { | |
addEvent(input, "resize", link(input, this.D, this.Ab)); | |
} | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
item.prototype.G = function(d) { | |
return this.J.G(d).concat(this.N.G(d)); | |
}; | |
/** | |
* @param {?} key | |
* @param {string} module | |
* @param {?} node | |
* @param {?} exports | |
* @param {?} newValue | |
* @param {string} sel | |
* @param {string} nc | |
* @param {?} force | |
* @param {string} localScope | |
* @param {?} scope | |
* @param {?} blank | |
* @param {?} t | |
* @param {?} code | |
* @return {undefined} | |
*/ | |
var a = function(key, module, node, exports, newValue, sel, nc, force, localScope, scope, blank, t, code) { | |
this.D = min(); | |
this.J = key; | |
/** @type {string} */ | |
this.O = module; | |
this.ib = min(); | |
this.N = node; | |
this.pb = exports; | |
this.ia = newValue; | |
/** @type {string} */ | |
this.Xb = sel; | |
/** @type {string} */ | |
this.nc = nc; | |
this.kc = force; | |
/** @type {string} */ | |
this.ec = localScope; | |
this.Ga = scope; | |
this.sb = blank; | |
this.H = t; | |
this.$ = code || push; | |
this.Ab = min(); | |
this.va = min(); | |
}; | |
/** | |
* @return {?} | |
*/ | |
a.prototype.f = function() { | |
var elements = getStyle({ | |
elements : [this.J.f(), this.pb.f()] | |
}); | |
var style = getStyle({ | |
elements : [this.ia.f(), " ", this.N.f(), " ", this.O.f()] | |
}); | |
var element = this.$({ | |
Ba : elements, | |
Ca : style, | |
Bc : this.D, | |
Qb : this.ib, | |
ea : this.Xb, | |
ga : this.nc, | |
jc : this.kc, | |
dc : this.ec, | |
I : this.Ga, | |
L : this.sb, | |
yc : false, | |
g : this.H | |
}); | |
elements = this.$({ | |
Ba : elements, | |
Ca : style, | |
Bc : this.Ab, | |
Qb : this.va, | |
I : this.Ga, | |
L : this.sb, | |
yc : true, | |
g : this.H | |
}); | |
return getStyle({ | |
elements : [element, elements] | |
}); | |
}; | |
/** | |
* @param {Window} input | |
* @return {undefined} | |
*/ | |
a.prototype.W = function(input) { | |
var html = parseFloat(input.document, this.ib).innerHTML; | |
assertEquals(input, this.ib, html); | |
if (this.va) { | |
html = parseFloat(input.document, this.va).innerHTML; | |
assertEquals(input, this.va, html); | |
} | |
if (this.Ab) { | |
addEvent(input, "resize", link(input, this.D, this.Ab)); | |
} | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
a.prototype.G = function(d) { | |
return this.J.G(d).concat(this.N.G(d)); | |
}; | |
/** | |
* @param {?} tileHeight | |
* @param {string} book | |
* @param {?} inputStr | |
* @param {?} author | |
* @param {?} image | |
* @param {string} nc | |
* @param {?} dataAndEvents | |
* @param {string} path | |
* @param {?} tileWidth | |
* @param {?} PREFIX | |
* @param {?} o | |
* @return {undefined} | |
*/ | |
var Type = function(tileHeight, book, inputStr, author, image, nc, dataAndEvents, path, tileWidth, PREFIX, o) { | |
this.J = tileHeight; | |
/** @type {string} */ | |
this.O = book; | |
this.N = inputStr; | |
this.ia = author; | |
this.Xb = image; | |
/** @type {string} */ | |
this.nc = nc; | |
this.kc = dataAndEvents; | |
/** @type {string} */ | |
this.ec = path; | |
this.Ga = tileWidth; | |
this.sb = PREFIX; | |
this.$ = o || ready; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Type.prototype.f = function() { | |
var style = getStyle({ | |
elements : [this.ia.f(), " ", this.J.f(), " "] | |
}); | |
var elem_styles = getStyle({ | |
elements : [" ", this.O.f(), " ", this.N.f()] | |
}); | |
return this.$({ | |
Wi : style, | |
Xi : elem_styles, | |
ea : this.Xb, | |
ga : this.nc, | |
jc : this.kc, | |
dc : this.ec, | |
I : this.Ga, | |
L : this.sb | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
Type.prototype.G = function(d) { | |
return this.J.G(d).concat(this.N.G(d)); | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {string} data | |
* @param {boolean} recurring | |
* @param {Object} o | |
* @param {string} object | |
* @param {string} type | |
* @return {undefined} | |
*/ | |
var draw = function(data, recurring, o, object, type) { | |
this.D = min(); | |
/** @type {string} */ | |
this.Lc = data; | |
/** @type {boolean} */ | |
this.caps_ = recurring; | |
/** @type {Object} */ | |
this.o = o; | |
this.C = type || onReadyStateChange; | |
object = data.ctc && data.ctc.coa ? new R(func(data.tr.c), data.ctc.u, o.j, data.tr.rtl, o.g, data.ctc.ph, !!data.ctc.ht, data.ctc.d, void 0) : new SwaggerOperation(func(data.tr.c), data.u, o.j, data.tr.rtl, o.g, void 0); | |
var options; | |
options = new Ellipse(func(data.v), data.u, o.j, o.g, void 0); | |
type = func(data.l1r && data.l1r.c ? data.l1r.c : ""); | |
var actual = func(data.l2r && data.l2r.c ? data.l2r.c : ""); | |
var attrs = data.l1r && data.l1r.rtl ? data.l1r.rtl : false; | |
type = o.ni && !o.cb ? new Color(type, actual, attrs, o.g, data.u, o.j, void 0) : new Event(type, actual, attrs, o.g, void 0); | |
actual = data.adIconUrl && "title-right" == data.adIconLocation ? new Player(data.adIconUrl, data.img ? loaded : parseStartTag) : result; | |
if (data.ctd) { | |
options = "" != data.ctd.as ? new Ellipse(data.ctd.as, data.u, o.j, o.g) : options; | |
if (attrs = data.ctd.iu) { | |
/** @type {string} */ | |
var ref = data.ctd.ih > data.ctd.iw ? "height" : "width"; | |
var u = data.u; | |
var radius = data.ctd.ir; | |
} else { | |
radius = u = ref = void 0; | |
} | |
var r = data.ctd.r; | |
var nr = data.ctd.nr; | |
switch(o.rc) { | |
case 1: | |
object = new Type(object, type, options, o.Gb, attrs, ref, u, radius, r, nr); | |
break; | |
case 2: | |
object = new a(object, type, options, actual, o.Gb, attrs, ref, u, radius, r, nr, o.g); | |
break; | |
default: | |
object = new item(object, type, options, o.dg, actual, o.Gb, attrs, ref, u, radius, r, nr, o.g); | |
} | |
} else { | |
switch(o.rc) { | |
case 1: | |
object = new Item(object, type, options, o.Gb); | |
break; | |
case 2: | |
object = new LonLat(object, type, options, actual, o.Gb); | |
break; | |
default: | |
object = new anonymous(object, type, options, o.dg, actual, o.Gb); | |
} | |
} | |
this.ta = new Validator(object, data, o); | |
/** @type {Array} */ | |
data = recurring.isHighendMobile ? recurring.reviewUnderSellerRating ? [build(data, o), val(data, o), animation(data, o), validate(data, o), calc(data, o), getter(data, o), h(data, o)] : [animation(data, o), build(data, o), val(data, o), validate(data, o), calc(data, o), getter(data, o), h(data, o)] : recurring.reviewUnderSellerRating ? [validate(data, o), calc(data, o), build(data, o), val(data, o), animation(data, o), getter(data, o)] : [animation(data, o), validate(data, o), calc(data, o), | |
build(data, o), val(data, o), getter(data, o)]; | |
this.Qc = new Float32Array(data); | |
this.Mf = min(); | |
}; | |
/** | |
* @return {?} | |
*/ | |
draw.prototype.f = function() { | |
var attributes = { | |
uid : this.D, | |
B : this.Lc, | |
j : this.o.j, | |
Th : this.ta.f(), | |
ai : this.Qc.f(), | |
Vd : this.o.cb || this.o.Vd, | |
Sh : this.Mf, | |
Uj : null, | |
Tg : null | |
}; | |
return this.C(attributes); | |
}; | |
/** | |
* @param {Window} d | |
* @param {Object} opts | |
* @return {undefined} | |
*/ | |
draw.prototype.W = function(d, opts) { | |
var memory = this.ta.G(d.document).concat(this.Qc.G(d.document)); | |
/** @type {(HTMLElement|null)} */ | |
var current = document.getElementById(this.Mf); | |
if (current) { | |
memory.push(new Resource(current, "&nb=18")); | |
} | |
current = parseFloat(d.document, this.D); | |
for (;null != current && !addClass(current, "adUnit_js");) { | |
current = current.parentElement; | |
} | |
if (current) { | |
refresh(memory, current, parseFloat(d.document, "adBlock"), opts); | |
} | |
if (this.ta.W) { | |
this.ta.W(d, opts); | |
} | |
if (this.Qc.W) { | |
this.Qc.W(d, opts); | |
} | |
}; | |
/** | |
* @param {?} yy | |
* @param {string} yylineno | |
* @param {?} yyleng | |
* @param {?} yystate | |
* @param {?} yytext | |
* @param {?} YY_START | |
* @param {Function} $avoiding_name_collisions | |
* @return {undefined} | |
*/ | |
var anonymous = function(yy, yylineno, yyleng, yystate, yytext, YY_START, $avoiding_name_collisions) { | |
this.J = yy; | |
/** @type {string} */ | |
this.O = yylineno; | |
this.N = yyleng; | |
this.cc = yystate; | |
this.pb = yytext; | |
this.ia = YY_START; | |
this.$ = $avoiding_name_collisions || use; | |
}; | |
/** | |
* @return {?} | |
*/ | |
anonymous.prototype.f = function() { | |
var cc = getStyle({ | |
elements : [this.ia.f(), this.N.f()] | |
}); | |
return this.$({ | |
Ba : getStyle({ | |
elements : [this.J.f(), this.pb.f()] | |
}), | |
Ca : this.cc ? cc : this.O.f(), | |
od : this.cc ? this.O.f() : cc | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
anonymous.prototype.G = function(d) { | |
return this.J.G(d).concat(this.N.G(d).concat(this.O.G(d))); | |
}; | |
/** | |
* @param {?} dataAndEvents | |
* @param {?} lon | |
* @param {?} lat | |
* @param {?} deepDataAndEvents | |
* @param {?} ignoreMethodDoesntExist | |
* @param {?} alt | |
* @return {undefined} | |
*/ | |
var LonLat = function(dataAndEvents, lon, lat, deepDataAndEvents, ignoreMethodDoesntExist, alt) { | |
this.J = dataAndEvents; | |
this.O = lon; | |
this.N = lat; | |
this.pb = deepDataAndEvents; | |
this.ia = ignoreMethodDoesntExist; | |
this.$ = alt || limit; | |
}; | |
/** | |
* @return {?} | |
*/ | |
LonLat.prototype.f = function() { | |
var style = getStyle({ | |
elements : [this.J.f(), this.pb.f()] | |
}); | |
var elem_styles = getStyle({ | |
elements : [this.ia.f(), this.N.f(), this.O.f()] | |
}); | |
return this.$({ | |
Ba : style, | |
Ca : elem_styles | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
LonLat.prototype.G = function(d) { | |
return this.J.G(d).concat(this.N.G(d).concat(this.O.G(d))); | |
}; | |
/** | |
* @param {?} opt_renderer | |
* @param {?} notCreate | |
* @param {?} quantity | |
* @param {?} field | |
* @return {undefined} | |
*/ | |
var Item = function(opt_renderer, notCreate, quantity, field) { | |
this.J = opt_renderer; | |
this.O = notCreate; | |
this.N = quantity; | |
this.ia = field; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Item.prototype.f = function() { | |
return getStyle({ | |
elements : [this.ia.f(), this.J.f(), this.O.f(), func("<wbr>"), this.N.f()] | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
Item.prototype.G = function(d) { | |
return this.J.G(d).concat(this.N.G(d).concat(this.O.G(d))); | |
}; | |
/** | |
* @param {?} el | |
* @param {?} model | |
* @param {?} data | |
* @param {?} featureId | |
* @return {undefined} | |
*/ | |
var Validator = function(el, model, data, featureId) { | |
this.ta = el; | |
this.Lc = model; | |
this.xd = data; | |
this.$ = featureId || onSuccess; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Validator.prototype.f = function() { | |
var code = this.ta.f(); | |
var right = this.xd; | |
var items = contains(this.Lc, right); | |
if (1 == items.length) { | |
items = items[0].f(); | |
/** @type {string} */ | |
var direction = (right = right.g) ? "right" : "left"; | |
/** @type {string} */ | |
code = "" + ('<table style="border-collapse: collapse; border-spacing: 0; width: 100%; table-layout: fixed;"><tr><td style="vertical-align: middle; padding-' + start(toString(right ? "left" : "right")) + ": " + start(toString(12)) + 'px;">' + $(code) + '</td><td style="width: ' + start(toString(78)) + "px; vertical-align: middle;" + ("border-" + start(toString(direction)) + ": 1px solid " + start(toString("#DDDDDD"))) + '">' + $(items) + "</td></tr></table>"); | |
code = func(code); | |
} | |
return this.$({ | |
content : code, | |
url : this.Lc.u, | |
cb : this.xd.cb, | |
j : this.xd.j, | |
rc : this.xd.rc | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
Validator.prototype.G = function(d) { | |
return this.ta.G(d); | |
}; | |
/** | |
* @param {Window} d | |
* @param {Object} opts | |
* @return {undefined} | |
*/ | |
Validator.prototype.W = function(d, opts) { | |
if (this.ta.W) { | |
this.ta.W(d, opts); | |
} | |
}; | |
/** | |
* @param {?} consumes | |
* @param {?} errorResponses | |
* @param {?} R | |
* @param {?} responseClass | |
* @param {?} responseMessages | |
* @param {Function} authorizations | |
* @return {undefined} | |
*/ | |
var SwaggerOperation = function(consumes, errorResponses, R, responseClass, responseMessages, authorizations) { | |
this.D = min(); | |
this.hf = consumes; | |
this.ma = errorResponses; | |
this.R = R; | |
this.Be = responseClass; | |
this.H = responseMessages; | |
this.C = authorizations || exports; | |
}; | |
/** | |
* @return {?} | |
*/ | |
SwaggerOperation.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
text : { | |
c : this.hf, | |
rtl : this.Be | |
}, | |
url : this.ma, | |
j : this.R, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {?} v23 | |
* @return {?} | |
*/ | |
SwaggerOperation.prototype.G = function(v23) { | |
return[new Resource(parseFloat(v23, this.D), "&nb=0")]; | |
}; | |
/** | |
* @param {?} n | |
* @param {?} a | |
* @param {string} r | |
* @param {?} err | |
* @param {string} t | |
* @param {?} mod | |
* @param {string} m | |
* @param {string} extra | |
* @param {Function} er | |
* @return {undefined} | |
*/ | |
var R = function(n, a, r, err, t, mod, m, extra, er) { | |
this.D = min(); | |
this.hf = n; | |
this.ma = a; | |
/** @type {string} */ | |
this.R = r; | |
this.Be = err; | |
/** @type {string} */ | |
this.H = t; | |
this.sj = mod; | |
/** @type {string} */ | |
this.Pi = m; | |
this.wi = extra || ""; | |
this.C = er || test; | |
}; | |
/** | |
* @return {?} | |
*/ | |
R.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
text : { | |
c : this.hf, | |
rtl : this.Be | |
}, | |
rj : this.sj, | |
cg : this.wi, | |
url : this.ma, | |
j : this.R, | |
g : this.H, | |
Oi : this.Pi | |
}); | |
}; | |
/** | |
* @param {?} v23 | |
* @return {?} | |
*/ | |
R.prototype.G = function(v23) { | |
return[new Resource(parseFloat(v23, this.D), "&nb=0")]; | |
}; | |
/** | |
* @param {?} radiusX | |
* @param {?} radiusY | |
* @param {?} R | |
* @param {?} y | |
* @param {Function} x | |
* @return {undefined} | |
*/ | |
var Ellipse = function(radiusX, radiusY, R, y, x) { | |
this.D = min(); | |
this.N = radiusX; | |
this.ma = radiusY; | |
this.R = R; | |
this.H = y; | |
this.C = x || execute; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Ellipse.prototype.f = function() { | |
return this.C({ | |
uid : this.D, | |
text : this.N, | |
url : this.ma, | |
j : this.R, | |
g : this.H | |
}); | |
}; | |
/** | |
* @param {?} v23 | |
* @return {?} | |
*/ | |
Ellipse.prototype.G = function(v23) { | |
return[new Resource(parseFloat(v23, this.D), "&nb=1")]; | |
}; | |
/** | |
* @param {?} opt_target | |
* @param {?} type | |
* @param {?} target | |
* @param {?} eventType | |
* @param {Function} options | |
* @return {undefined} | |
*/ | |
var Event = function(opt_target, type, target, eventType, options) { | |
this.ef = opt_target; | |
this.gf = type; | |
this.ze = target; | |
this.H = eventType; | |
this.C = options || flush; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Event.prototype.f = function() { | |
return this.C({ | |
ah : { | |
c : this.ef, | |
rtl : this.ze | |
}, | |
bh : { | |
c : this.gf | |
}, | |
g : this.H | |
}); | |
}; | |
/** | |
* @return {?} | |
*/ | |
Event.prototype.G = function() { | |
return[]; | |
}; | |
/** | |
* @param {?} a | |
* @param {?} green | |
* @param {?} rgb | |
* @param {?} b | |
* @param {?} r | |
* @param {string} R | |
* @param {?} blue | |
* @return {undefined} | |
*/ | |
var Color = function(a, green, rgb, b, r, R, blue) { | |
this.D = min(); | |
this.ef = a; | |
this.gf = green; | |
this.ze = rgb; | |
this.H = b; | |
this.ma = r; | |
/** @type {string} */ | |
this.R = R; | |
this.C = blue || write; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Color.prototype.f = function() { | |
return this.C({ | |
ah : { | |
c : this.ef, | |
rtl : this.ze | |
}, | |
bh : { | |
c : this.gf | |
}, | |
g : this.H, | |
uid : this.D, | |
url : this.ma, | |
j : this.R | |
}); | |
}; | |
/** | |
* @param {?} v23 | |
* @return {?} | |
*/ | |
Color.prototype.G = function(v23) { | |
return[new Resource(parseFloat(v23, this.D), "&nb=7")]; | |
}; | |
/** | |
* @param {?} n | |
* @param {string} cb | |
* @param {?} size | |
* @param {string} errorcallback | |
* @param {string} dirEntry | |
* @param {Array} recursive | |
* @param {string} inIt | |
* @param {?} dataAndEvents | |
* @param {?} g | |
* @param {?} j | |
* @param {?} buffer | |
* @param {?} isText | |
* @return {undefined} | |
*/ | |
var _read = function(n, cb, size, errorcallback, dirEntry, recursive, inIt, dataAndEvents, g, j, buffer, isText) { | |
this.rc = n; | |
/** @type {string} */ | |
this.cb = cb; | |
this.ni = size; | |
/** @type {string} */ | |
this.Vd = errorcallback; | |
/** @type {string} */ | |
this.dg = dirEntry; | |
/** @type {Array} */ | |
this.Je = recursive; | |
/** @type {string} */ | |
this.Gb = inIt; | |
this.ek = dataAndEvents; | |
this.g = g; | |
this.j = j; | |
this.ij = buffer; | |
this.Mj = isText; | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} buffer | |
* @param {?} bigEndian | |
* @return {undefined} | |
*/ | |
var Buffer = function(buffer, bigEndian) { | |
this.Mc = buffer; | |
this.Rj = bigEndian; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Buffer.prototype.f = function() { | |
/** @type {Array} */ | |
var eventPath = []; | |
/** @type {number} */ | |
var l = 0; | |
for (;l < this.Mc.length;l++) { | |
eventPath.push(this.Mc[l].f()); | |
} | |
return this.Rj({ | |
Bj : eventPath | |
}); | |
}; | |
/** | |
* @param {Window} d | |
* @param {Object} opts | |
* @return {undefined} | |
*/ | |
Buffer.prototype.W = function(d, opts) { | |
/** @type {number} */ | |
var conditionIndex = 0; | |
for (;conditionIndex < this.Mc.length;conditionIndex++) { | |
this.Mc[conditionIndex].W(d, opts); | |
} | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Object} o | |
* @param {Object} node | |
* @param {number} el | |
* @param {string} d | |
* @param {string} b | |
* @return {undefined} | |
*/ | |
var render = function(o, node, el, d, b) { | |
var template = scale(d); | |
var margin = _filter(d); | |
var direction = template("type") || "ads"; | |
var html = template("colorDomainLink", o.sellerFirstBoxLeft ? "#4272db" : o.linkColorSchemeVisUrlLinkColor || "#008000"); | |
var frag = template("colorTitleLink", o.sellerFirstBoxLeft ? "#4272db" : o.linkColorSchemeTitleLinkColor || "#0000CC"); | |
var size = d.width; | |
size = size && "auto" != size ? size : "100%"; | |
var tapOpts = { | |
Eb : false, | |
Gf : null, | |
Rf : null | |
}; | |
if (d.verticalSpacing) { | |
/** @type {number} */ | |
var f = Math.min(d.verticalSpacing, 12) / 2; | |
/** @type {boolean} */ | |
tapOpts.Eb = true; | |
/** @type {number} */ | |
tapOpts.Gf = Math.floor(f); | |
/** @type {number} */ | |
tapOpts.Rf = Math.ceil(f); | |
} | |
f = (f = template("colorAdSeparator")) ? f : o.isHighendMobile || o.isTablet ? "#E6E6E6" : null; | |
var result = template("colorAdBackground"); | |
var t = template("colorAdBorder"); | |
var eb = template("colorText"); | |
var frag1 = template("colorBackground"); | |
var ua = template("colorBorder"); | |
var Uc = template("colorAttribution"); | |
var Xc = template("colorPlusOnes"); | |
var Yf = template("colorKeyword"); | |
var Wc = template("colorLocation"); | |
var T = template("colorAnnotation"); | |
var optlist; | |
/** @type {Array} */ | |
optlist = [[0, 0, 0], [255, 255, 255]]; | |
if (html) { | |
var fn; | |
fn = match(html); | |
optlist = _get([parseInt(fn.substr(1, 2), 16), parseInt(fn.substr(3, 2), 16), parseInt(fn.substr(5, 2), 16)], optlist); | |
optlist = serialize(optlist[0], optlist[1], optlist[2]); | |
} else { | |
/** @type {null} */ | |
optlist = null; | |
} | |
o = { | |
A : o, | |
fi : size, | |
Bb : tapOpts, | |
Pb : f, | |
Wf : result, | |
La : t, | |
eb : eb, | |
Yc : frag, | |
Vc : html, | |
Xf : frag1, | |
ua : ua, | |
Uc : Uc, | |
Xc : Xc, | |
Yf : Yf, | |
Wc : Wc, | |
T : T, | |
pi : optlist, | |
fontFamily : template("fontFamily"), | |
de : template("fontFamilyAttribution"), | |
mb : template("fontSizeTitle"), | |
Ra : template("fontSizeDescription"), | |
Ub : template("fontSizeDomainLink"), | |
Db : template("fontSizeAttribution"), | |
ed : template("fontSizePlusOnes"), | |
dd : template("fontSizeLocation"), | |
M : template("fontSizeAnnotation"), | |
Wj : template("titleBold"), | |
ak : b, | |
Ej : template("rolloverLinkBold"), | |
Rg : template("rolloverLinkColor"), | |
Qg : template("rolloverLinkBackgroundColor"), | |
Fj : template("rolloverLinkUnderline"), | |
Pg : template("rolloverAdBackgroundColor"), | |
Ag : template("noTitleUnderline"), | |
eh : translate(o), | |
Oh : margin("adBorderSelections", "left"), | |
If : margin("adBorderSelections", "right"), | |
Ph : margin("adBorderSelections", "top"), | |
Nh : margin("adBorderSelections", "bottom"), | |
ci : margin("borderSelections", "left"), | |
Sf : margin("borderSelections", "right"), | |
di : margin("borderSelections", "top"), | |
bi : margin("borderSelections", "bottom"), | |
cb : equals(d, o), | |
xg : template("lineHeightTitle"), | |
Ce : template("lineHeightDescription"), | |
wg : template("lineHeightDomainLink"), | |
Pf : template("attributionSpacingBelow") | |
}; | |
if (template("adIconUrl")) { | |
o.Jc = template("adIconWidth"); | |
o.Jd = template("adIconHeight"); | |
o.Kd = template("adIconLocation"); | |
o.Jf = template("adIconSpacingAbove"); | |
o.Lf = template("adIconSpacingBefore"); | |
o.Kf = template("adIconSpacingAfter"); | |
o.Rh = template("adIconSpacingBelow"); | |
/** @type {boolean} */ | |
o.Ld = true; | |
} else { | |
if (template("adIconPageUrl")) { | |
o.Jc = template("adIconPageWidth"); | |
o.Jd = template("adIconPageHeight"); | |
o.Kd = template("adIconPageLocation"); | |
o.Jf = template("adIconPageSpacingAbove"); | |
o.Lf = template("adIconPageSpacingBefore"); | |
o.Kf = template("adIconPageSpacingAfter"); | |
/** @type {boolean} */ | |
o.Ld = false; | |
} | |
} | |
if ("relatedsearch" == direction) { | |
/** @type {string} */ | |
o.type = "relatedsearch"; | |
o.Cb = template("columnSpacing"); | |
o.kd = template("horizontalFlow"); | |
o.ob = template("horizontalAlignment"); | |
} | |
var value; | |
var scope; | |
/** @type {string} */ | |
direction = o.A.isRtl ? "right" : "left"; | |
/** @type {string} */ | |
d = o.A.isRtl ? "left" : "right"; | |
/** @type {string} */ | |
template = ""; | |
/** @type {string} */ | |
direction = "<style>body {" + (o.A.isHighendMobile ? "-webkit-text-size-adjust: 100%;" : "") + "color: " + (o.eb ? o.eb : "black") + "; font-family: " + (o.fk ? "'" + o.fk + "'," : "") + (o.fontFamily ? o.fontFamily : "arial") + ", sans-serif; font-size: " + (o.A.isHighendMobile || o.A.isTablet ? "14" : "12") + "px; width: " + o.fi + "; padding: 0px; margin: 0px;" + (o.ua && (o.Sf || o.If) ? "padding-right: 2px;" : "") + "}.ad {padding: 2px 0; margin: 0px; word-wrap: break-word;" + (o.Bb.Eb ? | |
"padding-top: " + o.Bb.Gf + "px; padding-bottom: " + o.Bb.Rf + "px;" : o.A.isHighendMobile || o.A.isTablet ? "padding-top: 7px;" : "") + (o.Pb ? "border-bottom: 1px solid " + o.Pb + ";" : "") + "}" + (o.Pg ? ".a_:hover {background-color: " + o.Pg + ";}" : "") + ".ad.f {" + (o.Bb.Eb ? "padding-top:2px;" : "") + "}.ad.fr {" + (o.Bb.Eb ? "padding-top:2px;" : "") + "}.ad.l {" + (o.Bb.Eb ? "padding-bottom:2px;" : "") + (o.Pb ? "border-bottom: 0px;" : "") + "}.ad.lr {" + (o.Bb.Eb ? "padding-bottom:2px;" : | |
"") + "}#adBlock b {" + (o.A.adbold ? "" : "font-weight: normal;") + (o.A.keywordColor && o.Yf ? "color: " + o.Yf + ";" : "") + "}.descText, .ctcCO {" + (o.Ra ? "font-size: " + o.Ra + "px;" : "") + "}.sr-div, .sl-table-ol td, .sl-table td, .c_ {" + (o.M ? "font-size: " + o.M + "px;" : o.Ra ? "font-size: " + o.Ra + "px;" : "") + "}" + (o.Ce || (o.A.isHighendMobile || o.A.isTablet) ? ".descText {line-height: " + (o.Ce ? o.Ce + "px" : "1.5em") + ";}" : "") + ".a_ {padding: 4px 4px; position: relative;" + | |
(o.Wf ? "background-color: " + o.Wf + ";" : "") + (o.La && o.Oh ? "border-left: 1px solid " + o.La + ";" : "") + (o.La && o.If ? "border-right: 1px solid " + o.La + ";" : "") + (o.La && o.Ph ? "border-top: 1px solid " + o.La + ";" : "") + (o.La && o.Nh ? "border-bottom: 1px solid " + o.La + ";" : "") + "}.ad span {_width: 99%;}" + (o.cb ? ".adStd {cursor: pointer; width: 100%;}" : "") + "#adBlock {background: #FFFFFF none repeat scroll 0 0; margin: 0; padding: 0;" + (o.Xf ? "background-color: " + | |
o.Xf + ";" : "") + (o.ua && o.ci ? "border-left: 1px solid " + o.ua + ";" : "") + (o.ua && o.Sf ? "border-right: 1px solid " + o.ua + ";" : "") + (o.ua && o.di ? "border-top: 1px solid " + o.ua + ";" : "") + (o.ua && o.bi ? "border-bottom: 1px solid " + o.ua + ";" : "") + "}#adBlock h2 {font-size: " + (o.Db ? o.Db : o.A.isTablet ? "15" : "13") + "px; font-weight: normal;" + (o.Pf ? "padding-bottom: " + o.Pf + "px;" : "padding: 0;") + "margin: 0;" + (o.de || o.jh ? "font-family: " + (o.jh ? | |
"'" + o.jh + "'," : "") + (o.de ? o.de + "," : "") + " sans-serif;" : "") + (o.A.isCse ? "text-align: " + direction + ";" : "") + "}#adBlock span.lhHeader {margin: 3px 4px 0;}#adBlock span.rhHeader {margin: 0 4px; float: " + d + ";" + (o.A.isHighendMobile ? "display: inline;" : "") + "position: relative; z-index: 1;}#adBlock h2 a, #adBlock h2 {color: " + (o.Uc ? o.Uc : "#676767") + "; text-decoration: none;}.titleLink, .sl-table a, .sl-table-ol a, .c_ a {color: " + o.Yc + ";}.titleLink, .ctcT a {" + | |
(o.mb ? "font-size: " + o.mb + "px;" : o.A.isHighendMobile ? "font-size: 18px;" : "") + "font-weight: " + (o.Wj ? "bold" : "normal") + ";}.titleLink {" + (o.ak ? innerHeight() : "") + "line-height: " + (o.xg ? o.xg + "px" : "1.4em") + ";" + (o.Ag ? "text-decoration: none;" : "") + (o.eh ? "letter-spacing: " + o.eh + ";" : "") + "margin: 0; padding: 0;}" + (o.Fj ? ".titleLink:hover, .domainLink:hover, .sr-rl:hover {text-decoration: underline;}a {text-decoration: none;}" : "") + "h2 a:hover {color: " + | |
(o.Uc ? o.Uc : "#676767") + "; text-decoration: none; font-weight: normal; background-color: transparent;}.domainLink {" + (o.wg ? "line-height: " + o.wg + "px;" : o.A.isHighendMobile || o.A.isTablet ? "line-height: 1.5em;" : "") + "color: " + o.Vc + "; font-style: normal; font-weight: normal;" + (o.Ub ? "font-size: " + o.Ub + "px;" : "") + "text-decoration: none;}.invisible {display: none;}.adStd.oneLine .descText {margin: 0 4px;}.adStd.twoLine .domainLink {margin-" + d + ": 8px;}.textLink {color: " + | |
(o.eb ? o.eb : "black") + "; text-decoration: none;}.individualLabel {background-color: " + o.Vc + ";" + (o.Ub ? "font-size: " + o.Ub + "px;" : "") + "color: " + o.pi + "; border-radius: 2px; padding: 0 2px; margin-" + d + ": 3px; vertical-align: baseline;}.sl-table, .c_ {visibility: hidden; margin-top: " + (o.A.isHighendMobile ? "0px" : "4px") + ";}.sl-table-ol a, .sl-table a, .c_ a {text-decoration: none;}.sl-table-ol td {vertical-align: top; padding: 0px;}.sl-table a:hover, .c_ a:hover, .sl-table-ol a:hover {text-decoration: underline;}.sl-table td {vertical-align: top; padding: 0px;}.sl-right {" + | |
(o.A.isHighendMobile ? "margin: 4px 0 4px; margin-" + direction + ": 8px;" : "margin-" + direction + ": 13px;") + "}.sl-left {" + (o.A.isHighendMobile ? "margin: 4px 0 4px; margin-" + d + ": 8px;" : "margin-" + direction + ": 12px;") + "}" + (o.A.isTablet ? "" : ".sl-table, .c_ {line-height: 1.5;}") + (o.A.isHighendMobile || o.A.isTablet ? ".sl.l {margin-" + d + ": 5px;}.sl.r {margin-" + direction + ": 5px;}" : "") + ".sitelinks {margin: 0; padding: 0; list-style-type: none; overflow: hidden;}.twoColSitelink {float: " + | |
direction + "; width: 49%;}.sitelink-spacer {padding-" + d + ": 10px;}.sitelink-nowrap {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: " + direction + ";}.plus-ones, .plus-ones a {text-decoration: none; color: " + (o.Xc ? o.Xc : o.T ? o.T : "#666666") + ";" + (o.ed ? "font-size: " + o.ed + "px;" : o.M ? "font-size: " + o.M + "px;" : "") + "}.plus-ones a:hover {text-decoration: underline;}.apareview, .reviewlink {" + (o.M ? "font-size: " + o.M + "px;" : "") + "color: " + | |
(null == (value = o.T) ? "#666666" : value) + ";}.reviewlink {text-decoration: none;}.reviewlink:hover {text-decoration: underline;}.sr-div, .sr-rl {color: " + (o.T ? o.T : o.eb ? o.eb : "#666666") + ";}.sr-rl {text-decoration: none;}.sr-rl:hover {text-decoration: underline;}.sr-gt {color: " + (null == (value = o.T) ? "#777777" : value) + ";}.sr-gl {text-decoration: none;}.sr-gl:hover {text-decoration: underline;}.sr-p {padding-right: 62px;}.sr-nsc {display: inline; position: relative;}.sr-star {position: absolute;}.sr-number {color: #F99B00;}a:hover {" + | |
(o.Ej ? "font-weight: bold;" : "") + (o.Rg ? "color: " + o.Rg + ";" : "") + (o.Qg ? "background-color: " + o.Qg + ";" : "") + "}.ctcLD {color: #676767; font-size: 80%;}.ctcI {width: 10px; height: 10px; margin-" + d + ": 1px;}.ctcCOI {width: 16px; height:16px;" + (o.A.isRtl ? '-moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH";' : "") + "}.ctcT {margin: 4px 0px 2px;}.ctcT a {" + (o.A.isHighendMobile && | |
!o.Ag ? "text-decoration: underline;" : "text-decoration: none;") + "}.ctcCO {font-weight: bold;}.ctd-tbl {border-collapse: collapse; border-spacing: 0; width: 100%; table-layout: fixed;}.ctd-td-cr {vertical-align: top; padding-" + d + ": 12px; padding-" + direction + ": 6px;}.ctd-itd {width: 45px;}.ctd-i-mini {margin-top: 5px; margin-" + d + ": 1px; margin-bottom: 0px; margin-" + direction + ": 1px; width: 16px; height: 16px;}.ctd-il {width: 45px; height: 45px; display: block; margin: auto;}.ctd-ico {border:none; vertical-align: middle;}.ctd-ico-s {" + | |
innerHeight() + "height: 100%; vertical-align: middle;}.ctd-ico.rc {border-radius:8px;}.ctd-ico.rc-mini {border-radius:4px;}.ctd-rate {color: #8d8d8d;" + innerHeight() + "font-weight: 300; margin-top:2px;}.ctd-rate-bg {background: url(//www.google.com/images/afs/mobile/ctd-star-off.png); height: 13px; width: 65px;" + innerHeight() + "vertical-align: top; white-space: nowrap;}.ctd-rate-fg {background: url(//www.google.com/images/afs/mobile/ctd-star-on.png) " + direction + " bottom; height: 13px;}.ctd-rate-txt {" + | |
innerHeight() + "vertical-align: top; white-space: nowrap;}.ctd-rate-txt.inline {margin-" + direction + ": 4px; margin-" + d + ": 4px;}.ctd-usr-ico {background: url(//www.google.com/images/afs/mobile/ctd-user-icon.png); background-position: center; background-repeat: no-repeat;" + innerHeight() + "width: 13px; height: 13px; position: relative; top: 1px; margin-" + direction + ":2px; margin-" + d + ":4px;}" + (o.Jc && (o.Jd && o.A.customAdIcons) ? ".adIcon {visibility: visible; width: " + o.Jc + | |
"px; height: " + o.Jd + "px; border: none;" + ("title-right" == o.Kd ? "padding-left: 2px; padding-right: 2px;" : "float: " + direction + "; margin-" + direction + ": " + (null == (value = o.Lf) ? 0 : value) + "px; margin-" + d + ": " + (null == (value = o.Kf) ? 4 : value) + "px; margin-top: " + (null == (value = o.Jf) ? 4 : value) + "px; margin-bottom: " + (null == (value = o.Rh) ? 0 : value) + "px;") + "}" + ("ad-left" == o.Kd ? (o.Ld ? ".adD, " : "") + ".a_ {display: block; overflow: hidden;" + | |
(o.Ld ? "" : "margin-" + direction + ": " + o.Jc + "px;") + "}" : "") : "") + ".location {color: " + (o.Wc ? o.Wc : o.T ? o.T : "#666666") + ";" + (o.dd ? "font-size: " + o.dd + "px;" : o.M ? "font-size: " + o.M + "px;" : "") + "}" + (o.A.isHighendMobile || o.A.isTablet ? ".adStd {margin-bottom: " + (o.A.isTablet ? "5" : "10") + "px;}.sr-div, .sl-table-ol, .sl-left, .sl-right, .apareview {margin-bottom: 12px;}.location, .plus-ones, .l_, .m_ {margin-bottom: 10px;}" : "") + (o.A.isHighendMobile && | |
o.A.uiExp1 ? ".adStd {clear: " + d + ";}" : "") + ".m_ {overflow: hidden; height: 1.2em; white-space: nowrap; text-overflow: ellipsis; word-wrap: normal; color: " + (null == (value = o.T) ? "#666666" : value) + ";" + (o.M ? "font-size: " + o.M + "px;" : "") + "}.n_ {white-space: normal;}.o_ {white-space: nowrap;}.p_ {width: 1em; height: 1em; vertical-align: text-bottom; margin-bottom: 1px; margin-" + d + ": 5px;}.l_ {color: " + (null == (value = o.T) ? "#666666" : value) + ";" + (o.M ? "font-size: " + | |
o.M + "px;" : "") + "}" + ("relatedsearch" == o.type ? ".radlinkC {" + (o.kd && o.mb < o.Db ? "padding: " + (1 + (o.Db - o.mb)) + "px 4px;" : "padding: 1px 4px;") + "}.col {" + (o.ob ? "text-align:" + ("right" == direction && "left" == o.ob ? "right" : "right" == direction && "right" == o.ob ? "left" : o.ob) + ";" : "") + (o.kd ? "border-" + d + ": 1px solid " + o.Pb + ";" : "") + "vertical-align: top;" + (o.Cb ? o.kd && o.ob ? "center" == o.ob ? "padding-right: " + Math.floor(o.Cb / 2) + "px; padding-left: " + | |
Math.floor(o.Cb / 2) + "px;" : "right" == o.ob ? "padding-" + direction + ": " + o.Cb + "px;" : "padding-" + d + ": " + o.Cb + "px;" : "padding-right: " + o.Cb + "px;" : "") + "}" + (o.kd ? "#adBlock h2 {float: " + direction + "; line-height: 1.4em; vertical-align: top;" + (o.mb >= o.Db ? "padding: " + (3 + (o.mb - o.Db)) + "px 4px;" : "padding: 3px 4px;") + "}.ad {border-bottom: none;}.col.l {border-" + d + ": none;}" : "#adBlock h2 {text-align: " + direction + ";}") : "") + ".raiDiv {margin-bottom: 20px;}.raiImg {margin-right: 5px; margin-top: 10px; margin-bottom: 0px; border: 1px solid #CCCCCC;}.nowrap {white-space: nowrap;}"; | |
/** @type {string} */ | |
d = (value = o.A.isRtl) ? "right" : "left"; | |
/** @type {string} */ | |
value = "" + (".buttonsWrapper {margin: 10px 0 13px; white-space: nowrap;}.inlineButton {" + parent(innerHeight()) + "box-sizing: border-box; text-align: center; border-" + $(d) + ": 1px solid #DDDDDD; vertical-align: top;}.inlineButton.firstButton {border-" + $(d) + ": none;}.button {text-align: center;}.buttonImageWrapper {margin-top: 10px; line-height: 0;}.buttonTextWrapper {margin-top: 7px;}.buttonText {text-decoration: none; color: #5897F1; font-size: 12px;}" + (value ? '.buttonImage {-moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; -ms-filter: "FlipH";}' : | |
"")); | |
value = func(value); | |
/** @type {string} */ | |
value = direction + value; | |
/** @type {string} */ | |
direction = o.A.sellerFirstBoxLeft ? ".sfblAd {padding: 17px 0;}.sfblAd.notLast {border-bottom: 1px solid " + parent(null == (scope = o.Pb) ? "#E1E1E1" : scope) + ";}.sfblNarrowPadder {padding-top: 4px;}.sfblFavicon {vertical-align: top; width: 16px; height: 16px; padding: 0 1px;}.sfblSellerNameWrapper {overflow: hidden; text-overflow: ellipsis; color: " + $(o.Vc) + "; font-size: " + parent(null == (scope = o.Ub) ? "13" : scope) + "px;}.sfblSellerNameLink {text-decoration: none; color: " + | |
$(o.Vc) + ";}.sfblSellerNameLink:hover {text-decoration: underline;}.sfblSellerRatingsWrapper {padding-top: 3px;}.sfblTitleLink {font-size: " + parent(null == (scope = o.mb) ? "15" : scope) + "px; font-weight: bold; text-decoration: none; color: " + $(o.Yc) + ";}.sfblTitleLink:hover {text-decoration: underline;}.sfblDescriptionWrapper {padding-top: 3px; color: " + parent(null == (scope = o.eb) ? "#333333" : scope) + "; font-size: " + parent(null == (scope = o.Ra) ? "13" : scope) + "px;}.sfblSitelinksWrapper {padding-top: 4px; max-width: 450px; font-size: " + | |
parent(null == (scope = o.Ra) ? "13" : scope) + "px;}.sfblSitelink {text-decoration: none; line-height: 17px; color: " + $(o.Yc) + ";}.sfblSitelink:hover {text-decoration: underline;}.plus-ones, .plus-ones a {color: " + (o.Xc ? $(o.Xc) : o.T ? $(o.T) : "#777777") + "; font-size: " + (o.ed ? $(o.ed) : o.M ? $(o.M) : "13") + "px; line-height: 1.3;}.location {color: " + (o.Wc ? $(o.Wc) : o.T ? $(o.T) : "#777777") + "; font-size: " + (o.dd ? $(o.dd) : o.M ? $(o.M) : "13") + "px; line-height: 1.3;}.apareview, .l_, .m_ {font-size: " + | |
parent(null == (scope = o.M) ? "13" : scope) + "px; color: " + parent(null == (scope = o.T) ? "#777777" : scope) + "; line-height: 1.3;}.a_ {padding: 0;}" : ""; | |
/** @type {string} */ | |
scope = template + (value + direction + ".nonSfblSitelinksWrapper {" + (o.A.isHighendMobile || o.A.isTablet ? "margin-top: 0px;" : "margin-top: 4px;") + (o.A.isHighendMobile ? "" : "margin-left: 12px;") + "max-width: 450px;}.sitelinksTruncatedNarrow, .sitelinksTruncatedWide {" + (o.M ? "font-size: " + o.M + "px;" : o.Ra ? "font-size: " + o.Ra + "px;" : "") + "text-decoration: none; line-height: 1.5; color: " + o.Yc + ";" + (o.A.isHighendMobile || o.A.isTablet ? "margin-bottom: 12px;" : "margin-bottom: 0px;") + | |
"word-wrap: normal;}.sitelinksTruncatedWide {" + (o.A.isTablet || o.A.isHighendMobile ? "line-height: normal;" : "") + "}</style>"); | |
appendChild(scope, node, el); | |
}; | |
/** | |
* @param {Object} obj | |
* @param {string} array | |
* @param {string} callback | |
* @param {Array} key | |
* @param {?} value | |
* @param {?} elem | |
* @param {Object} from | |
* @param {number} el | |
* @param {boolean} selector | |
* @return {undefined} | |
*/ | |
var first = function(obj, array, callback, key, value, elem, from, el, selector) { | |
/** @type {string} */ | |
obj = "<h2 " + (selector ? ' class="' + $(selector) + '" ' : "") + " id='attrHeader'>" + (elem ? obj ? animate({ | |
text : obj, | |
X : "rhHeader" | |
}) + "<br />" : def({ | |
Rd : callback, | |
Pc : array, | |
X : "rhHeader" | |
}) + (value ? toArray({ | |
gc : value, | |
X : "rhHeader", | |
id : "megaLabel" | |
}) : toArray({ | |
gc : key, | |
X : "lhHeader", | |
id : "adsLabel" | |
})) : obj ? animate({ | |
text : obj, | |
X : "lhHeader" | |
}) : (value ? toArray({ | |
gc : value, | |
X : "lhHeader", | |
id : "megaLabel" | |
}) : toArray({ | |
gc : key, | |
X : "rhHeader", | |
id : "adsLabel" | |
})) + def({ | |
Rd : callback, | |
Pc : array, | |
X : "lhHeader" | |
})) + "</h2>"; | |
appendChild(obj, from, el); | |
}; | |
/** | |
* @param {?} child | |
* @param {?} node | |
* @param {number} clicked | |
* @return {undefined} | |
*/ | |
var appendChild = function(child, node, clicked) { | |
if (!isObject(child)) { | |
child = child.toString(); | |
} | |
if (createTextNode()) { | |
node.populate(child); | |
} else { | |
clicked.appendChild(toDom(isNode(), child)); | |
} | |
}; | |
} | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {string} path | |
* @param {?} global | |
* @param {?} typeName | |
* @param {string} dependencies | |
* @param {?} variadic | |
* @param {?} sc | |
* @param {?} dataAndEvents | |
* @return {undefined} | |
*/ | |
var Definition = function(path, global, typeName, dependencies, variadic, sc, dataAndEvents) { | |
this.ic = resolveModule(path); | |
this.Ge = global; | |
this.wc = typeName; | |
/** @type {string} */ | |
this.Mb = dependencies; | |
this.Ob = variadic; | |
this.sc = sc; | |
this.C = dataAndEvents; | |
this.rd = min(); | |
}; | |
/** | |
* @return {?} | |
*/ | |
Definition.prototype.f = function() { | |
return this.C({ | |
la : this.ic, | |
Ya : this.wc, | |
td : this.Ge, | |
sd : this.rd, | |
V : this.Mb, | |
Y : this.Ob, | |
Da : this.sc | |
}); | |
}; | |
} | |
/** | |
* @param {?} data | |
* @return {?} | |
*/ | |
var restart = function(data) { | |
return func(data.zg ? '<table style="width: 100%"><tr class="e_"><td class="f_">' + $(data.zg) + "</td></tr></table>" : '<div id="' + start(data.jj) + '" class="kb_"><div id="' + start(data.Ij) + '" class="lb_"></div><div class="mb_" id="' + start(data.nj) + '"><span class="nb_" id="' + start(data.oj) + '"></span><div class="left ob_ fb_" id="' + start(data.Gj) + '"><img width="21" height="21" class="pb_" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAXklEQVQ4y2P4//8/A7Uxw6ih2CWwAwMgvg+iqWUoyMD3QAySvE8NQ5ENfE8Nl2IYCBKkxFCsBlJiKE4DKTH0PtRAEE5AD+RB5VKahCnNYp9m6ZRmOYo6eX+0kCYbAwBPgxTnnBag1wAAAABJRU5ErkJggg==" /></div><div class="right ob_ fb_" id="' + | |
start(data.Hj) + '"><img width="21" height="21" class="pb_" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAAXElEQVQ4y2P4//8/A7Uxw6ihuCUZGAyA+D6UxgDkGgoyEMR4j81gSlz6HpfB5BqK12BKDMVpMKWGYjWYGoaCQALUUBC+PyhdSvUwpXrs0ySd0ixHUTfvjxbSZGEA/QcU5yLp498AAAAASUVORK5CYII=" /></div></div></div>'); | |
}; | |
/** | |
* @param {?} obj | |
* @return {?} | |
*/ | |
var max = function(obj) { | |
return log(".mb_ {padding-top: 10px; text-align: right; height: 29px; font-size: 12px; color: #666666; line-height: 29px; margin-bottom: 2px;}.nb_ {padding-right: 10px; height: 100%; display: inline-block;}.fb_ {display: inline-block; text-align: center; border-radius: 2px; background: white; border: 1px solid #f3f3f3; cursor: default; white-space: nowrap; text-decoration: none; color: #444444; font-size: 11px; font-weight: bold; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;}.ob_.fb_ {height: 100%; width: 34px; font-size: inherit; position: relative;}.fb_.k_ {border: 1px solid #dcdcdc; background: #f5f5f5; z-index: 10;}.fb_.k_:active {-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); box-shadow: inset 0 1px 2px rgba(0,0,0,.1); background: #f8f8f8; color: #333;}.fb_.k_:hover {border: 1px solid #c6c6c6; z-index: 20;}.left.fb_ {border-top-right-radius: 0; border-bottom-right-radius: 0;}.right.fb_ {border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px;}.pb_ {margin-top: -3px; vertical-align: middle; filter: alpha(opacity=33); opacity: .333;}.fb_.k_:hover > .pb_ {filter: alpha(opacity=90); opacity: .9;}.fb_.k_ > .pb_ {filter: alpha(opacity=55); opacity: .55;}table {font-size: " + | |
toString(obj.fontSize) + "px; border-collapse: collapse; display: inline-table; white-space: normal; margin-right: 10px; vertical-align: top; border-top: 1px solid #ebebeb;}.kb_ {position: relative; overflow: hidden;}.lb_ {white-space: nowrap; position: relative; left: 0px;}.f_ {color: #777777;}"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} book | |
* @param {?} opt_label | |
* @param {?} chapters | |
* @param {?} index | |
* @param {?} deepCopy | |
* @param {?} opt | |
* @return {undefined} | |
*/ | |
var Component = function(book, opt_label, chapters, index, deepCopy, opt) { | |
this.ra = book; | |
this.pj = opt_label; | |
this.Lj = chapters; | |
this.hj = index; | |
this.Ni = deepCopy; | |
/** @type {number} */ | |
this.gb = 0; | |
/** @type {Array} */ | |
this.vc = []; | |
this.C = opt; | |
this.Pd = new report(300); | |
this.Bg = min(); | |
this.We = min(); | |
this.Dg = min(); | |
this.Ue = min(); | |
this.Ve = min(); | |
this.Eg = min(); | |
}; | |
p = Component.prototype; | |
/** | |
* @return {?} | |
*/ | |
p.f = function() { | |
return this.C({ | |
jj : this.Bg, | |
Ij : this.We, | |
nj : this.Dg, | |
Gj : this.Ue, | |
Hj : this.Ve, | |
oj : this.Eg, | |
zg : 0 == this.ra.length ? this.hj : "" | |
}); | |
}; | |
/** | |
* @param {number} state | |
* @param {number} val | |
* @return {?} | |
*/ | |
p.jg = function(state, val) { | |
return state == val ? this.Lj.replace("%1$d", "" + state).replace("%2$d", "" + this.ra.length) : this.pj.replace("%1$d", "" + state).replace("%2$d", "" + val).replace("%3$d", "" + this.ra.length); | |
}; | |
/** | |
* @param {Document} d | |
* @param {number} h | |
* @return {undefined} | |
*/ | |
p.mj = function(d, h) { | |
if (0 != this.ra.length) { | |
var w = parseFloat(d, this.Bg); | |
h -= w.offsetHeight; | |
var r = parseFloat(d, this.We); | |
w = w.offsetWidth; | |
var el = d.createElement("table"); | |
/** @type {string} */ | |
el.style.width = w + "px"; | |
r.appendChild(el); | |
/** @type {number} */ | |
var type = 0; | |
/** @type {number} */ | |
var j = 0; | |
for (;j < this.ra.length;j++) { | |
if (el.appendChild(fragment(this.ra[j].f())), el.offsetHeight > h) { | |
var childEl = el.removeChild(el.lastChild); | |
if (0 == type) { | |
h = el.offsetHeight; | |
} | |
this.vc.push(this.jg(type + 1, j)); | |
el = d.createElement("table"); | |
/** @type {string} */ | |
el.style.width = w + "px"; | |
r.appendChild(el); | |
el.appendChild(childEl); | |
/** @type {number} */ | |
type = j; | |
} | |
} | |
this.vc.push(this.jg(type + 1, this.ra.length)); | |
this.hh(d); | |
} | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.Uf = function() { | |
return 0 < this.gb; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.Vf = function() { | |
return this.gb < this.vc.length - 1; | |
}; | |
/** | |
* @param {Document} d | |
* @return {undefined} | |
*/ | |
p.hh = function(d) { | |
if (this.Ni && 1 == this.vc.length) { | |
/** @type {string} */ | |
parseFloat(d, this.Dg).style.display = "none"; | |
} else { | |
var key = parseFloat(d, this.Ue); | |
if (this.Uf()) { | |
close(key, "k_"); | |
} else { | |
removeClass(key, "k_"); | |
} | |
key = parseFloat(d, this.Ve); | |
if (this.Vf()) { | |
close(key, "k_"); | |
} else { | |
removeClass(key, "k_"); | |
} | |
parseFloat(d, this.Eg).innerHTML = this.vc[this.gb]; | |
} | |
}; | |
/** | |
* @param {Object} d | |
* @param {boolean} recurring | |
* @return {undefined} | |
*/ | |
p.Sg = function(d, recurring) { | |
if (!this.Pd.rb && 0 < d.getElementsByTagName("table").length) { | |
var n = parseFloat(d, this.We); | |
var gb = setShortStyleProperty(d.getElementsByTagName("table")[0], false); | |
/** @type {number} */ | |
var QUnit = gb * this.gb * -1; | |
if (recurring) { | |
this.gb--; | |
} else { | |
this.gb++; | |
} | |
this.Pd.Cc = increment(n, QUnit, gb * this.gb * -1); | |
if (!tick(this.Pd)) { | |
throw "Animator got out of sync with page state."; | |
} | |
this.hh(d); | |
} | |
}; | |
/** | |
* @param {Object} dir | |
* @return {?} | |
*/ | |
p.Gi = function(dir) { | |
return wrapper(function() { | |
if (this.Uf()) { | |
this.Sg(dir, true); | |
} | |
}, this); | |
}; | |
/** | |
* @param {Object} dir | |
* @return {?} | |
*/ | |
p.Ii = function(dir) { | |
return wrapper(function() { | |
if (this.Vf()) { | |
this.Sg(dir, false); | |
} | |
}, this); | |
}; | |
/** | |
* @param {Object} d | |
* @return {undefined} | |
*/ | |
p.Qd = function(d) { | |
if (0 != this.ra.length) { | |
var b = parseFloat(d, this.Ue); | |
addEvent(b, "click", this.Gi(d)); | |
b = parseFloat(d, this.Ve); | |
addEvent(b, "click", this.Ii(d)); | |
} | |
}; | |
} | |
/** | |
* @param {Element} options | |
* @return {?} | |
*/ | |
var next = function(options) { | |
/** @type {string} */ | |
var str = '<div style="display: none;" id="_googAFShSingleProduct"></div><style>'; | |
var value = options.$g; | |
var len = value.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < len;i++) { | |
str += toString(value[i]); | |
} | |
str += '</style><div class="ra_"><div id="' + start(options.Ef) + '">'; | |
/** @type {string} */ | |
value = '<div class="d_" id="' + start(options.xb) + '">' + $(options.title) + "</div>" + (options.U ? '<div class="wa_">' + $(options.U) + "</div>" : ""); | |
value = apply(value); | |
str += (options.ya ? parent(load({ | |
Pa : apply('<div class="ta_"><img class="ua_" src="' + start(replace(options.ya)) + '"></div>'), | |
Qa : apply("" + $(value)), | |
oa : 69, | |
$a : 10 | |
})) : $(value)) + '<div class="va_">' + $(options.Yg) + "</div></div>" + $(options.Ng) + "</div>"; | |
return func(str); | |
}; | |
/** | |
* @param {Object} options | |
* @return {?} | |
*/ | |
var update = function(options) { | |
/** @type {string} */ | |
var str = '<div style="display: none;" id="_googAFShSingleProduct"></div><style>#adBlock {width: ' + toString(options.ei) + "px;}"; | |
var value = options.$g; | |
var len = value.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < len;i++) { | |
str += toString(value[i]); | |
} | |
str += '</style><div class="ra_">'; | |
/** @type {string} */ | |
value = '<div id="' + start(options.Li) + '"><div id="' + start(options.Ef) + '"><div class="xa_"><div class="d_" id="' + start(options.xb) + '">' + $(options.title) + '</div><div class="wa_">' + $(options.U) + '</div></div><div class="va_">' + $(options.Yg) + "</div></div>" + $(options.Ng) + "</div>"; | |
value = apply(value); | |
str += (options.ya ? parent(load({ | |
Pa : apply('<div class="ta_" id="' + start(options.Mh) + '"><img src="' + start(replace(options.ya)) + '" class="ua_"/></div>' + (options.description ? '<div class="ya_" id="' + start(options.ui) + '">' + $(options.description) + "</div>" : "")), | |
Qa : apply("" + $(value)), | |
oa : 224, | |
$a : 20 | |
})) : $(value)) + "</div>"; | |
return func(str); | |
}; | |
/** | |
* @param {?} a | |
* @return {?} | |
*/ | |
var up = function(a) { | |
var ln; | |
return func('<tr class="e_">' + successCallback(a) + "<td>" + parent(null == (ln = a.V) ? "" : ln) + '</td><td class="za_">' + $(a.Ya) + "</td></tr>"); | |
}; | |
/** | |
* @param {?} data | |
* @return {?} | |
*/ | |
var successCallback = function(data) { | |
return func('<td class="ab_"><div style="position: relative;"><div style="position: absolute; max-width: 100%; white-space: nowrap;">' + parent(getElementById({ | |
href : data.la, | |
content : data.td, | |
j : data.Da, | |
na : is("bb_"), | |
Oa : data.sd | |
})) + "</div><div> </div></div></td>"); | |
}; | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var _callback = function(data) { | |
var dataText; | |
return func('<tr class="e_">' + successCallback(data) + "<td>" + parent(null == (dataText = data.V) ? "" : dataText) + "</td><td><div>" + $(data.Ya) + '</div><div class="cb_">' + $(data.Y) + '</div></td><td class="db_">' + parent(getElementById({ | |
href : data.la, | |
content : "Buy", | |
j : data.Da, | |
na : is("k_ eb_ fb_") | |
})) + "</td></tr>"); | |
}; | |
/** | |
* @param {?} options | |
* @return {?} | |
*/ | |
var setValue = function(options) { | |
return log(".e_ {border-bottom: 1px solid #ebebeb; vertical-align: middle;}.e_ td {padding: 7px 4px 7px 0;}.ab_ {width: 40%;}.e_ .za_ {text-align: right; padding: 7px 0; font-weight: bold;}.bb_ {text-decoration: none; color: " + toString(options.linkColor) + "; display: block; overflow: hidden; text-overflow: ellipsis;}.bb_:hover {text-decoration: underline;}"); | |
}; | |
/** | |
* @param {Object} that | |
* @return {?} | |
*/ | |
var download = function(that) { | |
var newY; | |
that = that || {}; | |
return func('<tr class="e_">' + successCallback(that) + '<td class="za_"><div class="gb_">' + $(that.Ya) + '</div><div class="cb_">' + parent(null == (newY = that.Y) ? "" : newY) + '</div></td><td class="hb_"><div class="ib_">' + parent(null == (newY = that.V) ? "" : newY) + "</div></td></tr>"); | |
}; | |
/** | |
* @param {?} options | |
* @return {?} | |
*/ | |
var startsWith = function(options) { | |
return log(".e_ {border-bottom: 1px solid #ebebeb; vertical-align: middle;}.e_ td {height: 50px; padding-right: 4px;}.ab_ {width: 40%;}.e_ .db_ {text-align: right; padding-right: 0;}.eb_.fb_ {padding: 0 8px; min-width: 54px; height: 27px; line-height: 27px;}.bb_ {text-decoration: none; color: " + toString(options.linkColor) + "; display: block; overflow: hidden; text-overflow: ellipsis;}.bb_:hover {text-decoration: underline;}.cb_ {color: #7d7d7d; font-size: 80%;}"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {number} obj | |
* @param {?} height | |
* @return {undefined} | |
*/ | |
var size = function(obj, height) { | |
/** @type {number} */ | |
this.Tf = obj; | |
this.maxHeight = height; | |
}; | |
var initialN = new size(10, 350); | |
var newN = new size(20, 700); | |
/** | |
* @param {?} opt_acc | |
* @param {?} interpolationPass | |
* @param {?} blendAlpha | |
* @param {?} useWebWorker | |
* @param {?} opt_height | |
* @param {?} end | |
* @param {string} time | |
* @param {string} element | |
* @param {?} new_emitter | |
* @param {?} heightOriginal | |
* @param {(HTMLElement|boolean)} widthOriginal | |
* @param {(Array|string)} start | |
* @param {?} resizeCallback | |
* @return {undefined} | |
*/ | |
var Resize = function(opt_acc, interpolationPass, blendAlpha, useWebWorker, opt_height, end, time, element, new_emitter, heightOriginal, widthOriginal, start, resizeCallback) { | |
this.Yb = opt_acc; | |
this.J = interpolationPass; | |
this.O = blendAlpha; | |
this.Sb = useWebWorker; | |
this.Yi = opt_height; | |
this.Oj = end; | |
/** @type {string} */ | |
this.gj = time + " \u25bc"; | |
/** @type {string} */ | |
this.Vi = element + " \u25b2"; | |
this.ee = new_emitter; | |
this.Me = heightOriginal; | |
/** @type {(Array|string)} */ | |
this.Qj = start; | |
this.C = resizeCallback; | |
/** @type {(HTMLElement|boolean)} */ | |
this.tb = widthOriginal; | |
/** @type {number} */ | |
this.tb.height = Math.min(this.tb.height, this.ee.maxHeight); | |
/** @type {number} */ | |
this.tb.width = Math.min(this.tb.width, 1E3); | |
this.dh = min(); | |
this.ag = min(); | |
this.Ff = min(); | |
this.Df = min(); | |
this.mg = min(); | |
}; | |
/** | |
* @return {?} | |
*/ | |
Resize.prototype.f = function() { | |
return this.C({ | |
ya : this.Yb, | |
title : this.J, | |
description : this.O, | |
U : this.Sb, | |
Yg : this.Oj, | |
Ng : this.Me.f(), | |
ei : this.tb.width, | |
$g : this.Qj, | |
xb : this.dh, | |
ui : this.ag, | |
Ef : this.Ff, | |
Mh : this.Df, | |
Li : this.mg | |
}); | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
Resize.prototype.Ki = function(d) { | |
return parseFloat(d, "adBlock").offsetWidth; | |
}; | |
/** | |
* @param {Object} d | |
* @return {undefined} | |
*/ | |
Resize.prototype.xj = function(d) { | |
this.bk(d); | |
var targetHeight = parseFloat(d, this.Ff).offsetHeight; | |
targetHeight = targetHeight + 2 * this.ee.Tf; | |
this.Me.mj(d, this.tb.height - targetHeight); | |
this.Me.Qd(d); | |
}; | |
/** | |
* @param {Object} c | |
* @return {undefined} | |
*/ | |
Resize.prototype.bk = function(c) { | |
var item = parseFloat(c, this.dh); | |
slide(item, 3); | |
if (item = c.getElementById(this.ag)) { | |
var targetHeight = isNaN(parseFloat(c, this.Df)); | |
targetHeight = targetHeight + 2 * this.ee.Tf; | |
isNaN(parseFloat(c, this.mg)); | |
f(item, this.tb.height - targetHeight - 50, this.gj, this.Vi, this.Yi); | |
} | |
}; | |
/** | |
* @param {Element} self | |
* @param {Object} data | |
* @param {?} evt | |
* @param {?} type | |
* @param {boolean} models | |
* @return {?} | |
*/ | |
var reset = function(self, data, evt, type, models) { | |
var callback; | |
var args; | |
var action; | |
/** @type {Array} */ | |
var _results = []; | |
/** @type {null} */ | |
var n = null; | |
var linkColor = self.lc || "#0651cf"; | |
switch(self.id) { | |
case 1: | |
; | |
case "SMALL_FORMAT": | |
/** @type {function (?): ?} */ | |
callback = up; | |
/** @type {function (?): ?} */ | |
args = restart; | |
/** @type {function (Element): ?} */ | |
action = next; | |
_results.push(setValue({ | |
linkColor : linkColor | |
})); | |
_results.push(log(max({ | |
fontSize : 12 | |
}))); | |
_results.push(log("#adBlock {font-family: arial; font-size: 0; width: 300px; background: white;}.d_ {font-size: 18px; font-weight: bold; color: #222222; word-wrap: break-word;}.ra_ {padding: 9px; border: 1px solid #e0e0e0;}.ua_ {max-width: 67px; max-height: 67px; vertical-align: middle;}.ta_ {width: 67px; height: 67px; border: 1px solid #eeeeee; text-align: center; line-height: 67px;}.va_ {padding: 10px 0; font-size: 12px; font-weight: bold; color: #222222;}.wa_ {color: #787878; font-size: 13px;}")); | |
if (type) { | |
/** @type {function (Object): ?} */ | |
callback = download; | |
_results.push(log(".e_ .hb_ {padding: 7px 0; width: 46px;}.e_ .za_ {text-align: left; padding-right: 4px;}.cb_ {color: #7d7d7d; font-size: 90%; font-weight: normal;}")); | |
} | |
n = initialN; | |
break; | |
case 3: | |
; | |
case "WIDE_FORMAT": | |
/** @type {function (Object): ?} */ | |
callback = _callback; | |
/** @type {function (?): ?} */ | |
args = restart; | |
/** @type {function (Object): ?} */ | |
action = update; | |
_results.push(startsWith({ | |
linkColor : linkColor | |
})); | |
_results.push(log(max({ | |
fontSize : 14 | |
}))); | |
_results.push(log("#adBlock {font-family: arial; font-size: 0; background: white;}.ra_ {padding: 19px; border: 1px solid #e0e0e0;}.ua_ {max-width: 222px; max-height: 222px; vertical-align: middle;}.ta_ {width: 222px; height: 222px; border: 1px solid #eeeeee; text-align: center; line-height: 222px; margin-bottom: 20px;}.ya_ {font-size: 12px; line-height: 18px; color: #222222; word-wrap: break-word;}.xa_ {padding-bottom: 20px;}.d_ {font-size: 18px; font-weight: bold; color: #222222; word-wrap: break-word;}.wa_ {color: #7d7d7d; font-size: 13px;}.va_ {font-size: 14px; font-weight: bold; color: #222222; padding-bottom: 8px;}")); | |
n = newN; | |
break; | |
default: | |
return util.log({ | |
message : "Jackpot block json failed to provide a known format." | |
}, "crjc"), null; | |
} | |
/** @type {Array} */ | |
var app = []; | |
if (self.offers) { | |
app = connect(self.offers, function(data) { | |
return new Definition(data.u, data.m, data.pr, data.s, type && data.ppu ? data.ppu : "", evt, callback); | |
}); | |
} | |
models = new Component(app, data.pt, data.sipt, data.nl, models, args); | |
return new Resize(self.pd.i, self.pd.t, self.pd.d, type && self.pd.er ? self.pd.er : "", linkColor, data.sl, data.m, data.l, n, models, new Node(self.mw, self.mh), _results, action); | |
}; | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var createDom = function(opt_attributes) { | |
return func('<div class="button" id="' + start(opt_attributes.li) + '">' + $(opt_attributes.ji) + '<div class="q_ j_" id="' + start(opt_attributes.hi) + '"><div class="r_ s_"><div class="t_"><div class="u_">' + $(opt_attributes.gi) + '</div></div><div class="r_ v_"> </div></div></div></div>'); | |
}; | |
/** | |
* @param {?} o | |
* @return {?} | |
*/ | |
var positionTooltip = function(o) { | |
return log(".button {position: relative;" + toString(innerHeight()) + "}.t_ {position: absolute;" + toString(errorHandler({ | |
value : valid("0 4px 16px rgba(0, 0, 0, 0.2)") | |
})) + "width: " + toString(o.Sc) + "px; bottom: " + toString(o.ja ? o.Of : 9) + "px; right: " + toString(o.ja ? 8 : o.Of) + "px; background: white;}.u_ {border: 1px solid #CCCCCC; padding: 10px; word-wrap: break-word;}.q_ {position: absolute; cursor: default;}.q_.j_ {visibility: hidden;}.r_ {width: 0; border-style: solid; border-" + toString(o.ja ? "left" : "top") + "-color: #CCCCCC; border-" + toString(o.ja ? "top" : "left") + "-color: transparent; border-right-color: transparent; border-bottom-color: transparent;}.r_.s_ {border-width: 10px; border-" + | |
toString(o.ja ? "right" : "bottom") + "-width: 0; position: absolute; bottom: " + toString(o.ja ? 17 : 41) + "px; left: " + toString(o.ja ? -5 : 2) + "px;}.r_.v_ {border-width: 9px; border-" + toString(o.ja ? "right" : "bottom") + "-width: 0; border-" + toString(o.ja ? "left" : "top") + "-color: white; position: absolute; margin-" + toString(o.ja ? "left" : "top") + ": -10px; margin-" + toString(o.ja ? "top" : "left") + ": -9px;}"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} pseudoQuote | |
* @param {?} ua | |
* @param {number} inError | |
* @param {number} pseudoMarker | |
* @param {string} strict | |
* @param {Function} rawMatch | |
* @param {string} attributeQuote | |
* @return {undefined} | |
*/ | |
var parser = function(pseudoQuote, ua, inError, pseudoMarker, strict, rawMatch, attributeQuote) { | |
this.Td = min(); | |
this.Rc = min(); | |
this.ki = pseudoQuote; | |
this.Sd = ua; | |
/** @type {number} */ | |
this.ii = inError; | |
/** @type {number} */ | |
this.Wh = pseudoMarker; | |
/** @type {string} */ | |
this.Xh = strict; | |
this.C = rawMatch || createDom; | |
this.bf = attributeQuote || positionTooltip; | |
}; | |
p = parser.prototype; | |
/** | |
* @return {?} | |
*/ | |
p.f = function() { | |
return this.C({ | |
li : this.Td, | |
hi : this.Rc, | |
ji : this.ki.f(), | |
gi : this.Sd.f() | |
}); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.te = function() { | |
return this.bf({ | |
Sc : this.ii, | |
Of : this.Wh, | |
ja : this.Xh | |
}); | |
}; | |
/** | |
* @param {Object} context | |
* @return {?} | |
*/ | |
p.Ei = function(context) { | |
var args = this; | |
return function(obj) { | |
if (!visit(obj.target || obj.srcElement, args.Rc)) { | |
if (obj = context.getElementById(args.Rc)) { | |
if (obj.classList) { | |
obj.classList.toggle("j_"); | |
} else { | |
if (addClass(obj, "j_")) { | |
removeClass(obj, "j_"); | |
} else { | |
close(obj, "j_"); | |
} | |
} | |
} | |
} | |
}; | |
}; | |
/** | |
* @param {Object} context | |
* @return {?} | |
*/ | |
p.Fi = function(context) { | |
var args = this; | |
return function(obj) { | |
if (!visit(obj.target || obj.srcElement, args.Td)) { | |
if (obj = context.getElementById(args.Rc)) { | |
close(obj, "j_"); | |
} | |
} | |
}; | |
}; | |
/** | |
* @param {Object} context | |
* @return {undefined} | |
*/ | |
p.Md = function(context) { | |
var failuresLink = context.getElementById(this.Td); | |
if (failuresLink) { | |
addEvent(failuresLink, "click", this.Ei(context)); | |
addEvent(context.body, "click", this.Fi(context)); | |
} | |
}; | |
/** | |
* @param {?} deepDataAndEvents | |
* @return {?} | |
*/ | |
p.Wb = function(deepDataAndEvents) { | |
return this.Sd.Wb(deepDataAndEvents); | |
}; | |
/** | |
* @param {?} win | |
* @return {undefined} | |
*/ | |
p.Ac = function(win) { | |
this.Sd.Ac(win); | |
}; | |
} | |
/** | |
* @param {?} opt_attributes | |
* @return {?} | |
*/ | |
var onComplete = function(opt_attributes) { | |
return func('<div style="font-size: 14px;"><div><a href="' + start(replace(opt_attributes.la)) + '" style="color: #281ab3; text-decoration: none" id="' + start(opt_attributes.xb) + '" ' + slice(reject(opt_attributes)) + ">" + $(opt_attributes.title) + '</a></div><div id="' + start(opt_attributes.zi) + '"><div style="color: #222222; font-weight: bold;">' + $(opt_attributes.Ya) + '</div><div style="color: #777777; font-size: 13px;">' + (opt_attributes.V ? "<div>" + $(opt_attributes.V) + "</div>" : | |
"") + (opt_attributes.Y ? "<div>" + $(opt_attributes.Y) + "</div>" : "") + (opt_attributes.U ? "<div>" + $(opt_attributes.U) + "</div>" : "") + "</div></div></div>"); | |
}; | |
/** | |
* @return {?} | |
*/ | |
var err2 = function() { | |
return func('<div style="width: 30px; height: 42px;"><div style="cursor: pointer; width: 15px; padding-left: 5px;"><div style="width: 5px; padding-left: 5px; padding-top: 7px;"><div style="height: 5px; background: gray; margin-bottom: 2px; border-radius: 50%;"> </div><div style="height: 5px; background: gray; margin-bottom: 2px; border-radius: 50%;"> </div><div style="height: 5px; background: gray; border-radius: 50%;"> </div></div></div></div>'); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} node | |
* @param {?} partialText | |
* @param {?} clonePartiallySelectedTextNodes | |
* @param {?} dataAndEvents | |
* @param {?} deepDataAndEvents | |
* @param {?} ignoreMethodDoesntExist | |
* @param {?} sc | |
* @param {?} textAlt | |
* @param {Function} opt_reverse | |
* @return {undefined} | |
*/ | |
var RangeIterator = function(node, partialText, clonePartiallySelectedTextNodes, dataAndEvents, deepDataAndEvents, ignoreMethodDoesntExist, sc, textAlt, opt_reverse) { | |
this.ic = node; | |
this.J = partialText; | |
this.wc = clonePartiallySelectedTextNodes; | |
this.Mb = dataAndEvents; | |
this.Ob = deepDataAndEvents; | |
this.Sb = ignoreMethodDoesntExist; | |
this.sc = sc; | |
this.bj = textAlt; | |
this.C = opt_reverse || onComplete; | |
this.wb = min(); | |
this.ig = min(); | |
}; | |
/** | |
* @return {?} | |
*/ | |
RangeIterator.prototype.f = function() { | |
return this.C({ | |
la : this.ic, | |
title : this.J, | |
xb : this.wb, | |
Ya : this.wc, | |
V : this.Mb, | |
Y : this.Ob, | |
U : this.Sb, | |
j : this.sc, | |
zi : this.ig | |
}); | |
}; | |
/** | |
* @param {?} deepDataAndEvents | |
* @return {?} | |
*/ | |
RangeIterator.prototype.Wb = function(deepDataAndEvents) { | |
return[new Resource(parseFloat(deepDataAndEvents, this.wb), "&nb=0")]; | |
}; | |
/** | |
* @param {?} win | |
* @return {undefined} | |
*/ | |
RangeIterator.prototype.Ac = function(win) { | |
var node = win.document.getElementById(this.ig); | |
if (node) { | |
hide(win.document.getElementById(this.wb), this.bj - node.offsetHeight); | |
} | |
}; | |
/** | |
* @param {Function} err | |
* @return {undefined} | |
*/ | |
var IdentityMatrix = function(err) { | |
this.C = err || err2; | |
}; | |
/** | |
* @return {?} | |
*/ | |
IdentityMatrix.prototype.f = function() { | |
return this.C({}); | |
}; | |
/** | |
* @param {Object} data | |
* @param {number} quat | |
* @param {number} scopes | |
* @param {string} val | |
* @param {number} v23 | |
* @param {number} opt_attributes | |
* @param {boolean} recurring | |
* @return {?} | |
*/ | |
var inverse = function(data, quat, scopes, val, v23, opt_attributes, recurring) { | |
data = new RangeIterator(val, data.t, data.pr, data.s, data.ppu, data.er, v23, scopes); | |
return new parser(new IdentityMatrix, data, quat, opt_attributes, recurring); | |
}; | |
} | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var initialize = function(data) { | |
/** @type {string} */ | |
var copies = '<div class="tb_ b_" id="' + start(data.Fg) + '"><div class="ub_">'; | |
/** @type {string} */ | |
var frame = '<div class="yb_"><div style="position: absolute;" class="zb_">' + parent(getElementById({ | |
href : data.la, | |
content : data.title, | |
j : data.Da, | |
na : is("ac_"), | |
Oa : data.xb | |
})) + '</div><div id="' + start(data.Gg) + '" style="position: absolute; bottom: 0;">'; | |
/** @type {string} */ | |
frame = frame + ('<div class="bc_" style="padding-bottom: ' + start(toString(data.wd && (data.V || (data.U || data.Y)) ? 2 : 4)) + 'px;"><span class="gb_" title="' + start(data.Jg) + '">' + $(data.Ya) + "</span></div>" + (data.wd ? (data.V ? '<div class="cc_" title="' + start(data.V) + '">' + $(data.V) + "</div>" : "") + (data.U ? '<div class="cc_" title="' + start(data.U) + '">' + $(data.U) + "</div>" : "") + (data.Y ? '<div class="cc_" title="' + start(data.Y) + '">' + $(data.Y) + "</div>" : | |
"") : "") + '<div class="dc_">' + parent(getElementById({ | |
href : data.la, | |
content : data.td, | |
j : data.Da, | |
na : is("ec_"), | |
Oa : data.sd | |
})) + "</div></div></div>"); | |
/** @type {string} */ | |
copies = copies + parent(load({ | |
Pa : apply("<div>" + parent(getElementById({ | |
href : data.la, | |
content : apply('<div class="vb_" style="background-image:url(' + start(replace(data.ya)) + ');"><div class="va_">' + $(data.Qf) + "</div></div>"), | |
j : data.Da, | |
na : is("xb_"), | |
Oa : data.qg | |
})) + "</div>"), | |
Qa : apply(frame), | |
oa : data.ve, | |
$a : data.$b | |
})); | |
/** @type {string} */ | |
copies = copies + ('<div style="position: absolute; bottom: -8px; right: -6px;">' + $(data.Mg) + "</div></div></div>"); | |
return func(copies); | |
}; | |
/** | |
* @param {Object} d | |
* @return {?} | |
*/ | |
var s = function(d) { | |
return log(".tb_ {background: white; margin-right: " + toString(d.ac) + "px; margin-bottom: " + toString(d.ac) + "px;" + (d.fg ? toString(errorHandler({ | |
value : valid("1px 2px 1px rgba(0, 0, 0, 0.1)") | |
})) + "border: 1px solid #E0E0E0; box-sizing: border-box; border-radius: 3px;" : toString(errorHandler({ | |
value : valid("0 2px 1px rgba(0, 0, 0, 0.1), 0 0 1px rgba(0, 0, 0, 0.1)") | |
})) + "border-radius: 2px;") + "width: " + toString(d.Uh) + "px; height: " + toString(d.Qh) + "px;" + toString(innerHeight()) + "}.ub_ {" + (d.fg ? "padding: " + toString(d.$b - 1) + "px;" : "padding: " + toString(d.$b) + "px;") + "position: relative;}.xb_ {text-decoration: none;}.vb_ {width: " + toString(d.ve) + "px; height: " + toString(d.Qi) + "px; background-repeat: no-repeat; background-position: center; background-size: contain; cursor: pointer; position: relative;}.yb_ {position: relative; height: " + | |
toString(d.si) + "px;}.ac_ {color: " + toString(d.Xj) + "; font-size: " + toString(d.Zj) + "px; text-decoration: none;}.zb_ {width: " + toString(d.Zc) + "px; word-wrap: break-word;}.gb_ {font-size: " + toString(d.uj) + "px; font-weight: bold; color: " + toString(d.Ig) + ";}.bc_ {color: " + toString(d.Ig) + "; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: " + toString(d.Zc - d.Sc) + "px;}.ec_ {color: " + toString(d.yg) + "; text-decoration: none;}.dc_ {font-size: " + toString(d.dj) + | |
"px; padding-bottom: 2px; color: " + toString(d.yg) + "; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: " + toString(d.Zc - d.Sc) + "px;}.va_ {font-size: 13px;" + toString(innerHeight()) + "text-decoration: none; background-color: #555555; position: absolute; bottom: 1px; left: 1px; padding: 0 3px; color: white; border-radius: 2px;}.cc_ {font-size: 12px; color: #777777; padding-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: " + toString(d.Zc) + | |
"px;}" + toString(d.yi)); | |
}; | |
/** | |
* @param {Object} data | |
* @return {?} | |
*/ | |
var assert = function(data) { | |
/** @type {string} */ | |
var copies = '<div class="tb_ b_" id="' + start(data.Fg) + '"><div class="ub_"><div>' + parent(getElementById({ | |
href : data.la, | |
content : apply('<div class="vb_" style="background-image:url(' + start(replace(data.ya)) + ');"><div class="va_">' + $(data.Qf) + "</div></div>"), | |
j : data.Da, | |
na : is("xb_"), | |
Oa : data.qg | |
})) + '</div><div class="yb_"><div style="position: absolute;" class="zb_">' + parent(getElementById({ | |
href : data.la, | |
content : data.title, | |
j : data.Da, | |
na : is("ac_"), | |
Oa : data.xb | |
})) + '</div><div id="' + start(data.Gg) + '" style="position: absolute; bottom: 0;">'; | |
/** @type {string} */ | |
copies = copies + ('<div class="bc_" style="padding-bottom: ' + start(toString(data.wd && (data.V || (data.U || data.Y)) ? 2 : 4)) + 'px;"><span class="gb_" title="' + start(data.Jg) + '">' + $(data.Ya) + "</span></div>" + (data.wd ? (data.V ? '<div class="cc_" title="' + start(data.V) + '">' + $(data.V) + "</div>" : "") + (data.U ? '<div class="cc_" title="' + start(data.U) + '">' + $(data.U) + "</div>" : "") + (data.Y ? '<div class="cc_" title="' + start(data.Y) + '">' + $(data.Y) + "</div>" : | |
"") : "") + '<div class="dc_">' + parent(getElementById({ | |
href : data.la, | |
content : data.td, | |
j : data.Da, | |
na : is("ec_"), | |
Oa : data.sd | |
})) + '</div></div><div style="position: absolute; bottom: -14px; right: -14px;">' + $(data.Mg) + "</div></div></div></div>"); | |
return func(copies); | |
}; | |
/** | |
* @param {Object} a | |
* @return {?} | |
*/ | |
var wrap = function(a) { | |
return log(toString(s(a)) + ".vb_ {margin-bottom: " + toString(a.$b) + "px;}"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Object} data | |
* @param {Object} self | |
* @param {?} allBindingsAccessor | |
* @param {?} depMaps | |
* @param {?} rootjQuery | |
* @param {?} opt_setup | |
* @param {?} mojitSpec | |
* @param {?} mojitProxy | |
* @param {?} viewModel | |
* @param {string} opt_handler | |
* @param {string} bindingContext | |
* @param {string} curVal | |
* @param {?} apiKey | |
* @param {?} allBindings | |
* @return {undefined} | |
*/ | |
var init = function(data, self, allBindingsAccessor, depMaps, rootjQuery, opt_setup, mojitSpec, mojitProxy, viewModel, opt_handler, bindingContext, curVal, apiKey, allBindings) { | |
this.Zh = allBindingsAccessor; | |
this.ic = depMaps; | |
this.J = data.t; | |
this.Ge = data.m; | |
this.wc = data.pr; | |
this.Yb = data.i; | |
this.Mb = data.s; | |
this.Ob = data.ppu; | |
this.Sb = data.er; | |
/** @type {string} */ | |
this.zj = curVal; | |
this.Mi = self.h; | |
this.gk = self.w; | |
this.ye = rootjQuery; | |
this.tg = opt_setup; | |
this.Ri = self.ih; | |
this.rg = self.iw; | |
this.$f = mojitSpec; | |
this.ti = mojitProxy; | |
this.$j = self.ts; | |
this.ej = self.ms; | |
this.vj = self.ps; | |
this.Yj = self.tc; | |
this.cj = self.mc; | |
this.tj = self.pc; | |
this.sc = viewModel; | |
/** @type {string} */ | |
this.xi = opt_handler; | |
/** @type {string} */ | |
this.ka = bindingContext; | |
this.bf = apiKey; | |
this.C = allBindings; | |
this.ng = min(); | |
this.pg = min(); | |
this.wb = min(); | |
this.rd = min(); | |
this.Hg = min(); | |
}; | |
p = init.prototype; | |
/** | |
* @return {?} | |
*/ | |
p.f = function() { | |
var failureMessage = this.ka ? this.ka.f() : ""; | |
return this.C({ | |
Fg : this.ng, | |
Qf : this.Zh, | |
la : this.ic, | |
ya : this.Yb, | |
qg : this.pg, | |
title : this.J, | |
xb : this.wb, | |
Ya : this.wc, | |
td : this.Ge, | |
sd : this.rd, | |
Gg : this.Hg, | |
ve : this.rg, | |
$b : this.tg, | |
Jg : this.ri(), | |
Da : this.sc, | |
Mg : failureMessage, | |
V : this.Mb, | |
Y : this.Ob, | |
U : this.Sb, | |
wd : this.zj | |
}); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.te = function() { | |
var failureMessage = this.ka ? this.ka.te() : ""; | |
return this.bf({ | |
Uh : this.gk, | |
Qh : this.Mi, | |
ac : this.ye, | |
$b : this.tg, | |
Qi : this.Ri, | |
ve : this.rg, | |
si : this.$f, | |
Zc : this.ti, | |
Zj : this.$j, | |
dj : this.ej, | |
uj : this.vj, | |
Xj : this.Yj, | |
yg : this.cj, | |
Ig : this.tj, | |
fg : this.xi, | |
Sc : this.ka ? 20 : 0, | |
yi : failureMessage | |
}); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.ri = function() { | |
return repeat([this.Ob, this.Mb], spaces).join("\n"); | |
}; | |
/** | |
* @param {?} win | |
* @return {undefined} | |
*/ | |
p.Ac = function(win) { | |
var node = win.document.getElementById(this.Hg); | |
if (node) { | |
hide(win.document.getElementById(this.wb), this.$f - (node.offsetHeight + 4)); | |
} | |
if (this.ka) { | |
this.ka.Ac(win); | |
} | |
}; | |
/** | |
* @param {Object} fragment | |
* @return {undefined} | |
*/ | |
p.Md = function(fragment) { | |
if (this.ka) { | |
this.ka.Md(fragment); | |
} | |
}; | |
/** | |
* @param {?} d | |
* @return {?} | |
*/ | |
p.lg = function(d) { | |
return parseFloat(d, this.ng); | |
}; | |
/** | |
* @param {?} deepDataAndEvents | |
* @return {?} | |
*/ | |
p.Wb = function(deepDataAndEvents) { | |
var caseSensitive = this.ka ? this.ka.Wb(deepDataAndEvents) : []; | |
return[new Resource(parseFloat(deepDataAndEvents, this.wb), "&nb=0"), new Resource(parseFloat(deepDataAndEvents, this.rd), "&nb=1"), new Resource(parseFloat(deepDataAndEvents, this.pg), "&nb=9")].concat(caseSensitive); | |
}; | |
/** | |
* @param {Object} args | |
* @param {string} n | |
* @param {number} var_args | |
* @param {string} y | |
* @param {number} v23 | |
* @param {string} charOffset | |
* @param {string} width | |
* @param {boolean} el | |
* @return {?} | |
*/ | |
var drawImage = function(args, n, var_args, y, v23, charOffset, width, el) { | |
var indents = resolveModule(args.u); | |
var c = new Node(n.w, n.h); | |
var p = new Node(n.iw, n.ih); | |
/** @type {number} */ | |
var defaultMargin = Math.floor((c.height - p.height) / 2); | |
var pl = p.height; | |
/** @type {number} */ | |
p = c.width - (3 * defaultMargin + p.width); | |
width = width ? inverse(args, c.width - 90, c.height - 20, indents, v23, -22, true) : null; | |
return new init(args, n, var_args, indents, y, defaultMargin, pl, p, v23, charOffset, width, el, s, initialize); | |
}; | |
/** | |
* @param {string} packet | |
* @param {string} n | |
* @param {number} opt_arr | |
* @param {string} v11 | |
* @param {number} v23 | |
* @param {string} charOffset | |
* @param {string} options | |
* @param {boolean} el | |
* @return {?} | |
*/ | |
var onWindowResize = function(packet, n, opt_arr, v11, v23, charOffset, options, el) { | |
var indents = resolveModule(packet.u); | |
var c = new Node(n.w, n.h); | |
var text = new Node(n.iw, n.ih); | |
/** @type {number} */ | |
var margin = Math.floor((c.width - text.width) / 2); | |
/** @type {number} */ | |
var v = c.height - (3 * margin + text.height); | |
text = text.width; | |
options = options ? inverse(packet, c.width, c.height - 50, indents, v23, -19, false) : null; | |
return new init(packet, n, opt_arr, indents, v11, margin, v, text, v23, charOffset, options, el, wrap, assert); | |
}; | |
} | |
/** | |
* @param {Object} options | |
* @return {?} | |
*/ | |
var flow = function(options) { | |
/** @type {string} */ | |
var point = '<div style="display: none;" id="_googAFShPLAs"></div><style>' + log("#adBlock {width: " + toString(options.width) + "px; font-size: 0;}.rb_ {background-color: " + toString(options.backgroundColor) + "; font-family: " + toString(options.fontFamily) + ";}.sb_ {padding-top: " + toString(options.ac) + "px; padding-left: " + toString(options.ac) + "px;}" + toString(options.Si)) + '</style><div class="rb_"><div class="sb_">'; | |
options = options.Cj; | |
var len = options.length; | |
/** @type {number} */ | |
var idx = 0; | |
for (;idx < len;idx++) { | |
point += $(options[idx]); | |
} | |
return func(point + "</div></div>"); | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} canvs | |
* @param {?} dataAndEvents | |
* @param {?} deepDataAndEvents | |
* @param {?} ignoreMethodDoesntExist | |
* @param {string} textAlt | |
* @param {?} keepData | |
* @param {?} opt_attributes | |
* @return {undefined} | |
*/ | |
var Processing = function(canvs, dataAndEvents, deepDataAndEvents, ignoreMethodDoesntExist, textAlt, keepData, opt_attributes) { | |
this.Jb = canvs; | |
this.Ug = dataAndEvents; | |
this.ye = deepDataAndEvents; | |
this.$h = ignoreMethodDoesntExist; | |
/** @type {string} */ | |
this.Ai = textAlt; | |
this.Ti = keepData; | |
this.C = opt_attributes; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Processing.prototype.f = function() { | |
/** @type {Array} */ | |
var eventPath = []; | |
/** @type {number} */ | |
var l = 0; | |
for (;l < this.Jb.length;l++) { | |
eventPath.push(this.Jb[l].f()); | |
} | |
return this.C({ | |
Cj : eventPath, | |
width : this.Ug.width, | |
Si : this.Ti, | |
ac : this.ye, | |
backgroundColor : this.$h, | |
fontFamily : this.Ai | |
}); | |
}; | |
/** | |
* @return {?} | |
*/ | |
Processing.prototype.Ji = function() { | |
return this.Ug; | |
}; | |
/** | |
* @return {?} | |
*/ | |
Processing.prototype.Hi = function() { | |
return this.Jb; | |
}; | |
/** | |
* @param {?} win | |
* @return {undefined} | |
*/ | |
Processing.prototype.Vh = function(win) { | |
/** @type {number} */ | |
var conditionIndex = 0; | |
for (;conditionIndex < this.Jb.length;conditionIndex++) { | |
this.Jb[conditionIndex].Ac(win); | |
this.Jb[conditionIndex].Md(win.document); | |
} | |
}; | |
} | |
/** | |
* @param {?} route | |
* @return {?} | |
*/ | |
var clone_geometry = function(route) { | |
var b; | |
/** @type {number} */ | |
var c = 0; | |
/** @type {string} */ | |
b = '<div class="SponsoredLinksBoxNoBorder"><div style="margin-left:2px"><div class="SponsoredLinksContentWrapper" id="A9AdsWidgetAdsWrapper"><div class="SponsoredLinksAdBox"><table id="SponsoredLinksTable" class="SponsoredLinkColumnAds"><tbody>'; | |
var keys = route.ads; | |
var il = keys.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < il;i++) { | |
var key = keys[i]; | |
b += '<tr class="adUnit_js b_"><td valign="top"><span style="white-space:nowrap; padding-right:18px">' + (1 == route.ads.length ? '<span class="SponsoredLinkYellowBlockEnclosure"><span class="SponsoredLinkYellowBlock"> </span> </span>' : '<span class="SponsoredLinkNumberItem">' + ++c + ". </span>") + '<span class="SponsoredLinkTitle"> <a target="_blank" href="' + key.u + '" rel="nofollow" class="titleLink"><b>' + key.cleanTitle + '</b></a> <a rel="nofollow" href="' + key.u + | |
'" target="_blank" class="amazonExternalLinkImage_js"><img width="23" height="20" border="0" align="absbottom" style="padding-bottom:0px; margin-bottom:0px; display:inline;" alt="opens new browser window" src="//afs.googleusercontent.com/amazon/icon-offsite-sl-7069-t4._V171196157_.png"></a></span></span></td><td><span class="SponsoredLinkDescription" style="white-space:normal; padding-left:0px"><span style="padding-right:10px;" class="SponsoredLinkDescriptionText">' + key.l1 + " " + key.l2 + | |
'</span></span> <span class="SponsoredLinkDescription" style="padding-left:0px"><a class="SponsoredLinkDescriptionUrlLink" rel="nofollow" href="' + key.u + '" target="_blank" class="domainLink">' + key.v + "</a></span></td></tr>"; | |
} | |
return b + "</tbody></table></div></div></div></div><style>#adBlock {font-size: 13px;}#adBlock a:hover {text-decoration: none;}#SponsoredLinksTable {width: 100%;}#sponsoredLinks {font-family: verdana,arial,helvetica,sans-serif;}.SponsoredLinksBoxNoBorder td, .SponsoredLinksBoxNoBorder th{font-family: verdana,arial,helvetica,sans-serif;}.SponsoredLinksBoxNoBorder a {color: #004B91; font-family: verdana, arial,helvetica,sans-serif;}.SponsoredLinksBox td, .SponsoredLinksBox th{font-family: verdana,arial,helvetica,sans-serif;}.SponsoredLinksBox a {color: #004B91; font-family: verdana, arial,helvetica,sans-serif;}.SponsoredFeedbackDiv{display: block; font-size: 90%; padding-left: 2px; padding-top: 5px;}.SponsoredLinkDescriptionUrlLink:link, #sponsoredLinks .SponsoredLinkDescriptionUrlLink:link {color: black; font-weight: normal; text-decoration: none;}.SponsoredLinkDescriptionUrlLink:visited, #sponsoredLinks .SponsoredLinkDescriptionUrlLink:visited {color: black; font-weight: normal; text-decoration: none;}.SponsoredLinkDescriptionUrlLink:hover, #sponsoredLinks .SponsoredLinkDescriptionUrlLink:hover {color: black; font-weight: normal; text-decoration: none;}.SponsoredLinksBox{height: auto; padding-left: 5px; padding-right: 5px; padding-top: 3px; padding-bottom: 10px; margin-top: 0px; margin-bottom: 10px; border: 1px solid #D0EAF8;}.SponsoredLinksBoxNoBorder{height: auto; padding-left: 0px; padding-right: 0px; padding-top: 0px; margin-top: 0px; border: none;}.SponsoredLinkYellowBlock {position: absolute; background-color: #db9234; width: 4px; height: 4px; margin-right: 2px; margin-left: 2px; margin-top: 9px; left: 0px; line-height: 1px;}#sponsoredLinks {width: 100%; padding-top: 4px;}.SponsoredLinkYellowBlockEnclosure {position: relative; margin-right: 2px;}.SponsoredLinkContentDeclaration {text-align: right; padding-right: 20px; color: #C2C2C2}.SponsoredLinksBottomBox {padding-top: 5px; padding-right: 20px;}.SponsoredLinksAdvertiseYourServices {font-size: 90%; float: right;}#sponsoredLinks a:link, #sponsoredLinks a:visited {text-decoration: underline;}.SponsoredLinksSearchSeperator {margin-top: 6px; border-bottom: 1px dotted gray;}.SponsoredLinkDescriptionUrlLink {white-space: nowrap;}.SponsoredLinkNumberItem {font-family: verdana; color: #666666; font-size: 110%;}.SponsoredLinkNumberItemEnclose {padding-top: 3px;}.SponsoredLinksAdBox{padding: 0px; margin: 0px;}.SponsoredLinksAdBox ul {list-style-type: none; padding-left: 0px; margin-left: 0px;}.SponsoredLinksAdBox ul li {clear: both; margin-top: 10px; padding-left: 5px; border: 0px solid #ffcc00;}.SponsoredLinksAdBox ul li span{float: left; padding: 0 0 0 0}.SponsoredLinksAdBox ul li div{float: left; padding: 0 10px 0 0}.SponsoredLinksAdBox .SponsoredLinkTitle {font-size: 125%; white-space: nowrap; min-width: 250px; padding-left: 0px; padding-bottom: 5px}.SponsoredLinksAdBox .SponsoredLinkTitle a:hover {color: #CC6600;}.SponsoredLinksAdBox .SponsoredLinkTitle a {font-family: arial;}.SponsoredLinksAdBox .SponsoredLinkDescription{font-size: 115%; color: #000; min-width: 240px; white-space: nowrap; padding-left: 18px; padding-top: 3px; font-family: arial;}.SponsoredLinksAdBox .SponsoredLinkDescription a:link {color: black; text-decoration: none; font-family: arial;}table.SponsoredLinkColumnAds td {padding-bottom: 12px;}</style>"; | |
}; | |
/** | |
* @param {Element} file | |
* @return {?} | |
*/ | |
var _forEach = function(file) { | |
/** @type {string} */ | |
var copies = '<div id="AUI_A9AdsWidgetAdsWrapper"><table class="AUI_SponsoredLinkColumnAds" style="width:auto; margin-right:40px;"><tbody>'; | |
var ca = file.ads; | |
var len = ca.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < len;i++) { | |
var c = ca[i]; | |
/** @type {string} */ | |
copies = copies + ('<tr class="adUnit_js b_"><td><ul><li><div class="AUI_SponsoredLinkTitle"><a class="a-size-medium" style="font-size:15px; padding-top:3px; display:inline-block;" target="_blank" href="' + c.u + '" rel="nofollow">' + (file.options.amazonGrayBullets ? "<b>" + c.t + "</b>" : "<b>" + c.cleanTitle + "</b>") + '</a> <a target="_blank" href="' + c.u + '" rel="nofollow"><img src="//afs.googleusercontent.com/amazon/icon-offsite-sl-7069-t4._V171196157_.png" width="23" alt="opens new browser window" align="absbottom" style="padding-bottom:0px; margin-bottom:0px;" height="20" border="0"></a></div></li></ul></td><td><div class="AUI_SponsoredLinkDescriptionDIV"><span style="padding-top:2px; display:inline-block;"> - </span></div></td><td><div class="AUI_SponsoredLinkDescriptionDIV"><span class="a-size-base" style="padding-top:2px; display:inline-block;">' + | |
c.l1 + " " + c.l2 + '</span></div></td><td style="padding-left: 10px;"><div class="AUI_SponsoredLinkDescriptionDIV"><a class="a-size-base" style="padding-top:2px; display:inline-block;" target="_blank" href="' + c.u + '" rel="nofollow"><span class="a-color-secondary">' + c.v + "</span></a></div></td></tr>"); | |
} | |
return copies += "</tbody></table></div><style>#adBlock {margin-top: 10px;}* {-moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;}body {font-size: 13px; line-height: 19px; color: #333; font-family: Arial,sans-serif;}" + (file.options.amazonGrayBullets ? "" : "#AUI_A9AdsWidgetAdsWrapper table {margin-left: 27px; font-family: verdana,arial,helvetica,sans-serif;}") + "table:last-child {margin-bottom: 0!important;}table {margin-bottom: 18px; border-collapse: collapse; width: 100%;}tr:first-child td, tr:first-child th {padding-top: 0;}td:first-child, th:first-child {padding-left: 0;}td, th {padding: 3px;}td, th {vertical-align: top;}td:last-child, th:last-child {padding-right: 0;}ul:last-child, ol:last-child {margin-bottom: 0!important;}ul, ol {padding: 0;}ul {margin: 0 0 18px 18px; color: #aaa;}ul li {" + | |
(file.options.amazonGrayBullets ? "" : "color: #db9234;") + "}ul li, ol li {word-wrap: break-word; margin: 0;}ul li {list-style: disc;}a, a:visited, a:active, a:link {text-decoration: none; color: #0066c0;}.a-size-medium {font-size: 17px!important; line-height: 1.255!important; font-family: Arial,sans-serif; text-rendering: optimizeLegibility;}a:hover {text-decoration: underline; cursor: pointer; color: #e47911;}.a-size-base {font-size: 13px!important; line-height: 19px!important;}.a-color-secondary {color: #888!important;}img {vertical-align: top;}img {max-width: 100%; border: 0; -ms-interpolation-mode: bicubic;}</style>"; | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Window} context | |
* @param {number} max | |
* @return {undefined} | |
*/ | |
var layout = function(context, max) { | |
max = max || 130; | |
/** @type {number} */ | |
var min = Math.max(1.5 * max, 160); | |
min = max + min; | |
var elements = context.document.getElementById("wideSfbl"); | |
var span = context.document.getElementById("narrowSfbl"); | |
if (elements) { | |
if (span) { | |
if (setShortStyleProperty(context.document.body, false) < min) { | |
/** @type {string} */ | |
elements.style.display = "none"; | |
/** @type {string} */ | |
span.style.display = "block"; | |
} else { | |
/** @type {string} */ | |
elements.style.display = "block"; | |
/** @type {string} */ | |
span.style.display = "none"; | |
} | |
} | |
} | |
min = qsa(context.document, "div", "wideSitelinksWrapper_js"); | |
elements = qsa(context.document, "div", "narrowSitelinksWrapper_js"); | |
span = qsa(context.document, "div", "sitelinksWrapper_js"); | |
/** @type {null} */ | |
var suiteView = null; | |
/** @type {number} */ | |
var i = 0; | |
var el; | |
for (;el = span[i];i++) { | |
if (0 < el.offsetWidth) { | |
suiteView = el; | |
break; | |
} | |
} | |
if (suiteView && 260 > setShortStyleProperty(suiteView, false)) { | |
/** @type {number} */ | |
i = 0; | |
for (;el = min[i];i++) { | |
/** @type {string} */ | |
el.style.display = "none"; | |
} | |
/** @type {number} */ | |
i = 0; | |
for (;el = elements[i];i++) { | |
/** @type {string} */ | |
el.style.display = "block"; | |
} | |
} else { | |
/** @type {number} */ | |
i = 0; | |
for (;el = min[i];i++) { | |
/** @type {string} */ | |
el.style.display = "block"; | |
} | |
/** @type {number} */ | |
i = 0; | |
for (;el = elements[i];i++) { | |
/** @type {string} */ | |
el.style.display = "none"; | |
} | |
} | |
} | |
} | |
/** | |
* @param {?} self | |
* @return {?} | |
*/ | |
var listen = function(self) { | |
return'<div class="sfblSellerNameWrapper" title="' + $(self.B.visDomain) + '"><a class="sfblSellerNameLink" href="' + $(self.B.u) + '"' + reject(self) + ">" + emit({ | |
text : self.B.nonBreakingVisDomain, | |
Aa : false, | |
g : self.A.isRtl | |
}) + "</a></div>" + (self.sg ? '<div class="sfblSellerRatingsWrapper">' + constructor({ | |
zc : self.B.sr | |
}) + "</div>" : ""); | |
}; | |
/** | |
* @param {Object} item | |
* @return {?} | |
*/ | |
var has = function(item) { | |
return "" + (item.A.disableSellerFirstFavicon ? listen({ | |
B : item.B, | |
A : item.A, | |
j : item.j, | |
sg : item.ld | |
}) : bind({ | |
Pa : '<img src="' + $(item.B.furl) + '" class="sfblFavicon"/>', | |
Qa : "" + listen({ | |
B : item.B, | |
A : item.A, | |
j : item.j, | |
sg : item.ld | |
}), | |
oa : 18, | |
$a : 3, | |
Tb : item.A.isRtl | |
})) + (item.ld ? "" : '<div class="sfblSellerRatingsWrapper">' + constructor({ | |
zc : item.B.sr | |
}) + "</div>"); | |
}; | |
/** | |
* @param {Object} self | |
* @return {?} | |
*/ | |
var map = function(self) { | |
/** @type {string} */ | |
var prefix = '<div class="sfblTitleWrapper"><a href="' + self.B.u + '" class="sfblTitleLink" ' + reject(self) + ">" + text({ | |
text : self.B.tr, | |
g : self.A.isRtl | |
}) + '</a></div><div class="sfblDescriptionWrapper">'; | |
var config = self.B.l1r; | |
var options = self.B.l2r; | |
var green = self.A.isRtl; | |
/** @type {string} */ | |
var code = ""; | |
if (options && options.c) { | |
var gval = config.rtl || options.rtl; | |
/** @type {string} */ | |
code = code + emit({ | |
Aa : gval, | |
g : green, | |
text : text({ | |
text : config, | |
g : gval | |
}) + " " + text({ | |
text : options, | |
g : gval | |
}) | |
}); | |
} else { | |
code += text({ | |
text : config, | |
g : green | |
}); | |
} | |
/** @type {string} */ | |
prefix = prefix + code + "</div>" + fn({ | |
Ad : self.B.ar, | |
nb : self.B.gt && "ar" == self.B.gt.r ? self.B.gt.t : null, | |
g : self.A.isRtl | |
}) + each({ | |
Pe : self.B.plus_ones, | |
j : self.j | |
}) + after({ | |
De : self.B.location, | |
g : self.A.isRtl | |
}) + _set({ | |
vd : self.B.oh, | |
nb : self.B.gt && "oh" == self.B.gt.r ? self.B.gt.t : null, | |
kh : self.A.offerHighlightWithIcon | |
}); | |
self = self.B.sls && 0 < self.B.sls.length ? func(remove({ | |
uid : "", | |
ha : self.B.sls, | |
j : self.j, | |
Wg : "sfblSitelink", | |
Vg : "sfblSitelink", | |
nh : "sfblSitelinksWrapper" | |
})) : ""; | |
return prefix + self; | |
}; | |
/** @type {Window} */ | |
var context = window; | |
/** | |
* @param {boolean} recurring | |
* @param {Object} element | |
* @return {?} | |
*/ | |
var getWindowSize = function(recurring, element) { | |
var win = element || context; | |
if (recurring) { | |
if (win.top != win) { | |
win = win.top; | |
} | |
} | |
try { | |
var d; | |
if (win.document && !win.document.body) { | |
d = new Node(-1, -1); | |
} else { | |
var doc = (win || window).document; | |
var n = "CSS1Compat" == doc.compatMode ? doc.documentElement : doc.body; | |
d = new Node(n.clientWidth, n.clientHeight); | |
} | |
return d; | |
} catch (g) { | |
return new Node(-12245933, -12245933); | |
} | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
var pdataCur = new handler("ijsp"); | |
var defs = {}; | |
/** @type {null} */ | |
var tok = null; | |
var self = new copy("iframe"); | |
var ecConfig = { | |
zf : 0, | |
Gh : 2, | |
Hc : 3, | |
Ec : 6 | |
}; | |
var vals = { | |
ads : ecConfig.zf, | |
rss : ecConfig.Gh, | |
pbs : ecConfig.Hc, | |
jb : ecConfig.Ec | |
}; | |
var collection = { | |
/** @type {function (Element): ?} */ | |
bulleted : _forEach, | |
/** @type {function (?): ?} */ | |
numbered : clone_geometry | |
}; | |
var message = { | |
0 : "ad-left", | |
1 : "title-right" | |
}; | |
var els = { | |
0 : "off", | |
1 : "low", | |
2 : "med", | |
3 : "high" | |
}; | |
var json = {}; | |
var files = {}; | |
/** | |
* @param {Object} b | |
* @return {?} | |
*/ | |
var expect = function(b) { | |
if (!tok) { | |
if (b.name) { | |
tok = (b = b.name.match(/master-(\d+)/)) && b[1] ? b[1] : null; | |
} | |
} | |
if (!tok) { | |
/** @type {number} */ | |
tok = -1; | |
} | |
return tok; | |
}; | |
expect = cb(expect, "gMN"); | |
/** | |
* @param {Window} ctx | |
* @param {string} n | |
* @return {?} | |
*/ | |
var t = function(ctx, n) { | |
try { | |
return isNaN(ctx.document.getElementById(n)); | |
} catch (c) { | |
return null; | |
} | |
}; | |
t = cb(t, "gBH"); | |
/** | |
* @param {Window} ctx | |
* @param {string} id | |
* @return {?} | |
*/ | |
var id = function(ctx, id) { | |
try { | |
return setShortStyleProperty(ctx.document.getElementById(id), false); | |
} catch (c) { | |
return null; | |
} | |
}; | |
id = cb(id, "gBW"); | |
/** | |
* @param {Object} a | |
* @param {?} key | |
* @return {?} | |
*/ | |
var make = function(a, key) { | |
/** @type {Array} */ | |
var buf = []; | |
/** @type {Array} */ | |
var eventPath = []; | |
var prefix; | |
for (prefix in a) { | |
var cur = ok(prefix, key); | |
if (null == cur) { | |
delete a[prefix]; | |
} else { | |
buf.push(prefix); | |
eventPath.push(cur); | |
} | |
} | |
return{ | |
frames : eventPath, | |
names : buf | |
}; | |
}; | |
make = cb(make, "cFr"); | |
/** | |
* @param {?} context | |
* @return {undefined} | |
*/ | |
var base = function(context) { | |
var testSource = make(defs, context).names; | |
var name; | |
for (name in testSource) { | |
clear(ok(testSource[name], context), testSource[name]); | |
var revisionCheckbox = sort(testSource[name], context); | |
layout(ok(testSource[name], context), revisionCheckbox.sellerColumnWidth); | |
} | |
}; | |
base = cb(base, "aPE"); | |
/** | |
* @param {?} name | |
* @return {undefined} | |
*/ | |
var el = function(name) { | |
var f = make(defs, name); | |
var files = f.names; | |
name = content(f.frames, defer(el, name)); | |
/** @type {number} */ | |
f = 0; | |
for (;f < name.length;f++) { | |
if (null != name[f]) { | |
self.Lb(files[f] + ".h", name[f]); | |
} | |
} | |
_(self); | |
}; | |
el = cb(el, "sPH"); | |
/** | |
* @param {?} node | |
* @param {Object} args | |
* @return {undefined} | |
*/ | |
var params = function(node, args) { | |
base(node, args); | |
el(node); | |
}; | |
params = cb(params, "oR"); | |
var testSource = { | |
titleLink : "&nb=0", | |
sfblTitleLink : "&nb=0", | |
domainLink : "&nb=1", | |
sfblSellerNameLink : "&nb=1", | |
sl : "&nb=6", | |
sfblSitelink : "&nb=6", | |
textLink : "&nb=7", | |
nArr : "&nb=8", | |
ctcBtnLink : "&nb=14", | |
amazonExternalLinkImage_js : "&nb=9" | |
}; | |
/** | |
* @param {Element} list | |
* @return {?} | |
*/ | |
var _showElement = function(list) { | |
/** @type {Array} */ | |
var value = []; | |
list = list.getElementsByTagName("a"); | |
/** @type {number} */ | |
var _i = 0; | |
var item; | |
for (;item = list[_i];_i++) { | |
var e; | |
/** @type {HTMLDocument} */ | |
var doc = document; | |
try { | |
var y; | |
var node = item; | |
var view = doc.defaultView || {}; | |
if (view && view.getComputedStyle) { | |
var style = view.getComputedStyle(node, false); | |
y = style ? style.getPropertyValue("display") : null; | |
} else { | |
var s = node.currentStyle; | |
y = s ? s.display : null; | |
} | |
/** @type {boolean} */ | |
e = null != y && "none" != y; | |
} catch (w) { | |
/** @type {boolean} */ | |
e = false; | |
} | |
if (e) { | |
var name; | |
for (name in testSource) { | |
if (addClass(item, name)) { | |
value.push(new Resource(item, testSource[name])); | |
break; | |
} | |
} | |
} | |
} | |
return value; | |
}; | |
_showElement = cb(_showElement, "gTASSL"); | |
/** | |
* @param {Window} obj | |
* @param {string} name | |
* @return {undefined} | |
*/ | |
var clear = function(obj, name) { | |
var iframe = obj.document.getElementById("attribution"); | |
var label = obj.document.getElementById("adsLabel"); | |
var node = obj.document.getElementById("megaLabel"); | |
if (label || node) { | |
var file; | |
if (files[name]) { | |
file = files[name]; | |
} else { | |
/** @type {number} */ | |
file = 20; | |
if (node) { | |
file += createElement(node).width; | |
} else { | |
if (label) { | |
file += createElement(label).width; | |
if (iframe) { | |
file += createElement(iframe).width; | |
file += 20; | |
} | |
} | |
} | |
/** @type {number} */ | |
files[name] = file; | |
} | |
var ret = parseFloat(obj.document, "adBlock"); | |
ret = style(ret); | |
if (file > ret) { | |
if (node) { | |
/** @type {string} */ | |
node.style.display = "none"; | |
if (iframe) { | |
/** @type {string} */ | |
iframe.style.display = ""; | |
} else { | |
/** @type {string} */ | |
node.parentNode.style.display = "none"; | |
} | |
} else { | |
/** @type {string} */ | |
label.style.display = "none"; | |
if (!iframe) { | |
/** @type {string} */ | |
label.parentNode.style.display = "none"; | |
} | |
} | |
} else { | |
if (node) { | |
/** @type {string} */ | |
node.style.display = ""; | |
/** @type {string} */ | |
node.parentNode.style.display = ""; | |
if (iframe) { | |
/** @type {string} */ | |
iframe.style.display = "none"; | |
} | |
} else { | |
/** @type {string} */ | |
label.style.display = ""; | |
/** @type {string} */ | |
label.parentNode.style.display = ""; | |
} | |
} | |
} | |
}; | |
clear = cb(clear, "aH"); | |
/** | |
* @param {Object} el | |
* @param {?} resp | |
* @param {Object} options | |
* @return {undefined} | |
*/ | |
var query = function(el, resp, options) { | |
el = el.document.getElementsByTagName("table"); | |
var len = el.length; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < len;i++) { | |
var e = el[i]; | |
if (addClass(e, "sl-table")) { | |
if (!addClass(e.parentNode, "invisible")) { | |
success(e, resp, options); | |
} | |
} | |
} | |
}; | |
query = cb(query, "aSL"); | |
/** | |
* @param {Object} node | |
* @return {?} | |
*/ | |
var empty = function(node) { | |
if (node instanceof Array) { | |
/** @type {number} */ | |
var t = 0; | |
for (;t < node.length;t++) { | |
if (empty(node[t])) { | |
return true; | |
} | |
} | |
return false; | |
} | |
return node.offsetHeight > createElement(node).height; | |
}; | |
empty = cb(empty, "iW"); | |
/** | |
* @param {Array} body | |
* @return {undefined} | |
*/ | |
var pop = function(body) { | |
for (;0 < body.length;) { | |
var tabPage = body.pop(); | |
if (tabPage) { | |
tabPage.parentNode.removeChild(tabPage); | |
} | |
} | |
}; | |
pop = cb(pop, "rLON"); | |
/** | |
* @param {Element} el | |
* @param {?} status | |
* @param {Object} resp | |
* @return {undefined} | |
*/ | |
var success = function(el, status, resp) { | |
var data = el.getElementsByTagName("div"); | |
/** @type {Array} */ | |
var parts = []; | |
/** @type {Array} */ | |
var toread = []; | |
/** @type {number} */ | |
var name = 0; | |
var src; | |
for (;src = data[name];name++) { | |
if ("sl-left" == src.className && 3 > parts.length) { | |
parts.push(src); | |
} else { | |
if ("sl-right" == src.className) { | |
if (3 > toread.length) { | |
toread.push(src); | |
} | |
} | |
} | |
} | |
/** @type {Array} */ | |
data = []; | |
for (;0 < parts.length;) { | |
if (0 < toread.length) { | |
data.push([parts.shift(), toread.shift()]); | |
} else { | |
data.push([parts.shift()]); | |
} | |
} | |
if (status) { | |
finish(el, data); | |
} else { | |
destroy(el, data, resp); | |
} | |
css(el, "visibility", "visible"); | |
}; | |
success = cb(success, "aSL"); | |
/** | |
* @param {Element} e | |
* @param {Array} data | |
* @return {undefined} | |
*/ | |
var destroy = function(e, data) { | |
var valuesLen = e.getElementsByTagName("a").length; | |
for (;1 < data.length && empty(data);) { | |
pop(data.pop()); | |
} | |
if (1 == data.length) { | |
finish(e, data); | |
} | |
var el = qsa(e.parentNode, "div", "c_"); | |
if (1 == el.length) { | |
el = el[0]; | |
var i = e.getElementsByTagName("a").length; | |
if (i < valuesLen && 3 > i) { | |
/** @type {number} */ | |
valuesLen = style(el) - 15; | |
if (125 > valuesLen) { | |
/** @type {number} */ | |
valuesLen = 125; | |
} | |
var elem = el.getElementsByTagName("div"); | |
/** @type {number} */ | |
var l = 0; | |
/** @type {number} */ | |
var pos = 0; | |
var node; | |
for (;node = elem[pos];pos++) { | |
if (createElement(node).width <= valuesLen && 3 > l) { | |
l++; | |
} else { | |
/** @type {string} */ | |
node.style.display = "none"; | |
} | |
} | |
if (l > i) { | |
css(el, "visibility", "visible"); | |
/** @type {string} */ | |
e.style.display = "none"; | |
} else { | |
/** @type {string} */ | |
el.style.display = "none"; | |
} | |
} else { | |
/** @type {string} */ | |
el.style.display = "none"; | |
} | |
} | |
}; | |
destroy = cb(destroy, "uS"); | |
/** | |
* @param {Element} e | |
* @param {Array} r | |
* @return {undefined} | |
*/ | |
var finish = function(e, r) { | |
var node = r.shift(); | |
for (;0 < r.length;) { | |
pop(r.pop()); | |
} | |
if (node[1]) { | |
if (!empty(node)) { | |
close(node[0].firstChild, "l"); | |
close(node[1].firstChild, "r"); | |
node[0].innerHTML += " - " + node[1].innerHTML; | |
} | |
node[1].parentNode.removeChild(node[1]); | |
node.pop(); | |
} | |
/** @type {string} */ | |
e.className = "sl-table-ol"; | |
/** @type {string} */ | |
node[0].className = "sl-left-ol"; | |
if (empty(node[0])) { | |
pop(node); | |
} | |
}; | |
finish = cb(finish, "hSLS"); | |
/** | |
* @param {number} el | |
* @param {number} opt_attributes | |
* @return {?} | |
*/ | |
var one = function(el, opt_attributes) { | |
return style(el) < opt_attributes; | |
}; | |
one = cb(one, "sHNE"); | |
/** | |
* @param {boolean} text | |
* @return {?} | |
*/ | |
var info = function(text) { | |
return createTextNode() && !text; | |
}; | |
info = cb(info, "rCS"); | |
/** | |
* @param {string} text | |
* @return {?} | |
*/ | |
var merge = function(text) { | |
/** @type {Array} */ | |
var r = []; | |
var lineEnd = text.indexOf("<a"); | |
if (-1 != lineEnd) { | |
/** @type {Array} */ | |
r = r.concat([text.substring(0, lineEnd + 3), "TARGET", text.substring(lineEnd + 2)]); | |
} else { | |
r.push(text); | |
} | |
return r; | |
}; | |
merge = cb(merge, "pPSTA"); | |
/** | |
* @param {Object} elem | |
* @return {undefined} | |
*/ | |
var children = function(elem) { | |
/** @type {number} */ | |
var pos = 0; | |
var node; | |
for (;node = elem[pos];pos++) { | |
if (node.plus_ones) { | |
node.plus_ones = merge(node.plus_ones); | |
} | |
} | |
}; | |
children = cb(children, "aPOT"); | |
/** | |
* @param {string} e | |
* @param {Object} d | |
* @return {?} | |
*/ | |
var sort = function(e, d) { | |
var data = d[e]; | |
if (!data) { | |
util.log({ | |
message : "frameOptions is undefined for " + e | |
}, "fAU"); | |
data = {}; | |
} | |
return data; | |
}; | |
sort = cb(sort, "gFO"); | |
/** | |
* @param {?} obj | |
* @param {string} value | |
* @param {number} el | |
* @param {Object} cfg | |
* @param {Object} data | |
* @param {Object} name | |
* @param {Object} val | |
* @return {undefined} | |
*/ | |
var _init = function(obj, value, el, cfg, data, name, val) { | |
data = sort(value, data); | |
/** @type {boolean} */ | |
var i = !!name.fillEuData && !name.fillPlaEuData; | |
/** @type {boolean} */ | |
var failuresLink = !!name.fillPlaEuData; | |
var d = (0,eval)(data); | |
if (cfg.hasOwnProperty("gbrs")) { | |
b: { | |
var arr = val.ipa; | |
/** @type {null} */ | |
var fn = null; | |
/** @type {null} */ | |
var n = null; | |
val = cfg.gbrs; | |
if (val.hasOwnProperty("scrs")) { | |
/** @type {function (string, string, number, string, number, string, string, boolean): ?} */ | |
fn = onWindowResize; | |
n = val.scrs; | |
} else { | |
if (val.hasOwnProperty("fcrs")) { | |
/** @type {function (Object, string, number, string, number, string, string, boolean): ?} */ | |
fn = drawImage; | |
n = val.fcrs; | |
} else { | |
util.log({ | |
message : "PLA grid render spec failed to provide a valid format." | |
}, "crpGc"); | |
cfg = result; | |
break b; | |
} | |
} | |
var u = n.bc; | |
var charOffset = u && "#ffffff" == u.toLowerCase(); | |
var info = log(n.ff); | |
var y = val.i; | |
/** @type {Array} */ | |
var ret = []; | |
/** @type {number} */ | |
var prop = 0; | |
for (;prop < cfg.plas.length;prop++) { | |
ret.push(fn(cfg.plas[prop], n, arr, y, d, charOffset, i, failuresLink)); | |
} | |
cfg = new Node(n.w, n.h); | |
cfg = 0 == ret.length ? result : new Processing(ret, new Node(y + val.c * (cfg.width + y), y + val.r * (cfg.height + y)), y, u, info, ret[0].te(), flow); | |
} | |
} else { | |
util.log({ | |
message : "PLA block json failed to provide a known render spec." | |
}, "crpBc"); | |
cfg = result; | |
} | |
appendChild(cfg.f(), obj, el); | |
cfg.Vh(obj); | |
self.Lb(value + ".w", cfg.Ji().width); | |
cfg = cfg.Hi(); | |
/** @type {number} */ | |
i = 0; | |
for (;i < cfg.length;i++) { | |
refresh(cfg[i].Wb(obj.document), cfg[i].lg(obj.document), el, name); | |
} | |
obj = round(value); | |
register(data, el, obj, name); | |
}; | |
_init = cb(_init, "fP"); | |
/** | |
* @param {Element} s | |
* @param {string} x | |
* @param {number} el | |
* @param {Element} m | |
* @param {Object} data | |
* @param {Object} name | |
* @param {Object} options | |
* @return {undefined} | |
*/ | |
var warn = function(s, x, el, m, data, name, options) { | |
data = sort(x, data); | |
var camelKey = {}; | |
output(options.msgs, camelKey); | |
if (m = reset(m, camelKey, (0,eval)(data), !!name.fillSingleProductEuData, !!name.uiExp2)) { | |
appendChild(m.f(), s, el); | |
m.xj(s.document); | |
self.Lb(x + ".w", m.Ki(s.document)); | |
s = round(x); | |
register(data, el, s, name); | |
} | |
}; | |
warn = cb(warn, "fJ"); | |
/** | |
* @param {?} node | |
* @param {string} x | |
* @param {number} el | |
* @param {?} dataAndEvents | |
* @param {Object} data | |
* @param {Object} name | |
* @return {?} | |
*/ | |
var getValue = function(node, x, el, dataAndEvents, data, name) { | |
if (!name.uiExp1 && !name.amazonTemplateEnabled) { | |
return false; | |
} | |
data = sort(x, data); | |
var method = data.amazonTheme; | |
if (!collection.hasOwnProperty(method)) { | |
return false; | |
} | |
appendChild((0, collection[method])({ | |
ads : dataAndEvents, | |
options : data | |
}), node, el); | |
element(el, name); | |
node = round(x); | |
register(data, el, node, name); | |
return true; | |
}; | |
getValue = cb(getValue, "fAA"); | |
/** | |
* @param {Window} context | |
* @param {string} value | |
* @param {number} el | |
* @param {Element} parent | |
* @param {Object} data | |
* @param {Object} item | |
* @param {Object} options | |
* @return {undefined} | |
*/ | |
var setup = function(context, value, el, parent, data, item, options) { | |
data = sort(value, data); | |
var row = options.attr; | |
/** @type {null} */ | |
var rv = null; | |
/** @type {null} */ | |
var restoreScript = null; | |
/** @type {null} */ | |
var camelKey = null; | |
var later = item.rhsAttribution && data.rightHandAttribution || item.isHighendMobile && false !== data.rightHandAttribution; | |
var oldconfig = later && !(item.isHighendMobile && item.uiExp1); | |
/** @type {boolean} */ | |
var typePattern = 0 != data.domainLinkAboveDescription; | |
var udataCur = data.type || "ads"; | |
/** @type {boolean} */ | |
var text = false; | |
var obj = options.iaa; | |
/** @type {null} */ | |
var scripts = null; | |
/** @type {null} */ | |
var suiteView = null; | |
/** @type {null} */ | |
var res = null; | |
res = options.vw; | |
if (null != obj) { | |
scripts = obj.t; | |
suiteView = obj.b; | |
/** @type {boolean} */ | |
oldconfig = false; | |
} | |
if (item.isRtl) { | |
/** @type {string} */ | |
context.document.dir = "rtl"; | |
} | |
if (data.adsLabel) { | |
camelKey = options.ads_label || null; | |
} | |
if ("relatedsearch" == udataCur) { | |
if (row) { | |
if ("ads" == udataCur) { | |
rv = row.u; | |
var key = data.attributionText; | |
restoreScript = row.alt_t && row.alt_t[key] ? row.alt_t[key] : "Ads" == data.attributionText ? "Ads" : row.t; | |
} else { | |
if ("relatedsearch" == udataCur) { | |
restoreScript = options.rs_attr.t; | |
rv = options.rs_attr.u; | |
if (data.horizontalFlow) { | |
restoreScript += ":"; | |
} | |
} | |
} | |
} | |
if (restoreScript || camelKey) { | |
first(null, rv, restoreScript, camelKey, null, later, context, el); | |
/** @type {boolean} */ | |
text = true; | |
} else { | |
(void 0)(context); | |
} | |
} else { | |
/** @type {null} */ | |
udataCur = null; | |
if (item.suppliedAttribution && data.attributionText) { | |
obj = { | |
t : data.attributionText | |
}; | |
if (data.attributionHref) { | |
obj.u = data.attributionHref; | |
} | |
} else { | |
/** @type {null} */ | |
obj = null; | |
} | |
if (null != obj) { | |
row = obj; | |
} else { | |
/** @type {(string|undefined)} */ | |
key = data.position ? "ad-block-position-" + data.position : void 0; | |
} | |
if (null != row) { | |
if (data.detailedAttribution || 0 != data.detailedAttribution && item.megaLabelExp) { | |
udataCur = row.t2; | |
} | |
rv = row.u; | |
restoreScript = row.t; | |
} | |
if (suiteView || (restoreScript || (camelKey || udataCur))) { | |
first(suiteView, rv, restoreScript, camelKey, udataCur, later, context, el, key); | |
/** @type {boolean} */ | |
text = true; | |
} | |
} | |
children(parent); | |
if (!(row = info(text))) { | |
render(item, context, el, data, oldconfig); | |
} | |
rv = one(el, 300); | |
scripts = scripts && !rv ? new Renderer(scripts) : result; | |
res = run(parent, context, value, el, data, equals(data, item), !!item.clickableText, typePattern, scripts, res, item, options); | |
if (row) { | |
render(item, context, el, data, oldconfig); | |
} | |
if (parent = context.document.getElementById("attrHeader")) { | |
if (scripts != result) { | |
css(parent, "display", "none"); | |
} | |
} | |
clear(context, value); | |
query(context, equal(data, item), item); | |
value = round(value); | |
register(data, el, value, item); | |
if (equals(data, item)) { | |
enter(el, concatCall(data, item), value); | |
} | |
if (res) { | |
res.W(context, item); | |
} else { | |
element(el, item); | |
} | |
layout(context, data.sellerColumnWidth); | |
}; | |
setup = cb(setup, "fA"); | |
/** | |
* @param {number} element | |
* @param {Object} o | |
* @return {undefined} | |
*/ | |
var element = function(element, o) { | |
var result = qsa(element, "div", "adUnit_js"); | |
result = result.concat(qsa(element, "tr", "adUnit_js")); | |
/** @type {number} */ | |
var _i = 0; | |
var x; | |
for (;x = result[_i];_i++) { | |
refresh(_showElement(x), x, element, o); | |
} | |
}; | |
element = cb(element, "aSSTATU"); | |
/** | |
* @param {Object} el | |
* @param {Object} record | |
* @param {Object} p | |
* @return {undefined} | |
*/ | |
var find = function(el, record, p) { | |
var props = {}; | |
if (p.bs) { | |
/** @type {number} */ | |
var j = 0; | |
var route; | |
for (;route = p.bs[j];j++) { | |
if (route.container == el.container) { | |
props = route; | |
break; | |
} | |
} | |
} | |
if (p = p.ps) { | |
var i; | |
for (i in p) { | |
if (p.hasOwnProperty(i)) { | |
props[i] = p[i]; | |
} | |
} | |
} | |
for (i in props) { | |
if (props.hasOwnProperty(i)) { | |
if ("" !== props[i]) { | |
/** @type {string} */ | |
p = i.replace(/_(.)/g, function(dataAndEvents, letter) { | |
return letter.toUpperCase(); | |
}); | |
if (!!record[p]) { | |
if (!("clicktrackUrl" == p && el[p])) { | |
el[p] = props[i]; | |
} | |
} | |
} | |
} | |
} | |
if ("boolean" == typeof el.linkTarget) { | |
/** @type {string} */ | |
el.linkTarget = el.linkTarget ? "_blank" : "_top"; | |
} | |
if ("number" == typeof el.adIconLocation) { | |
el.adIconLocation = message[el.adIconLocation]; | |
} | |
if ("number" == typeof el.adsafe) { | |
el.adsafe = els[el.adsafe]; | |
} | |
html(el, "adBorderSelections"); | |
html(el, "borderSelections"); | |
html(el, "fontFamily"); | |
html(el, "fontFamilyAttribution"); | |
}; | |
find = cb(find, "fSSS"); | |
/** | |
* @param {Object} object | |
* @param {string} index | |
* @return {undefined} | |
*/ | |
var html = function(object, index) { | |
if (object[index] instanceof Array) { | |
if (0 == object[index].length) { | |
delete object[index]; | |
} else { | |
object[index] = object[index].join(","); | |
} | |
} | |
}; | |
html = cb(html, "cSLSTS"); | |
/** | |
* @param {string} name | |
* @param {Function} value | |
* @return {?} | |
*/ | |
var ok = function(name, value) { | |
if (name == value.name) { | |
return window; | |
} | |
/** @type {null} */ | |
var src = null; | |
try { | |
if (src = window.parent.frames[name + "|" + window.name]) { | |
return src; | |
} | |
} catch (d) { | |
} | |
try { | |
if (src = window.parent.frames[name]) { | |
return src; | |
} | |
} catch (e) { | |
} | |
return null; | |
}; | |
ok = cb(ok, "gFBN"); | |
/** | |
* @param {Object} s | |
* @param {Object} res | |
* @param {Object} names | |
* @return {undefined} | |
*/ | |
var list = function(s, res, names) { | |
var key; | |
for (key in json) { | |
var node = json[key]; | |
if (0 == node.length) { | |
util.log({ | |
message : key | |
}, "mPAASH2"); | |
} else { | |
var e = ok(key, s); | |
if (null != e) { | |
/** @type {null} */ | |
var failuresLink = null; | |
try { | |
failuresLink = e.document.getElementById("adBlock"); | |
} catch (h) { | |
} | |
if (null != failuresLink) { | |
if (node[0].type == ecConfig.Hc) { | |
_init(e, key, failuresLink, node[0], s, res, names); | |
} else { | |
if (node[0].type == ecConfig.Ec) { | |
warn(e, key, failuresLink, node[0], s, res, names); | |
} else { | |
if (!getValue(e, key, failuresLink, node, s, res)) { | |
setup(e, key, failuresLink, node, s, res, names); | |
} | |
} | |
} | |
/** @type {boolean} */ | |
defs[key] = true; | |
delete json[key]; | |
} | |
} | |
} | |
} | |
params(s, res); | |
}; | |
list = cb(list, "mPAASH"); | |
/** | |
* @param {Element} ctx | |
* @param {number} node | |
* @param {number} value | |
* @return {?} | |
*/ | |
var post = function(ctx, node, value) { | |
return("number" == typeof node && 16 > node || "number" == typeof value && 16 > value) && ((ctx = ctx.document.getElementById("adBlock")) && "" != ctx.innerHTML) ? true : false; | |
}; | |
post = cb(post, "iCSI"); | |
/** | |
* @param {Array} codeSegments | |
* @param {?} callback | |
* @return {?} | |
*/ | |
var content = function(codeSegments, callback) { | |
/** @type {boolean} */ | |
var c = false; | |
/** @type {Array} */ | |
var assigns = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < codeSegments.length;i++) { | |
var test = codeSegments[i]; | |
var vvar = t(test, "adBlock"); | |
var tests = id(test, "adBlock"); | |
if (post(test, vvar, tests)) { | |
/** @type {null} */ | |
vvar = null; | |
/** @type {boolean} */ | |
c = true; | |
} | |
assigns.push(vvar); | |
} | |
if (c) { | |
window.setTimeout(callback, 10); | |
} | |
return assigns; | |
}; | |
content = cb(content, "gFH"); | |
/** | |
* @param {number} i | |
* @param {Array} x | |
* @param {Object} result | |
* @return {?} | |
*/ | |
var bound = function(i, x, result) { | |
var value; | |
/** @type {number} */ | |
value = Math.max.apply(Math, i); | |
/** @type {number} */ | |
i = Math.min.apply(Math, i); | |
if (value - i > threshold) { | |
/** @type {number} */ | |
i = 0; | |
for (;i < x.length;i++) { | |
value = x[i]; | |
/** @type {null} */ | |
result[value] = null; | |
} | |
} | |
return result; | |
}; | |
bound = cb(bound, "pBDF"); | |
/** | |
* @param {Object} o | |
* @param {Object} obj | |
* @return {?} | |
*/ | |
var event = function(o, obj) { | |
var result = {}; | |
/** @type {boolean} */ | |
var valid = false; | |
/** @type {Array} */ | |
var classNames = []; | |
/** @type {Array} */ | |
var c = []; | |
var key; | |
for (key in obj) { | |
if (key in o) { | |
var element = obj[key]; | |
var value = o[key]; | |
if ("undefined" != typeof value) { | |
value = matches(element, value); | |
if (null != value) { | |
result[key] = value; | |
if (element.a == ELEMENT_NODE) { | |
classNames.push(value); | |
c.push(key); | |
} | |
/** @type {boolean} */ | |
valid = true; | |
} | |
} | |
} | |
} | |
if (0 < classNames.length) { | |
result = bound(classNames, c, result); | |
} | |
return valid ? result : null; | |
}; | |
event = cb(event, "vO"); | |
/** | |
* @param {string} name | |
* @param {Object} selector | |
* @return {?} | |
*/ | |
var jQuery = function(name, selector) { | |
return name ? event(name, selector) : null; | |
}; | |
jQuery = cb(jQuery, "vCO"); | |
/** | |
* @param {Object} o | |
* @param {Object} c | |
* @return {undefined} | |
*/ | |
var color = function(o, c) { | |
var p; | |
for (p in c) { | |
o[p] = c[p]; | |
} | |
}; | |
color = cb(color, "iCO"); | |
/** | |
* @param {?} eventName | |
* @param {?} arg | |
* @return {?} | |
*/ | |
var define = function(eventName, arg) { | |
return(/^slave-\d+-\d+$/.test(eventName) || /^master-\d+$/.test(eventName)) && "object" == typeof arg; | |
}; | |
define = cb(define, "iPABO"); | |
/** | |
* @param {string} value | |
* @return {?} | |
*/ | |
var iterator = function(value) { | |
return trim(value) || {}; | |
}; | |
iterator = cb(iterator, "pNAO"); | |
/** | |
* @param {Object} item | |
* @param {Object} root | |
* @param {Object} nodes | |
* @return {?} | |
*/ | |
var attr = function(item, root, nodes) { | |
var c = jQuery(window.CSE_OPTIONS_, root); | |
var attrs = {}; | |
var key; | |
for (key in item) { | |
var name = item[key]; | |
if ("name" == key) { | |
attrs[key] = /^slave-\d+-\d+$/.test(name) || /^master-\d+$/.test(name) ? name : null; | |
} else { | |
if (define(key, name)) { | |
if (name.adPageId) { | |
find(name, root, nodes); | |
} | |
name = event(name, root); | |
if (c) { | |
color(name, c); | |
} | |
attrs[key] = name; | |
/** @type {Array} */ | |
json[key] = []; | |
} | |
} | |
} | |
return attrs; | |
}; | |
attr = cb(attr, "vNAO"); | |
/** | |
* @param {Element} el | |
* @param {string} property | |
* @param {string} value | |
* @return {undefined} | |
*/ | |
var css = function(el, property, value) { | |
/** @type {string} */ | |
el.style[property] = value; | |
}; | |
css = cb(css, "sS"); | |
/** | |
* @param {Object} t | |
* @return {?} | |
*/ | |
var translate = function(t) { | |
return t.titleLetterSpacing || ""; | |
}; | |
translate = cb(translate, "gTLS"); | |
/** | |
* @param {Object} event | |
* @param {Array} data | |
* @return {undefined} | |
*/ | |
var error = function(event, data) { | |
var type = event.resultsPageBaseUrl; | |
var files = event.resultsPageQueryParam; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < data.length;i++) { | |
var arg = data[i].t; | |
var photo = data[i].afdt; | |
if (null != arg && null != photo) { | |
if (!type) { | |
throw removeListener("resultsPageBaseUrl resultsPageBaseUrl needs to be set."); | |
} | |
var result = new token(type); | |
callback(result, files, arg); | |
callback(result, "rsToken", photo); | |
data[i].l = require(result); | |
data[i].u = require(result); | |
} | |
} | |
}; | |
error = cb(error, "fRSCL"); | |
/** | |
* @param {Object} msg | |
* @param {number} i | |
* @param {boolean} value | |
* @param {string} obj | |
* @param {Object} length | |
* @return {?} | |
*/ | |
var save = function(msg, i, value, obj, length) { | |
var l = i.horizontalFlow ? -1 : i.columns; | |
if (2 <= l) { | |
/** @type {Object} */ | |
var message = msg; | |
if (0 >= l) { | |
msg = message; | |
} else { | |
/** @type {Array} */ | |
msg = []; | |
/** @type {number} */ | |
var n = 0; | |
/** @type {number} */ | |
var c = 0; | |
for (;c < l;c++) { | |
/** @type {number} */ | |
var z = Math.ceil((message.length - n) / (l - c)); | |
/** @type {number} */ | |
var y = 0; | |
for (;y < z;y++) { | |
msg[y * l + c] = message[n++]; | |
} | |
} | |
} | |
} | |
/** @type {Object} */ | |
message = msg; | |
/** @type {boolean} */ | |
i = !i.horizontalFlow; | |
if (length && (length.mk && (1 == l || 2 <= l && length.lk))) { | |
value = (void 0)(length, msg.length); | |
l = obj.g; | |
/** @type {string} */ | |
obj = '<div class="la_">'; | |
length = message.length; | |
/** @type {number} */ | |
i = 0; | |
for (;i < length;i++) { | |
msg = message[i]; | |
obj += '<div class="ma_" style="border-' + (l ? "right" : "left") + "-color: " + start(toString(value[i])) + '"><a href="' + start(replace(msg.l)) + '" class="titleLink popstripeRs" target="_top">' + parent(forEach({ | |
text : msg.t, | |
g : l | |
})); | |
obj += '<div class="na_" style="background-image: url(' + start(replace(msg.adIconUrl && ("ad-left" == msg.adIconLocation && msg.img) ? msg.adIconUrl : "//www.gstatic.com/domainads/images/chevron-white.png")) + ')"></div></a></div>'; | |
} | |
value = func(obj + "</div>"); | |
} else { | |
/** @type {string} */ | |
obj = "" + ('<table cellspacing="0" cellpadding="0"' + (2 <= l || i ? ' width="100%"' : "") + "><tbody><tr>"); | |
length = message.length; | |
/** @type {number} */ | |
i = 0; | |
for (;i < length;i++) { | |
msg = message[i]; | |
/** @type {boolean} */ | |
n = 0 > l || 2 <= l && i < l; | |
obj += (0 != i && (0 < l && 0 == i % l) ? "</tr><tr>" : "") + '<td class="col' + (i == length - 1 ? " l" : "") + '"' + (2 <= l ? ' width="' + 100 / l + '%"' : "") + ">"; | |
c = message.length % l || l; | |
obj += '<div class="ad' + (0 == i ? " f" : "") + (n ? " fr" : "") + (i == length - 1 ? " l" : "") + (!n && (2 <= l && i >= message.length - c) ? " lr" : "") + '">' + call({ | |
B : msg, | |
Tc : false, | |
$i : "_top" | |
}) + '<div class="a_ b_ radlinkC">' + onLoad({ | |
B : msg, | |
Tc : false, | |
$i : "_top" | |
}) + '<div class="adD"><div class="adStd" ' + (value ? 'data-click-s="' + msg.l + '" data-click-trg="_top"' : "") + '><a href="' + msg.l + '" class="titleLink" target="_top">' + msg.t + "</a></div></div></div></div></td>"; | |
} | |
/** @type {string} */ | |
value = obj + "</tr></tbody></table>"; | |
} | |
return value; | |
}; | |
save = cb(save, "cRSN"); | |
/** | |
* @param {Object} e | |
* @param {Object} block | |
* @param {Object} chunk | |
* @param {number} el | |
* @param {Object} data | |
* @param {string} i | |
* @param {string} id | |
* @param {string} args | |
* @param {string} callback | |
* @param {string} o | |
* @param {(Function|string)} options | |
* @return {?} | |
*/ | |
var run = function(e, block, chunk, el, data, i, id, args, callback, o, options) { | |
if (0 >= e.length) { | |
return null; | |
} | |
var m = (0,eval)(data); | |
/** @type {string} */ | |
var r = ""; | |
/** @type {null} */ | |
chunk = null; | |
if (options.customAdIcons) { | |
if (null != data.adIconUrl && (0 < data.adIconHeight && 0 < data.adIconWidth)) { | |
formatter(e, data.adIconUrl, data.adIconLocation, true); | |
} else { | |
if (null != data.adIconPageUrl) { | |
if (0 < data.adIconPageHeight) { | |
if (0 < data.adIconPageWidth) { | |
formatter(e, data.adIconPageUrl, data.adIconPageLocation, false); | |
} | |
} | |
} | |
} | |
} | |
error(data, e); | |
var matches = equal(data, options); | |
id = new _read(data.lines, i, id, !!options.clickableIcon, args, !matches, callback, o, !!options.isRtl, m, !!options.offerHighlightWithIcon, !!options.sitelinkTruncate && !matches); | |
args = data.type || "ads"; | |
if ("ads" == args) { | |
if (options.sellerFirstBoxLeft) { | |
data = data.sellerColumnWidth; | |
if (e) { | |
/** @type {number} */ | |
i = 0; | |
r = e.length; | |
for (;i < r;i++) { | |
if (e[i].plus_ones) { | |
e[i].plus_ones = step(e[i]); | |
} | |
} | |
} | |
e = { | |
ads : e, | |
A : options, | |
Jj : data, | |
j : m | |
}; | |
var self; | |
/** @type {string} */ | |
m = '<div id="wideSfbl">'; | |
data = e.ads; | |
i = data.length; | |
/** @type {number} */ | |
r = 0; | |
for (;r < i;r++) { | |
id = data[r]; | |
m += '<div class="a_ b_ adUnit_js"><div class="sfblAd' + (r != i - 1 ? " notLast" : "") + (id.topad ? " g_" : "") + '">' + bind({ | |
Pa : "" + has(beget(e, { | |
B : id, | |
ld : true | |
})), | |
Qa : "" + map(beget(e, { | |
B : id | |
})), | |
oa : null == (self = e.Jj) ? 130 : self, | |
$a : 10, | |
Tb : e.A.isRtl | |
}) + "</div></div>"; | |
} | |
m += '</div><div id="narrowSfbl" style="display: none;">'; | |
self = e.ads; | |
data = self.length; | |
/** @type {number} */ | |
i = 0; | |
for (;i < data;i++) { | |
r = self[i]; | |
m += '<div class="a_ b_ adUnit_js"><div class="sfblAd' + (i != data - 1 ? " notLast" : "") + (r.topad ? " g_" : "") + '">' + has(beget(e, { | |
B : r, | |
ld : false | |
})) + '<div class="sfblNarrowPadder">' + map(beget(e, { | |
B : r, | |
kk : true | |
})) + "</div></div></div>"; | |
} | |
/** @type {string} */ | |
r = m + "</div>"; | |
} else { | |
/** @type {Array} */ | |
chunk = []; | |
/** @type {function (string, boolean, Object, string, string): undefined} */ | |
self = draw; | |
/** @type {number} */ | |
m = 0; | |
for (;m < e.length;++m) { | |
chunk.push(new self(e[m], options, id)); | |
} | |
chunk = new Buffer(chunk, clean); | |
r = chunk.f(); | |
} | |
} else { | |
if ("relatedsearch" == args) { | |
r = save(e, data, i, id, null); | |
} | |
} | |
options = func('<div style="display: none;" id="_googAFS_' + start(options.pubId || "unknown_pubId") + '"></div>'); | |
appendChild(options, block, el); | |
appendChild(r, block, el); | |
return chunk; | |
}; | |
run = cb(run, "cAN"); | |
/** | |
* @param {string} pattern | |
* @return {?} | |
*/ | |
var add = function(pattern) { | |
/** @type {Array} */ | |
var list = [{ | |
index : pattern.indexOf("{{NUM_START}}"), | |
Hb : 13 | |
}, { | |
index : pattern.indexOf("{{NUM_END}}"), | |
Hb : 11 | |
}, { | |
index : pattern.indexOf("{{LINK_START}}"), | |
Hb : 14 | |
}, { | |
index : pattern.indexOf("{{LINK_END}}"), | |
Hb : 12 | |
}, { | |
index : pattern.indexOf("{{RATING}}"), | |
Hb : 10 | |
}]; | |
list.sort(function(a, b) { | |
return a.index - b.index; | |
}); | |
/** @type {Array} */ | |
var acc = []; | |
/** @type {number} */ | |
var i = 0; | |
/** @type {number} */ | |
var p = 0; | |
for (;-1 == list[p].index;) { | |
p++; | |
} | |
for (;p < list.length;p++) { | |
if (i < list[p].index) { | |
acc.push(pattern.substring(i, list[p].index)); | |
} | |
i = pattern.substring(list[p].index, list[p].index + list[p].Hb); | |
i = i.replace("{{", "").replace("}}", ""); | |
acc.push(i); | |
i = list[p].index + list[p].Hb; | |
} | |
if (i < pattern.length) { | |
acc.push(pattern.substring(i)); | |
} | |
return acc; | |
}; | |
add = cb(add, "pSSTA"); | |
/** | |
* @param {?} key | |
* @return {undefined} | |
*/ | |
var length = function(key) { | |
if (key.u && (key.u = resolveModule(key.u), key.ctc && (key.ctc.u = resolveModule(key.ctc.u)), key.sls)) { | |
/** @type {number} */ | |
var j = 0; | |
for (;j < key.sls.length;j++) { | |
key.sls[j].u = resolveModule(key.sls[j].u); | |
} | |
} | |
}; | |
length = cb(length, "aDTU"); | |
/** | |
* @param {?} fn | |
* @return {undefined} | |
*/ | |
var param = function(fn) { | |
if (fn.sr) { | |
fn.sr.wt = add(fn.sr.wt); | |
fn.sr.nt = add(fn.sr.nt); | |
} | |
}; | |
param = cb(param, "fSRD"); | |
/** | |
* @param {Function} url | |
* @param {Object} event | |
* @return {?} | |
*/ | |
var resize = function(url, event) { | |
if (!event.isHighendMobile || !endsWith()) { | |
return null; | |
} | |
/** @type {string} */ | |
var currentValue = "100%"; | |
return cb(function() { | |
var value = getWindowSize(false, window).width; | |
/** @type {number} */ | |
var result = window.screen.width; | |
/** @type {string} */ | |
value = value > result && value < 2 * result ? result + "px" : "100%"; | |
if (value != currentValue) { | |
/** @type {string} */ | |
currentValue = value; | |
var i; | |
for (i in defs) { | |
result = ok(i, url); | |
if (null == result) { | |
delete defs[i]; | |
} else { | |
css(result.document.body, "width", value); | |
} | |
} | |
setTimeout(defer(el, url), 10); | |
} | |
}, "mWS"); | |
}; | |
resize = cb(resize, "gMWS"); | |
/** | |
* @param {Array} array | |
* @param {string} name | |
* @param {?} obj | |
* @return {undefined} | |
*/ | |
var get = function(array, name, obj) { | |
/** @type {boolean} */ | |
var f = false; | |
name = expect(name); | |
if (obj.isRtl) { | |
self.Kb("rtl", true); | |
} | |
if (obj.queryId) { | |
self.Dd("qi", obj.queryId); | |
} | |
var context = {}; | |
/** @type {number} */ | |
var d = 0; | |
for (;d < array.length;d++) { | |
var data = array[d]; | |
var key = data.fn; | |
if ("slave-0" == key) { | |
/** @type {boolean} */ | |
f = true; | |
} | |
/** @type {string} */ | |
key = key + "-" + name; | |
if (!json[key]) { | |
var msg = { | |
message : key | |
}; | |
util.log(msg, "pAJ2"); | |
/** @type {Array} */ | |
json[key] = []; | |
} | |
json[key].push(data); | |
if (data.type != ecConfig.Hc) { | |
if (data.type != ecConfig.Ec) { | |
if (data.ctc) { | |
if (data.ctc.coa) { | |
if (!data.u) { | |
data.u = data.ctc.u; | |
} | |
} | |
} | |
length(data); | |
if (data.t) { | |
data.cleanTitle = stringify(data.t); | |
} | |
if (data.v) { | |
data.visDomain = stringify(data.v).replace(/\/.*$/, "").replace(/^www\./, ""); | |
data.nonBreakingVisDomain = data.visDomain.replace(/-/g, "‑"); | |
} | |
if (data.type == ecConfig.zf) { | |
param(data); | |
} | |
if (obj.getVisUrls) { | |
if (data) { | |
if (data.v) { | |
/** @type {number} */ | |
context[stringify(data.v)] = 1; | |
} | |
} | |
} | |
} | |
} | |
} | |
if (obj.getVisUrls) { | |
/** @type {Array} */ | |
array = []; | |
var match; | |
for (match in context) { | |
array.push(match); | |
} | |
self.Dd("v." + name, array.sort().join("|")); | |
} | |
var i; | |
for (i in json) { | |
match = json[i].length; | |
/** @type {boolean} */ | |
array = false; | |
if (0 < match && json[i][0].type == ecConfig.Hc) { | |
match = json[i][0].plas ? json[i][0].plas.length : 0; | |
} else { | |
if (0 < match) { | |
if (json[i][0].type == ecConfig.Ec) { | |
match = json[i][0].offers ? json[i][0].offers.length : 0; | |
if (0 == match) { | |
if (json[i][0].pd) { | |
/** @type {boolean} */ | |
array = true; | |
} | |
} | |
} | |
} | |
} | |
if (f && /^master/.test(i)) { | |
if (0 < match) { | |
msg = { | |
message : json[i].length | |
}; | |
util.log(msg, "pAJ3"); | |
} | |
delete json[i]; | |
} else { | |
self.Kb(i + ".hA", 0 < match); | |
if (obj.getNumAds) { | |
self.Lb(i + ".aC", match); | |
} | |
if (1 > match) { | |
if (!array) { | |
delete json[i]; | |
} | |
} | |
} | |
} | |
if (obj.getNumAds) { | |
self.Kb("aD." + name, true); | |
} | |
self.Kb("r." + name, !!obj.isRejected); | |
_(self); | |
}; | |
get = cb(get, "pAJ"); | |
/** | |
* @param {Object} stop | |
* @return {?} | |
*/ | |
var change = function(stop) { | |
/** @type {Array} */ | |
var ret = []; | |
var key; | |
for (key in vals) { | |
var elems = stop[key]; | |
if (elems) { | |
var val = vals[key]; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < elems.length;i++) { | |
elems[i].type = val; | |
} | |
/** @type {Array} */ | |
ret = ret.concat(elems); | |
} | |
} | |
return ret; | |
}; | |
change = cb(change, "cAA"); | |
/** | |
* @param {Object} options | |
* @param {Object} res | |
* @param {string} type | |
* @return {undefined} | |
*/ | |
var request = function(options, res, type) { | |
/** @type {null} */ | |
var req = null; | |
if (window.XMLHttpRequest) { | |
/** @type {XMLHttpRequest} */ | |
req = new XMLHttpRequest; | |
} else { | |
if (window.ActiveXObject) { | |
req = new ActiveXObject("Microsoft.XMLHTTP"); | |
} | |
} | |
if (req) { | |
req.open("GET", "/afs/ads?" + type, true); | |
req.setRequestHeader("Duplicate", "1"); | |
/** | |
* @return {undefined} | |
*/ | |
req.onreadystatechange = function() { | |
if (4 == req.readyState) { | |
var title = trim(req.responseText.substr(req.responseText.indexOf("//") + 2)); | |
if (!title) { | |
throw Error("Unable to use waitForAds"); | |
} | |
window.ad_json = title; | |
handle(options, res); | |
} | |
}; | |
req.send(); | |
} else { | |
throw Error("Unable to create the HTTP request object."); | |
} | |
}; | |
request = cb(request, "rCAAC"); | |
/** | |
* @param {Array} ca | |
* @param {?} key | |
* @return {undefined} | |
*/ | |
var output = function(ca, key) { | |
/** @type {number} */ | |
var i = 0; | |
for (;i < ca.length;i++) { | |
var c = ca[i]; | |
var n = c.n; | |
c = c.v; | |
if ("t" == c) { | |
/** @type {boolean} */ | |
key[n] = true; | |
} else { | |
if ("f" != c) { | |
key[n] = c; | |
} | |
} | |
} | |
}; | |
output = cb(output, "cPATO"); | |
/** | |
* @param {?} config | |
* @return {?} | |
*/ | |
var reply = function(config) { | |
var camelKey = window.caps_ || {}; | |
if (config.hasOwnProperty("caps")) { | |
output(config.caps, camelKey); | |
} | |
if (window.relay) { | |
camelKey.relay = window.relay; | |
} | |
if (window.resultUrl) { | |
camelKey.resultUrl = window.resultUrl; | |
} | |
if (window.refererUrl) { | |
camelKey.refererUrl = window.refererUrl; | |
} | |
return camelKey; | |
}; | |
reply = cb(reply, "pCFJPD"); | |
/** | |
* @param {Object} options | |
* @param {Object} fn | |
* @param {Object} c | |
* @return {undefined} | |
*/ | |
var method = function(options, fn, c) { | |
/** | |
* @param {?} $sanitize | |
* @return {undefined} | |
*/ | |
window.cMF_ = function($sanitize) { | |
if (/Opera/i.test(ua)) { | |
setTimeout(function() { | |
$sanitize(); | |
}, 0); | |
} else { | |
$sanitize(); | |
} | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
window.sPH = function() { | |
window.cMF_(defer(el, options)); | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
window.mPAASH = function() { | |
window.cMF_(defer(list, options, fn, c)); | |
}; | |
list(options, fn, c); | |
var args = resize(options, fn); | |
if (args) { | |
setInterval(args, 500); | |
} | |
}; | |
method = cb(method, "sCFC"); | |
/** | |
* @param {Object} namespace | |
* @param {Object} obj | |
* @return {undefined} | |
*/ | |
var handle = function(namespace, obj) { | |
var val = window.ad_json || {}; | |
if ("string" == typeof val) { | |
val = trim(val); | |
} | |
var fn = reply(val); | |
var name = attr(obj, namespace, val); | |
get(change(val), name, fn); | |
window.onresize = defer(params, name, fn); | |
method(name, fn, val); | |
setTimeout(function() { | |
el(name); | |
}, 1); | |
}; | |
handle = cb(handle, "raa"); | |
/** | |
* @param {Object} options | |
* @param {Object} args | |
* @return {undefined} | |
*/ | |
var fetch = function(options, args) { | |
var method = args.name; | |
if (args && (args[method] && isFunction(args[method]))) { | |
request(options, args, args[method].adRequestUrlParams); | |
} else { | |
handle(options, args); | |
} | |
}; | |
fetch = cb(fetch, "init"); | |
/** | |
* @return {?} | |
*/ | |
var cache = function() { | |
return function() { | |
if (window.startTime) { | |
process(new handler("ipl", window.startTime), "ol"); | |
} | |
}; | |
}; | |
cache = cb(cache, "onload"); | |
addEvent(window, "load", cache()); | |
/** | |
* @return {undefined} | |
*/ | |
var action = function() { | |
restore(); | |
}; | |
action = cb(action, "istats"); | |
if (delta) { | |
addEvent(window, "unload", action); | |
setTimeout(action, 15E3); | |
process(delta.clone("ipl"), "jlt"); | |
} | |
process(pdataCur, "pt"); | |
} | |
/** | |
* @param {?} kb | |
* @param {number} require | |
* @return {undefined} | |
*/ | |
var game = function(kb, require) { | |
this.kb = kb; | |
/** @type {number} */ | |
this.nd = require; | |
}; | |
/** | |
* @return {?} | |
*/ | |
game.prototype.da = function() { | |
var a = this.kb.da() + " (one by itself, or multiple in an Array"; | |
if (this.nd) { | |
a += " with fewer than " + (this.nd + 1) + " elements"; | |
} | |
return a + ")"; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
game.prototype.S = function(n) { | |
n = "array" == isArray(n) ? n : [n]; | |
if (this.nd && n.length > this.nd) { | |
return null; | |
} | |
/** @type {Array} */ | |
var out = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < n.length;i++) { | |
var copies = this.kb.S(n[i]); | |
if (null == copies) { | |
return null; | |
} | |
out.push(copies); | |
} | |
return 0 == out.length ? null : out; | |
}; | |
/** | |
* @param {string} c | |
* @return {?} | |
*/ | |
game.prototype.ca = function(c) { | |
c = this.S(c); | |
return null == c || 1 > c.length ? null : this.kb.ca(c[0]); | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var constr = function() { | |
}; | |
/** | |
* @return {?} | |
*/ | |
constr.prototype.da = function() { | |
return "true, false"; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
constr.prototype.S = function(n) { | |
return "true" == n || 1 == n ? true : "false" == n || false === n ? false : null; | |
}; | |
/** | |
* @param {string} c | |
* @return {?} | |
*/ | |
constr.prototype.ca = function(c) { | |
c = this.S(c); | |
return null == c ? null : c ? 1 : 0; | |
}; | |
var obj = new constr; | |
/** | |
* @param {?} from | |
* @param {?} v | |
* @return {undefined} | |
*/ | |
var move = function(from, v) { | |
/** @type {number} */ | |
this.qc = Math.ceil(from); | |
/** @type {number} */ | |
this.oc = Math.floor(v); | |
}; | |
/** | |
* @return {?} | |
*/ | |
move.prototype.da = function() { | |
return this.qc + " - " + this.oc; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
move.prototype.S = function(n) { | |
/** @type {number} */ | |
n = parseInt(n, 10); | |
return n >= this.qc && n <= this.oc ? n : null; | |
}; | |
/** | |
* @param {string} c | |
* @return {?} | |
*/ | |
move.prototype.ca = function(c) { | |
return this.S(c); | |
}; | |
/** | |
* @param {?} cli | |
* @return {undefined} | |
*/ | |
var config = function(cli) { | |
this.kb = cli; | |
}; | |
/** | |
* @return {?} | |
*/ | |
config.prototype.da = function() { | |
return this.kb.da() + " (one or more, comma separated)"; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
config.prototype.S = function(n) { | |
n = getText(n); | |
/** @type {Array} */ | |
var out = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < n.length;i++) { | |
var copies = this.kb.S(n[i]); | |
if (null != copies) { | |
out.push(copies); | |
} | |
} | |
return 0 == out.length ? null : out.join(","); | |
}; | |
/** | |
* @param {(Array|string)} data | |
* @return {?} | |
*/ | |
config.prototype.ca = function(data) { | |
data = getText(data); | |
/** @type {number} */ | |
var byteIndex = 0; | |
for (;byteIndex < data.length;byteIndex++) { | |
var ca = this.kb.ca(data[byteIndex]); | |
if (null != ca) { | |
return ca; | |
} | |
} | |
return null; | |
}; | |
/** | |
* @param {string} key | |
* @return {?} | |
*/ | |
var getText = function(key) { | |
if (!isObject(key)) { | |
return[]; | |
} | |
key = key.split(","); | |
/** @type {Array} */ | |
var ret = []; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < key.length;i++) { | |
ret.push(pad(key[i])); | |
} | |
return ret; | |
}; | |
/** | |
* @param {Array} var_args | |
* @param {number} target | |
* @return {undefined} | |
*/ | |
var extend = function(var_args, target) { | |
/** @type {Array} */ | |
this.jf = var_args; | |
var result = target || 0; | |
this.kf = {}; | |
/** @type {number} */ | |
var i = 0; | |
for (;i < this.jf.length;i++) { | |
var part = this.jf[i]; | |
this.kf[part.toLowerCase()] = new clone(part, result + i); | |
} | |
}; | |
/** | |
* @param {?} dataAndEvents | |
* @param {?} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
var clone = function(dataAndEvents, deepDataAndEvents) { | |
this.kj = dataAndEvents; | |
this.id = deepDataAndEvents; | |
}; | |
var nodeHook = new clone(null, null); | |
/** | |
* @return {?} | |
*/ | |
extend.prototype.da = function() { | |
return this.jf.join(", ") + " (case insensitive)"; | |
}; | |
/** | |
* @param {?} self | |
* @param {string} name | |
* @return {?} | |
*/ | |
var search = function(self, name) { | |
if (!isObject(name)) { | |
return nodeHook; | |
} | |
name = name.toLowerCase(); | |
return self.kf.hasOwnProperty(name) ? self.kf[name] : nodeHook; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
extend.prototype.S = function(n) { | |
return search(this, n).kj; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
extend.prototype.ca = function(n) { | |
return search(this, n).id; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var EventEmitter2 = function() { | |
}; | |
/** @type {RegExp} */ | |
var rRadial = /^\d+px$/i; | |
/** @type {RegExp} */ | |
var host = /^\d+%$/; | |
/** | |
* @return {?} | |
*/ | |
EventEmitter2.prototype.da = function() { | |
return "Width in px (e.g. '500px') or 'auto'"; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
EventEmitter2.prototype.S = function(n) { | |
var c = isNumber(n); | |
return null != c ? c + "px" : isObject(n) && ("auto" == n || host.test(n)) ? n : null; | |
}; | |
/** | |
* @param {?} i | |
* @return {?} | |
*/ | |
EventEmitter2.prototype.ca = function(i) { | |
return isNumber(i); | |
}; | |
/** | |
* @param {?} value | |
* @return {?} | |
*/ | |
var isNumber = function(value) { | |
return "number" == typeof value || isObject(value) && (!/[^0-9]/.test(value) || rRadial.test(value)) ? (value = parseInt(value, 10), isNaN(value) ? null : value) : null; | |
}; | |
var emitter = new EventEmitter2; | |
/** | |
* @return {undefined} | |
*/ | |
var Contact = function() { | |
}; | |
/** | |
* @return {?} | |
*/ | |
Contact.prototype.da = function() { | |
return "A string"; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
Contact.prototype.S = function(n) { | |
return isObject(n) ? n : null; | |
}; | |
/** @type {function (): ?} */ | |
Contact.prototype.ca = tryIt; | |
var contact = new Contact; | |
/** | |
* @return {undefined} | |
*/ | |
var Position = function() { | |
}; | |
/** @type {RegExp} */ | |
var numbers = /^((https?):)?\/\/([a-zA-Z0-9\~\!\@\#\$\&\*\(\)_\+\-\=\:\;\'\,\.\?\/\%]*)$/; | |
/** | |
* @return {?} | |
*/ | |
Position.prototype.da = function() { | |
return "An http(s) url"; | |
}; | |
/** | |
* @param {string} n | |
* @return {?} | |
*/ | |
Position.prototype.S = function(n) { | |
return isObject(n) && numbers.test(n) ? n : null; | |
}; | |
/** @type {function (): ?} */ | |
Position.prototype.ca = tryIt; | |
var _position = new Position; | |
var alphaVar = new move(2, 400); | |
var qtruntimeobject = new move(0, 400); | |
var appCount = new extend(["title-right", "ad-left"]); | |
var order = new move(8, 50); | |
var aP1 = new config(new extend("verdana;arial;tahoma;times new roman;georgia;trebuchet ms".split(";"), 1)); | |
var cos = new config(new extend(["right", "left", "top", "bottom"])); | |
var targetRow = new extend(["off", "low", "med", "high"]); | |
var m = new extend(["_top", "_blank"]); | |
var sample_json = { | |
key : "container", | |
a : contact | |
}; | |
var options = { | |
key : "adtest", | |
a : obj, | |
F : "at", | |
qa : true | |
}; | |
var doc = { | |
key : "adsafe", | |
a : targetRow, | |
F : "as", | |
qa : true | |
}; | |
var extra = { | |
key : "clicktrackUrl", | |
a : new game(_position) | |
}; | |
var expr = { | |
key : "linkTarget", | |
a : m, | |
hb : "_top", | |
K : true | |
}; | |
/** | |
* @param {Object} o | |
* @param {Object} obj | |
* @return {undefined} | |
*/ | |
var isString = function(o, obj) { | |
var k; | |
for (k in obj) { | |
if (obj.hasOwnProperty(k)) { | |
if (!o.hasOwnProperty(k)) { | |
o[k] = obj[k]; | |
} | |
} | |
} | |
}; | |
var reversed = { | |
role : 2, | |
slaveNumber : 1, | |
masterNumber : 1, | |
cx : 1, | |
cref : 1, | |
bgresponse : 1, | |
sbsignals : 1, | |
gcsc : 1, | |
fexp : 1, | |
forceEx : 1, | |
expflags : 1, | |
userAgent : 1, | |
domainName : 1, | |
adRequestUrlParams : 1, | |
deb : 1, | |
uideb : 1, | |
debug : 1, | |
fcap : 1, | |
adsRejectedCallback : 1, | |
fakeads : 1, | |
uuld : 1, | |
jsSrc : 1, | |
iframeFromScs : 1 | |
}; | |
var suiteView = { | |
pubId : 1, | |
propertyCode : 1, | |
container : 2, | |
channel : 1, | |
hl : 1, | |
adtest : 1, | |
adsafe : 1, | |
clicktrackUrl : 1, | |
adLoadedCallback : 1, | |
adsResponseCallback : 1, | |
linkTarget : 1, | |
type : 1 | |
}; | |
var defaults = { | |
lines : 1, | |
width : 1, | |
verticalSpacing : 1, | |
colorAdBackground : 1, | |
colorAdBorder : 1, | |
colorAdSeparator : 1, | |
colorText : 1, | |
colorTitleLink : 1, | |
colorDomainLink : 1, | |
colorBackground : 1, | |
colorBorder : 1, | |
colorAttribution : 1, | |
colorPlusOnes : 1, | |
colorLocation : 1, | |
colorAnnotation : 1, | |
fontFamily : 1, | |
fontFamilyAttribution : 1, | |
fontSizeTitle : 1, | |
fontSizeDescription : 1, | |
fontSizeDomainLink : 1, | |
fontSizeAttribution : 1, | |
fontSizePlusOnes : 1, | |
fontSizeLocation : 1, | |
fontSizeAnnotation : 1, | |
titleBold : 1, | |
rolloverLinkBold : 1, | |
rolloverLinkColor : 1, | |
rolloverLinkBackgroundColor : 1, | |
rolloverLinkUnderline : 1, | |
rolloverAdBackgroundColor : 1, | |
noTitleUnderline : 1, | |
attributionSpacingBelow : 1, | |
rightHandAttribution : 1, | |
attributionText : 1, | |
attributionHref : 1, | |
adsLabel : 1, | |
adBorderSelections : 1, | |
borderSelections : 1, | |
position : 1, | |
adIconPageUrl : 1, | |
adIconPageWidth : 1, | |
adIconPageHeight : 1, | |
adIconPageLocation : 1, | |
adIconPageSpacingAbove : 1, | |
adIconPageSpacingBefore : 1, | |
adIconPageSpacingAfter : 1, | |
adIconUrl : 1, | |
adIconWidth : 1, | |
adIconHeight : 1, | |
adIconLocation : 1, | |
adIconSpacingAbove : 1, | |
adIconSpacingBefore : 1, | |
adIconSpacingAfter : 1, | |
adIconSpacingBelow : 1, | |
lineHeightTitle : 1, | |
lineHeightDescription : 1, | |
lineHeightDomainLink : 1, | |
domainLinkAboveDescription : 1, | |
detailedAttribution : 1, | |
columns : 1, | |
columnSpacing : 1, | |
horizontalFlow : 1, | |
horizontalAlignment : 1, | |
maxTermLength : 1, | |
sellerColumnWidth : 1, | |
amazonTheme : 1, | |
amazonGrayBullets : 1 | |
}; | |
var fromIndex = { | |
query : 2, | |
number : 1, | |
oe : 1, | |
ie : 1, | |
maxTop : 1, | |
minTop : 1, | |
gcse_nc : 1, | |
queryLink : 1, | |
queryContext : 1, | |
siteLinks : 1, | |
location : 1, | |
sellerRatings : 1, | |
reviewExtension : 1, | |
adPage : 1, | |
adpage : 1, | |
clickToCall : 1, | |
adstyle : 1, | |
numRepeated : 1, | |
gl : 1, | |
gcs : 1, | |
gr : 1, | |
gm : 1, | |
longerHeadlines : 1, | |
afdToken : 1, | |
plusOnes : 1, | |
colorKeyword : 1, | |
relatedSearches : 1, | |
offerHighlight : 1, | |
adPageId : 1, | |
heightConstrained : 1, | |
referrer : 1, | |
plas : 1, | |
topPlas : 1, | |
plaFormat : 1, | |
noAdLoadedCallback : 1, | |
iframeHeightCallback : 1, | |
visibleUrlsCallback : 1, | |
clickableBackgrounds : 1, | |
cseGoogleHosting : 1, | |
waitForAds : 1, | |
resultsPageBaseUrl : 1, | |
resultsPageQueryParam : 1 | |
}; | |
/** | |
* @return {?} | |
*/ | |
var randomName = function() { | |
var suiteView = {}; | |
win(suiteView, [doc, options, extra, sample_json, expr, { | |
key : "verticalSpacing", | |
a : new move(2, 30) | |
}, { | |
key : "lines", | |
a : new move(1, 3), | |
F : "af", | |
hb : 3 | |
}, { | |
key : "colorAdBackground", | |
a : docCount | |
}, { | |
key : "colorAdBorder", | |
a : docCount | |
}, { | |
key : "colorAdSeparator", | |
a : docCount | |
}, { | |
key : "colorText", | |
a : docCount, | |
K : true | |
}, { | |
key : "colorTitleLink", | |
a : docCount, | |
K : true | |
}, { | |
key : "colorDomainLink", | |
a : docCount, | |
K : true | |
}, { | |
key : "colorBackground", | |
a : docCount, | |
K : true | |
}, { | |
key : "colorBorder", | |
a : docCount, | |
K : true | |
}, { | |
key : "colorAttribution", | |
a : docCount | |
}, { | |
key : "colorPlusOnes", | |
a : docCount | |
}, { | |
key : "colorKeyword", | |
a : docCount | |
}, { | |
key : "colorLocation", | |
a : docCount | |
}, { | |
key : "colorAnnotation", | |
a : docCount | |
}, { | |
key : "fontFamily", | |
a : aP1, | |
F : "ff", | |
K : true | |
}, { | |
key : "fontFamilyAttribution", | |
a : aP1, | |
F : "fa" | |
}, { | |
key : "fontSizeTitle", | |
a : ELEMENT_NODE, | |
F : "st", | |
K : true | |
}, { | |
key : "fontSizeDescription", | |
a : ELEMENT_NODE, | |
F : "sd", | |
K : true | |
}, { | |
key : "fontSizeDomainLink", | |
a : ELEMENT_NODE, | |
F : "sv", | |
K : true | |
}, { | |
key : "fontSizeAttribution", | |
a : ELEMENT_NODE, | |
F : "sa", | |
K : true | |
}, { | |
key : "fontSizePlusOnes", | |
a : ELEMENT_NODE, | |
F : "so", | |
K : true | |
}, { | |
key : "fontSizeLocation", | |
a : ELEMENT_NODE, | |
F : "sc", | |
K : true | |
}, { | |
key : "fontSizeAnnotation", | |
a : ELEMENT_NODE, | |
F : "sn", | |
K : true | |
}, { | |
key : "titleBold", | |
a : obj, | |
K : true | |
}, { | |
key : "rolloverLinkBold", | |
a : obj, | |
K : true | |
}, { | |
key : "rolloverLinkColor", | |
a : docCount, | |
K : true | |
}, { | |
key : "rolloverLinkBackgroundColor", | |
a : docCount, | |
K : true | |
}, { | |
key : "rolloverLinkUnderline", | |
a : obj, | |
K : true | |
}, { | |
key : "rolloverAdBackgroundColor", | |
a : docCount, | |
K : true | |
}, { | |
key : "noTitleUnderline", | |
a : obj | |
}, { | |
key : "rightHandAttribution", | |
a : obj | |
}, { | |
key : "clickableBackgrounds", | |
a : obj | |
}, { | |
key : "attributionText", | |
a : contact | |
}, { | |
key : "attributionHref", | |
a : _position | |
}, { | |
key : "adsLabel", | |
a : obj | |
}, { | |
key : "adBorderSelections", | |
a : cos | |
}, { | |
key : "borderSelections", | |
a : cos | |
}, { | |
key : "position", | |
a : new extend(["top", "right", "bottom"]) | |
}, { | |
key : "cseGoogleHosting", | |
a : new extend(["full", "iframe", "partner"]) | |
}, { | |
key : "adIconPageUrl", | |
a : _position | |
}, { | |
key : "adIconPageWidth", | |
a : alphaVar | |
}, { | |
key : "adIconPageHeight", | |
a : alphaVar | |
}, { | |
key : "adIconPageLocation", | |
a : appCount | |
}, { | |
key : "adIconPageSpacingAbove", | |
a : qtruntimeobject | |
}, { | |
key : "adIconPageSpacingBefore", | |
a : qtruntimeobject | |
}, { | |
key : "adIconPageSpacingAfter", | |
a : qtruntimeobject | |
}, { | |
key : "adIconUrl", | |
a : _position | |
}, { | |
key : "adIconWidth", | |
a : alphaVar | |
}, { | |
key : "adIconHeight", | |
a : alphaVar | |
}, { | |
key : "adIconLocation", | |
a : appCount, | |
hb : "ad-left" | |
}, { | |
key : "adIconSpacingAbove", | |
a : qtruntimeobject, | |
K : true | |
}, { | |
key : "adIconSpacingBefore", | |
a : qtruntimeobject | |
}, { | |
key : "adIconSpacingAfter", | |
a : qtruntimeobject | |
}, { | |
key : "adIconSpacingBelow", | |
a : qtruntimeobject | |
}, { | |
key : "lineHeightTitle", | |
a : order, | |
F : "lt" | |
}, { | |
key : "lineHeightDescription", | |
a : order, | |
F : "ld" | |
}, { | |
key : "lineHeightDomainLink", | |
a : order, | |
F : "lv" | |
}, { | |
key : "domainLinkAboveDescription", | |
a : obj, | |
F : "va" | |
}, { | |
key : "plaFormat", | |
a : new extend(["horizontal", "twoColumn", "threeColumn"]), | |
hb : "twoColumn" | |
}, { | |
key : "adRequestUrlParams", | |
a : contact | |
}, { | |
key : "waitForAds", | |
a : obj, | |
F : "wa" | |
}, { | |
key : "heightConstrained", | |
a : obj, | |
F : "hc" | |
}, { | |
key : "width", | |
a : emitter, | |
F : "wi", | |
K : true | |
}, { | |
key : "detailedAttribution", | |
a : obj, | |
F : "da" | |
}, { | |
key : "attributionSpacingBelow", | |
a : new move(0, 40) | |
}, { | |
key : "siteLinks", | |
a : obj, | |
F : "sl", | |
qa : true | |
}, { | |
key : "sellerRatings", | |
a : obj, | |
F : "sr", | |
qa : true | |
}, { | |
key : "location", | |
a : obj, | |
F : "lo", | |
qa : true | |
}, { | |
key : "clickToCall", | |
a : obj, | |
F : "cc", | |
qa : true | |
}, { | |
key : "longerHeadlines", | |
a : obj, | |
F : "lh", | |
qa : true | |
}, { | |
key : "plusOnes", | |
a : obj, | |
F : "po", | |
qa : true | |
}, { | |
key : "resultsPageBaseUrl", | |
a : _position | |
}, { | |
key : "offerHighlight", | |
a : obj, | |
F : "oh", | |
qa : true | |
}, { | |
key : "type", | |
a : new extend(["ads", "relatedsearch"]) | |
}, { | |
key : "columns", | |
a : new move(1, 20), | |
hb : 1 | |
}, { | |
key : "columnSpacing", | |
a : new move(2, 100) | |
}, { | |
key : "horizontalFlow", | |
a : obj | |
}, { | |
key : "horizontalAlignment", | |
a : new extend(["center", "left", "right"]), | |
hb : "left" | |
}, { | |
key : "resultsPageQueryParam", | |
a : contact, | |
hb : "query" | |
}, { | |
key : "adPageId", | |
a : new move(0, 4294967295) | |
}, { | |
key : "reviewExtension", | |
a : obj, | |
F : "ap", | |
qa : true | |
}, { | |
key : "sellerColumnWidth", | |
a : new move(130, 200) | |
}, { | |
key : "amazonTheme", | |
a : new extend(["numbered", "bulleted"]) | |
}, { | |
key : "amazonGrayBullets", | |
a : obj | |
}]); | |
return suiteView; | |
}; | |
/** | |
* @return {?} | |
*/ | |
var any = function() { | |
var result = {}; | |
isString(result, fromIndex); | |
isString(result, defaults); | |
isString(result, reversed); | |
isString(result, suiteView); | |
return result; | |
}; | |
if (window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @return {undefined} | |
*/ | |
var i = function() { | |
var memory = detect(); | |
fetch(memory, iterator(window.name)); | |
}; | |
if (0 == ua.indexOf("Opera") || -1 == ua.indexOf("MSIE") && -1 == ua.indexOf("Trident")) { | |
i(); | |
} else { | |
/** @type {function (): undefined} */ | |
window.onload = i; | |
} | |
} | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @return {undefined} | |
*/ | |
var DOMHandler = function() { | |
}; | |
p = DOMHandler.prototype; | |
/** | |
* @return {?} | |
*/ | |
p.he = function() { | |
return new token(onload() + "/afs/ads"); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.re = function() { | |
return new token(onload() + "/uds/afs/i"); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.pe = function() { | |
return new token(onload() + "/afs/ads/i/iframe.html"); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.ne = function() { | |
return "uds_ads_only"; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.Ke = function() { | |
return false; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var file = function() { | |
}; | |
p = file.prototype; | |
/** | |
* @return {?} | |
*/ | |
p.he = function() { | |
return new token((window.dafeBase_ || (window._googCsaAlwaysHttps ? "https:" : "") + "//domains.googlesyndication.com") + "/apps/domainpark/domainpark.cgi?"); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.re = function() { | |
return null; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.pe = function() { | |
return null; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.ne = function() { | |
return "caf"; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.Ke = function() { | |
return true; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var Callbacks = function() { | |
}; | |
p = Callbacks.prototype; | |
/** | |
* @return {?} | |
*/ | |
p.he = function() { | |
return new token((window._googCsaAlwaysHttps ? "https:" : "") + "//" + (window.google && (window.google.loader && window.google.loader.GoogleLocale) ? window.google.loader.GoogleLocale : "www.google.com") + "/cse"); | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.re = function() { | |
return null; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.pe = function() { | |
return null; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.ne = function() { | |
return "uds_ads_only"; | |
}; | |
/** | |
* @return {?} | |
*/ | |
p.Ke = function() { | |
return false; | |
}; | |
} | |
/** | |
* @param {?} index | |
* @return {undefined} | |
*/ | |
var go = function(index) { | |
/** @type {function (): number} */ | |
var nativeRandom = Math.random; | |
this.oi = index; | |
/** @type {function (): ?} */ | |
this.Di = randomColor; | |
/** @type {function (string, Object): undefined} */ | |
this.Kj = loadImage; | |
/** @type {function (): number} */ | |
this.yj = nativeRandom; | |
}; | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Object} i | |
* @param {?} name | |
* @param {Object} data | |
* @param {Object} key | |
* @param {?} dataName | |
* @param {?} deepDataAndEvents | |
* @param {(Function|string)} obj | |
* @param {Object} customTags | |
* @return {undefined} | |
*/ | |
var data = function(i, name, data, key, dataName, deepDataAndEvents, obj, customTags) { | |
/** @type {Object} */ | |
this.Ea = i; | |
this.Nc = name; | |
this.we(data, key, dataName, deepDataAndEvents, obj, customTags); | |
}; | |
data = cb(data, "ab"); | |
data.qj = new handler("pjsp"); | |
/** @type {string} */ | |
data.xh = "gcsc"; | |
/** @type {string} */ | |
data.qh = "21404"; | |
/** @type {string} */ | |
data.Ch = "4031211"; | |
/** @type {string} */ | |
data.wh = "20606"; | |
/** @type {Array} */ | |
data.vf = ["", "7000105", "7000106", "7000107", "7000108"]; | |
/** @type {string} */ | |
data.ab = "longerHeadlines"; | |
/** @type {string} */ | |
data.Hd = "n"; | |
/** @type {string} */ | |
data.Cf = "w"; | |
/** @type {string} */ | |
data.wf = "p"; | |
/** @type {string} */ | |
data.Bh = "a"; | |
/** @type {string} */ | |
data.yf = "pn"; | |
/** @type {string} */ | |
data.Af = "pt"; | |
/** @type {number} */ | |
data.Lh = 6E4; | |
/** @type {string} */ | |
data.zh = "on"; | |
/** @type {boolean} */ | |
data.prototype.qd = false; | |
/** @type {string} */ | |
data.fh = ""; | |
/** @type {number} */ | |
data.Kg = Math.floor(100 * Math.random()); | |
/** @type {string} */ | |
data.Dh = "7000126"; | |
/** @type {string} */ | |
data.Eh = "7000127"; | |
/** @type {string} */ | |
data.Kh = "7000128"; | |
/** @type {RegExp} */ | |
data.Fh = /(^|,|\+)csa_(use|no)_rs(_aa)?($|,|\+)/; | |
data.Gc = { | |
query : "q", | |
type : "type", | |
format : "format", | |
ads : "ad", | |
pubId : "client", | |
channel : "channel", | |
adtest : "adtest", | |
hl : "hl", | |
adsafe : "adsafe", | |
adPage : "adpage", | |
adpage : "adpage", | |
oe : "oe", | |
ie : "ie", | |
output : "output", | |
role : "r", | |
referer : "referer", | |
rurl : "rurl", | |
res_url : "res_url", | |
v : "v", | |
source : "source", | |
safe : "safe", | |
num : "num", | |
fexp : "fexp", | |
jsei : "jsei", | |
nocache : "nocache", | |
cx : "cx", | |
cref : "cref", | |
bgresponse : "bgresponse", | |
sbsignals : "sbsignals", | |
gcse_nc : "gcse_nc", | |
queryLink : "qry_lnk", | |
queryContext : "qry_ctxt", | |
adExtensions : { | |
arg : "adext", | |
siteLinks : "as1", | |
location : "l1", | |
sellerRatings : "sr1", | |
clickToCall : "ctc1" | |
}, | |
allwcallad : "allwcallad", | |
adstyle : "adstyle", | |
adlh : "adlh", | |
numRepeated : "adrep", | |
gl : "gl", | |
uuld : "uuld", | |
gcs : "gcs", | |
gr : "gr", | |
gm : "gm", | |
preload : "preload", | |
forceEx : "expid", | |
e : "e", | |
expflags : "expflags", | |
userAgent : "useragent", | |
fcap : "fcap", | |
afdToken : "afdt", | |
plusOnes : "po", | |
colorKeyword : "clkwd", | |
deb : "deb", | |
uideb : "uideb", | |
debug : "debug", | |
fakeads : "fakeads", | |
jsSrc : "csa_js_src", | |
location : "lo", | |
domainName : "domain_name", | |
maxTermLength : "max_radlink_len", | |
adPageId : "apid", | |
theme : "theme", | |
textColorPalette : "tcpal", | |
merchantFilter : "cmf", | |
gtin : "gtin", | |
brand : "brand", | |
mpn : "mpn", | |
priceCurrency : "pfcrncy", | |
priceMin : "pfmin", | |
priceMax : "pfmax" | |
}; | |
/** @type {string} */ | |
data.uh = "UTF-8"; | |
/** @type {string} */ | |
data.sh = "UTF-8"; | |
/** @type {number} */ | |
data.tf = 2; | |
/** @type {number} */ | |
data.ik = 2; | |
/** @type {string} */ | |
data.Bf = "googleSynd"; | |
data.gh = {}; | |
/** @type {number} */ | |
data.Ah = 80; | |
p = data.prototype; | |
/** | |
* @param {(Function|string)} b | |
* @return {?} | |
*/ | |
p.Wd = function(b) { | |
if (this.fa) { | |
return data.Hd + "0"; | |
} | |
var zoom = b.minTop + this.Ta; | |
var mz = b.maxTop + this.Sa; | |
var l = b.narrow + this.Va; | |
var r = b.wide + this.Xa; | |
var c = b.plas + this.Ua; | |
var m = b.topPlas + this.Wa; | |
b = 0 < zoom ? data.Bh + zoom : ""; | |
var g = 0 < mz ? data.wf + mz : ""; | |
l = 0 < l ? data.Hd + l : ""; | |
r = 0 < r ? data.Cf + r : ""; | |
c = 0 < c ? data.yf + c : ""; | |
m = 0 < m ? data.Af + m : ""; | |
if (mz && zoom > mz) { | |
throw removeListener("Cannot request more minTop ads than maxTop."); | |
} | |
return r + l + g + b + c + m; | |
}; | |
p.Wd = cb(data.prototype.Wd, "cAA"); | |
/** | |
* @param {string} args | |
* @param {Array} namespaces | |
* @return {?} | |
*/ | |
p.Yd = function(args, namespaces) { | |
var block = this.Z(args); | |
if (namespaces) { | |
if (0 < namespaces.length) { | |
namespaces.splice(0, 0, block); | |
block = namespaces.join("|"); | |
} | |
} | |
return block; | |
}; | |
p.Yd = cb(data.prototype.Yd, "cFAM"); | |
/** | |
* @param {Object} args | |
* @return {?} | |
*/ | |
p.Z = function(args) { | |
this.Va = args.number && !args[data.ab] ? args.number : 0; | |
this.Xa = args.number && args[data.ab] ? args.number : 0; | |
this.Ta = args.minTop; | |
this.Sa = args.maxTop; | |
this.Ua = args.plas; | |
this.Wa = args.topPlas; | |
if (!this.Va) { | |
if (!this.Ta) { | |
if (!this.Sa) { | |
if (!this.Xa) { | |
if (!this.Ua) { | |
if (!this.Wa) { | |
if (args[data.ab]) { | |
this.Xa = data.tf; | |
} else { | |
this.Va = data.tf; | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
var a = this.Va || this.Xa; | |
var b = this.Sa || this.Ta; | |
var c = this.Ua || this.Wa; | |
if (a && b) { | |
throw removeListener("Cannot request standard and top ads in the same ad block."); | |
} | |
if (a && c) { | |
throw removeListener("Cannot request standard and PLA ads in the same ad block."); | |
} | |
if (b && c) { | |
throw removeListener("Cannot request top and PLA ads in the same ad block."); | |
} | |
if (this.Ua && this.Wa) { | |
throw removeListener("Cannot request top PLAs and standard PLAs in the same ad block."); | |
} | |
if (this.fa && (0 != args.slaveNumber && (!args.firstAdBlock && (this.Sa || this.Ta)))) { | |
throw removeListener("Only the first ad block can have top ads."); | |
} | |
var dataText; | |
if (this.Sa || this.Ta) { | |
dataText = data.wf; | |
} else { | |
if (this.Va) { | |
dataText = data.Hd; | |
} else { | |
if (this.Xa) { | |
dataText = data.Cf; | |
} else { | |
if (this.Ua) { | |
dataText = data.yf; | |
} else { | |
if (this.Wa) { | |
dataText = data.Af; | |
} | |
} | |
} | |
} | |
} | |
return dataText + (this.Sa || (this.Ta || (this.Va || (this.Xa || (this.Ua || (this.Wa || 0)))))); | |
}; | |
p.Z = cb(data.prototype.Z, "cFA"); | |
/** | |
* @return {?} | |
*/ | |
p.je = function() { | |
return this.Bi; | |
}; | |
p.je = cb(data.prototype.je, "gFA"); | |
/** | |
* @param {Object} v | |
* @return {?} | |
*/ | |
p.Bd = function(v) { | |
if (tmpl(v)) { | |
/** @type {boolean} */ | |
v.siteLinks = 0 != v.siteLinks; | |
/** @type {boolean} */ | |
v.sellerRatings = 0 != v.sellerRatings; | |
/** @type {boolean} */ | |
v.clickToCall = 0 != v.clickToCall; | |
} | |
return v = data.mf(v); | |
}; | |
p.Bd = cb(data.prototype.Bd, "sDIUP"); | |
/** | |
* @return {undefined} | |
*/ | |
p.Ja = function() { | |
}; | |
p.Ja = cb(data.prototype.Ja, "vAURSO"); | |
/** | |
* @param {Object} args | |
* @param {?} deepDataAndEvents | |
* @param {(Function|string)} key | |
* @param {Object} tags | |
* @return {?} | |
*/ | |
p.lf = function(args, deepDataAndEvents, key, tags) { | |
var options = {}; | |
var i; | |
for (i in this.Nc) { | |
if (this.Nc.hasOwnProperty(i)) { | |
if (2 != this.Nc[i] || args[i]) { | |
if ("undefined" != typeof args[i]) { | |
if (null != args[i]) { | |
options[i] = args[i]; | |
} | |
} | |
} else { | |
throw removeListener("Missing option '" + i + "'."); | |
} | |
} | |
} | |
/** @type {boolean} */ | |
this.fa = "m" != args.role; | |
if (!this.fa) { | |
var c; | |
a: { | |
/** @type {(Array.<string>|null)} */ | |
var m = window.location.href.match(/[?&]rsToken=([^&]*)/); | |
if (m && m[1]) { | |
try { | |
/** @type {string} */ | |
c = decodeURIComponent(m[1]); | |
break a; | |
} catch (p) { | |
} | |
} | |
/** @type {null} */ | |
c = null; | |
} | |
if (c) { | |
/** @type {string} */ | |
options.afdToken = c; | |
} | |
} | |
options.adLoadedCallback = args.adLoadedCallback || (args.callback || null); | |
options.adsRejectedCallback = args.adsRejectedCallback || null; | |
options.oe = options.oe || data.uh; | |
options.ie = options.ie || data.sh; | |
options.number = data.zb(options.number, 0); | |
options.minTop = data.zb(options.minTop, 0); | |
options.maxTop = data.zb(options.maxTop, 0); | |
options.plas = data.zb(options.plas, 0); | |
options.topPlas = data.zb(options.topPlas, 0); | |
if (1 == options.slaveNumber) { | |
if (options.numRepeated) { | |
if (options.longerHeadlines) { | |
/** @type {boolean} */ | |
options.longerHeadlines = false; | |
} | |
} | |
} | |
/** @type {string} */ | |
options.fexp = (options.fexp ? options.fexp + "," : "") + (options.gcsc ? data.wh : data.qh); | |
if (!window.postMessage) { | |
options.fexp += "," + data.Ch; | |
} | |
if (c = window.googlev3ex) { | |
if (!isNaN(parseInt(c, 10))) { | |
options.fexp += "," + c; | |
} | |
} | |
/** @type {number} */ | |
c = parseInt(window._googCsaX, 10) || 0; | |
if (0 < c) { | |
if (c < data.vf.length) { | |
/** @type {number} */ | |
options.jsei = c; | |
options.fexp += "," + data.vf[c]; | |
} | |
} | |
/** @type {number} */ | |
c = parseInt(window._googCsaExp, 10) || 0; | |
if (0 < c) { | |
options.fexp += "," + c; | |
} | |
/** @type {number} */ | |
c = parseInt(window._googCsaJsLoad, 10) || 0; | |
if (0 < c) { | |
options.fexp += "," + c; | |
if (delta) { | |
if (7000615 == c || 7000637 == c) { | |
removeNode("pplsc"); | |
} else { | |
if (!(7000616 != c && 7000638 != c)) { | |
removeNode("pplse"); | |
} | |
} | |
} | |
} | |
/** @type {number} */ | |
c = parseInt(window._googCsaRelSearch, 10) || 0; | |
if (0 < c) { | |
options.fexp += "," + c; | |
} | |
if (options.channel) { | |
if ("string" == typeof options.channel) { | |
if (c = options.channel.match(data.Fh)) { | |
options.fexp += "," + ("use" == c[2] ? data.Kh : "_aa" == c[3] ? data.Eh : data.Dh); | |
} | |
} | |
} | |
if (options.forceEx) { | |
/** @type {string} */ | |
options.e = "ForceExperiment"; | |
} else { | |
if (0 === options.forceEx) { | |
/** @type {string} */ | |
options.e = "0"; | |
} | |
} | |
if (options.gcsc) { | |
if (5 > data.Kg) { | |
options.fexp += ",37108"; | |
} else { | |
if (10 > data.Kg) { | |
options.fexp += ",37109"; | |
} | |
} | |
if ("top" == args.position) { | |
options.maxTop = args.number; | |
/** @type {boolean} */ | |
options.longerHeadlines = false; | |
/** @type {null} */ | |
options.number = null; | |
} | |
} | |
options.format = this.fa ? this.Z(options) : this.Yd(options, deepDataAndEvents); | |
this.Bi = options.format; | |
options.ads = this.Wd(key); | |
/** @type {string} */ | |
options.nocache = [Math.floor(1E3 * Math.random()), (new Date).getTime()].join(""); | |
/** @type {string} */ | |
options.num = "0"; | |
options.output = this.xc.ne(); | |
if (this.xc.Ke()) { | |
if (!options.domainName) { | |
/** @type {string} */ | |
options.domainName = window.document.domain; | |
} | |
options.domainName = options.domainName.substring(0, data.Ah); | |
} else { | |
/** @type {string} */ | |
options.domainName = ""; | |
} | |
if (options.gcsc) { | |
options.source = data.xh; | |
} | |
/** @type {string} */ | |
options.v = isFunction(options) ? "4" : "3"; | |
if (options.adPageId) { | |
options.pubId = options.propertyCode; | |
options.adPageId = matches(this.Ea.adPageId, options.adPageId); | |
} | |
if (!isObject(options.pubId)) { | |
/** @type {string} */ | |
options.pubId = "" + options.pubId; | |
} | |
if (0 == options.pubId.indexOf("partner-")) { | |
options.pubId = options.pubId.substring(8); | |
} | |
options = this.Bd(options); | |
if (!options.titleBold || true !== options.titleBold && 1 != options.titleBold) { | |
if (options.titleBold) { | |
delete options.titleBold; | |
} | |
} else { | |
/** @type {number} */ | |
options.titleBold = 1; | |
} | |
if (tmpl(options)) { | |
if (!(!options.maxTop && !options.minTop)) { | |
if (!options.hasOwnProperty(data.ab)) { | |
/** @type {boolean} */ | |
options[data.ab] = true; | |
} | |
} | |
} | |
if (!this.fa) { | |
args = options[data.ab] || false; | |
for (i in tags) { | |
if (tags.hasOwnProperty(i)) { | |
args = args || tags[i].o[data.ab]; | |
} | |
} | |
if (args) { | |
options.adlh = data.zh; | |
} | |
} | |
if (options.clickToCall) { | |
/** @type {number} */ | |
options.allwcallad = 1; | |
} | |
this.Ja(options); | |
return options; | |
}; | |
p.lf = cb(data.prototype.lf, "vASDO"); | |
/** | |
* @param {?} b | |
* @param {number} mayParseLabeledStatementInstead | |
* @return {?} | |
*/ | |
data.zb = function(b, mayParseLabeledStatementInstead) { | |
/** @type {number} */ | |
var num2 = parseInt(b, 10); | |
return!isNaN(num2) && 0 <= num2 ? num2 : mayParseLabeledStatementInstead; | |
}; | |
data.zb = cb(data.zb, "tNNIOD"); | |
/** | |
* @param {number} mode | |
* @return {?} | |
*/ | |
data.md = function(mode) { | |
/** @type {number} */ | |
mode = parseInt(mode, 10); | |
return!isNaN(mode) && 0 <= mode; | |
}; | |
data.md = cb(data.md, "iNNN"); | |
data.yh = { | |
hc : 1, | |
lh : 1, | |
oh : 1, | |
pa : 1 | |
}; | |
/** | |
* @param {string} l | |
* @param {Node} params | |
* @return {?} | |
*/ | |
data.gd = function(l, params) { | |
var p = params.F; | |
var s = params.a.ca(l); | |
return null != s && data.md(s) ? data.yh.hasOwnProperty(p) ? s ? p.charAt(0) + p.charAt(1).toUpperCase() : p : p + s : ""; | |
}; | |
data.gd = cb(data.gd, "gPFO"); | |
p = data.prototype; | |
/** | |
* @param {Object} fields | |
* @return {?} | |
*/ | |
p.Ne = function(fields) { | |
/** @type {Array} */ | |
var tagNameArr = []; | |
var k; | |
for (k in fields) { | |
if (fields.hasOwnProperty(k)) { | |
if (k in this.Ea) { | |
if (this.Ea[k].F) { | |
tagNameArr.push(data.gd(fields[k], this.Ea[k])); | |
} | |
} | |
} | |
} | |
return tagNameArr.join(""); | |
}; | |
p.Ne = cb(data.prototype.Ne, "oTPP"); | |
/** | |
* @param {Object} o | |
* @param {Object} arr2 | |
* @return {?} | |
*/ | |
p.uc = function(o, arr2) { | |
/** @type {Array} */ | |
var tagNameArr = []; | |
var i; | |
for (i in o) { | |
if (!!(o.hasOwnProperty(i) && (i in this.Ea && this.Ea[i].F))) { | |
if (!(i in arr2 && arr2[i] == o[i])) { | |
tagNameArr.push(data.gd(o[i], this.Ea[i])); | |
} | |
} | |
} | |
return tagNameArr.join(""); | |
}; | |
p.uc = cb(data.prototype.uc, "oTBP"); | |
/** | |
* @param {Object} data | |
* @param {Object} args | |
* @param {Object} value | |
* @return {?} | |
*/ | |
p.$d = function(data, args, value) { | |
var output = data.v ? data.v : "3"; | |
var result = this.Xd(data, args, value); | |
if (0 == args.length) { | |
return["uv", output, result, this.uc(data, {}), "-"].join(""); | |
} | |
value.pubId = data.pubId; | |
value = this.Bd(value); | |
var key = this.Ne(value); | |
/** @type {string} */ | |
key = ["uv", output, result, key].join(""); | |
/** @type {Array} */ | |
output = []; | |
output.push(this.uc(data, value)); | |
/** @type {number} */ | |
data = 0; | |
for (;result = args[data];data++) { | |
if (result.o.slaveNumber) { | |
if (0 != result.o.slaveNumber) { | |
output.push(this.uc(result.o, value)); | |
} | |
} | |
} | |
return[key, output.join("-")].join("-"); | |
}; | |
p.$d = cb(data.prototype.$d, "cUIP"); | |
/** | |
* @param {?} key | |
* @param {Object} children | |
* @param {Object} child | |
* @return {?} | |
*/ | |
p.Xd = function(key, children, child) { | |
if (key.colorTitleLink || (key.colorDomainLink || (child.colorTitleLink || child.colorDomainLink))) { | |
return "cs1"; | |
} | |
/** @type {number} */ | |
key = 0; | |
for (;child = children[key];key++) { | |
if (child.o.colorTitleLink || child.o.colorDomainLink) { | |
return "cs1"; | |
} | |
} | |
return ""; | |
}; | |
p.Xd = cb(data.prototype.Xd, "cCTPP"); | |
/** | |
* @param {Object} style | |
* @return {?} | |
*/ | |
data.mf = function(style) { | |
/** @type {Array} */ | |
var diffs = ["fontSizeTitle", "fontSizeDescription", "fontSizeDomainLink", "fontSizeAttribution"]; | |
/** @type {number} */ | |
var x = 0; | |
for (;x < diffs.length;x++) { | |
var i = diffs[x]; | |
if (style[i]) { | |
var n = "string" == typeof style[i] ? parseInt(style[i].replace("px", ""), 10) : style[i]; | |
n = n > pageCount ? pageCount : n; | |
n = 8 > n ? 8 : n; | |
/** @type {string} */ | |
style[i] = n + "px"; | |
} | |
} | |
return style; | |
}; | |
data.mf = cb(data.mf, "vFS"); | |
p = data.prototype; | |
/** | |
* @param {Object} options | |
* @param {Window} global | |
* @return {?} | |
*/ | |
p.ae = function(options, global) { | |
var e; | |
var doc; | |
var which = this.xc.he(); | |
if (which) { | |
this.Nd(options, which); | |
/** @type {boolean} */ | |
var win = 2 == window.googleAltLoader || 4 == window.googleAltLoader; | |
/** @type {boolean} */ | |
doc = 1 == window[data.Bf]; | |
if (3 == window.googleAltLoader && doc) { | |
callback(which, "bsl", 9); | |
} else { | |
if (3 == window.googleAltLoader) { | |
callback(which, "bsl", 8); | |
} else { | |
if (4 == window.googleAltLoader && doc) { | |
callback(which, "bsl", 11); | |
} else { | |
if (4 == window.googleAltLoader) { | |
callback(which, "bsl", 10); | |
} else { | |
if (doc) { | |
callback(which, "bsl", win ? 7 : 3); | |
} else { | |
if (15 == global.googleAltLoader) { | |
callback(which, "bsl", 2); | |
} else { | |
if (win) { | |
callback(which, "bsl", 6); | |
} | |
} | |
} | |
} | |
} | |
} | |
} | |
if (!this.fa) { | |
/** @type {Window} */ | |
win = window; | |
/** @type {HTMLDocument} */ | |
doc = document; | |
/** @type {Date} */ | |
var relative_to = new Date; | |
/** @type {Window} */ | |
var env = win || window; | |
try { | |
/** @type {number} */ | |
e = env.history.length; | |
} catch (p) { | |
/** @type {number} */ | |
e = 0; | |
} | |
callback(which, "u_his", e); | |
callback(which, "u_tz", -relative_to.getTimezoneOffset()); | |
callback(which, "dt", relative_to.getTime()); | |
callback(which, "u_w", win.screen.width); | |
callback(which, "u_h", win.screen.height); | |
e = getWindowSize(true, win); | |
callback(which, "biw", e.width); | |
callback(which, "bih", e.height); | |
if (win.top != win) { | |
e = getWindowSize(false, win); | |
callback(which, "isw", e.width); | |
callback(which, "ish", e.height); | |
} | |
if (doc.body) { | |
/** @type {number} */ | |
e = (relative_to = !win.scrollY && "CSS1Compat" != doc.compatMode) ? doc.body.scrollWidth : doc.body.offsetWidth; | |
/** @type {number} */ | |
doc = relative_to ? doc.body.scrollHeight : doc.body.offsetHeight; | |
} else { | |
/** @type {number} */ | |
doc = e = -1; | |
} | |
callback(which, "psw", e); | |
callback(which, "psh", doc); | |
var msg; | |
if (win.top == win) { | |
/** @type {number} */ | |
msg = 0; | |
} else { | |
/** @type {Window} */ | |
win = win.top; | |
try { | |
var type; | |
if (type = !!win && null != win.location.href) { | |
b: { | |
try { | |
freeze(win.foo); | |
/** @type {boolean} */ | |
type = true; | |
break b; | |
} catch (w) { | |
} | |
/** @type {boolean} */ | |
type = false; | |
} | |
} | |
/** @type {boolean} */ | |
msg = type; | |
} catch (v) { | |
/** @type {boolean} */ | |
msg = false; | |
} | |
/** @type {number} */ | |
msg = msg ? 1 : 2; | |
} | |
callback(which, "frm", msg); | |
} | |
callback(which, "uio", this.fh); | |
callback(which, "rurl", global.location.href, true); | |
callback(which, data.Gc.referer, global.document.referrer, true); | |
if (options.referrer) { | |
callback(which, "optref", options.referrer, true); | |
} | |
} | |
return which; | |
}; | |
p.ae = cb(data.prototype.ae, "cU"); | |
/** | |
* @param {Object} params | |
* @param {Object} parameters | |
* @param {?} which | |
* @return {undefined} | |
*/ | |
p.Od = function(params, parameters, which) { | |
var ex = params.arg; | |
/** @type {Array} */ | |
var args = []; | |
var key; | |
for (key in params) { | |
if ("arg" != key) { | |
if (params.hasOwnProperty(key)) { | |
if (parameters.hasOwnProperty(key)) { | |
if (parameters[key]) { | |
args.push(params[key]); | |
} | |
} | |
} | |
} | |
} | |
if (0 < args.length) { | |
callback(which, ex, args.join(",")); | |
} | |
}; | |
p.Od = cb(data.prototype.Od, "aSCSA"); | |
/** | |
* @param {Object} parameters | |
* @param {?} which | |
* @return {undefined} | |
*/ | |
p.Nd = function(parameters, which) { | |
var key; | |
for (key in parameters) { | |
if (parameters.hasOwnProperty(key) && data.Gc.hasOwnProperty(key)) { | |
var k = data.Gc[key]; | |
var p = parameters[key]; | |
if ("clkwd" == k) { | |
/** @type {string} */ | |
p = "t"; | |
} | |
if ("mvtb" != k || ("low" == p || ("medium" == p || "high" == p))) { | |
if ("type" == k) { | |
p = sorted[parameters[key]]; | |
} | |
callback(which, k, p); | |
} | |
} | |
} | |
this.Od(data.Gc.adExtensions, parameters, which); | |
}; | |
p.Nd = cb(data.prototype.Nd, "aOTU"); | |
/** | |
* @return {?} | |
*/ | |
p.wa = function() { | |
return "s" == this.o.role ? ["slave", this.o.slaveNumber, this.o.masterNumber].join("-") : ["master", this.o.masterNumber].join("-"); | |
}; | |
p.wa = cb(data.prototype.wa, "gFN"); | |
/** | |
* @param {Array} value | |
* @param {Object} method | |
* @param {Array} data | |
* @param {?} j | |
* @return {?} | |
*/ | |
p.ke = function(value, method, data, j) { | |
var fn = {}; | |
/** @type {Object} */ | |
fn.name = method; | |
value = data.concat([value]); | |
method = j.concat([method]); | |
/** @type {number} */ | |
j = 0; | |
for (;j < value.length;j++) { | |
data = value[j]; | |
var nameToAliasesMap = this.Ea; | |
var benchmarks = {}; | |
var name = void 0; | |
for (name in nameToAliasesMap) { | |
if (nameToAliasesMap.hasOwnProperty(name) && !nameToAliasesMap[name].qa) { | |
var prop = data[name]; | |
var ref = nameToAliasesMap[name].hb; | |
if ("undefined" == typeof prop || "container" == name && "object" == typeof prop) { | |
if ("undefined" != typeof ref) { | |
benchmarks[name] = ref; | |
} | |
} else { | |
benchmarks[name] = prop; | |
} | |
} | |
} | |
fn[method[j]] = benchmarks; | |
} | |
/** @type {Array} */ | |
value = []; | |
walk(new ke, fn, value); | |
return value.join(""); | |
}; | |
p.ke = cb(data.prototype.ke, "gFNAOAJ"); | |
/** | |
* @param {string} id | |
* @param {?} name | |
* @param {string} path | |
* @return {?} | |
*/ | |
p.fe = function(id, name, path) { | |
if (document.getElementById(id)) { | |
util.log({ | |
message : id | |
}, "dI"); | |
} | |
/** @type {Element} */ | |
var iframe = document.createElement("iframe"); | |
/** @type {number} */ | |
iframe.frameBorder = 0; | |
/** @type {number} */ | |
iframe.marginWidth = 0; | |
/** @type {number} */ | |
iframe.marginHeight = 0; | |
/** @type {number} */ | |
iframe.vspace = 0; | |
/** @type {number} */ | |
iframe.hspace = 0; | |
iframe.setAttribute("allowTransparency", "true"); | |
/** @type {string} */ | |
iframe.scrolling = "no"; | |
/** @type {string} */ | |
iframe.style.visibility = "hidden"; | |
/** @type {string} */ | |
iframe.width = "100%"; | |
/** @type {string} */ | |
iframe.style.height = "0px"; | |
iframe.name = name; | |
/** @type {string} */ | |
iframe.id = id; | |
if (createTextNode()) { | |
/** @type {string} */ | |
iframe.style.display = "none"; | |
this.Oc(iframe); | |
/** @type {string} */ | |
iframe.src = path; | |
/** @type {string} */ | |
iframe.style.display = ""; | |
} else { | |
/** @type {string} */ | |
iframe.src = path; | |
this.Oc(iframe); | |
} | |
try { | |
iframe.contentWindow.name = name; | |
} catch (e) { | |
} | |
return iframe; | |
}; | |
p.fe = cb(data.prototype.fe, "gAI"); | |
/** | |
* @param {Object} callback | |
* @param {?} serviceName | |
* @param {string} attr | |
* @return {undefined} | |
*/ | |
p.Zb = function(callback, serviceName, attr) { | |
callback = this.fe(callback, serviceName, attr); | |
this.og = new handler(this.fa ? "sipl" : "mipl"); | |
addEvent(callback, "load", this.ge()); | |
if (!this.fa) { | |
this.xe(callback); | |
} | |
}; | |
p.Zb = cb(data.prototype.Zb, "iAI"); | |
/** | |
* @param {string} dataAndEvents | |
* @return {undefined} | |
*/ | |
p.df = function(dataAndEvents) { | |
document.write('<script src="' + dataAndEvents + '">\x3c/script>'); | |
}; | |
p.df = cb(data.prototype.df, "sAP"); | |
/** | |
* @param {Element} element | |
* @return {undefined} | |
*/ | |
p.Oc = function(element) { | |
/** @type {string} */ | |
this.Ma.style.fontWeight = "normal"; | |
/** @type {string} */ | |
this.Ma.style.textAlign = "center"; | |
/** @type {string} */ | |
this.Ma.innerHTML = ""; | |
this.Ma.appendChild(element); | |
}; | |
p.Oc = cb(data.prototype.Oc, "aI"); | |
/** | |
* @return {undefined} | |
*/ | |
p.Re = function() { | |
var tmp = {}; | |
var key; | |
for (key in this.o) { | |
if (this.o.hasOwnProperty(key)) { | |
tmp[key] = this.o[key]; | |
} | |
} | |
/** @type {string} */ | |
tmp.ads = "n0"; | |
/** @type {string} */ | |
tmp[""] = ""; | |
/** @type {string} */ | |
tmp.slaveNumber = "0"; | |
/** @type {string} */ | |
tmp.role = "s"; | |
tmp = on(this.Ea, this.Nc, tmp); | |
fields[tmp.wa()] = tmp; | |
this.Za.splice(0, 0, tmp); | |
/** @type {Element} */ | |
tmp = document.createElement("div"); | |
document.body.appendChild(tmp); | |
/** @type {string} */ | |
tmp.style.height = "0px"; | |
/** @type {string} */ | |
tmp.style.visibility = "hidden"; | |
/** @type {Element} */ | |
this.o.container = tmp; | |
/** @type {boolean} */ | |
this.vg = this.o.preload = true; | |
}; | |
p.Re = cb(data.prototype.Re, "pM"); | |
/** | |
* @return {?} | |
*/ | |
p.Ae = function() { | |
self.hg = self.hg || (new Date).getTime(); | |
return(new Date).getTime() - self.hg > data.Lh ? true : false; | |
}; | |
p.Ae = cb(data.prototype.Ae, "iTU"); | |
/** | |
* @return {?} | |
*/ | |
p.hd = function() { | |
return this.o.iframeFromScs && this.xc.pe() || this.xc.re(); | |
}; | |
p.hd = cb(data.prototype.hd, "gSIU"); | |
/** | |
* @param {Array} r | |
* @param {Array} bytes | |
* @param {?} i | |
* @param {?} deepDataAndEvents | |
* @param {(Function|string)} subKey | |
* @param {Object} customTags | |
* @return {undefined} | |
*/ | |
p.we = function(r, bytes, i, deepDataAndEvents, subKey, customTags) { | |
/** @type {number} */ | |
this.Wa = this.Ua = this.Xa = this.Ta = this.Sa = this.Va = 0; | |
/** @type {Array} */ | |
this.xc = bytes; | |
this.Za = customTags || null; | |
this.Cg = i || null; | |
this.o = this.lf(r, deepDataAndEvents, subKey, customTags); | |
this.Ci = new go(this.o.pubId); | |
if (!this.bd()) { | |
if (!this.fa) { | |
if (!!document.body) { | |
if (!done()) { | |
this.Re(); | |
} | |
} | |
} | |
} | |
this.fh = null == this.Cg ? "" : this.$d(this.o, this.Za, this.Cg); | |
if (this.Kc = this.fa && this.hd() || this.ae(this.o, window)) { | |
if (this.qb = this.id = this.Vb = this.wa(), this.Kc.ad = this.Vb, this.sa = require(this.Kc), !this.fa) { | |
/** @type {Array} */ | |
r = []; | |
/** @type {Array} */ | |
bytes = []; | |
/** @type {number} */ | |
i = 0; | |
for (;i < this.Za.length;i++) { | |
r.push(this.Za[i].wa()); | |
bytes.push(this.Za[i].o); | |
} | |
if (isFunction(this.o)) { | |
this.o.adRequestUrlParams = this.sa.substr(this.sa.indexOf("?") + 1); | |
} | |
this.qb = this.ke(this.o, this.Vb, bytes, r); | |
if (data.gh[this.sa]) { | |
util.log({ | |
message : this.sa | |
}, "dAU"); | |
} else { | |
/** @type {boolean} */ | |
data.gh[this.sa] = true; | |
} | |
} | |
} | |
}; | |
p.we = cb(data.prototype.we, "i"); | |
/** | |
* @return {undefined} | |
*/ | |
p.$c = function() { | |
var _this = this; | |
_this.Ic = new handler("plabl"); | |
var throttledUpdate = cb(function() { | |
if (!_this.bd()) { | |
return false; | |
} | |
_this.Ic = _this.Ic.clone("iabl"); | |
_this.Ye(_this.o.container); | |
if (_this.o.width) { | |
if (!_this.vg) { | |
if ("auto" == _this.o.width) { | |
/** @type {string} */ | |
_this.Ma.style.width = "100%"; | |
} else { | |
if (data.md(_this.o.width)) { | |
_this.Ma.style.width = _this.o.width; | |
} | |
} | |
} | |
} | |
_this.Fe(); | |
return true; | |
}, "mA"); | |
if (!throttledUpdate()) { | |
/** @type {number} */ | |
this.Og = window.setInterval(function() { | |
if (throttledUpdate()) { | |
clearInterval(_this.Og); | |
} else { | |
if (_this.Ae()) { | |
throw clearInterval(_this.Og), removeListener('container "' + _this.o.container + '" does not exist.'); | |
} | |
} | |
}, 5); | |
} | |
}; | |
p.$c = cb(data.prototype.$c, "cI"); | |
/** | |
* @return {undefined} | |
*/ | |
p.Fe = function() { | |
if (this.Kc) { | |
var view = this.hd(); | |
if (view && (require(view) && isFunction(this.o))) { | |
if (true === this.o.debug) { | |
callback(view, "debug", true); | |
} | |
if ("1" == window[data.Bf]) { | |
callback(view, "bsl", "3"); | |
} | |
view.ad = this.Vb; | |
var v = require(view); | |
if (this.fa) { | |
this.Zb(this.id, this.qb, v); | |
} else { | |
var that = this; | |
/** | |
* @return {undefined} | |
*/ | |
window.google.renderCsaAds = function() { | |
that.Zb(that.id, that.qb, v); | |
}; | |
this.df(this.sa); | |
} | |
} else { | |
this.Zb(this.id, this.qb, this.sa); | |
} | |
} | |
}; | |
p.Fe = cb(data.prototype.Fe, "mA"); | |
/** | |
* @return {?} | |
*/ | |
p.ge = function() { | |
var col = this; | |
return cb(function() { | |
if (col.og) { | |
process(col.og, "ol"); | |
} | |
}, "iLC"); | |
}; | |
p.ge = cb(data.prototype.ge, "gILC"); | |
/** | |
* @param {Function} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
p.xe = function(deepDataAndEvents) { | |
/** @type {string} */ | |
var num = "" + this.o.masterNumber; | |
var console = new copy(num); | |
console.aa("aD." + num, C, code); | |
console.aa("qi", e); | |
/** @type {null} */ | |
var text = null; | |
if (!this.vg) { | |
text = this.wa(); | |
console.aa(text + ".hA", C, c); | |
console.aa(text + ".h", node, args); | |
console.aa(text + ".w", node, headers); | |
console.aa(text + ".aC", node); | |
} | |
console.aa("v." + num, e, rgb); | |
if (this.o.hasOwnProperty("gcsc")) { | |
if (this.o.gcsc) { | |
console.aa("r." + num, C, tag); | |
} | |
} | |
if (this.Za) { | |
/** @type {number} */ | |
num = 0; | |
for (;num < this.Za.length;num++) { | |
text = this.Za[num].wa(); | |
console.aa(text + ".hA", C, c); | |
console.aa(text + ".h", node, args); | |
console.aa(text + ".aC", node); | |
} | |
} | |
formatted(console, deepDataAndEvents); | |
}; | |
p.xe = cb(data.prototype.xe, "iFS"); | |
/** | |
* @return {undefined} | |
*/ | |
p.Le = function() { | |
if (!this.qd) { | |
/** @type {boolean} */ | |
this.qd = true; | |
var suiteView = this.o.container; | |
var restoreScript = this.o.noAdLoadedCallback; | |
if (restoreScript) { | |
values(restoreScript, suiteView, false); | |
} | |
if (restoreScript = this.o.adLoadedCallback) { | |
values(restoreScript, suiteView, false); | |
} | |
} | |
}; | |
p.Le = cb(data.prototype.Le, "nNA"); | |
/** | |
* @param {HTMLElement} el | |
* @param {number} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
p.Ze = function(el, deepDataAndEvents) { | |
/** @type {string} */ | |
el.width = "100%"; | |
/** @type {string} */ | |
el.style.visibility = 0 < deepDataAndEvents ? "visible" : "hidden"; | |
/** @type {string} */ | |
el.style.height = deepDataAndEvents + "px"; | |
/** @type {string} */ | |
this.Ma.style.height = deepDataAndEvents + "px"; | |
}; | |
p.Ze = cb(data.prototype.Ze, "sIH"); | |
/** | |
* @param {number} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
p.Xe = function(deepDataAndEvents) { | |
/** @type {string} */ | |
this.Ma.style.width = deepDataAndEvents + "px"; | |
}; | |
p.Xe = cb(data.prototype.Xe, "sCW"); | |
/** | |
* @param {number} deepDataAndEvents | |
* @param {?} result | |
* @return {undefined} | |
*/ | |
p.Te = function(deepDataAndEvents, result) { | |
var obj = this.wa(); | |
var body = filter(obj, true); | |
if (body && (this.Ze(body, deepDataAndEvents), !this.qd && 0 < deepDataAndEvents)) { | |
/** @type {boolean} */ | |
this.qd = true; | |
if (this.Ic) { | |
process(this.Ic, "alt"); | |
} | |
if (window.googleNDT_) { | |
if (!Hj) { | |
if (delta) { | |
/** @type {boolean} */ | |
Hj = true; | |
process(delta, "palt"); | |
} | |
} | |
} | |
var pos = getOffset(body); | |
var self = this.Ci; | |
var p = pos.y; | |
pos = pos.x; | |
var height = body.offsetHeight; | |
body = body.offsetWidth; | |
var photo = result.se("qi"); | |
if (!(0.01 < self.yj())) { | |
var a = new token("https:" + onload() + "/afs/gen_204"); | |
callback(a, "client", self.oi); | |
callback(a, "output", "uds_ads_only"); | |
callback(a, "zx", self.Di()); | |
callback(a, "adbx", pos); | |
callback(a, "adby", p); | |
callback(a, "adbh", height); | |
callback(a, "adbw", body); | |
callback(a, "adbn", obj); | |
callback(a, "aqid", photo); | |
self.Kj(require(a)); | |
} | |
if (obj = this.o.adLoadedCallback) { | |
values(obj, this.o.container, true); | |
} | |
} | |
}; | |
p.Te = cb(data.prototype.Te, "rIS"); | |
/** | |
* @return {?} | |
*/ | |
p.bd = function() { | |
var cont = this.o.container; | |
return "string" == typeof cont ? (cont = document.getElementById(cont), !!cont) : "string" == typeof cont.innerHTML ? true : false; | |
}; | |
p.bd = cb(data.prototype.bd, "dCE"); | |
/** | |
* @param {Element} opt_id | |
* @return {undefined} | |
*/ | |
p.Ye = function(opt_id) { | |
if ("string" == typeof opt_id) { | |
/** @type {(HTMLElement|null)} */ | |
opt_id = document.getElementById(opt_id); | |
} | |
/** @type {Element} */ | |
this.Ma = opt_id; | |
}; | |
p.Ye = cb(data.prototype.Ye, "sC"); | |
} | |
var keys = { | |
key : "textColorPalette", | |
a : new game(docCount, 5) | |
}; | |
/** | |
* @param {Array} values | |
* @return {?} | |
*/ | |
var combine = function(values) { | |
if (!("array" == isArray(values))) { | |
/** @type {Array} */ | |
values = [values]; | |
} | |
values = matches(keys, values); | |
/** @type {number} */ | |
var i = 0; | |
for (;i < values.length;i++) { | |
values[i] = parseTime(values[i]).jd.substr(1); | |
} | |
return values.join(","); | |
}; | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} list | |
* @param {?} conf | |
* @param {?} opt_scope | |
* @param {?} callback | |
* @param {?} opt_acc | |
* @param {?} settings | |
* @param {?} cb_ | |
* @param {?} cb | |
* @return {undefined} | |
*/ | |
var Test = function(list, conf, opt_scope, callback, opt_acc, settings, cb_, cb) { | |
data.call(this, list, conf, opt_scope, callback, opt_acc, settings, cb_, cb); | |
}; | |
Test = cb(Test, "JB"); | |
isPlainObject(Test, data); | |
/** | |
* @return {?} | |
*/ | |
Test.prototype.Z = function() { | |
return ""; | |
}; | |
Test.prototype.Z = cb(Test.prototype.Z, "cFA_cJB"); | |
/** | |
* @param {Object} data | |
* @return {undefined} | |
*/ | |
Test.prototype.Ja = function(data) { | |
if (!data.brand && data.mpn || data.brand && !data.mpn) { | |
throw removeListener("Both brand and mpn should be present in the request."); | |
} | |
if (data.gtin) { | |
data.query = data.gtin; | |
} else { | |
if (data.brand) { | |
if (data.mpn) { | |
/** @type {string} */ | |
data.query = data.brand + " " + data.mpn; | |
} | |
} | |
} | |
if (data.textColorPalette) { | |
data.textColorPalette = combine(data.textColorPalette); | |
} | |
}; | |
Test.prototype.Ja = cb(Test.prototype.Ja, "vURSO_cJB"); | |
} | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} n | |
* @param {?} start | |
* @param {?} obj | |
* @param {?} method | |
* @param {?} t | |
* @param {?} o | |
* @param {?} props | |
* @param {?} protos | |
* @return {undefined} | |
*/ | |
var methods = function(n, start, obj, method, t, o, props, protos) { | |
data.call(this, n, start, obj, method, t, o, props, protos); | |
}; | |
methods = cb(methods, "pb"); | |
isPlainObject(methods, data); | |
/** | |
* @return {?} | |
*/ | |
methods.prototype.Z = function() { | |
return ""; | |
}; | |
methods.prototype.Z = cb(methods.prototype.Z, "cFA_PB"); | |
/** | |
* @param {?} requestOptions | |
* @return {undefined} | |
*/ | |
methods.prototype.Ja = function(requestOptions) { | |
if (requestOptions.textColorPalette) { | |
requestOptions.textColorPalette = combine(requestOptions.textColorPalette); | |
} | |
}; | |
methods.prototype.Ja = cb(methods.prototype.Ja, "vAURSO_PB"); | |
} | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {?} next | |
* @param {?} start | |
* @param {?} value | |
* @param {?} a | |
* @param {?} val | |
* @param {?} callback | |
* @param {?} stop | |
* @param {?} cb | |
* @return {undefined} | |
*/ | |
var input = function(next, start, value, a, val, callback, stop, cb) { | |
data.call(this, next, start, value, a, val, callback, stop, cb); | |
}; | |
input = cb(input, "rsb"); | |
isPlainObject(input, data); | |
/** @type {string} */ | |
input.rh = "r"; | |
/** @type {number} */ | |
input.th = 10; | |
/** | |
* @param {string} args | |
* @return {?} | |
*/ | |
input.prototype.Z = function(args) { | |
var val = args.relatedSearches; | |
if (!val) { | |
if (!(0 === val)) { | |
val = args.number; | |
if (!val) { | |
if (!(0 === val)) { | |
val = input.th; | |
} | |
} | |
} | |
} | |
return input.rh + val; | |
}; | |
input.prototype.Z = cb(input.prototype.Z, "cFA_RS"); | |
} | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {string} name | |
* @param {string} fn | |
* @param {string} cb | |
* @param {string} callback | |
* @param {string} el | |
* @param {string} id | |
* @param {string} type | |
* @return {?} | |
*/ | |
var on = function(name, fn, cb, callback, el, id, type) { | |
if (cb.relatedSearches) { | |
/** @type {string} */ | |
cb.type = "relatedsearch"; | |
} else { | |
if (!cb.type) { | |
/** @type {string} */ | |
cb.type = "ads"; | |
} | |
} | |
if ("relatedsearch" == cb.type) { | |
return new input(name, fn, cb, new file, callback, el, id, type); | |
} | |
if ("ads" == cb.type) { | |
return new data(name, fn, cb, cb.gcsc ? new Callbacks : new DOMHandler, callback, el, id, type); | |
} | |
if ("plas" == cb.type) { | |
return new methods(name, fn, cb, new DOMHandler, callback, el, id, type); | |
} | |
if ("singleProduct" == cb.type) { | |
return new Test(name, fn, cb, new DOMHandler, callback, el, id, type); | |
} | |
throw removeListener("invalid block type: " + cb.type); | |
}; | |
on = cb(on, "nAB"); | |
} | |
/** | |
* @return {undefined} | |
*/ | |
var Model = function() { | |
this.options = {}; | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var File = function() { | |
this.Oe = {}; | |
/** @type {Array} */ | |
this.Hf = []; | |
/** @type {Array} */ | |
this.Lg = []; | |
}; | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {Array} obj | |
* @return {?} | |
*/ | |
var proxy = function(obj) { | |
if (2 > obj.length) { | |
throw removeListener("No options specified."); | |
} | |
return 1 < obj.length && obj[1] instanceof Array ? [obj[0]].concat(obj[1]) : Array.prototype.slice.call(obj, 0); | |
}; | |
proxy = cb(proxy, "ppata"); | |
/** | |
* @param {string} val | |
* @param {?} parent | |
* @param {Object} result | |
* @param {(Object|string)} model | |
* @return {undefined} | |
*/ | |
var resolve = function(val, parent, result, model) { | |
result = proxy(result); | |
/** @type {string} */ | |
var flags = ua.toLowerCase(); | |
if (-1 == flags.indexOf("series60") && -1 == flags.indexOf("series 60")) { | |
if (model) { | |
/** @type {(Object|string)} */ | |
result[0].type = model; | |
} | |
model = new File; | |
flags = result[0]; | |
/** @type {null} */ | |
var test = null; | |
/** @type {number} */ | |
var n = 1; | |
for (;n < result.length;n++) { | |
var elem = test = new Model; | |
var info = flags; | |
var old = result[n]; | |
var name = void 0; | |
for (name in old) { | |
if (old.hasOwnProperty(name)) { | |
elem.options[name] = old[name]; | |
} | |
} | |
for (name in info) { | |
if (info.hasOwnProperty(name)) { | |
if ("longerHeadlines" != name || (elem.options.maxTop || elem.options.minTop)) { | |
elem.options[name] = info[name]; | |
} | |
} | |
} | |
if (test.options.relatedSearches) { | |
model.Lg.push(test); | |
} else { | |
model.Hf.push(test); | |
} | |
} | |
var flag; | |
for (flag in flags) { | |
if (flags.hasOwnProperty(flag)) { | |
model.Oe[flag] = flags[flag]; | |
} | |
} | |
parse(val, parent, model.Oe, model.Hf, {}); | |
parse(val, parent, model.Oe, model.Lg); | |
} | |
}; | |
resolve = cb(resolve, "aasi"); | |
/** | |
* @param {string} field | |
* @param {string} prop | |
* @param {string} opt | |
* @param {Object} token | |
* @return {undefined} | |
*/ | |
var parse = function(field, prop, opt, token) { | |
if (0 != token.length) { | |
/** @type {Array} */ | |
var failuresLink = []; | |
/** @type {Array} */ | |
var cookie = []; | |
var is = { | |
maxTop : 0, | |
narrow : 0, | |
minTop : 0, | |
wide : 0, | |
plas : 0, | |
topPlas : 0 | |
}; | |
var ret = done(); | |
if (!ret) { | |
path++; | |
} | |
/** @type {number} */ | |
var p = token.length - 1; | |
for (;0 <= p;p--) { | |
var options = token[p].options; | |
var o = options; | |
var lvl; | |
/** @type {boolean} */ | |
lvl = 0 <= promote(events, 4031803); | |
/** @type {boolean} */ | |
o.iframeFromScs = lvl; | |
if (0 == p || ret) { | |
if (ret) { | |
/** @type {Array} */ | |
failuresLink = []; | |
is = { | |
maxTop : 0, | |
narrow : 0, | |
minTop : 0, | |
wide : 0, | |
plas : 0, | |
topPlas : 0 | |
}; | |
path++; | |
} | |
/** @type {string} */ | |
options.role = "m"; | |
options.masterNumber = path; | |
options.fexp = events.join(","); | |
options = on(field, prop, options, opt, failuresLink, is, cookie); | |
} else { | |
/** @type {string} */ | |
options.role = "s"; | |
/** @type {number} */ | |
options.slaveNumber = p; | |
options.masterNumber = path; | |
options = on(field, prop, options); | |
failuresLink.splice(0, 0, options.je()); | |
cookie.splice(0, 0, options); | |
is.narrow += options.Va; | |
is.maxTop += options.Sa; | |
is.minTop += options.Ta; | |
is.wide += options.Xa; | |
is.plas += options.Ua; | |
is.topPlas += options.Wa; | |
} | |
fields[options.wa()] = options; | |
} | |
field = "master-" + path; | |
/** @type {RegExp} */ | |
p = new RegExp("slave-[0-9]+-" + path); | |
var name; | |
for (name in fields) { | |
if (p.test(name)) { | |
fields[name].qb += "|" + fields[field].qb; | |
} | |
} | |
/** @type {number} */ | |
p = token.length - 1; | |
for (;0 <= p;p--) { | |
/** @type {string} */ | |
token = ["slave", p, path].join("-"); | |
if (fields.hasOwnProperty(token)) { | |
fields[token].$c(); | |
} | |
} | |
if (fields.hasOwnProperty(field)) { | |
fields[field].$c(); | |
} else { | |
util.log({ | |
message : "Missing ad block for " + field | |
}, "cAFOMM"); | |
} | |
} | |
}; | |
parse = cb(parse, "cAFO"); | |
/** | |
* @param {string} name | |
* @param {boolean} inplace | |
* @return {?} | |
*/ | |
var filter = function(name, inplace) { | |
/** @type {(HTMLElement|null)} */ | |
var event = document.getElementById(name); | |
if (!event && inplace) { | |
/** @type {Array} */ | |
var tagNameArr = []; | |
try { | |
/** @type {NodeList} */ | |
var resultItems = document.getElementsByTagName("iframe"); | |
/** @type {number} */ | |
var i = 0; | |
for (;i < resultItems.length;i++) { | |
var result = resultItems[i]; | |
try { | |
tagNameArr.push(["N=" + result.name + "ID=" + result.id]); | |
} catch (h) { | |
} | |
} | |
} catch (p) { | |
} | |
util.log({ | |
message : "iframe name: " + name + ". existing frames: " + tagNameArr.join(",") + ". num masters: " + path | |
}, "gAFBN2"); | |
} | |
return event; | |
}; | |
filter = cb(filter, "gAFBN"); | |
/** | |
* @param {?} m3 | |
* @param {?} force | |
* @param {string} sel | |
* @param {?} scope | |
* @return {undefined} | |
*/ | |
var c = function(m3, force, sel, scope) { | |
if (!scope) { | |
fields[sel.split(".")[0]].Le(); | |
} | |
}; | |
c = cb(c, "hAC"); | |
/** | |
* @param {Object} el | |
* @param {string} i | |
* @param {?} tagMap | |
* @param {?} content | |
* @return {undefined} | |
*/ | |
var tag = function(el, i, tagMap, content) { | |
if (el = fields["master-" + i]) { | |
if (el.o) { | |
if (el = el.o.adsRejectedCallback) { | |
prop(el, content); | |
} | |
} | |
} | |
}; | |
tag = cb(tag, "aRC"); | |
/** | |
* @param {?} callback | |
* @param {Object} a | |
* @param {string} arg | |
* @param {number} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
var args = function(callback, a, arg, deepDataAndEvents) { | |
a = fields[arg.split(".")[0]]; | |
a.Te(deepDataAndEvents, callback); | |
if (a) { | |
if (a.o) { | |
if (a.o.iframeHeightCallback) { | |
client(a.o.iframeHeightCallback, 0 < deepDataAndEvents ? deepDataAndEvents : 0); | |
} | |
} | |
} | |
}; | |
args = cb(args, "hC"); | |
/** | |
* @param {?} get | |
* @param {?} headers | |
* @param {string} token | |
* @param {number} deepDataAndEvents | |
* @return {undefined} | |
*/ | |
var headers = function(get, headers, token, deepDataAndEvents) { | |
fields[token.split(".")[0]].Xe(deepDataAndEvents); | |
}; | |
headers = cb(headers, "wC"); | |
/** | |
* @param {?} style | |
* @param {string} baseName | |
* @return {?} | |
*/ | |
var normalize = function(style, baseName) { | |
var normalized = {}; | |
var prop; | |
for (prop in fields) { | |
if (fields.hasOwnProperty(prop)) { | |
var field = fields[prop]; | |
if (field.o) { | |
if (field.o.masterNumber == baseName) { | |
if ("string" == typeof field.o.container) { | |
normalized[field.o.container] = style.le(prop + ".aC"); | |
} | |
} | |
} | |
} | |
} | |
return normalized; | |
}; | |
normalize = cb(normalize, "gAC"); | |
/** | |
* @param {?} style | |
* @param {string} parentName | |
* @return {undefined} | |
*/ | |
var code = function(style, parentName) { | |
var m = fields["master-" + parentName]; | |
if (m && (m.o && m.o.adsResponseCallback)) { | |
var target = normalize(style, parentName); | |
v(m.o.adsResponseCallback, target); | |
} | |
}; | |
code = cb(code, "aCC"); | |
/** | |
* @param {Object} v | |
* @param {string} b | |
* @param {?} g | |
* @param {string} r | |
* @return {undefined} | |
*/ | |
var rgb = function(v, b, g, r) { | |
if (v = fields["master-" + b]) { | |
if (v.o) { | |
if (v.o.visibleUrlsCallback) { | |
wrapped(v.o.visibleUrlsCallback, r ? r.split("|") : []); | |
} | |
} | |
} | |
}; | |
rgb = cb(rgb, "vUC"); | |
/** @type {null} */ | |
var _done = null; | |
/** | |
* @return {?} | |
*/ | |
var done = function() { | |
if (null != _done) { | |
return _done; | |
} | |
if (6 != rgbToHex(newRed)) { | |
return _done = false; | |
} | |
var name; | |
if (2 < window.location.host.split(".").length) { | |
/** @type {string} */ | |
name = window.location.host.split(".").slice(1).join("."); | |
/** @type {string} */ | |
name = name.replace(/:\d*/, ""); | |
} else { | |
return _done = true; | |
} | |
/** @type {boolean} */ | |
window.google.disallowedSameDomain_ = false; | |
/** @type {Element} */ | |
var iframe = document.createElement("iframe"); | |
/** @type {Element} */ | |
var node = document.createElement("iframe"); | |
/** @type {string} */ | |
iframe.style.display = "none"; | |
/** @type {string} */ | |
node.style.display = "none"; | |
var parent = document.getElementsByTagName("head")[0]; | |
parent.appendChild(iframe); | |
parent.appendChild(node); | |
try { | |
var c = iframe.contentWindow.document; | |
var doc = node.contentWindow.document; | |
} catch (g) { | |
/** @type {(Document|null)} */ | |
c = iframe.document; | |
/** @type {(Document|null)} */ | |
doc = node.document; | |
} | |
if (c.domain == name) { | |
return _done = true; | |
} | |
c.open(); | |
/** @type {string} */ | |
c.domain = name; | |
c.write("<script>function test() {}\x3c/script>"); | |
c.close(); | |
doc.open(); | |
doc.write("<script>var theParent = window.parent;\x3c/script>"); | |
/** @type {string} */ | |
doc.domain = name; | |
doc.write("<script>try{window.parent.frames[" + (window.frames.length - 2) + "].location} catch(e){theParent.google.disallowedSameDomain_ = true;}\x3c/script>"); | |
doc.close(); | |
/** @type {boolean} */ | |
_done = window.google.disallowedSameDomain_; | |
iframe.parentNode.removeChild(iframe); | |
node.parentNode.removeChild(node); | |
return _done; | |
}; | |
done = cb(done, "dBDSDIC"); | |
/** @type {number} */ | |
var path = 0; | |
var fields = {}; | |
/** @type {boolean} */ | |
var Hj = false; | |
/** | |
* @param {Array} fileExtensions | |
* @param {string} opt_attributes | |
* @param {number} p | |
* @return {?} | |
*/ | |
var key = function(fileExtensions, opt_attributes, p) { | |
/** @type {number} */ | |
p = 1 - (p || Math.random)(); | |
if (p < opt_attributes * fileExtensions.length) { | |
try { | |
/** @type {Uint16Array} */ | |
var buf = new Uint16Array(1); | |
window.crypto.getRandomValues(buf); | |
/** @type {number} */ | |
p = buf[0] / 65536; | |
} catch (e) { | |
/** @type {number} */ | |
p = Math.random(); | |
} | |
return fileExtensions[Math.floor(p * fileExtensions.length)]; | |
} | |
return null; | |
}; | |
key = cb(key, "pE"); | |
var events = repeat([key([2631601, 2631602], 0.05), key([4031801, 4031802, 4031803], 0.1)], spaces); | |
/** | |
* @param {?} callback | |
* @param {?} obj | |
* @param {boolean} recurring | |
* @return {undefined} | |
*/ | |
var values = function(callback, obj, recurring) { | |
callback(obj, recurring); | |
}; | |
values = cb(values); | |
/** | |
* @param {Object} setter | |
* @param {?} node | |
* @return {undefined} | |
*/ | |
var prop = function(setter, node) { | |
setter(node); | |
}; | |
prop = cb(prop); | |
/** | |
* @param {?} n | |
* @param {?} a | |
* @return {undefined} | |
*/ | |
var v = function(n, a) { | |
n(a); | |
}; | |
v = cb(v); | |
/** | |
* @param {?} fn | |
* @param {?} err | |
* @return {undefined} | |
*/ | |
var wrapped = function(fn, err) { | |
fn(err); | |
}; | |
wrapped = cb(wrapped); | |
/** | |
* @param {?} callback | |
* @param {?} basis | |
* @return {undefined} | |
*/ | |
var client = function(callback, basis) { | |
callback(basis); | |
}; | |
client = cb(client); | |
/** | |
* @return {undefined} | |
*/ | |
var baz = function() { | |
if (delta) { | |
process(delta, "ol"); | |
} | |
}; | |
baz = cb(baz, "rCPL"); | |
/** | |
* @return {undefined} | |
*/ | |
var initial = function() { | |
if (delta) { | |
if (!delta.aj) { | |
/** @type {boolean} */ | |
delta.aj = true; | |
addEvent(window, "load", baz); | |
setTimeout(actual, 15E3); | |
} | |
} | |
addEvent(window, "unload", actual); | |
}; | |
initial = cb(initial, "sCEL"); | |
/** | |
* @return {undefined} | |
*/ | |
var actual = function() { | |
restore(); | |
}; | |
actual = cb(actual, "sCS"); | |
/** | |
* @param {?} fn | |
* @return {undefined} | |
*/ | |
var plugin = function(fn) { | |
if (fn) { | |
fn(); | |
} | |
}; | |
plugin = cb(plugin); | |
/** | |
* @return {undefined} | |
*/ | |
var line = function() { | |
if (delta) { | |
initial(); | |
process(data.qj, "pt"); | |
process(delta, "jlt"); | |
} | |
}; | |
line = cb(line, "sCOLT"); | |
} | |
/** | |
* @param {?} fn | |
* @return {undefined} | |
*/ | |
var watch = function(fn) { | |
var result; | |
result = {}; | |
win(result, [doc, options, extra, sample_json, expr, { | |
key : "width", | |
a : new move(0, 1E4), | |
F : "wi" | |
}, { | |
key : "height", | |
a : new move(0, 1E4), | |
F : "he" | |
}]); | |
var d = { | |
query : 1, | |
gtin : 1, | |
brand : 1, | |
mpn : 1, | |
width : 2, | |
height : 2, | |
priceMin : 1, | |
priceMax : 1, | |
priceCurrency : 1, | |
textColorPalette : 1 | |
}; | |
isString(d, reversed); | |
isString(d, suiteView); | |
resolve(result, d, arguments, "singleProduct"); | |
}; | |
watch = cb(watch, "jmpMJ"); | |
/** | |
* @param {?} replace | |
* @return {undefined} | |
*/ | |
var hash = function(replace) { | |
var result; | |
result = {}; | |
win(result, [doc, options, extra, sample_json, expr, { | |
key : "width", | |
a : new move(0, 1E4), | |
F : "wi" | |
}, { | |
key : "height", | |
a : new move(0, 1E4), | |
F : "he" | |
}, { | |
key : "promoted", | |
a : obj, | |
F : "pa" | |
}]); | |
var config = { | |
query : 2, | |
width : 2, | |
height : 2, | |
promoted : 1, | |
theme : 1, | |
priceMin : 1, | |
priceMax : 1, | |
priceCurrency : 1, | |
textColorPalette : 1, | |
merchantFilter : 1 | |
}; | |
isString(config, reversed); | |
isString(config, suiteView); | |
resolve(result, config, arguments, "plas"); | |
}; | |
hash = cb(hash, "cmpp"); | |
if (!window.IS_GOOGLE_AFS_IFRAME_) { | |
/** | |
* @param {string} object | |
* @return {undefined} | |
*/ | |
var promise = function(object) { | |
var name = randomName(); | |
var parent = any(); | |
resolve(name, parent, arguments); | |
}; | |
promise = cb(promise, "cmpc"); | |
var object = { | |
ads : promise, | |
plas : hash, | |
"single-product" : watch | |
}; | |
/** | |
* @return {undefined} | |
*/ | |
var store = function() { | |
/** @type {function (): undefined} */ | |
var i = window._googCsa; | |
/** @type {null} */ | |
var codeSegments = null; | |
/** @type {null} */ | |
var t = null; | |
if (i) { | |
codeSegments = i.q; | |
t = i.t; | |
} | |
/** | |
* @return {undefined} | |
*/ | |
window._googCsa = function() { | |
set(arguments); | |
}; | |
if (t) { | |
window._googCsa.t = t; | |
} | |
if (codeSegments && 0 < codeSegments.length) { | |
/** @type {number} */ | |
i = 0; | |
for (;i < codeSegments.length;i++) { | |
set(codeSegments[i]); | |
} | |
} | |
}; | |
store = cb(store, "cmps"); | |
/** | |
* @param {Array} properties | |
* @return {undefined} | |
*/ | |
var set = function(properties) { | |
if (properties && 1 < properties.length) { | |
if (object.hasOwnProperty(properties[0])) { | |
var type = object[properties[0]]; | |
if (3 == properties.length) { | |
new type(properties[1], properties[2]); | |
} else { | |
new type(properties[1], Array.prototype.slice.call(properties, 2)); | |
} | |
} else { | |
if ("jsLoadedCallback" == properties[0]) { | |
plugin(properties[1]); | |
} | |
} | |
} | |
}; | |
set = cb(set, "cmpe"); | |
window.google = window.google || {}; | |
window.google.ads = window.google.ads || {}; | |
window.google.ads.search = window.google.ads.search || {}; | |
if (!window.google.ads.search.Ads) { | |
window.google.ads.search.Ads = promise; | |
line(); | |
store(); | |
} | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment