tas-rs.toboads.com Open in urlscan Pro
91.209.18.100  Public Scan

Submitted URL: https://relay-rs.ads.httpool.com/
Effective URL: https://tas-rs.toboads.com/js/adi-ec561a14.js
Submission: On August 09 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = "../javascript/src/ad_init.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "../javascript/src/Attribute.js":
/*!**************************************!*\
  !*** ../javascript/src/Attribute.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * @param {object} element\n * @param [prefix] string\n */\nfunction Attribute(element, prefix) {\n\tthis.attributes = element.attributes;\n\tthis.element    = element;\n\tthis.prefix     = prefix || 'tas';\n}\n\n/**\n * @param {string} name\n * @param {mixed}  [defaultValue]\n */\nAttribute.prototype.getAttribute = function (name, defaultValue) {\n\tif (!this.attributes[this.prefix + '-' + name]) {\n\t\treturn defaultValue;\n\t}\n\n\treturn this.attributes[this.prefix + '-' + name].value;\n};\n\n/**\n * @param {string} name\n * @param {mixed}  value\n */\nAttribute.prototype.setAttribute = function (name, value) {\n\tthis.element.setAttribute(this.prefix + '-' + name, value);\n};\n\n/**\n * Is used to transform mobile tag attributes to online tags.\n *\n * @param   {string} attribute\n * @returns {string}\n */\nAttribute.prototype.replaceAttr = function (attribute) {\n\tvar mapping = {\n\t\t'zone-id':     'zone',\n\t\t'click-track': 'click-tracking-url'\n\t};\n\n\tif (mapping.hasOwnProperty(attribute)) {\n\t\treturn mapping[attribute].replace('-', '_');\n\t}\n\n\treturn attribute.replace('-', '_');\n};\n\n/**\n * @returns {string[]}\n */\nAttribute.prototype.getTasAttributes = function () {\n\treturn [\n\t\t'zone-id',\n\t\t'click-track',\n\t\t'zone',\n\t\t'cp',\n\t\t'format',\n\t\t'click-tracking-url',\n\t\t'hide-tagline',\n\t\t'external-id',\n\t\t'placement',\n\t\t'close-placement'\n\t];\n};\n\nmodule.exports = {\n\tnewInstance: function (element, prefix) {\n\t\treturn new Attribute(element, prefix);\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/Attribute.js?");

/***/ }),

/***/ "../javascript/src/Block.js":
/*!**********************************!*\
  !*** ../javascript/src/Block.js ***!
  \**********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = {\n\tState: {\n\t\tWAIT: 1,\n\t\tINIT: 2,\n\t\tLOAD: 3,\n\t\tDONE: 4,\n\t\tCOLLAPSE: 5\n\t}\n};\n\n//# sourceURL=webpack:///../javascript/src/Block.js?");

/***/ }),

/***/ "../javascript/src/Browser.js":
/*!************************************!*\
  !*** ../javascript/src/Browser.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Viewport    = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\"),\n    Environment = __webpack_require__(/*! Environment */ \"../javascript/src/Environment.js\"),\n    UA          = Environment.UA;\n\nmodule.exports = {\n\t/**\n\t * Returns true/false based on Quirks mode\n\t * \n\t * @return Bool\n\t */\n\tisQuirksMode: function() {\n\t\tif(this.saf) {\n\t\t\t// Safari is always in `box model` mode\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tif(document.compatMode) {\n\t\t\treturn document.compatMode !== 'CSS1Compat';\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t},\n\tversion: (UA.match(/.+(?:rv|it|ra|ie)[\\/: ]([\\d.]+)/i) || [])[1],\n\tsaf: /webkit/i.test(UA),\n\topera: /opera/i.test(UA),\n\tmsie: /msie/i.test(UA) && !/opera/i.test(UA),\n\tmoz: /mozilla/i.test(UA) && !/(compatible|webkit)/i.test(UA),\n\tkonq: /konqueror/i.test(UA),\n\t\n\tenumerateWindows: function(first) {\n\t\tvar wins = [];\n\t\twins[0] = first;\n\t\twins = wins.concat(this.enumerateChildWindows(first));\n\t\treturn wins;\n\t},\n\t\n\thasHref: function (frame) {\n\t\treturn frame.document && frame.document.location.href;\n\t},\n\t\n\tisValidLocation: function (location) {\n\t\tvar protocol, es = '';\n\t\t\n\t\tif (location.href.length < 11) {\n\t\t\treturn false;\n\t\t}\n\t\t\n\t\tprotocol = location.protocol.toLower();\n\n\t\treturn protocol === 'abo' + 'ut:' || protocol === 'javas' + es + 'cript:' || protocol === 'fi' + 'le:';\n\t},\n\t\n\tenumerateChildWindows: function(win) {\n\t\tvar wins = [], i;\n\t\tif (win.frames.length > 0) {\n\t\t\tfor (i = 0; i < win.frames.length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\tif (this.hasHref(win.frames[i]) && this.isValidHref(win.frames[i].document.location)) {\n\t\t\t\t\t\twins[wins.length] = win.frames[i];\n\t\t\t\t\t\twins = wins.concat(this.enumerateChildWindows(win.frames[i]));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch (e) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn wins;\n\t},\n\t\n\tgetSmartReferrer: function(topWindow) {\n\t\tvar i, wmax = null, ws;\n\t\ttry {\n\t\t\tws = this.enumerateWindows(topWindow);\n\t\t\tif (ws.length === 1) {\n\t\t\t\treturn ws[0].location.href;\n\t\t\t}\n\t\t\t\n\t\t\tfor (i = 0; i < ws.length; i++)\n\t\t\t{\n\t\t\t\tws[i].surfaceSize = Viewport.getSurfaceSize(ws[i]);\n\t\t\t\tif (wmax === null || ws[i].surfaceSize > wmax.surfaceSize) {\n\t\t\t\t\twmax = ws[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (!wmax) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\t\n\t\t\treturn wmax.document.location.href;\n\t\t}\n\t\tcatch (e) {\n\t\t\treturn '';\n\t\t}\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/Browser.js?");

/***/ }),

/***/ "../javascript/src/CustomAdTag.js":
/*!****************************************!*\
  !*** ../javascript/src/CustomAdTag.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function () {\n\tvar RendererInjector = function (typeDecorator, block) {\n\t\tthis.typeDecorator = typeDecorator;\n\t\tthis.block = block;\n\t};\n\n\tRendererInjector.prototype.into = function (placeholder, doc, win) {\n\t\treturn this.typeDecorator.decorate(this.block, placeholder, doc, win);\n\t};\n\n\tvar NormalDecorator = function () {};\n\tNormalDecorator.prototype.decorate = function () {};\n\t\n\tvar Renderer = function (typeDecorator) {\n\t\tthis.typeDecorator = typeDecorator;\n\t};\n\t\n\tRenderer.prototype.inject = function (block) {\n\t\treturn new RendererInjector(this.typeDecorator, block);\n\t};\n\t\n\tvar dynamicConstruct = function (construct, args) {\n\t\tvar EmptyConstruct = function() {};\n\t\t\n\t\tEmptyConstruct.prototype = construct.prototype;\n\t\t\n\t\tvar instance = new EmptyConstruct();\n\t\t\n\t\tvar ret = construct.apply(instance, args);\n\t\t\n\t\treturn Object(ret) === ret ? ret : instance;\n\t};\n\t\n\tvar mapRenderer = function (type) {\n\t\tvar typeMap = {\n\t\t\t'normal': NormalDecorator\n\t\t};\n\t\t\n\t\tvar typeDecorator = dynamicConstruct(typeMap[type], []);\n\t\t\n\t\treturn new Renderer(typeDecorator);\n\t};\n\t\n\tvar renderFactory = function (type, block, placeholder, doc, win) {\n\t\tvar renderer = mapRenderer(type);\n\t\t\n\t\treturn renderer.inject(block).into(placeholder, doc, win);\n\t};\n\t\n\tvar externalFactory = function (container, url, doc) {\n\t\tvar s = doc.createElement('script');\n\t\ts.async = true;\n\t\ts.src = url;\n\n\t\tcontainer.appendChild(s);\n\t};\n\t\n\treturn {\n\t\trenderTag:         renderFactory,\n\t\taddExternalScript: externalFactory\n\t};\n};\n\n//# sourceURL=webpack:///../javascript/src/CustomAdTag.js?");

/***/ }),

/***/ "../javascript/src/DOM.js":
/*!********************************!*\
  !*** ../javascript/src/DOM.js ***!
  \********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Point   = __webpack_require__(/*! Point */ \"../javascript/src/Point.js\");\nvar Browser = __webpack_require__(/*! Browser */ \"../javascript/src/Browser.js\");\n\nvar styleFloat = Browser.msie ? \"styleFloat\" : \"cssFloat\";\n\nmodule.exports = {\n\t/**\n\t * Internal object helper to detect pixel values returns by\n\t * computed values.\n\t */\n\tisPixel: function (val) {\n\t\treturn !/^\\d+(px)?$/i.test(val) && /^\\d/.test(val);\n\t},\n\n\t/**\n\t * Returns the offset for the current object in absolute document space\n\t *\n\t * @param {Object} observed_element\n\t * @return {Object}\n\t */\n\tgetOffset: function (observed_element) {\n\t\tvar offset = new Point(0, 0);\n\n\t\twhile (observed_element !== null) {\n\t\t\toffset.x += observed_element.offsetLeft;\n\t\t\toffset.y += observed_element.offsetTop;\n\t\t\tobserved_element = observed_element.offsetParent;\n\t\t}\n\n\t\treturn offset;\n\t},\n\t/**\n\t * Returns the size of the element including the border and padding\n\t *\n\t * Note: takes care to add the relevant values if browser is in Quirks mode\n\t * @param Element element\n\t * @return {Object}\n\t */\n\tgetSize:   function (el) {\n\t\tvar s = {width: el.offsetWidth, height: el.offsetHeight};\n\n\t\tif (Browser.isQuirksMode()) {\n\t\t\t// browsers in quirks mode do not add padding and border\n\t\t\ts.width += parseInt(this.getCSS(el, \"borderLeftWidth\"), 10);\n\t\t\ts.width += parseInt(this.getCSS(el, \"paddingLeft\"), 10);\n\t\t\ts.width += parseInt(this.getCSS(el, \"paddingRight\"), 10);\n\t\t\ts.width += parseInt(this.getCSS(el, \"borderRightWidth\"), 10);\n\n\t\t\ts.height += parseInt(this.getCSS(el, \"borderTopWidth\"), 10);\n\t\t\ts.height += parseInt(this.getCSS(el, \"paddingTop\"), 10);\n\t\t\ts.height += parseInt(this.getCSS(el, \"paddingBottom\"), 10);\n\t\t\ts.height += parseInt(this.getCSS(el, \"borderBottomWidth\"), 10);\n\t\t}\n\n\t\treturn s;\n\t},\n\n\t/**\n\t * Returns the computed CSS property\n\t *\n\t * This is copied from jQuery curCSS function\n\t *\n\t * @param Element elem The element to fetch the properties from\n\t * @param String name The CSS property to fetch\n\t * @param Bool force Force to return style[name]\n\t */\n\tgetCSS: function (elem, name, force) {\n\t\tvar ret, i, a, getComputedStyle, swap = [], stack = [], camelCase, save, style, runtimeStyle;\n\n\t\tfunction color(elem) {\n\n\t\t\tif (!Browser.saf) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tret = document.defaultView.getComputedStyle(elem, null);\n\n\t\t\treturn !ret || ret.getPropertyValue(\"color\") === '';\n\t\t}\n\n\t\tif (name === \"opacity\" && Browser.msie) {\n\t\t\tret = this.attr(elem.style, \"opacity\");\n\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t}\n\n\t\tif (Browser.opera && name === \"display\") {\n\t\t\tsave               = elem.style.display;\n\t\t\telem.style.display = \"block\";\n\t\t\telem.style.display = save;\n\t\t}\n\n\t\tif (name.match(/float/i)) {\n\t\t\tname = styleFloat;\n\t\t}\n\n\t\tif (!force && elem.style && elem.style[name]) {\n\t\t\tret = elem.style[name];\n\t\t} else if (document.defaultView && document.defaultView.getComputedStyle) {\n\t\t\tif (name.match(/float/i)) {\n\t\t\t\tname = \"float\";\n\t\t\t}\n\n\t\t\tname = name.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\n\t\t\tgetComputedStyle = document.defaultView.getComputedStyle(elem, null);\n\n\t\t\tif (getComputedStyle && !color(elem)) {\n\t\t\t\tret = getComputedStyle.getPropertyValue(name);\n\t\t\t} else {\n\t\t\t\tfor (a = elem; a && color(a); a = a.parentNode) {\n\t\t\t\t\tstack.unshift(a);\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < stack.length; i++) {\n\t\t\t\t\tif (color(stack[i])) {\n\t\t\t\t\t\tswap[i]                = stack[i].style.display;\n\t\t\t\t\t\tstack[i].style.display = \"block\";\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tret = name === \"display\" && swap[stack.length - 1] !== null ?\n\t\t\t\t      \"none\" :\n\t\t\t\t      ( getComputedStyle && getComputedStyle.getPropertyValue(name) ) || '';\n\n\t\t\t\tfor (i = 0; i < swap.length; i++) {\n\t\t\t\t\tif (swap[i] !== null) {\n\t\t\t\t\t\tstack[i].style.display = swap[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (name === \"opacity\" && ret === \"\") {\n\t\t\t\tret = \"1\";\n\t\t\t}\n\t\t} else if (elem.currentStyle) {\n\t\t\tcamelCase = name.replace(/\\-(\\w)/g, function (all, letter) {\n\t\t\t\treturn letter.toUpperCase();\n\t\t\t});\n\n\t\t\tret = elem.currentStyle[name] || elem.currentStyle[camelCase];\n\n\t\t\tif (!/^\\d+(px)?$/i.test(ret) && /^\\d/.test(ret)) {\n\t\t\t\tstyle                  = elem.style.left;\n\t\t\t\truntimeStyle           = elem.runtimeStyle.left;\n\t\t\t\telem.runtimeStyle.left = elem.currentStyle.left;\n\t\t\t\telem.style.left        = ret || 0;\n\t\t\t\tret                    = elem.style.pixelLeft + \"px\";\n\t\t\t\telem.style.left        = style;\n\t\t\t\telem.runtimeStyle.left = runtimeStyle;\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tgetCurrentStyle: function (win, el, styleProp) {\n\t\tvar x = el, y;\n\n\t\tif (x.currentStyle) {\n\t\t\ty = x.currentStyle[styleProp];\n\t\t} else if (win.getComputedStyle) {\n\t\t\ty = win.document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp);\n\t\t}\n\n\t\treturn y;\n\t},\n\n\tisElementVisible:  function (win, el) {\n\t\treturn (\n\t\t\tthis.getCurrentStyle(win, el, 'visibility') !== 'hidden' &&\n\t\t\tthis.getCurrentStyle(win, el, 'display') !== 'none'\n\t\t);\n\t},\n\tconfirmVisibility: function (win, topEl) {\n\t\tvar el = topEl, winParent, winFrameElement, inIFrame = false, wfes;\n\n\t\ttry {\n\t\t\twhile (el) {\n\t\t\t\tif (typeof el.tagName !== \"undefined\") {\n\t\t\t\t\tif (!this.isElementVisible(win, el)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\ttry {\n\t\t\t\t\t\twinParent = null;\n\t\t\t\t\t\twinParent = win.parent;\n\t\t\t\t\t} catch (winParentEx) {\n\t\t\t\t\t\t// window has no parent, this is fishy\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\twinFrameElement = null;\n\t\t\t\t\t\twinFrameElement = win.frameElement;\n\t\t\t\t\t} catch (winFrameElementEx) {\n\t\t\t\t\t\tinIFrame = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (winFrameElement) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twfes = winFrameElement.src;\n\t\t\t\t\t\t} catch (winFrameElementSrcEx) {\n\t\t\t\t\t\t\tinIFrame = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (win && winParent !== win && winFrameElement) {\n\t\t\t\t\t\tel  = winFrameElement;\n\t\t\t\t\t\twin = winParent;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof el.parentNode !== 'undefined' && el.parentNode !== el) {\n\t\t\t\t\tel = el.parentNode;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (someException) {\n\t\t\tif (inIFrame) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Imported from jQuery library\n\t */\n\tisXMLDoc: function (elem) {\n\t\treturn (elem.documentElement && !elem.body) ||\n\t\t\t(elem.tagName && elem.ownerDocument && !elem.ownerDocument.body);\n\t},\n\n\t/**\n\t * Imported from jQuery library\n\t */\n\tattr: function (elem, name, value) {\n\t\tif (!elem || elem.nodeType === 3 || elem.nodeType === 8) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tvar fix = this.isXMLDoc(elem) ?\n\t\t          {} :\n\t\t          {\n\t\t\t          \"for\":         \"htmlFor\",\n\t\t\t          \"class\":       \"className\",\n\t\t\t          \"float\":       styleFloat,\n\t\t\t          cssFloat:      styleFloat,\n\t\t\t          styleFloat:    styleFloat,\n\t\t\t          innerHTML:     \"innerHTML\",\n\t\t\t          className:     \"className\",\n\t\t\t          value:         \"value\",\n\t\t\t          disabled:      \"disabled\",\n\t\t\t          checked:       \"checked\",\n\t\t\t          readonly:      \"readOnly\",\n\t\t\t          selected:      \"selected\",\n\t\t\t          maxlength:     \"maxLength\",\n\t\t\t          selectedIndex: \"selectedIndex\",\n\t\t\t          defaultValue:  \"defaultValue\",\n\t\t\t          tagName:       \"tagName\",\n\t\t\t          nodeName:      \"nodeName\"\n\t\t          };\n\t\tif (fix[name]) {\n\t\t\tif (value !== undefined) {\n\t\t\t\telem[fix[name]] = value;\n\t\t\t}\n\t\t\treturn elem[fix[name]];\n\t\t} else if (Browser.msie && name === \"style\") {\n\t\t\treturn this.attr(elem.style, \"cssText\", value);\n\t\t} else if (value === undefined && Browser.msie && this.nodeName(elem, \"form\") && (name === \"action\" || name === \"method\")) {\n\t\t\treturn elem.getAttributeNode(name).nodeValue;\n\t\t} else if (elem.tagName) {\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (name === \"type\" && this.nodeName(elem, \"input\") && elem.parentNode) {\n\t\t\t\t\tthrow \"type property can't be changed\";\n\t\t\t\t}\n\t\t\t\telem.setAttribute(name, '' + value);\n\t\t\t}\n\n\t\t\tif (Browser.msie && /href|src/.test(name) && !this.isXMLDoc(elem)) {\n\t\t\t\treturn elem.getAttribute(name, 2);\n\t\t\t}\n\n\t\t\treturn elem.getAttribute(name);\n\t\t} else {\n\t\t\tif (name === \"opacity\" && Browser.msie) {\n\t\t\t\tif (value !== undefined) {\n\t\t\t\t\telem.zoom   = 1;\n\t\t\t\t\telem.filter = (elem.filter || '').replace(/alpha\\([^)]*\\)/, '') +\n\t\t\t\t\t\t(parseFloat(value).toString() === \"NaN\" ? '' : \"alpha(opacity=\" + value * 100 + \")\");\n\t\t\t\t}\n\n\t\t\t\treturn elem.filter && elem.filter.indexOf(\"opacity=\") >= 0 ?\n\t\t\t\t       (parseFloat(elem.filter.match(/opacity=([^)]*)/)[1]) / 100).toString() :\n\t\t\t\t       '';\n\t\t\t}\n\n\t\t\tname = name.replace(/-([a-z])/gi, function (all, letter) {\n\t\t\t\treturn letter.toUpperCase();\n\t\t\t});\n\n\t\t\tif (value !== undefined) {\n\t\t\t\telem[name] = value;\n\t\t\t}\n\n\t\t\treturn elem[name];\n\t\t}\n\t},\n\n\t/**\n\t * Imported from jQuery library\n\t */\n\tnodeName: function (element, name) {\n\t\treturn element.nodeName && element.nodeName.toUpperCase() === name.toUpperCase();\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/DOM.js?");

/***/ }),

/***/ "../javascript/src/DOMLoad.js":
/*!************************************!*\
  !*** ../javascript/src/DOMLoad.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function(w) {\n\tvar loadListeners      = [];\n\tvar unloadListeners    = [];\n\tvar isReady            = false;\n\tvar win                = w;\n\tvar doc                = win.document;\n\n\tvar registerLoad = function(callback) {\n\t\tif (isReady) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\n\t\tloadListeners[loadListeners.length] = callback;\n\t};\n\t\n\tvar registerUnload = function(callback) {\n\t\tunloadListeners[unloadListeners.length] = callback;\n\t};\n\t\n\tvar triggerLoad = function() {\n\t\tif (isReady) {\n\t\t\treturn;\n\t\t}\n\n\t\tisReady = true;\n\n\t\tfor (var i = 0; i < loadListeners.length; i++) {\n\t\t\tloadListeners[i]();\n\t\t}\n\t};\n\t\n\tvar triggerUnload = function() {\n\t\tif (!isReady) {\n\t\t\treturn;\n\t\t}\n\n\t\tisReady = false;\n\t\t\n\t\tfor (var i = 0; i < unloadListeners.length; i++) {\n\t\t\tunloadListeners[i]();\n\t\t}\n\t};\n\t\n\tvar addEventHandler = function(obj, type, fn) {\n\t\tif (obj.attachEvent) {\n\t\t\t//obj['e' + type + fn] = fn;\n\t\t\t//obj[type + fn] = function() { obj['e' + type + fn](win.event); };\n\t\t\t//obj.attachEvent('on' + type, obj[type + fn]);\n\t\t\t\n\t\t\tobj.attachEvent('on' + type, function() { fn.apply(obj, [win.event]); });\n\t\t} else {\n\t\t\tobj.addEventListener(type, fn, false);\n\t\t}\n\t};\n\t\n\tvar _dc = 'DOMContentLoaded', _rs = 'onreadystatechange';\n\t\n\tif (doc.addEventListener) {\n\t\tdoc.addEventListener(_dc, function callback () {\n\t\t\tdoc.removeEventListener(_dc, callback, false);\n\t\t\ttriggerLoad();\n\t\t}, false);\n\t} else if (doc.attachEvent) {\n\t\tdoc.attachEvent(_rs, function callback () {\n\t\t\tif (doc.readyState === \"complete\") {\n\t\t\t\tdoc.detachEvent(_rs, callback);\n\t\t\t\ttriggerLoad();\n\t\t\t}\n\t\t});\n\t\t\n\t\tvar wfe;\n\n\t\ttry {\n\t\t\twfe = win.frameElement;\n\t\t} catch (e) {\n\t\t\twfe = null;\n\t\t}\n\t\t\n\t\tif (doc.documentElement.doScroll && !wfe) {\n\t\t\t(function callback () {\n\t\t\t\tif (isReady) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tdoc.documentElement.doScroll(\"left\");\n\t\t\t\t} catch (se) {\n\t\t\t\t\tsetTimeout(callback, 0);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttriggerLoad();\n\t\t\t}());\n\t\t}\n\t}\n\n\tvar removeEventHandler = function(el, eventName, callback) {\n\t\tel.removeEventListener(eventName, callback);\n\t};\n\n\taddEventHandler(win, 'load', function() { triggerLoad(); });\n\taddEventHandler(win, 'unload', function () { triggerUnload(); });\n\t\n\treturn {\n\t\t'registerLoad':       registerLoad,\n\t\t'registerUnload':     registerUnload,\n\t\t'addEventHandler':    addEventHandler,\n\t\t'removeEventHandler': removeEventHandler\n\t};\n};\n\n\n//# sourceURL=webpack:///../javascript/src/DOMLoad.js?");

/***/ }),

/***/ "../javascript/src/Debug.js":
/*!**********************************!*\
  !*** ../javascript/src/Debug.js ***!
  \**********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar noop = function () {};\n\nvar Debug = {\n\tapp: '',\n\tinit: noop,\n\topen: function () {\n\t\treturn {\n\t\t\twrite: noop,\n\t\t\tmsgObject: noop,\n\t\t\tmsg: noop\n\t\t};\n\t}\n};\n\nmodule.exports = Debug;\n\nif (false) {}\n\n//# sourceURL=webpack:///../javascript/src/Debug.js?");

/***/ }),

/***/ "../javascript/src/Environment.js":
/*!****************************************!*\
  !*** ../javascript/src/Environment.js ***!
  \****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar windowCache = null, wrapper_dim = null;\n\nvar getTopWindow = function (win) {\n\tvar cw = win, p, cp;\n\n\twhile (cw) {\n\t\ttry {\n\t\t\tcp = cw.parent;\n\t\t\tif (cp !== null && cp !== cw) {\n\t\t\t\ttry {\n\t\t\t\t\tp = cp.title;\n\t\t\t\t\tp = cp.document.location;\n\t\t\t\t\tp = cp.document.location.href;\n\t\t\t\t} catch (acex) {\n\t\t\t\t\twrapper_dim = (cw.innerWidth || (cw.document.documentElement.clientWidth || cw.document.body.clientWidth)) + 'x' +\n\t\t\t\t\t\t(cw.innerHeight || (cw.document.documentElement.clientHeight || cw.document.body.clientHeight));\n\t\t\t\t\treturn cw;\n\t\t\t\t}\n\t\t\t\tcw = cp;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tcatch (pcex) {\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn cw;\n};\n\nvar cachedWindow = function (win) {\n\tif (windowCache === null) {\n\t\twindowCache = getTopWindow(win);\n\t}\n\t\n\treturn windowCache;\n};\n\nmodule.exports = {\n\tgetTopWindow: function (win) {\n\t\treturn cachedWindow(win);\n\t},\n\tisFramed: function (win) {\n\t\treturn win.parent !== win;\n\t},\n\tgetWrapperDimensions: function (win) {\n\t\tcachedWindow(win);\n\t\treturn wrapper_dim;\n\t},\n\tNV: navigator,\n\tUA: navigator.userAgent\n};\n\n//# sourceURL=webpack:///../javascript/src/Environment.js?");

/***/ }),

/***/ "../javascript/src/FlashVersion.js":
/*!*****************************************!*\
  !*** ../javascript/src/FlashVersion.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Debug = __webpack_require__(/*! Debug */ \"../javascript/src/Debug.js\"),\n    NV = __webpack_require__(/*! Environment */ \"../javascript/src/Environment.js\").NV;\n\nmodule.exports = (function() {\n\tvar major, minor, revisionStr, revision, installed, i, version = -1, activeXVersion;\n\tvar d = Debug.open('FlashVersion');\n\t\n\tvar getActiveXVersion = function(obj) {\n\t\tvar v = -1;\n\t\ttry{\n\t\t\tv = obj.GetVariable(\"$version\");\n\t\t}catch(err){}\n\t\treturn v;\n\t};\n\t\n\tvar parseActiveXVersion = function(str){\n\t\tvar va = str.split(\",\");\n\t\treturn {\n\t\t\tmajor: parseInt(va[0].split(\" \")[1], 10),\n\t\t\tminor: parseInt(va[1], 10),\n\t\t\trevision: parseInt(va[2], 10),\n\t\t\trevisionStr: va[2]\n\t\t};\n\t};\n\t\n\tvar activeXDetectRules = [\n\t\t{\n\t\t\tname:\"ShockwaveFlash.ShockwaveFlash.7\",\n\t\t\tversion:function(obj){\n\t\t\t\treturn getActiveXVersion(obj);\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname:\"ShockwaveFlash.ShockwaveFlash.6\",\n\t\t\tversion:function(obj){\n\t\t\t\tvar version = \"6,0,21\";\n\t\t\t\ttry{\n\t\t\t\t\tobj.AllowScriptAccess = \"always\";\n\t\t\t\t\tversion = getActiveXVersion(obj);\n\t\t\t\t}catch(err){}\n\t\t\t\treturn version;\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tname:\"ShockwaveFlash.ShockwaveFlash\",\n\t\t\tversion:function(obj){\n\t\t\t\treturn getActiveXVersion(obj);\n\t\t\t}\n\t\t}\n\t];\n\t\n\tvar parseRevisionStrToInt = function(str) {\n\t\treturn parseInt(str.replace(/[a-zA-Z]/g, \"\"), 10) || revision;\n\t};\n\t\n\tvar getActiveXObject = function(name) {\n\t\tvar obj = -1;\n\t\ttry {\n\t\t\tobj = new ActiveXObject(name);\n\t\t} catch(err) {}\n\t\treturn obj;\n\t};\n\t\n\tif (NV.plugins && NV.plugins.length > 0){\n\t\tvar type = 'application/x-shockwave-flash';\n\t\tvar mit = NV.mimeTypes;\n\t\tif (mit && mit[type] && mit[type].enabledPlugin && mit[type].enabledPlugin.description) {\n\t\t\tvar desc = mit[type].enabledPlugin.description,\n\t\t\t\tdescParts = desc.split(' '),\n\t\t\t\tmajorMinor = descParts[2].split('.');\n\t\t\tmajor = parseInt(majorMinor[0], 10);\n\t\t\tminor = parseInt(majorMinor[1], 10); \n\t\t\trevisionStr = descParts[3];\n\t\t\trevision = parseRevisionStrToInt(revisionStr);\n\t\t\tinstalled = true;\n\t\t}\n\t}\n\telse if (NV.appVersion.indexOf(\"Mac\") === -1 && window.execScript) {\n\t\tfor (i = 0; i < activeXDetectRules.length && version === -1; i++) {\n\t\t\tvar obj = getActiveXObject(activeXDetectRules[i].name);\n\t\t\tif (typeof obj === \"object\") {\n\t\t\t\tinstalled = true;\n\t\t\t\tversion = activeXDetectRules[i].version(obj);\n\t\t\t\tif (version !== -1) {\n\t\t\t\t\tvar vObj = parseActiveXVersion(version);\n\t\t\t\t\tmajor = vObj.major;\n\t\t\t\t\tminor = vObj.minor; \n\t\t\t\t\trevision = vObj.revision;\n\t\t\t\t\trevisionStr = vObj.revisionStr;\n\t\t\t\t\tactiveXVersion = version;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\td.msg('Flash version: ', major, minor, revision);\n\t\n\treturn {\n\t\tmajor: major,\n\t\tminor: minor,\n\t\trevision: revision\n\t};\n}());\n\n\n//# sourceURL=webpack:///../javascript/src/FlashVersion.js?");

/***/ }),

/***/ "../javascript/src/FriendlyIframe.js":
/*!*******************************************!*\
  !*** ../javascript/src/FriendlyIframe.js ***!
  \*******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Environment = __webpack_require__(/*! Environment */ \"../javascript/src/Environment.js\");\nvar Viewport    = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\");\n\nmodule.exports = {\n\tisFriendlyIframe: function (win) {\n\t\ttry {\n\t\t\tif (!win.parent.document) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn Environment.isFramed(win) && Viewport.getHeight(win) < 2;\n\t\t} catch (message) {\n\t\t\treturn false;\n\t\t}\n\t},\n\tgetBlockWindow: function (win) {\n\t\tif (this.isFriendlyIframe(win)) {\n\t\t\treturn Environment.getTopWindow(win);\n\t\t}\n\n\t\treturn win;\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/FriendlyIframe.js?");

/***/ }),

/***/ "../javascript/src/GlobalManager.js":
/*!******************************************!*\
  !*** ../javascript/src/GlobalManager.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Browser = __webpack_require__(/*! Browser */ \"../javascript/src/Browser.js\");\n\nmodule.exports = function() {\n\tvar _blk_idx = 0,\n\t\t_ts = 'script',\n\t\t_tj = 'text/javascript';\n\n\treturn {\n\t\tacquireBlockIndex: function() {\n\t\t\treturn _blk_idx++;\n\t\t},\n\t\tcreateInlineScriptBlock: function(win, s) {\n\t\t\tvar doc = win.document, sc = doc.createElement(_ts);\n\t\t\tsc.type = _tj;\n\t\t\tif (Browser.msie) {\n\t\t\t\tsc.text = s;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsc.appendChild(doc.createTextNode(s));\n\t\t\t}\n\t\t\treturn sc;\n\t\t},\n\t\tcreateExternalScriptBlock: function(win, s) {\n\t\t\tvar sc = win.document.createElement(_ts);\n\t\t\tsc.type = _tj;\n\t\t\tsc.src = s;\n\t\t\treturn sc;\n\t\t}\n\t};\n};\n\n\n//# sourceURL=webpack:///../javascript/src/GlobalManager.js?");

/***/ }),

/***/ "../javascript/src/MessageReceiver.js":
/*!********************************************!*\
  !*** ../javascript/src/MessageReceiver.js ***!
  \********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Browser   = __webpack_require__(/*! Browser */ \"../javascript/src/Browser.js\");\nvar DOMLoad   = window[\"ToboAds\"].DOMLoad;\nvar topWindow = window[\"ToboAds\"].topWindow;\n\nmodule.exports = function(windowListener, win) {\n\tvar handlers  = [];\n\tvar objWindow = win || window;\n\n\tvar destroyAdContent = function(data) {\n\t\tDOMLoad.removeEventHandler(objWindow, 'scroll');\n\t\tDOMLoad.removeEventHandler(objWindow, 'resize');\n\t\tDOMLoad.removeEventHandler(objWindow, 'touchmove');\n\t\tDOMLoad.removeEventHandler(objWindow, 'gesturechange');\n\n\t\tvar destroyContent = function() {\n\t\t\tvar frameContent = topWindow.document.getElementById(data.cId).getElementsByTagName('div')[0];\n\n\t\t\tif (frameContent) {\n\t\t\t\tframeContent.style.display = 'none';\n\t\t\t\tframeContent.style.visibility = 'none';\n\t\t\t\tframeContent.style.width = '0';\n\t\t\t\tframeContent.style.height = '0';\n\t\t\t}\n\t\t};\n\n\t\tsetTimeout(destroyContent, 600);\n\t};\n\n\tvar handleMessage = function(src, data) {\n\t\tif (data.hasOwnProperty('msg') && data.msg === 'ERROR') {\n\t\t\tdestroyAdContent(data);\n\t\t}\n\n\t\tfor (var i = 0; i < handlers.length; i++) {\n\t\t\thandlers[i](src, data);\n\t\t}\n\t};\n\n\tif (objWindow.postMessage) {\n\t\tvar receiveMessage = function(event) { handleMessage(event.origin, event.data); };\n\n\t\tif (objWindow.attachEvent) {\n\t\t\tobjWindow.attachEvent('onmessage', receiveMessage);\n\t\t} else if (objWindow.addEventListener) {\n\t\t\tobjWindow.addEventListener('message', receiveMessage, false);\n\t\t}\n\t} else {\n\t\tif (Browser.saf || Browser.msie) {\n\t\t\tobjWindow.postMessageFromProxyIFrame = function(m) {\n\t\t\t\thandleMessage('iframe', decodeURIComponent(m));\n\t\t\t};\n\t\t} else {\n\t\t\tvar __lastFragment = null;\n\t\t\tvar observeFragment = function() {\n\t\t\t\tsetTimeout(observeFragment, 500 + Math.random() * 100);\n\t\t\t\t\n\t\t\t\tvar loc = objWindow.location.toString();\n\t\t\t\tif (!/#(\\{|%7B).+/i.test(loc)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar fragment = loc.replace(/^.*#(\\{|%7B)/, '{');\n\t\t\t\tif (fragment === '') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tvar extracted = decodeURIComponent(fragment);\n\t\t\t\tif (extracted !== '' && extracted !== __lastFragment) {\n\t\t\t\t\t__lastFragment = extracted;\n\t\t\t\t\thandleMessage('fragment', extracted);\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\twindowListener.registerLoad(observeFragment);\n\t\t}\n\t}\n\t\n\treturn {\n\t\tregisterHandler: function(func) {\n\t\t\thandlers[handlers.length] = func;\n\t\t},\n\t\tsetAllowFramelessMessages: function (allow) {\n\t\t\tif (allow) {\n\t\t\t\twindow[\"ToboAds\"].PubSubHub.subscribe(this);\n\t\t\t}\n\t\t},\n\t\tpostFramelessMessage: function (message) {\n\t\t\thandleMessage('frameless', message);\n\t\t}\n\t};\n};\n\n\n//# sourceURL=webpack:///../javascript/src/MessageReceiver.js?");

/***/ }),

/***/ "../javascript/src/MessageSender.js":
/*!******************************************!*\
  !*** ../javascript/src/MessageSender.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Debug         = __webpack_require__(/*! Debug */ \"../javascript/src/Debug.js\"),\n    Browser       = __webpack_require__(/*! Browser */ \"../javascript/src/Browser.js\"),\n    Random        = __webpack_require__(/*! Random */ \"../javascript/src/Random.js\"),\n    JSONStringify = __webpack_require__(/*! vendor/JSONStringify */ \"../javascript/src/vendor/JSONStringify.js\")\n;\n\nfunction MessageSender (block, baseUrl, frameless) {\n\tthis.d = Debug.open('MessageSender');\n\tthis.block = block;\n\tthis.baseUrl = baseUrl;\n\t\n\tif (frameless) {\n\t\tthis.senderFunc = function (m) {\n\t\t\twindow[\"ToboAds\"].PubSubHub.publish(m);\n\t\t};\n\t\t\n\t\treturn;\n\t}\n\t\n\tthis.senderFunc = function(m) { \n\t\tthis.d.msg('MESSAGE (senderFunc not set)', m);\n\t};\n\t\n\tvar pms = false;\n\ttry {\n\t\tpms = this.block.frame.contentWindow.postMessage;\n\t}\n\tcatch (pe) {\n\t\tthis.d.msg('EXCEPTION', pe);\n\t}\n\t\n\tvar me = this;\n\tif (pms) {\n\t\tthis.d.msg(\"Browser supports window.postMessage (Firefox 3, Opera 9, IE8, Chrome 2, Safari 4)\");\n\t\tthis.senderFunc = function(m) { me.block.frame.contentWindow.postMessage(m, '*'); };\n\t} else {\n\t\tif (Browser.saf || Browser.msie) {\n\t\t\tthis.d.msg(\"MSIE 6, 7, Safari 3, Chrome 1: postMessageViaIframe\");\n\t\t\tthis.senderFunc = function(m) { me.postMessageViaIframe(m); };\n\t\t}\n\t\telse {\n\t\t\tthis.d.msg(\"Firefox 2 or any Konqueror: postMessageViaFragment\");\n\t\t\tthis.senderFunc = function(m) { me.postMessageViaFragment(m); };\n\t\t}\n\t}\n}\n\nmodule.exports = MessageSender;\n\nMessageSender.prototype.send = function(name, msg) {\n\ttry {\n\t\tthis.d.msg('send', this.block, name, msg);\n\t\tvar msg_obj = {\n\t\t\t\t'name': name,\n\t\t\t\t'data': msg\n\t\t\t};\n\t\tthis.senderFunc(JSONStringify.stringify(msg_obj));\n\t}\n\tcatch (e) {\n\t\tthis.d.msg('EXCEPTION', e);\n\t}\n};\n\nMessageSender.prototype.postMessageViaIframe = function(m) {\n\tthis.d.msg('postMessageViaIframe');\n\ttry {\n\t\tvar block = this.block;\n\t\tvar el = block.doc.createElement(\"iframe\");\n\t\tel.style.position = \"absolute\";\n\t\tel.style.visibility = \"hidden\";\n\t\tel.style.display = 'none';\n\t\tel.style.top = el.style.left = \"0\";\n\t\tel.style.width = el.style.height = \"0\";\n\t\tel.id = 'ta_msgprxy_frm_' + Random.getUniqueString(16);\n\t\tel.name = el.id;\n\t\tel.src = this.baseUrl + \"/cdmp.html#r=\" + Math.random() + \",t=\" + block.frame.name + \",m=\" + encodeURIComponent(m);\n\t\tthis.d.msg('iframe.src=' + el.src);\n\t\tblock.win.document.body.appendChild(el);\n\t\tsetTimeout(function() { block.win.document.body.removeChild(el); }, 3000);\n\t}\n\tcatch (e) {\n\t\tthis.d.msg('EXCEPTION', e);\n\t}\n};\n\nMessageSender.prototype.postMessageViaFragment = function(ms) {\n\tthis.d.msg('postMessageViaFragment');\n\ttry {\n\t\tvar u = this.block.url + \"#\" + encodeURIComponent(ms);\n\t\tif (Browser.konq) {\n\t\t\t// Konqueror is Special, though this luckily doesn't break its history (yay!)\n\t\t\tthis.block.frame.src = u;\n\t\t}\n\t\telse {\n\t\t\tthis.block.frame.contentWindow.location.replace(u);\n\t\t}\n\t}\n\tcatch (e) {\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/MessageSender.js?");

/***/ }),

/***/ "../javascript/src/MessagingHub.js":
/*!*****************************************!*\
  !*** ../javascript/src/MessagingHub.js ***!
  \*****************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Debug = __webpack_require__(/*! Debug */ \"../javascript/src/Debug.js\");\n\nvar hubFactory, Hub, _U = 'undefined';\n\nvar d = Debug.open('MessagingHub');\n\nhubFactory = function (candidateWindow, allowedDomains) {\n\tif (candidateWindow.postMessage) {\n\t\treturn new Hub(allowedDomains);\n\t}\n\t\n\treturn new NullHub();\n};\n\nmodule.exports = {\n\tnewHub: hubFactory\n};\n\n/**\n * @constructor\n */\nfunction NullHub() {}\nNullHub.prototype.listenForMessages = function () {};\nNullHub.prototype.registerHandler = function () {};\n\nHub = (function () {\n\tvar processEvent, isDomainAllowed, newProcessorFor, isKnownEvent, offsetBlockId;\n\t\n\t/**\n\t * @constructor\n\t */\n\tfunction HubProto(allowedDomains) {\n\t\tthis.allowedDomains = allowedDomains;\n\t\tthis.handlers = {};\n\t}\n\t\n\tisDomainAllowed = function (domain, whitelist) {\n\t\tvar i, t;\n\n\t\tfor (i = 0, t = whitelist.length; i < t; ++i) {\n\t\t\tif (whitelist[i].test(domain)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn false;\n\t};\n\t\n\tisKnownEvent = function (eventData) {\n\t\treturn (typeof eventData.msg !== _U) && (typeof eventData.blockId !== _U);\n\t};\n\t\n\toffsetBlockId = function (blockId) {\n\t\treturn parseInt(blockId, 10) - 1;\n\t};\n\t\n\tprocessEvent = function (event) {\n\t\tvar i, c, hub = this, data = event.data;\n\n\t\tif (!isDomainAllowed(event.origin, hub.allowedDomains)) {\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif (!isKnownEvent(data)) {\n\t\t\treturn;\n\t\t}\n\n\t\td.msg(\"Message from Block:\", data.blockId, \"Data:\", data.msg);\n\t\t\n\t\tif (hub.handlers.hasOwnProperty(data.msg)) {\n\t\t\tfor (i = 0, c = hub.handlers[data.msg].length; i < c; ++i) {\n\t\t\t\thub.handlers[data.msg][i](offsetBlockId(data.blockId), data);\n\t\t\t}\n\t\t}\n\t};\n\t\n\tnewProcessorFor = function (hub) {\n\t\treturn function (e) {\n\t\t\tprocessEvent.apply(hub, [e]);\n\t\t};\n\t};\n\t\n\tHubProto.prototype.listenForMessages = function (eventWindow) {\n\t\tvar processor = newProcessorFor(this);\n\t\t\n\t\tif (eventWindow.attachEvent) {\n\t\t\teventWindow.attachEvent(\"onmessage\", processor);\n\t\t} else if (eventWindow.addEventListener) {\n\t\t\teventWindow.addEventListener(\"message\", processor, false);\n\t\t}\n\t};\n\t\n\tHubProto.prototype.registerHandler = function (message, handler) {\n\t\tif (!this.handlers.hasOwnProperty(message)) {\n\t\t\tthis.handlers[message] = [];\n\t\t}\n\t\t\n\t\tthis.handlers[message].push(handler);\n\t};\n\t\n\treturn HubProto;\n}());\n\n\n//# sourceURL=webpack:///../javascript/src/MessagingHub.js?");

/***/ }),

/***/ "../javascript/src/Observer.js":
/*!*************************************!*\
  !*** ../javascript/src/Observer.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Debug    = __webpack_require__(/*! Debug */ \"../javascript/src/Debug.js\"),\n    Rect     = __webpack_require__(/*! Rect */ \"../javascript/src/Rect.js\"),\n    Viewport = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\"),\n    DOM      = __webpack_require__(/*! DOM */ \"../javascript/src/DOM.js\"),\n    Browser  = __webpack_require__(/*! Browser */ \"../javascript/src/Browser.js\"),\n    _U       = 'undefined';\n\nfunction Observer(block, delay, framed, windowListener) {\n\tthis.d = Debug.open('Observer', block.index);\n\n\tthis.block                = block;\n\tthis.delay                = delay;\n\tthis.timer                = null;\n\tthis.viewportTimer        = null;\n\tthis.blockVisible         = false;\n\tthis.visibilityCheckCount = 0;\n\tthis.framed               = framed;\n\n\tvar eventTrigger = function () {\n\t\t\tthis.reset();\n\t\t},\n\t\teventTriggerWrapper = (function (obj) {\n\t\t\treturn function () {\n\t\t\t\teventTrigger.apply(obj);\n\t\t\t};\n\t\t}(this)),\n\t\tcurrent = this.block.win,\n\t\tcp\n\t;\n\n\tblock.winStack = [];\n\twhile (current) {\n\t\tblock.winStack.push(current);\n\t\twindowListener.addEventHandler(current, 'scroll', eventTriggerWrapper);\n\t\twindowListener.addEventHandler(current, 'resize', eventTriggerWrapper);\n\n\t\ttry {\n\t\t\tcp = current.parent;\n\t\t\tif (cp !== null && cp !== current && cp.document.location.href) {\n\t\t\t\tcurrent = cp;\n\t\t\t} else {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nmodule.exports = Observer;\n\nObserver.prototype.calculateBaseVisibleRect = function () {\n\tvar visibleRect = null, intersection, childPos, offsetBounds, childOffset, winStack;\n\n\twinStack = this.block.winStack.slice();\n\n\tif (winStack.length === 1) {\n\t\tvisibleRect = Viewport.getClipRect(this.block.win);\n\t} else {\n\t\tvar childWin = null,\n\t\t\tw        = winStack.pop();\n\n\t\twhile (w) {\n\t\t\tif (visibleRect === null) {\n\t\t\t\tvisibleRect = Viewport.getClipRect(w);\n\t\t\t}\n\n\t\t\tchildWin = winStack.pop();\n\t\t\tif (childWin) {\n\t\t\t\ttry {\n\t\t\t\t\tvar contentElement = childWin.frameElement;\n\n\t\t\t\t\tif (this.block.engine === 'frameless' && Browser.msie && Number(Browser.version) < 9) {\n\t\t\t\t\t\tcontentElement = this.block.container;\n\t\t\t\t\t}\n\n\t\t\t\t\tchildPos     = DOM.getOffset(contentElement);\n\t\t\t\t\toffsetBounds = Viewport.getBounds(childWin).offsetBy(childPos);\n\t\t\t\t\tintersection = offsetBounds.intersect(visibleRect);\n\t\t\t\t\tchildOffset  = Viewport.getOffset(childWin);\n\t\t\t\t\tvisibleRect  = intersection.offsetBy(childPos.negate()).offsetBy(childOffset);\n\t\t\t\t\tif (visibleRect.isNull) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthis.d.msg(\"EXCEPTION\", e);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tw = childWin;\n\t\t}\n\t}\n\n\treturn visibleRect;\n};\n\nObserver.prototype.calculateBlockViewport = function () {\n\tvar visibleRect      = this.calculateBaseVisibleRect(),\n\t\tblock            = this.block,\n\t\tblockVisibleRect = new Rect(),\n\t\tblockPos,\n\t\tblockRect,\n\t\tintersection,\n\t\tblockHeight,\n\t\tblockWidth\n\t;\n\n\tif (block.engineParams.render_block_format !== _U) {\n\t\tblockWidth  = block.engineParams.render_block_format.split('x')[0];\n\t\tblockHeight = block.engineParams.render_block_format.split('x')[1];\n\t}\n\telse {\n\t\tblockWidth  = block.frame.width;\n\t\tblockHeight = block.frame.height;\n\t}\n\n\tif (!visibleRect.isNull) {\n\t\tblockPos = DOM.getOffset(block.frame);\n\n\t\t// some tags (e.g. innity) want to hide parent placeholder for some reason\n\t\tif (block.engine === 'srcless' &&\n\t\t\t(blockHeight === '0' || block.frame.style.visibility === 'hidden')) {\n\t\t\t// alert('>>> srcless & empty frame');\n\n\t\t\t// so we fix y\n\t\t\tif (blockPos.y >= blockHeight) {\n\t\t\t\tblockPos.y = blockPos.y - blockHeight;\n\t\t\t}\n\t\t\t// x\n\t\t\tif (blockWidth === '0' && blockPos.x >= blockWidth) {\n\t\t\t\tblockPos.x = blockPos.x - blockWidth;\n\t\t\t}\n\t\t\t// just in case, we set frame to visible & put it 6feetunder\n\t\t\tif (block.frame.style.visibility === 'hidden') {\n\t\t\t\tblock.frame.style.visibility = 'visible';\n\t\t\t\tblock.frame.style.zIndex     = '-1000';\n\t\t\t}\n\t\t}\n\t\t// Frameless ads don't have iframe so we take span element instead\n\t\tif (block.engine === 'frameless') {\n\t\t\tblockPos = DOM.getOffset(block.container);\n\t\t}\n\n\t\tif (false) {}\n\n\t\tblockRect    = new Rect(blockPos.x, blockPos.y, blockPos.x + parseInt(blockWidth, 10), blockPos.y + parseInt(blockHeight, 10));\n\t\tintersection = visibleRect.intersect(blockRect);\n\n\t\tif (false) {}\n\n\t\tif (!intersection.isNull) {\n\t\t\tblockVisibleRect = intersection.offsetBy(blockPos.negate());\n\t\t}\n\t}\n\n\tif (false) {}\n\n\treturn blockVisibleRect;\n};\n\n/**\n * Execute viewport observer.\n *\n * @param {number} [delay]\n */\nObserver.prototype.exec = function (delay) {\n\tvar v      = this.calculateBlockViewport(),\n\t    vDelay = delay || this.delay\n\t;\n\n\tif (v && typeof v.isNull !== _U && v.isNull === false) {\n\n\t\tif (!this.blockVisible && this.visibilityCheckCount < 3) {\n\t\t\tthis.d.msg(\"Checking visibility:\", (this.visibilityCheckCount + 1));\n\t\t\tthis.blockVisible = DOM.isElementVisible(this.block.win, this.block.frame);\n\t\t\tthis.d.msg(\"blockVisible=\", this.blockVisible);\n\t\t\tthis.visibilityCheckCount++;\n\t\t}\n\n\t\tif (this.blockVisible) {\n\t\t\tthis.block.messageSender.send('VIEWPORT', {\n\t\t\t\trect:         v,\n\t\t\t\tinitialDelay: vDelay,\n\t\t\t\tviewport:     Viewport.getSize(window[\"ToboAds\"].topWindow)\n\t\t\t});\n\t\t}\n\t}\n\n\tthis.stop(this.timer);\n};\n\n/**\n * Ad block viewport -> checks viewport position without delay\n */\nObserver.prototype.adBlockViewport = function () {\n\tvar v = this.calculateBlockViewport();\n\n\tthis.blockInViewport = false;\n\n\tif (v && typeof v.isNull !== _U && v.isNull === false) {\n\t\tthis.blockInViewport = DOM.isElementVisible(this.block.win, this.block.frame);\n\t\tif (this.blockInViewport) {\n\t\t\tthis.d.msg('->>> Viewport visible');\n\n\t\t\tthis.block.messageSender.send('VIDEO_INVIEWPORT', {\n\t\t\t\trect:     v,\n\t\t\t\tviewport: Viewport.getSize(window[\"ToboAds\"].topWindow)\n\t\t\t});\n\t\t}\n\t}\n\n\tif (!this.blockInViewport && this.block.messageSender) {\n\t\tthis.d.msg('->>> Out of viewport');\n\n\t\tthis.block.messageSender.send('VIDEO_OUTOFVIEWPORT', {\n\t\t\trect:     v,\n\t\t\tviewport: Viewport.getSize(window[\"ToboAds\"].topWindow)\n\t\t});\n\t}\n\n\tthis.stop(this.viewportTimer);\n};\n\nObserver.prototype.reset = function (delay) {\n\tthis.stop(this.timer);\n\tthis.stop(this.viewportTimer);\n\n\tif (typeof delay === _U) {\n\t\tdelay = this.delay;\n\t}\n\n\tif (this.framed) {\n\t\tdelay = 4000;\n\t}\n\n\tthis.timer = setTimeout((function (obv) {\n\t\treturn function() {\n\t\t\tobv.exec(delay);\n\t\t};\n\t}(this)), delay);\n\n\t// No delay changes on viewport -> 150 milliseconds because\n\t// scrolling events and user stupidity\n\tthis.viewportTimer = setTimeout((function(obv) {\n\t\treturn function() {\n\t\t\tobv.adBlockViewport();\n\t\t};\n\t}(this)), 150);\n};\n\nObserver.prototype.stop = function (timer) {\n\tif (timer !== null) {\n\t\tclearTimeout(timer);\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/Observer.js?");

/***/ }),

/***/ "../javascript/src/Point.js":
/*!**********************************!*\
  !*** ../javascript/src/Point.js ***!
  \**********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction Point(x, y) {\n\tthis.x = x;\n\tthis.y = y;\n\t\n\tthis.negate = function() {\n\t\treturn new Point(-this.x, -this.y);\n\t};\n\t\n\tthis.add = function(p) {\n\t\treturn new Point(this.x + p.x, this.y + p.y);\n\t};\n\t\n\tthis.subtract = function(p) {\n\t\treturn this.add(p.negate());\n\t};\n}\n\nmodule.exports = Point;\n\n//# sourceURL=webpack:///../javascript/src/Point.js?");

/***/ }),

/***/ "../javascript/src/PubSubHub.js":
/*!**************************************!*\
  !*** ../javascript/src/PubSubHub.js ***!
  \**************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nmodule.exports = function () {\n\tvar subscribers = [];\n\t\n\treturn {\n\t\tpublish: function (message) {\n\t\t\tvar i, l = subscribers.length;\n\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tsubscribers[i].postFramelessMessage(message);\n\t\t\t}\n\t\t},\n\t\tsubscribe: function (receiver) {\n\t\t\tsubscribers.push(receiver);\n\t\t}\n\t};\n};\n\n//# sourceURL=webpack:///../javascript/src/PubSubHub.js?");

/***/ }),

/***/ "../javascript/src/Random.js":
/*!***********************************!*\
  !*** ../javascript/src/Random.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _U = 'undefined';\n\nmodule.exports = {\n\tget: function(limit) {\n\t\tif (typeof limit === _U) {\n\t\t\tlimit = 1;\n\t\t}\n\n\t\treturn Math.floor(Math.random() * limit);\n\t},\n\n\tgetUniqueString: function(length) {\n\t\tvar id = '', arrCharacters = '0123456789abcdef', i, charIdx;\n\n\t\tif (typeof length === _U) {\n\t\t\tlength = 32;\n\t\t}\n\n\t\tfor (i = 0; i < length; i++) {\n\t\t\tcharIdx = this.get(arrCharacters.length);\n\t\t\tid     += arrCharacters.charAt(charIdx);\n\t\t}\n\n\t\treturn id;\n\t},\n\n\tgenerateUUID: function() {\n\t\treturn this.getUniqueString(8) + '-' + this.getUniqueString(4) + '-' +\n\t\t\tthis.getUniqueString(4) + '-' + this.getUniqueString(4) + '-' + this.getUniqueString(12);\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/Random.js?");

/***/ }),

/***/ "../javascript/src/Rect.js":
/*!*********************************!*\
  !*** ../javascript/src/Rect.js ***!
  \*********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nfunction Rect (left, top, right, bottom) {\n\tif (left === undefined || left === null) {\n\t\tthis.isNull = true;\n\t\tthis.left = null;\n\t\tthis.top = null;\n\t\tthis.right = null;\n\t\tthis.bottom = null;\n\t}\n\telse {\n\t\tthis.isNull = false;\n\t\tthis.left = left;\n\t\tthis.top = top;\n\t\tthis.right = right;\n\t\tthis.bottom = bottom;\n\t}\n}\n\nmodule.exports = Rect;\n\nRect.prototype.toString = function() {\n\treturn '[isNull: ' + this.isNull + ', left: ' + this.left + ', top: ' + this.top + ', right: ' + this.right + ', bottom: ' + this.bottom + ']';\n};\n\nRect.prototype.intersect = function(rect) {\n\tif (this.isNull || !Rect.isValidRect(rect) || rect.isNull) {\n\t\treturn new Rect();\n\t}\n\t\n\tvar r = new Rect(rect.left > this.left ? rect.left : this.left,\n\t\t\t\t\t\t\trect.top > this.top ? rect.top : this.top,\n\t\t\t\t\t\t\trect.right < this.right ? rect.right : this.right,\n\t\t\t\t\t\t\trect.bottom < this.bottom ? rect.bottom : this.bottom);\n\t\n\tif (r.left > r.right || r.top > r.bottom) {\n\t\treturn new Rect();\n\t}\n\t\n\treturn r;\n};\n\nRect.isValidRect = function(r) {\n\treturn (r.isNull !== undefined && r.left !== undefined && r.top !== undefined && r.right  !== undefined && r.bottom !== undefined);\n};\n\nRect.prototype.offsetBy = function(p) {\n\tif (this.isNull) {\n\t\treturn new Rect();\n\t}\n\treturn new Rect(this.left + p.x, this.top + p.y, this.right + p.x, this.bottom + p.y);\n};\n\nRect.prototype.copy = function() {\n\treturn new Rect(this.left, this.top, this.right, this.bottom);\n};\n\nRect.prototype.area = function() {\n\tif (this.isNull) {\n\t\treturn 0;\n\t}\n\treturn Math.abs(this.right - this.left) * Math.abs(this.bottom - this.top);\n};\n\nRect.prototype.covers = function(r, minCoverage) {\n\treturn Math.ceil(100 * this.intersect(r).area() / this.area()) >= minCoverage;\n};\n\n\n//# sourceURL=webpack:///../javascript/src/Rect.js?");

/***/ }),

/***/ "../javascript/src/TemplateProcessor.js":
/*!**********************************************!*\
  !*** ../javascript/src/TemplateProcessor.js ***!
  \**********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Environment    = __webpack_require__(/*! Environment */ \"../javascript/src/Environment.js\");\nvar Viewport       = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\");\nvar FriendlyIframe = __webpack_require__(/*! FriendlyIframe */ \"../javascript/src/FriendlyIframe.js\");\n\nvar _LOAD = 'LOAD';\n\nfunction TemplateProcessor(win, tagParams, parameters) {\n\tthis.win        = win;\n\tthis.tagParams  = tagParams;\n\tthis.parameters = parameters;\n}\n\nTemplateProcessor.prototype._getPlacement = function () {\n\tvar docDom          = Environment.getTopWindow(this.win).document;\n\tvar placementObject = {\n\t\tplacementEl:  undefined,\n\t\tplacement:    undefined,\n\t\tcloseElement: undefined\n\t};\n\n\tif (this.tagParams.placement) {\n\t\tplacementObject.placementEl = docDom.querySelector(this.tagParams.placement);\n\t\tplacementObject.placement   = this.tagParams.placement;\n\n\t\tif (this.tagParams.close_placement) {\n\t\t\tplacementObject.closeElement = docDom.querySelector(this.tagParams.close_placement);\n\t\t}\n\n\t\t// Remove element if we are moving container to custom placement. This should be done\n\t\t// only for async tags.\n\t\tif (this.tagParams.asyncEl) {\n\t\t\tthis.tagParams.asyncEl.parentNode.removeChild(this.tagParams.asyncEl);\n\t\t\tthis.tagParams.asyncEl = null;\n\t\t}\n\t}\n\n\treturn placementObject;\n};\n\nTemplateProcessor.prototype.createAsyncTag = function () {\n\tvar placement = this._getPlacement();\n\tvar parentWin = Environment.getTopWindow(this.win).document;\n\tvar parentEl  = placement.placementEl;\n\tvar asyncDiv  = parentWin.createElement('div');\n\n\tif (!parentEl && window.frameElement) {\n\t\tparentEl = parentWin.getElementById(window.frameElement.id);\n\t}\n\n\tif (!parentEl) {\n\t\treturn;\n\t}\n\n\tasyncDiv.setAttribute('class', 'tas-ads');\n\tasyncDiv.setAttribute('tas-status', _LOAD);\n\n\tfor (var i in this.tagParams) {\n\t\tif (!this.tagParams.hasOwnProperty(i)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Don't create attribute if element block or undefined!!!\n\t\tif (i === 'asyncEl' || i === 'asyncBlock' || !this.tagParams[i]) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tasyncDiv.setAttribute('tas-' + i.replace('_', '-'), this.tagParams[i]);\n\t}\n\n\tif (placement.placement === 'body' || placement.closeElement) {\n\t\tparentEl.appendChild(asyncDiv);\n\t} else if (placement.placement && !placement.closeElement) {\n\t\tif(parentEl.firstChild) {\n\t\t\tparentEl.insertBefore(asyncDiv, parentEl.querySelector('*'));\n\t\t} else {\n\t\t\tparentEl.appendChild(asyncDiv);\n\t\t}\n\t} else {\n\t\tparentEl.parentNode.insertBefore(asyncDiv, parentEl.nextSibling);\n\t}\n\n\tif (placement.closeElement) {\n\t\tplacement.closeElement.style.display = 'none';\n\t}\n};\n\nTemplateProcessor.prototype.renderContainer = function (windowManager) {\n\tvar createWin = this.win;\n\tvar placement = this._getPlacement();\n\n\t// Only engage and video ads can be served outside of friendly iframe\n\tif (FriendlyIframe.isFriendlyIframe(this.win)) {\n\t\tcreateWin = this.win.parent;\n\n\t\tthis.parameters.vh         = Viewport.getHeight(createWin);\n\t\tthis.parameters.vw         = Viewport.getWidth(createWin);\n\t\tthis.parameters.asyncBlock = 1;\n\t\tthis.parameters.isf        = false;\n\t\tthis.parameters.sfi        = true;\n\n\t\tthis.createAsyncTag();\n\t} else if (!Environment.isFramed(this.win) && placement.placementEl) {\n\t\tthis.parameters.asyncBlock = 1;\n\n\t\tthis.createAsyncTag();\n\t}\n\n\twindowManager.createContainer(createWin, this.parameters);\n};\n\n/**\n * If placement is set we need to wait until dom is rendered. Because dom load could be slow\n * or page could be slow, we create our own observer that looks for placement 10s. If placement\n * is not found after 10s we don't serve ad because user has a slow connection.\n *\n * If no placement is provided we render our frame at script execution.\n */\nTemplateProcessor.prototype.createContainer = function (windowManager, creationDelayTime) {\n\tvar createContainer = this.createContainer.bind(this);\n\tvar placement       = this._getPlacement();\n\n\tcreationDelayTime = creationDelayTime || 0;\n\n\tif (!placement.placement || (placement.placement && placement.placementEl)) {\n\t\treturn this.renderContainer(windowManager);\n\t}\n\n\tif (creationDelayTime < 10000) {\n\t\tsetTimeout(function () {\n\t\t\tcreationDelayTime += 100;\n\t\t\tcreateContainer(windowManager, creationDelayTime);\n\t\t}, 100);\n\t}\n};\n\nmodule.exports = TemplateProcessor;\n\n\n//# sourceURL=webpack:///../javascript/src/TemplateProcessor.js?");

/***/ }),

/***/ "../javascript/src/VideoInBanner.js":
/*!******************************************!*\
  !*** ../javascript/src/VideoInBanner.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Point    = __webpack_require__(/*! Point */ \"../javascript/src/Point.js\");\nvar Viewport = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\");\nvar Rect     = __webpack_require__(/*! Rect */ \"../javascript/src/Rect.js\");\nvar DOM      = __webpack_require__(/*! DOM */ \"../javascript/src/DOM.js\");\nvar DOMLoad  = window[\"ToboAds\"].DOMLoad;\n\nmodule.exports = function(win) {\n\tvar openContainer = function(block) {\n\t\tblock.messageSender.send('VIDEO_INCONTENT', {});\n\t};\n\n\tvar getRect = function(obj) {\n\t\tvar pos = DOM.getOffset(obj), width = obj.offsetWidth, height = obj.offsetHeight;\n\n\t\treturn new Rect(pos.x, pos.y, pos.x + width, pos.y + height);\n\t};\n\n\tvar inViewportCb = function(block) {\n\t\tvar screenRect, triggerRect, inViewport;\n\n\t\ttriggerRect = getRect(block.container).offsetBy(new Point(30, 0));\n\t\tscreenRect  = Viewport.getClipRect(window);\n\t\tinViewport  = !screenRect.intersect(triggerRect).isNull;\n\n\t\tif (inViewport) {\n\t\t\tblock.messageSender.send('VIDEO_INCONTENT_AUTOPLAY', {});\n\t\t}\n\t};\n\n\tvar registerAutoplayScroll = function(block) {\n\t\tinViewportCb(block);\n\n\t\tif (!DOMLoad) {\n\t\t\tDOMLoad = __webpack_require__(/*! DOMLoad */ \"../javascript/src/DOMLoad.js\")(win);\n\t\t}\n\n\t\tDOMLoad.addEventHandler(win, 'scroll', inViewportCb.bind(null, block));\n\t\tDOMLoad.addEventHandler(win, 'resize', inViewportCb.bind(null, block));\n\t\tDOMLoad.addEventHandler(win, 'touchmove', inViewportCb.bind(null, block));\n\t\tDOMLoad.addEventHandler(win, 'gesturechange', inViewportCb.bind(null, block));\n\t};\n\n\treturn {\n\t\topenContainer:          openContainer,\n\t\tregisterAutoplayScroll: registerAutoplayScroll\n\t};\n};\n\n\n//# sourceURL=webpack:///../javascript/src/VideoInBanner.js?");

/***/ }),

/***/ "../javascript/src/VideoPushdown.js":
/*!******************************************!*\
  !*** ../javascript/src/VideoPushdown.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Block    = __webpack_require__(/*! Block */ \"../javascript/src/Block.js\");\nvar Point    = __webpack_require__(/*! Point */ \"../javascript/src/Point.js\");\nvar Viewport = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\");\nvar Rect     = __webpack_require__(/*! Rect */ \"../javascript/src/Rect.js\");\nvar DOM      = __webpack_require__(/*! DOM */ \"../javascript/src/DOM.js\");\nvar FIframe  = __webpack_require__(/*! FriendlyIframe */ \"../javascript/src/FriendlyIframe.js\");\nvar timer;\n\nmodule.exports = function(win, ms, dl) {\n\tvar isResponsive = true;\n\tvar DOMLoad      = dl;\n\tvar mainWindow   = FIframe.getBlockWindow(win);\n\n\tvar TIMER_DEFAULT_INTERVAL = 17; // Around 60Hz\n\tvar ANIMATE_WITH_MARGIN    = false;\n\n\tvar Timer = function(tick) {\n\t\tthis.tick     = tick;\n\t\tthis.interval = TIMER_DEFAULT_INTERVAL;\n\t};\n\n\tTimer.prototype.start = function() {\n\t\tvar lastTick = new Date().getTime(), self = this;\n\n\t\tif (!this.intervalId) {\n\t\t\tthis.intervalId = setInterval(function () {\n\t\t\t\tvar now = new Date().getTime();\n\t\t\t\tself.tick(now - lastTick);\n\t\t\t\tlastTick = now;\n\t\t\t}, this.interval);\n\t\t}\n\t};\n\n\tTimer.prototype.stop = function() {\n\t\tclearInterval(this.intervalId);\n\t\tthis.intervalId = null;\n\t};\n\n\tvar hideContainer = function(container, block) {\n\t\tcontainer['data-orig-height'] = block.engineParams.render_block_format.split('x')[1]; /* @TODO */\n\t\tcontainer['data-orig-margin'] = container.style.marginBottom ? parseInt(container.style.marginBottom, 10) : 0;\n\n\t\tcontainer.style.height = '0px';\n\n\t\tcontainer.style.display    = '';\n\t\tcontainer.style.visibility = 'hidden';\n\t};\n\n\tvar prepareForSlide = function(frame) {\n\t\tframe.style.visibility   = 'visible';\n\t\tframe.style.marginBottom = frame['data-orig-margin'];\n\n\t\tif (isResponsive) {\n\t\t\tframe.style.maxWidth = parseInt(frame.style.width, 10) + 'px';\n\t\t\tframe.style.width    = '';\n\t\t}\n\t};\n\n\tvar viewportBestHeight = function(frame) {\n\t\tvar orgHeight = parseInt(frame['data-orig-height'], 10);\n\t\tvar orgWidth  = parseInt(frame.style.maxWidth !== '' ? frame.style.maxWidth : frame.style.width, 10);\n\t\tvar width     = parseInt(frame.clientWidth > 0 ? frame.clientWidth : frame.offsetWidth, 10);\n\t\tvar ratio     = orgHeight / orgWidth;\n\n\t\tif (isResponsive && width > 0) {\n\t\t\treturn ratio * width;\n\t\t}\n\n\t\treturn orgHeight;\n\t};\n\n\tvar slideDown = function(frame, block, speed) {\n\t\tvar resize;\n\n\t\tresize = function(frame, speed, tickDelta, goal, withMargin) {\n\t\t\tvar step        = speed / 1000 * tickDelta;\n\t\t\tvar height      = parseInt(frame.style.height, 10);\n\t\t\tvar newHeight   = height + step;\n\t\t\tvar goalReached = false;\n\n\t\t\tif (newHeight >= goal) {\n\t\t\t\tnewHeight   = goal;\n\t\t\t\tgoalReached = true;\n\t\t\t}\n\n\t\t\tframe.style.height = newHeight + 'px';\n\n\t\t\tif (withMargin) {\n\t\t\t\tframe.style.marginBottom = frame['data-orig-margin'] + frame['data-orig-height'] - newHeight + 'px';\n\t\t\t} else {\n\t\t\t\tframe.style.marginBottom = frame['data-orig-margin'] + 'px';\n\t\t\t}\n\n\t\t\treturn goalReached;\n\t\t};\n\n\t\tvar callback = function(tickDelta) {\n\t\t\tvar done;\n\n\t\t\tif (block.state !== Block.State.DONE) {\n\t\t\t\ttimer.stop();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdone = resize(frame, speed, tickDelta, viewportBestHeight(frame), ANIMATE_WITH_MARGIN);\n\n\t\t\tif (done) {\n\t\t\t\ttimer.stop();\n\n\t\t\t\tblock.messageSender.send('VIEWPORT_RENDERED', {});\n\t\t\t}\n\n\t\t\tblock.messageSender.send('VIEWPORT_RESIZE', {\n\t\t\t\torgHeight: frame['data-orig-height'],\n\t\t\t\ttype:      'video'\n\t\t\t});\n\t\t};\n\n\t\tprepareForSlide(frame);\n\n\t\ttimer = new Timer(callback);\n\t\ttimer.start();\n\t};\n\n\tvar viewportReset = function(triggerNode, frame, block, speed) {\n\t\tvar width = parseInt(frame.style.maxWidth, 10) || parseInt(frame.style.width, 10);\n\n\t\tisResponsive = false;\n\n\t\tif (timer) {\n\t\t\ttimer.stop();\n\t\t}\n\n\t\tframe.style.width         = width + 'px';\n\t\tframe.style.maxWidth      = '';\n\t\ttriggerNode.style.display = 'inline-block';\n\n\t\tslideDown(frame, block, speed);\n\t};\n\n\tvar viewportResize = function(frame) {\n\t\tframe.style.height = viewportBestHeight(frame) + 'px';\n\t};\n\n\tvar getRect = function(obj) {\n\t\tvar pos = DOM.getOffset(obj), width = obj.offsetWidth, height = obj.offsetHeight;\n\n\t\treturn new Rect(pos.x, pos.y, pos.x + width, pos.y + height);\n\t};\n\n\tvar addCloseButtonToContainer = function (container, containerId, block) {\n\t\tvar close = block.doc.createElement('div'), cancelBubble;\n\t\tcancelBubble = function(e) {\n\t\t\te.returnValue = false;\n\t\t\te.cancelBubble = true;\n\n\t\t\tif (e.preventDefault) {\n\t\t\t\te.preventDefault();\n\t\t\t}\n\n\t\t\tif (e.stopPropagation) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t\treturn e;\n\t\t};\n\n\t\tclose.style.position   = 'absolute';\n\t\tclose.style.width      = '16px';\n\t\tclose.style.height     = '16px';\n\t\tclose.style.top        = '0';\n\t\tclose.style.right      = '0';\n\t\tclose.style.background = 'transparent url(\"//cdn.toboads.com/static/video/flowplayer/httpool/img/close.png\") top right no-repeat';\n\t\tclose.style.cursor     = 'pointer';\n\n\t\tDOMLoad.addEventHandler(close, \"click\", function(e) {\n\t\t\tvar event = e || mainWindow.event;\n\n\t\t\tblock.messageSender.send('VIDEO_PUSHDOWN_CLOSE', {});\n\t\t\twin[\"ToboAds\"]._collc(containerId, true);\n\n\t\t\tcancelBubble(event);\n\n\t\t\treturn false;\n\t\t});\n\n\t\tcontainer.appendChild(close);\n\t};\n\n\tvar registerScrollTrigger = function(container, triggerNode, frame, block) {\n\t\tvar speed = 300;\n\n\t\tframe.scrollTriggered = false;\n\n\t\tvar callback = function(event) {\n\t\t\tvar screenRect, triggerRect, inViewport;\n\n\t\t\tif (frame.scrollTriggered) {\n\t\t\t\tevent = event || mainWindow.event;\n\n\t\t\t\tif (event.type === 'resize') {\n\t\t\t\t\tviewportResize(frame);\n\n\t\t\t\t\tblock.messageSender.send('VIEWPORT_RESIZE', {\n\t\t\t\t\t\torgHeight: container['data-orig-height'],\n\t\t\t\t\t\ttype:      'video'\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttriggerRect = getRect(triggerNode).offsetBy(new Point(30, 0));\n\t\t\tscreenRect  = Viewport.getClipRect(mainWindow);\n\t\t\tinViewport  = !screenRect.intersect(triggerRect).isNull;\n\n\t\t\tif (inViewport) {\n\t\t\t\tframe.scrollTriggered = true;\n\t\t\t\tblock.messageSender.send('VIDEO_PUSHDOWN', {});\n\n\t\t\t\tms.registerHandler(function(src, data) {\n\t\t\t\t\tif (/\\.toboads\\.com/.test(src) || /\\.tas\\.vrt/.test(src)) {\n\t\t\t\t\t\tif (data.hasOwnProperty('msg') && data.msg === 'VIDEO_SPAWNED') {\n\t\t\t\t\t\t\tslideDown(frame, block, speed);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tms.registerHandler(function(src, data) {\n\t\t\t\t\tif (/\\.toboads\\.com/.test(src) || /\\.tas\\.vrt/.test(src)) {\n\t\t\t\t\t\tif (data.hasOwnProperty('msg') && data.msg === 'VIDEO_PUSHDOWN_CLOSE') {\n\t\t\t\t\t\t\twin[\"ToboAds\"]._collc(block.containerId, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\ttriggerNode.style.display = 'block';\n\n\t\taddCloseButtonToContainer(container, block.containerId, block);\n\n\t\tms.registerHandler(function(src, data) {\n\t\t\tif (/\\.toboads\\.com/.test(src) || /\\.tas\\.vrt/.test(src)) {\n\t\t\t\tif (data.hasOwnProperty('msg') && data.msg === 'VIEWPORT_LOCK') {\n\t\t\t\t\tviewportReset(triggerNode, frame, block, speed);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tcallback();\n\n\t\tDOMLoad.addEventHandler(mainWindow, 'scroll', callback);\n\t\tDOMLoad.addEventHandler(mainWindow, 'resize', callback);\n\t\tDOMLoad.addEventHandler(mainWindow, 'touchmove', callback);\n\t\tDOMLoad.addEventHandler(mainWindow, 'gesturechange', callback);\n\t};\n\n\treturn {\n\t\thideContainer:  hideContainer,\n\t\tregisterScroll: registerScrollTrigger\n\t};\n};\n\n\n//# sourceURL=webpack:///../javascript/src/VideoPushdown.js?");

/***/ }),

/***/ "../javascript/src/Viewport.js":
/*!*************************************!*\
  !*** ../javascript/src/Viewport.js ***!
  \*************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Rect  = __webpack_require__(/*! Rect */ \"../javascript/src/Rect.js\");\nvar Point = __webpack_require__(/*! Point */ \"../javascript/src/Point.js\");\n\nmodule.exports = {\n\t/**\n\t * Returns the pixel width of the viewport\n\t *\n\t * @return Number\n\t */\n\tgetWidth: function(w) {\n\t\tif (w.innerWidth) {\n\t\t\treturn Number(w.innerWidth);\n\t\t}\n\n\t\tif (w.document.documentElement.clientWidth) {\n\t\t\treturn Number(w.document.documentElement.clientWidth);\n\t\t}\n\n\t\tif (w.document.body === null) {\n\t\t\treturn Number(0);\n\t\t}\n\n\t\treturn Number(w.document.body.clientWidth);\n\t},\n\t/**\n\t * Returns the pixel height of the viewport\n\t */\n\tgetHeight: function(w) {\n\t\tif (w.innerHeight) {\n\t\t\treturn Number(w.innerHeight);\n\t\t}\n\n\t\tif (w.document.documentElement.clientHeight) {\n\t\t\treturn Number(w.document.documentElement.clientHeight);\n\t\t}\n\n\t\tif (w.document.body === null) {\n\t\t\treturn Number(0);\n\t\t}\n\n\t\treturn Number(w.document.body.clientHeight);\n\t},\n\t/**\n\t * Returns a hash map of width and height\n\t *\n\t * @return {Object}\n\t */\n\tgetSize: function(w) {\n\t\treturn { width: this.getWidth(w), height: this.getHeight(w) };\n\t},\n\t/**\n\t *\n\t */\n\tgetBounds: function(w)\n\t{\n\t\tvar size = this.getSize(w);\n\t\treturn new Rect(0, 0, size.width, size.height);\n\t},\n\t/**\n\t *\n\t */\n\tgetClipRect: function(w)\n\t{\n\t\tvar bounds = this.getBounds(w);\n\t\tvar offset = this.getOffset(w);\n\t\treturn bounds.offsetBy(offset);\n\t},\n\t/**\n\t * Returns surface size of a window (subtracts child surface size)\n\t *\n\t */\n\tgetSurfaceSize: function(win) {\n\t\tvar child_size = 0, i;\n\t\tif (win.frames && win.frames.length > 0) {\n\t\t\tfor (i = 0; i < win.frames.length; i++) {\n\t\t\t\ttry {\n\t\t\t\t\tchild_size += this.getWidth(win.frames[i]) * this.getHeight(win.frames[i]);\n\t\t\t\t}\n\t\t\t\tcatch (e) {\n\t\t\t\t\t// can't access child, ignore size\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this.getWidth(win) * this.getHeight(win) - child_size;\n\t},\n\t/**\n\t * Returns a hash map of offset in pixels\n\t *\n\t * @return {Object}\n\t */\n\tgetOffset: function(w) {\n\t\tvar iebody = (w.document.compatMode && w.document.compatMode !== \"BackCompat\")? w.document.documentElement: w.document.body;\n\t\treturn new Point(document.all? iebody.scrollLeft: w.pageXOffset, document.all? iebody.scrollTop: w.pageYOffset);\n\t}\n};\n\n\n//# sourceURL=webpack:///../javascript/src/Viewport.js?");

/***/ }),

/***/ "../javascript/src/WindowManager.js":
/*!******************************************!*\
  !*** ../javascript/src/WindowManager.js ***!
  \******************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar Debug          = __webpack_require__(/*! Debug */ \"../javascript/src/Debug.js\");\nvar Browser        = __webpack_require__(/*! Browser */ \"../javascript/src/Browser.js\");\nvar Observer       = __webpack_require__(/*! Observer */ \"../javascript/src/Observer.js\");\nvar MessageSender  = __webpack_require__(/*! MessageSender */ \"../javascript/src/MessageSender.js\");\nvar MessagingHub   = __webpack_require__(/*! MessagingHub */ \"../javascript/src/MessagingHub.js\");\nvar Environment    = __webpack_require__(/*! Environment */ \"../javascript/src/Environment.js\");\nvar FriendlyIframe = __webpack_require__(/*! FriendlyIframe */ \"../javascript/src/FriendlyIframe.js\");\nvar Random         = __webpack_require__(/*! Random */ \"../javascript/src/Random.js\");\nvar Block          = __webpack_require__(/*! Block */ \"../javascript/src/Block.js\");\nvar Attribute      = __webpack_require__(/*! Attribute */ \"../javascript/src/Attribute.js\");\n\nvar _U            = 'undefined';\nvar _DONE         = 'DONE';\nvar _LOAD         = 'LOAD';\n\nmodule.exports = function (w, baseUrl) {\n\tvar d         = Debug.open('WindowManager');\n\tvar topWindow = w[\"ToboAds\"].topWindow;\n\tvar DOMLoad   = topWindow[\"ToboAds\"].DOMLoad;\n\n\tvar blocks       = [];\n\tvar win          = w;\n\tvar doc          = win.document;\n\tvar regparams    = [];\n\tvar blockLoaded  = [];\n\tvar asyncCounter = 100;\n\n\t// If are serving friendly iframe then we have to switch to top level window\n\tif (FriendlyIframe.isFriendlyIframe(win)) {\n\t\twin = win.parent;\n\t\tdoc = win.document;\n\t}\n\n\tvar newParameterBuilder = function (inherit) {\n\t\tvar iprop = inherit || {};\n\n\t\treturn {\n\t\t\tbuild: function (props) {\n\t\t\t\tvar p = iprop, key;\n\n\t\t\t\tprops = props || {};\n\n\t\t\t\tfor (key in props) {\n\t\t\t\t\tif (props.hasOwnProperty(key)) {\n\t\t\t\t\t\tp[key] = props[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn p;\n\t\t\t}\n\t\t};\n\t};\n\n\tvar Utf8 = {\n\t\tencode: function (s) {\n\t\t\tvar n, utftext = \"\";\n\t\t\ts              = s.replace(/\\r\\n/g, \"\\n\");\n\t\t\tfor (n = 0; n < s.length; n++) {\n\t\t\t\tvar c = s.charCodeAt(n);\n\t\t\t\tif (c < 128) {\n\t\t\t\t\tutftext += String.fromCharCode(c);\n\t\t\t\t}\n\t\t\t\telse if ((c > 127) && (c < 2048)) {\n\t\t\t\t\tutftext += String.fromCharCode((c >> 6) | 192);\n\t\t\t\t\tutftext += String.fromCharCode((c & 63) | 128);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tutftext += String.fromCharCode((c >> 12) | 224);\n\t\t\t\t\tutftext += String.fromCharCode(((c >> 6) & 63) | 128);\n\t\t\t\t\tutftext += String.fromCharCode((c & 63) | 128);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn utftext;\n\t\t}\n\t};\n\n\tvar encs = function (s) {\n\t\treturn encodeURIComponent(s).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/\\*/g, '%2A').replace(/%20/g, '+');\n\t};\n\n\tvar wasWriteTamperedWith = function (doc) {\n\t\tvar originalTest = /\\[native code\\]/;\n\n\t\t// IE 8 does not have toString() on document.write\n\t\treturn !originalTest.test(doc.write + '');\n\t};\n\n\tvar getBlockContainer = function (containerId) {\n\t\tvar container, result;\n\n\t\tcontainer = doc.getElementById(containerId);\n\n\t\tif (typeof container !== _U && container) {\n\t\t\tresult = container.getElementsByTagName('div');\n\n\t\t\tif (result.length) {\n\t\t\t\treturn result[0];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tvar collapseContainer = function (cid, hard, doc) {\n\t\tvar placeholder = doc.getElementById(cid + '_ph'), blockContainer;\n\n\t\tif (typeof placeholder !== _U && placeholder && placeholder.parentNode) {\n\t\t\tplaceholder.parentNode.parentNode.removeChild(placeholder.parentNode);\n\t\t\tblockContainer = getBlockContainer(cid);\n\n\t\t\tif (blockContainer) {\n\t\t\t\tblockContainer.parentNode.removeChild(blockContainer);\n\t\t\t}\n\t\t}\n\n\t\tif (hard) {\n\t\t\tvar container = doc.getElementById(cid);\n\n\t\t\tif (typeof container !== _U && container) {\n\t\t\t\tcontainer.style.display = 'none';\n\t\t\t}\n\t\t}\n\t};\n\n\tvar blockFrameLoaded = function () {\n\t\tvar b = this.block, placeholderAnchor;\n\n\t\tif (false) {}\n\n\t\tif (b.state === Block.State.LOAD) {\n\t\t\tif (false) {}\n\n\t\t\tb.state    = Block.State.DONE;\n\t\t\tb.observer = new Observer(b, 700, Environment.isFramed(win), DOMLoad);\n\t\t\tb.observer.reset(1000);\n\n\t\t\tb.messageSender = new MessageSender(b, baseUrl);\n\n\t\t\tif (b.engineParams.pushdown) {\n\t\t\t\tplaceholderAnchor = b.container.getElementsByTagName('div')[0];\n\n\t\t\t\t// VIDEO PUSHDOWN\n\t\t\t\ttopWindow[\"ToboAds\"].VideoPushdown.hideContainer(placeholderAnchor, b);\n\t\t\t\ttopWindow[\"ToboAds\"].VideoPushdown.registerScroll(placeholderAnchor, b.container, placeholderAnchor, b);\n\t\t\t}\n\n\t\t\tif (b.engineParams.inbanner) {\n\t\t\t\t// VIDEO INBANNER - submit autoplay and no autoplay events\n\t\t\t\t// because we don't know what kind of ad we have\n\t\t\t\ttopWindow[\"ToboAds\"].VideoInBanner.openContainer(b);\n\t\t\t\ttopWindow[\"ToboAds\"].VideoInBanner.registerAutoplayScroll(b);\n\t\t\t}\n\t\t} else {\n\t\t\td.msg(\"Unexpected state:\", b.state);\n\t\t}\n\t};\n\n\tvar triggerFrameLoaded = function (frm) {\n\t\tif (Browser.konq) {\n\t\t\t// Konqueror doesn't fire iframe.onload properly, so I just use a timer, which is set to more than the loading should last.\n\t\t\t// The viewport detection starts with an additional delay, which hopefully ensures the ads are already loaded.\n\t\t\t// In most cases, this should work fine, although with an unwanted delay.\n\t\t\t// The only way to get the real onload event is to attach the iframe /before/ setting its source, and even in that case,\n\t\t\t// the event is fired /immediately/ upon attaching it to the DOM tree -- which is useless for me.\n\t\t\t// Similar: http://bugs.kde.org/show_bug.cgi?id=124966\n\t\t\tsetTimeout(function () {\n\t\t\t\tblockFrameLoaded.apply(frm);\n\t\t\t}, 3000);\n\t\t}\n\t\telse {\n\t\t\t// All other A-grade browsers (plus IE6, believe it or not), support the iframe.onload event.\n\t\t\tDOMLoad.addEventHandler(frm, 'load', blockFrameLoaded);\n\t\t}\n\t};\n\n\tvar prepu = function (s) {\n\t\tvar slen = s.length, ns = '', us, i, j;\n\n\t\tfor (i = 0; i < slen; i++) {\n\t\t\tif (s.charCodeAt(i) > 127) {\n\t\t\t\tus = Utf8.encode(s.substr(i, 1));\n\t\t\t\tfor (j = 0; j < us.length; j++) {\n\t\t\t\t\tns += '%' + us.charCodeAt(j).toString(16).toUpperCase();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tns += s.substr(i, 1);\n\t\t\t}\n\t\t}\n\n\t\treturn ns;\n\t};\n\n\tvar prepareQueryString = function (v) {\n\t\tvar q = '';\n\n\t\tfor (var n in v) {\n\t\t\tif (v.hasOwnProperty(n)) {\n\t\t\t\tvar vv = encs(v[n]);\n\n\t\t\t\tif (vv.length > 0) {\n\t\t\t\t\tq += n + '=' + encs(v[n]) + '&';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn q;\n\t};\n\n\tvar buildURL = function (b, p) {\n\t\tif (typeof p !== _U) {\n\t\t\treturn b + '?' + prepareQueryString(p);\n\t\t}\n\n\t\treturn b;\n\t};\n\n\tvar stripURLQuery = function (u) {\n\t\treturn u.split('?', 1)[0];\n\t};\n\n\tvar framelessContainer = function (cid, hard, doc) {\n\t\tdoc.getElementById(cid + '_ph').parentNode.style.display = 'none';\n\t};\n\n\tvar blockFramelessLoaded = function () {\n\t\tvar mr, b = this.block;\n\n\t\tif (false) {}\n\n\t\tif (b.state === Block.State.LOAD) {\n\n\t\t\tif (false) {}\n\n\t\t\tb.state    = Block.State.DONE;\n\t\t\tb.observer = new Observer(b, 700, Environment.isFramed(win), DOMLoad);\n\t\t\tb.observer.reset(1000);\n\n\t\t\tb.messageSender = new MessageSender(b, baseUrl, true);\n\n\t\t\td.msg(\"Preparing MessageReceiver for frameless message\");\n\n\t\t\ttry {\n\t\t\t\tmr = topWindow[\"ToboAds\"].MessageReceiver;\n\t\t\t\tmr.setAllowFramelessMessages(true);\n\t\t\t} catch (e) {\n\t\t\t\td.msg(\"Message receiver could not be found, frameless block cannot send messages\");\n\t\t\t}\n\t\t} else {\n\t\t\td.msg(\"Unexpected state:\", b.state);\n\t\t}\n\t};\n\n\tvar relocateIframePost = function (frame, document, url) {\n\t\tvar form = doc.createElement('form'), input = doc.createElement('input');\n\n\t\tform.setAttribute('method', 'POST');\n\t\tform.setAttribute('action', stripURLQuery(url));\n\t\tform.setAttribute('target', frame.getAttribute('name'));\n\n\t\tinput.setAttribute('type', 'hidden');\n\t\tinput.setAttribute('value', url);\n\t\tinput.setAttribute('name', 'async_data');\n\n\t\tform.appendChild(input);\n\t\tdoc.body.appendChild(form);\n\n\t\tframe.setAttribute('data-url', url);\n\n\t\tform.submit();\n\t\tform.parentNode.removeChild(form);\n\t};\n\n\tvar initializeBlock = function (block, placeholder) {\n\t\tvar b = block, parameters, p, parameterBuilder;\n\n\t\td.msg('initializeBlock', b, b.engine, placeholder);\n\n\t\tb.state = Block.State.LOAD;\n\t\tif (b.engine === 'ha') {\n\t\t\tparameterBuilder = newParameterBuilder(b.sharedParams);\n\n\t\t\t/* ads params */\n\t\t\tp = parameterBuilder.build({\n\t\t\t\tL:       b.engineParams.link,\n\t\t\t\talt_url: b.parameters.alternativeUrl,\n\t\t\t\tafs:     b.parameters.adFormats,\n\t\t\t\tsck:     b.engineParams.serving_context_cache_key\n\t\t\t});\n\n\t\t\tb.url = buildURL(baseUrl + '/ads.php', p);\n\n\t\t\tif (false) {}\n\t\t} else if (b.engine === 'srcless') {\n\t\t\tdelete b.url;\n\n\t\t\tif (false) {}\n\n\t\t\tvar ifrm              = doc.getElementById(b.containerId + '_ph');\n\t\t\tifrm.style.visibility = 'visible';\n\n\t\t\t/* this must be as is, otherwise linter fails */\n\t\t\tvar ifrm_src = \":'\" + win[b.containerId + \"_var\"] + \"'\";\n\t\t\tifrm.src     = \"javascript\" + ifrm_src;\n\n\t\t\tifrm.block = b;\n\t\t\tb.frame    = ifrm;\n\n\t\t\t// force load\n\t\t\tblockFrameLoaded.apply(ifrm);\n\t\t\treturn;\n\t\t} else if (b.engine === 'frameless') {\n\t\t\tdelete b.url;\n\n\t\t\tvar frp = doc.getElementById(b.containerId + '_ph').parentNode;\n\n\t\t\tif (frp.tagName === 'DIV') {\n\t\t\t\tvar divElement = frp;\n\n\t\t\t\tfrp = divElement.parentNode;\n\t\t\t\tfrp.removeChild(divElement);\n\t\t\t}\n\n\t\t\tfrp.block = b;\n\n\t\t\t// No iframe, force load\n\t\t\tblockFramelessLoaded.apply(frp);\n\t\t}\n\t\tif (b.engine === 'backfill') {\n\t\t\tb.custom_tag_renderer = b.engineParams.custom_tag_renderer;\n\n\t\t\tif (b.engineParams.custom_tag || b.engineParams.custom_external_script) {\n\t\t\t\tb.use_custom             = true;\n\t\t\t\tb.custom_tag             = b.engineParams.custom_tag;\n\t\t\t\tb.custom_external_script = b.engineParams.custom_external_script;\n\t\t\t} else {\n\t\t\t\tb.url = buildURL(baseUrl + b.engineParams.backfillProxy, b.engineParams);\n\t\t\t}\n\t\t} else if (b.engine === 'alt') {\n\t\t\tif (typeof b.engineParams !== _U && typeof b.engineParams.url !== _U && b.engineParams.url.length > 0) {\n\t\t\t\td.msg(\"Got alternative_url from callback:\", b.engineParams.url);\n\t\t\t\tb.url = b.engineParams.url;\n\t\t\t} else if (b.parameters.alternativeUrl.length > 0) {\n\t\t\t\td.msg(\"Got alternative_url from js code var:\", b.parameters.alternativeUrl);\n\t\t\t\tb.url = b.parameters.alternativeUrl;\n\t\t\t}\n\t\t} else if (b.engine === 'blank') {\n\t\t\tparameters = b.parameters;\n\t\t\tp          = {\n\t\t\t\trq:         topWindow[\"ToboAds\"].RQID,\n\t\t\t\tvt:         parameters.viewerTag,\n\t\t\t\tbrand:      b.engineParams.brand,\n\t\t\t\taf:         parameters.blockFormat,\n\t\t\t\tclr_border: parameters.style.borderColor,\n\t\t\t\tclr_bg:     parameters.style.backgroundColor,\n\t\t\t\tclr_title:  parameters.style.titleColor,\n\t\t\t\tclr_link:   parameters.style.linkColor,\n\t\t\t\tclr_text:   parameters.style.textColor,\n\t\t\t\tnw:         parameters.openInNewWindow,\n\t\t\t\tzn:         parameters.adZone\n\t\t\t};\n\n\t\t\tif (typeof(b.engineParams.clr_bg) !== _U) {\n\t\t\t\tp.clr_bg     = b.engineParams.clr_bg;\n\t\t\t\tp.clr_border = b.engineParams.clr_border;\n\t\t\t\tp.clr_title  = b.engineParams.clr_title;\n\t\t\t\tp.clr_link   = b.engineParams.clr_link;\n\t\t\t\tp.clr_text   = b.engineParams.clr_text;\n\t\t\t}\n\n\t\t\tb.url = buildURL(baseUrl + '/alt.php', p);\n\t\t}\n\n\t\tsetTimeout((function (blk, ph) {\n\t\t\tvar block = blk, placeholder = ph;\n\n\t\t\treturn function () {\n\t\t\t\tvar p = placeholder;\n\t\t\t\tvar b = block;\n\t\t\t\tvar f = b.doc.createElement('iframe');\n\n\t\t\t\tb.frame = f;\n\t\t\t\tf.block = b;\n\t\t\t\tf.id    = 'hA_blk_' + Random.getUniqueString(8);\n\t\t\t\tf.name  = f.id;\n\n\t\t\t\tf.style.width  = '100%';\n\t\t\t\tf.style.height = '100%';\n\t\t\t\tf.style.border = '0px solid white';\n\t\t\t\tf.scrolling    = \"no\";\n\t\t\t\tf.frameBorder  = 0;\n\t\t\t\tf.hspace            = 0;\n\t\t\t\tf.vspace            = 0;\n\t\t\t\tf.marginWidth       = 0;\n\t\t\t\tf.marginHeight      = 0;\n\t\t\t\tf.allowTransparency = 'false';\n\t\t\t\tf.allowFullscreen   = 'true';\n\n\t\t\t\tif (false) {}\n\n\t\t\t\tif (b.engine === 'ha') {\n\t\t\t\t\ttriggerFrameLoaded(f);\n\t\t\t\t}\n\n\t\t\t\t// defer attaching of the iframe (solved some cross-advertiser issues - ADpartner)\n\t\t\t\tsetTimeout((function (f, b, p) {\n\t\t\t\t\td.msg('delayed iframe attach [closure]', f, b, p);\n\t\t\t\t\tvar fr = f, bl = b, ph = p, frp = f.parentNode;\n\n\t\t\t\t\treturn function () {\n\t\t\t\t\t\tif (false) {}\n\n\t\t\t\t\t\tif (bl.url && bl.url.length < 2000) {\n\t\t\t\t\t\t\tfr.src = bl.url;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// use current parent of the placeholder (handles user-land block moving, hopefully)\n\t\t\t\t\t\t\tph.parentNode.replaceChild(fr, ph);\n\t\t\t\t\t\t} catch (blkmve) {\n\t\t\t\t\t\t\t// fallback to a more valid method; replace within the stored container reference\n\t\t\t\t\t\t\tbl.container.replaceChild(fr, ph);\n\t\t\t\t\t\t\td.msg(\"replaced node (via block.container reference)\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (bl.url && bl.url.length >= 2000) {\n\t\t\t\t\t\t\trelocateIframePost(fr, doc, bl.url);\n\t\t\t\t\t\t} else if (bl.use_custom) {\n\t\t\t\t\t\t\tif (false) {}\n\n\t\t\t\t\t\t\tfrp.innerHTML = bl.custom_tag;\n\n\t\t\t\t\t\t\ttopWindow[\"ToboAds\"].CustomAdTag.renderTag(\n\t\t\t\t\t\t\t\tbl.custom_tag_renderer, bl, frp, doc, win\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif (bl.custom_external_script) {\n\t\t\t\t\t\t\t\ttopWindow[\"ToboAds\"].CustomAdTag.addExternalScript(\n\t\t\t\t\t\t\t\t\tfrp, bl.custom_external_script, doc\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfrp.block = bl;\n\n\t\t\t\t\t\t\t// No iframe, force load\n\t\t\t\t\t\t\tblockFramelessLoaded.apply(frp);\n\t\t\t\t\t\t} else if (false) {}\n\t\t\t\t\t};\n\t\t\t\t}(f, b, p)), 100 + b.index * 50);\n\t\t\t};\n\t\t}(b, placeholder)), 50 * b.index);\n\t};\n\n\tvar initializeBlocks = function () {\n\t\td.msg('initializeBlocks', 'blocks=', blocks.length);\n\n\t\tvar i, block, placeholder;\n\n\t\tvar hub = MessagingHub.newHub(window, [/\\.tas\\.vrt/]);\n\n\t\thub.listenForMessages(window);\n\t\thub.registerHandler('ERROR', function (blockId) {\n\t\t\tfor (var i = 0, c = blocks.length; i < c; ++i) {\n\t\t\t\tif (blocks[i].index === blockId) {\n\t\t\t\t\tcollapseContainer(block.containerId, true, block.doc);\n\t\t\t\t\tblock.state = Block.State.COLLAPSE;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tfor (i = 0; i < blocks.length; i++) {\n\t\t\tblock = blocks[i];\n\n\t\t\tif (block.state === Block.State.LOAD) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (block.state !== Block.State.INIT) {\n\t\t\t\td.msg('block.state=' + block.state + ' ... skip');\n\t\t\t\tif (typeof initializeBlocks.callCount !== _U) {\n\t\t\t\t\tinitializeBlocks.callCount++;\n\t\t\t\t} else {\n\t\t\t\t\tinitializeBlocks.callCount = 1;\n\t\t\t\t}\n\n\t\t\t\tvar limit = 5;\n\t\t\t\tif (initializeBlocks.callCount > limit) {\n\t\t\t\t\td.msg(\"won't fire delayed init: too many calls (\" + limit + \")\");\n\t\t\t\t} else {\n\t\t\t\t\td.msg('fire delayed init #' + initializeBlocks.callCount);\n\t\t\t\t\tsetTimeout(initializeBlocks, 100 * initializeBlocks.callCount);\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tplaceholder = block.doc.getElementById(block.containerId + '_ph');\n\t\t\tif (!placeholder) {\n\t\t\t\td.msg(\"Couldn't find placeholder in container \" + block.containerId);\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tblockLoaded.push(block);\n\t\t\tinitializeBlock(block, placeholder);\n\t\t}\n\t};\n\n\tvar windowReady = function () {\n\t\td.msg('windowReady');\n\t\tinitializeBlocks();\n\t};\n\n\tvar runAsync = function (delay) {\n\t\td.msg('Async blocks');\n\n\t\tif (delay) {\n\t\t\tif (asyncCounter > 5000) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetTimeout(function() {\n\t\t\t\tif (asyncCounter <= 5000) {\n\t\t\t\t\trunAsync(true);\n\t\t\t\t\tinitializeBlocks();\n\n\t\t\t\t\tasyncCounter += 100;\n\t\t\t\t}\n\t\t\t}, 100);\n\t\t} else {\n\t\t\tinitializeBlocks();\n\t\t}\n\t};\n\n\tDOMLoad.registerLoad(function () {\n\t\tsetTimeout(function () {\n\t\t\twindowReady();\n\t\t\trunAsync(true);\n\t\t}, 1);\n\t});\n\n\tvar resetVar = function (v) {\n\t\tvar _rvf = function (V) {\n\t\t\twin[V] = null;\n\t\t\ttry {\n\t\t\t\tdelete win[V];\n\t\t\t} catch (_exc) {\n\t\t\t\t// IE ...\n\t\t\t\twin[V] = undefined;\n\t\t\t}\n\t\t};\n\n\t\t_rvf('toboads_' + v);\n\t\t_rvf('httpool_' + v);\n\t};\n\n\tvar filterValue = function (filter, v) {\n\t\tvar i;\n\t\tif (typeof filter.anull === _U) {\n\t\t\tfilter.anull = false;\n\t\t}\n\t\tif (v === null && filter.anull) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (filter.type === 'set') {\n\t\t\tfor (i = 0; i < filter.values.length; i++) {\n\t\t\t\tif (filter.values[i] === v) {\n\t\t\t\t\treturn v;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn filter.def;\n\t\t}\n\n\t\tif (filter.type === 'md5' && /^[a-f0-9]{32}$/.test(v)) {\n\t\t\treturn v;\n\t\t}\n\n\t\tif (filter.type === 'dim' && /^[0-9]{1,4}x[0-9]{1,4}$/.test(v)) {\n\t\t\treturn v;\n\t\t}\n\n\t\tif (filter.type === 'int' && /^[1-9][0-9]*$/.test(v)) {\n\t\t\treturn parseInt(v, 10);\n\t\t}\n\n\t\tif (filter.type === 'chan' && ((v + '').length === 0 || /^[a-f0-9]{7}$/.test(v))) {\n\t\t\treturn v;\n\t\t}\n\n\t\tif (filter.type === 'zone' && ((v + '').length === 0 || /^[a-f0-9]{9}$/.test(v))) {\n\t\t\treturn v;\n\t\t}\n\n\t\tif (filter.type === 'external' && ((v + '').length === 0 || /^(c|g|a)[a-f0-9]{10}$/.test(v))) {\n\t\t\treturn v;\n\t\t}\n\n\t\tif (filter.type === 'pixel' && ((v + '').length === 0 || /^(u|c|g)[a-f0-9]{10}$/.test(v))) {\n\t\t\treturn v;\n\t\t}\n\n\t\tif (filter.type === 'clr') {\n\t\t\tif ((v + '').length === 0 || /^\\#?[a-fA-F0-9]{3,6}$/.test(v)) {\n\t\t\t\treturn v;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\t\tif (filter.type === 'bool') {\n\t\t\tif (v === true || v === 1 || v === '1' || (v + '').toLowerCase() === 'true' || (v + '').toLowerCase() === 'yes') {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif (v === false || v === 0 || v === '0' || (v + '').toLowerCase() === 'false' || (v + '').toLowerCase() === 'no') {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t};\n\n\tvar readParam = function (n, V, filter) {\n\t\tregparams[regparams.length] = n;\n\n\t\tvar v  = null;\n\t\tvar _t = 'toboads_';\n\t\tvar _h = 'httpool_';\n\t\tvar frec;\n\n\t\tif (typeof win[_h + n] === _U || win[_h + n] === null) {\n\t\t\tif (typeof win[_t + n] === _U || win[_t + n] === null) {\n\t\t\t\tv = V;\n\t\t\t} else {\n\t\t\t\tv = win[_t + n];\n\t\t\t}\n\t\t} else {\n\t\t\tv = win[_h + n];\n\t\t}\n\n\t\tif (typeof filter !== _U && filter !== null) {\n\t\t\tif (typeof filter === 'string') {\n\t\t\t\tfrec = {type: filter};\n\t\t\t} else {\n\t\t\t\tfrec = filter;\n\t\t\t}\n\n\t\t\treturn filterValue(frec, v);\n\t\t} else {\n\t\t\treturn v;\n\t\t}\n\t};\n\n\tvar filterVar = function (v, D, filter) {\n\t\tvar frec;\n\n\t\tif (typeof v === _U) {\n\t\t\tv = D;\n\t\t}\n\n\t\tif (typeof filter !== _U && filter !== null) {\n\t\t\tif (typeof filter === 'string') {\n\t\t\t\tfrec = {type: filter};\n\t\t\t} else {\n\t\t\t\tfrec = filter;\n\t\t\t}\n\n\t\t\treturn filterValue(frec, v);\n\t\t} else {\n\t\t\treturn v;\n\t\t}\n\t};\n\n\tvar docw = function (doc, t) {\n\t\tdoc.write(t);\n\t};\n\n\t/**\n\t * @param {object} tagWin\n\t * @param {object} parameters\n\t * @param {string} insertionAnchorId\n\t */\n\tvar writeAsync = function (tagWin, parameters, insertionAnchorId) {\n\t\tvar tasTags = tagWin.document.getElementsByClassName('tas-ads');\n\t\tvar prefix  = 'tas';\n\n\t\tif (tasTags.length < 1) {\n\t\t\ttasTags = document.getElementsByClassName('tma-ad');\n\n\t\t\tif (tasTags.length < 1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tprefix = 'tma';\n\t\t}\n\n\t\tfor (var i = 0; i < tasTags.length; i++) {\n\t\t\tvar tagElement = tasTags[i];\n\t\t\tvar attributes = Attribute.newInstance(tasTags[i], prefix);\n\t\t\tvar options    = attributes.getTasAttributes();\n\t\t\tvar _mainContainer;\n\n\t\t\tif (attributes.getAttribute('status') !== _LOAD || !parameters.asyncBlock) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Are we shore that we have picked the right block. Lets check it.\n\t\t\tfor (var o = 0; o < options.length; o++) {\n\t\t\t\tvar attribute   = attributes.getAttribute(options[o]);\n\t\t\t\tvar optionParam = options[o].replace('-', '_');\n\n\t\t\t\tif (parameters.hasOwnProperty(optionParam) && attribute !== parameters[optionParam]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tattributes.setAttribute('status', _DONE);\n\n\t\t\t\t_mainContainer    = doc.createElement('div');\n\t\t\t\t_mainContainer.id = insertionAnchorId;\n\t\t\t\ttagElement.appendChild(_mainContainer);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\n\treturn {\n\t\twin:             win,\n\t\tblockMap:        {},\n\t\tcreateContainer: function (win, parameters) {\n\t\t\tvar parameterBuilder, sharedParams, doc = win.document;\n\n\t\t\td.msg('createContainer in window ', win);\n\t\t\td.msg('external: ', parameters.externalId);\n\n\t\t\tif ((!parameters.publisherId || !parameters.blockFormat) && !parameters.adZone && !parameters.externalId && !parameters.pixelId) {\n\t\t\t\t/**\n\t\t\t\t * Validator:\n\t\t\t\t * - need at least publisher id and block format\n\t\t\t\t * - if zone / external / pixel id is set, then is also ok.\n\t\t\t\t */\n\t\t\t\td.msg('need at least publisher id and block format or zone / external / pixel id is set');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar block_idx = topWindow[\"ToboAds\"].GlobalManager.acquireBlockIndex();\n\t\t\tvar c_id      = 'hA_c_' + block_idx + '_' + Random.getUniqueString(8);\n\t\t\tvar fr        = /^([0-9]{1,4})(x)([0-9]{1,4})$/;\n\n\t\t\tif (!fr.test(parameters.blockFormat)) {\n\t\t\t\td.msg('bad block format: ' + parameters.blockFormat);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tparameters.width  = parseInt(parameters.blockFormat.match(fr)[1], 10);\n\t\t\tparameters.height = parseInt(parameters.blockFormat.match(fr)[3], 10);\n\n\t\t\tvar block = {\n\t\t\t\twin:          win,\n\t\t\t\tdoc:          doc,\n\t\t\t\tindex:        block_idx,\n\t\t\t\tstate:        Block.State.WAIT,\n\t\t\t\tcontainerId:  c_id,\n\t\t\t\tcontainer:    null,\n\t\t\t\tparameters:   parameters,\n\t\t\t\turl:          null,\n\t\t\t\tuse_custom:   false,\n\t\t\t\tsharedParams: {}\n\t\t\t};\n\n\t\t\tblocks[blocks.length] = block;\n\n\t\t\tsharedParams       = {\n\t\t\t\tb:   block.index + 1,\n\t\t\t\tp:   block.parameters.publisherId,\n\t\t\t\trq:  topWindow[\"ToboAds\"].RQID,\n\t\t\t\tvt:  parameters.viewerTag,\n\t\t\t\tisf: parameters.isf === false ? parameters.isf : Environment.isFramed(win),\n\n\t\t\t\tchn: parameters.adChannel,\n\t\t\t\tzn:  parameters.adZone,\n\t\t\t\ttm:  parameters.testMode,\n\t\t\t\taf:  parameters.blockFormat,\n\n\t\t\t\tat_tx:    parameters.typeText,\n\t\t\t\tat_sh:    parameters.typeShop,\n\t\t\t\tat_bsh:   parameters.typeBigshop,\n\t\t\t\tat_ri:    parameters.typeRich,\n\t\t\t\tat_vi:    parameters.typeVideo,\n\t\t\t\tat_hperf: parameters.typeHttpPerf,\n\t\t\t\tat_ptx:   parameters.typePerfText,\n\t\t\t\tat_psh:   parameters.typePerfShop,\n\t\t\t\tat_pbsh:  parameters.typePerfBigshop,\n\t\t\t\tat_pri:   parameters.typePerfRich,\n\t\t\t\tat_pvi:   parameters.typePerfVideo,\n\n\t\t\t\tclr_border: parameters.style.borderColor,\n\t\t\t\tclr_bg:     parameters.style.backgroundColor,\n\t\t\t\tclr_title:  parameters.style.titleColor,\n\t\t\t\tclr_link:   parameters.style.linkColor,\n\t\t\t\tclr_text:   parameters.style.textColor,\n\n\t\t\t\tfv: parameters.flashVersion,\n\t\t\t\tnw: parameters.openInNewWindow,\n\t\t\t\tht: parameters.hideTagline,\n\n\t\t\t\tcu:  parameters.clickTrackingUrl,\n\t\t\t\tco:  parameters.cookies,\n\t\t\t\teid: parameters.externalId,\n\n\t\t\t\tvh: parameters.vh,\n\t\t\t\tvw: parameters.vw,\n\n\t\t\t\tpxid: parameters.pixelId,\n\t\t\t\tpxl:  parameters.pixelLabel,\n\t\t\t\tpxv:  parameters.pixelValue,\n\n\t\t\t\tcp:  parameters.cp,\n\t\t\t\tasc: parameters.asyncBlock,\n\t\t\t\tsrf: prepu(Browser.getSmartReferrer(Environment.getTopWindow(win))),\n\t\t\t\trf:  prepu(doc.referrer),\n\t\t\t\tloc: prepu(doc.location.href),\n\t\t\t\tpu:  prepu(parameters.pageUrl)\n\t\t\t};\n\n\t\t\tblock.sharedParams = sharedParams;\n\n\t\t\tparameterBuilder = newParameterBuilder(sharedParams);\n\n\t\t\t/* adl params */\n\t\t\tvar params = parameterBuilder.build({\n\t\t\t\trn:  Random.generateUUID(),\n\t\t\t\tct:  Random.generateUUID(),\n\t\t\t\tc:   block.containerId,\n\t\t\t\tbt:  parameters.blockType,\n\t\t\t\tex:  parameters.excludeParams,\n\t\t\t\tctg: parameters.customCategories,\n\t\t\t\tah:  parameters.autoHide,\n\t\t\t\taat: parameters.altAdTag,\n\t\t\t\tau:  parameters.alternativeUrl\n\t\t\t});\n\n\t\t\tparams.srf = prepu(Browser.getSmartReferrer(Environment.getTopWindow(win)));\n\t\t\tparams.rf  = prepu(doc.referrer);\n\n\t\t\tif (params.rf === params.srf) {\n\t\t\t\tparams.rf = 'eq-srf';\n\t\t\t}\n\n\t\t\tparams.loc = prepu(doc.location.href);\n\n\t\t\tif (params.loc === params.srf) {\n\t\t\t\tparams.loc = 'eq-srf';\n\t\t\t}\n\n\t\t\tvar ph_style = 'visibility:hidden;border:none;margin:0px;padding:0px;width:100%;height:100%;background:transparent;';\n\n\t\t\ttopWindow[\"ToboAds\"].WindowManager.blockMap[c_id] = block;\n\t\t\td.msg('creating placeholder for block', block_idx, block);\n\n\t\t\t// Will load async frame\n\t\t\tif (wasWriteTamperedWith(doc) || parameters.asyncBlock) {\n\t\t\t\td.msg('document.write was modified, using DOM fallback');\n\n\t\t\t\tvar insertionAnchorId  = block.containerId + '_ph__';\n\t\t\t\tvar insertionContainer = doc.createDocumentFragment();\n\t\t\t\tvar _iDiv, _iSpan, _iFrame, _iScript;\n\n\t\t\t\t// We still need to hook up an anchor near the currently executing script tag\n\t\t\t\td.msg('Writing anchor (or not)');\n\n\t\t\t\t_iScript      = doc.createElement('script');\n\t\t\t\t_iScript.src  = buildURL(baseUrl + '/js/adl-a4605d68.js', params);\n\t\t\t\t_iScript.type = 'text/javascript';\n\n\t\t\t\t// Async anchor should be added with appendChild not docWrite\n\t\t\t\tif (parameters.asyncBlock) {\n\t\t\t\t\t_iScript.async = true;\n\t\t\t\t\twriteAsync(win, parameters, insertionAnchorId);\n\t\t\t\t} else {\n\t\t\t\t\tdocw(doc, '<div id=\"' + insertionAnchorId + '\"></div>');\n\t\t\t\t}\n\n\t\t\t\t_iSpan               = doc.createElement('span');\n\t\t\t\t_iSpan.style.cssText = 'margin:0px;padding:0px;border-width:0px;display:inline-block;position:relative;';\n\t\t\t\t_iSpan.id            = c_id;\n\n\t\t\t\t_iDiv               = doc.createElement('div');\n\t\t\t\t_iDiv.style.cssText = 'display:inline-block;zoom:1;margin:0 auto;padding:0px;border-width:0px;position:relative;overflow:hidden;width:' + parameters.width + 'px;height:' + parameters.height + 'px';\n\n\t\t\t\t_iFrame                 = doc.createElement('iframe');\n\t\t\t\t_iFrame.scrolling       = \"no\";\n\t\t\t\t_iFrame.width           = '100%';\n\t\t\t\t_iFrame.height          = '100%';\n\t\t\t\t_iFrame.id              = block.containerId + '_ph';\n\t\t\t\t_iFrame.frameBorder     = 0;\n\t\t\t\t_iFrame.marginWidth     = 0;\n\t\t\t\t_iFrame.marginHeight    = 0;\n\t\t\t\t_iFrame.style.cssText   = ph_style;\n\t\t\t\t_iFrame.allowFullscreen = 'true';\n\n\t\t\t\t_iDiv.appendChild(_iFrame);\n\t\t\t\t_iSpan.appendChild(_iDiv);\n\t\t\t\tinsertionContainer.appendChild(_iSpan);\n\t\t\t\tinsertionContainer.appendChild(_iScript);\n\n\t\t\t\t// The anchor above must be included in the dom before we can continue\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tvar insertionAnchor = doc.getElementById(insertionAnchorId);\n\t\t\t\t\tvar anchorContainer;\n\n\t\t\t\t\tif (!insertionAnchor) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\td.msg('Populating anchor');\n\t\t\t\t\tanchorContainer = insertionAnchor.parentNode;\n\t\t\t\t\tanchorContainer.insertBefore(insertionContainer, insertionAnchor);\n\t\t\t\t\tanchorContainer.removeChild(insertionAnchor);\n\n\t\t\t\t\td.msg('Anchor removed');\n\n\t\t\t\t\tsetTimeout(runAsync, 0);\n\t\t\t\t}, 50);\n\t\t\t} else {\n\t\t\t\tdocw(doc, '<span style=\"margin:0;padding:0;border-width:0;display:inline-block;position:relative;\" id=\"' + c_id + '\">');\n\t\t\t\tdocw(doc, '<div style=\"display:inline-block;zoom:1;margin:0 auto;padding:0;border-width:0;position:relative;overflow:hidden;width:' + parameters.width + 'px;height:' + parameters.height + 'px\">');\n\n\t\t\t\t// use iframe as a placeholder\n\t\t\t\tdocw(doc, '<iframe id=\"' + block.containerId + '_ph\" allowfullscreen=\"true\" width=\"100%\" height=\"100%\" scrolling=\"no\" frameborder=\"no\" marginwidth=\"0\" marginheight=\"0\" style=\"' + ph_style + '\"></iframe>');\n\t\t\t\tdocw(doc, '</div>');\n\n\t\t\t\tvar u = buildURL(baseUrl + '/js/adl-a4605d68.js', params);\n\t\t\t\td.msg('script.src=' + u);\n\t\t\t\tdocw(doc, '<script type=\"text/javascript\" src=\"' + u + '\"></script>');\n\t\t\t\tdocw(doc, '</span>');\n\t\t\t\td.msg('wrote script tag.');\n\t\t\t}\n\n\t\t\tvar i, l = regparams.length;\n\n\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\tresetVar(regparams[i]);\n\t\t\t}\n\n\t\t\treturn block;\n\t\t},\n\t\tbindContainer: function (cid, engine, params, frameless) {\n\t\t\tvar b = topWindow[\"ToboAds\"].WindowManager.blockMap[cid];\n\t\t\tvar container;\n\n\t\t\td.msg('bindContainer', 'cid:', cid, ', engine:', engine, ', params:', params, ', block:', b);\n\n\t\t\tif (typeof b !== _U) {\n\t\t\t\tif (FriendlyIframe.isFriendlyIframe(b.win)) {\n\t\t\t\t\tb.win = Environment.getTopWindow(b.win);\n\t\t\t\t}\n\n\t\t\t\tif (frameless) {\n\t\t\t\t\tframelessContainer(cid, false, b.doc);\n\t\t\t\t}\n\n\t\t\t\tif (b.state === Block.State.WAIT) {\n\t\t\t\t\tcontainer = b.doc.getElementById(cid);\n\n\t\t\t\t\tif (container) {\n\t\t\t\t\t\tb.state         = Block.State.INIT;\n\t\t\t\t\t\tb.engine        = engine;\n\t\t\t\t\t\tb.engineParams  = params;\n\t\t\t\t\t\tb.container     = container;\n\t\t\t\t\t\tcontainer.block = b;\n\n\t\t\t\t\t\treturn b;\n\t\t\t\t\t} else {\n\t\t\t\t\t\td.msg(\"Could not locate container!\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\td.msg(\"Unexpected block state: \", b.state);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\td.msg(\"Could not locate block!\");\n\t\t\t}\n\t\t},\n\t\tcollapseContainer: function (cid, hard, doc) {\n\t\t\tcollapseContainer(cid, hard, doc);\n\t\t},\n\t\treadParam: function (n, V, filter) {\n\t\t\treturn readParam(n, V, filter);\n\t\t},\n\t\tfilterVar: function (v, D, filter) {\n\t\t\treturn filterVar(v, D, filter);\n\t\t}\n\t};\n};\n\n\n//# sourceURL=webpack:///../javascript/src/WindowManager.js?");

/***/ }),

/***/ "../javascript/src/ad_init.js":
/*!************************************!*\
  !*** ../javascript/src/ad_init.js ***!
  \************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("(function(win) {\n\t\"use strict\";\n\n\tvar Environment       = __webpack_require__(/*! Environment */ \"../javascript/src/Environment.js\");\n\tvar Random            = __webpack_require__(/*! Random */ \"../javascript/src/Random.js\");\n\tvar Viewport          = __webpack_require__(/*! Viewport */ \"../javascript/src/Viewport.js\");\n\tvar FriendlyIframe    = __webpack_require__(/*! FriendlyIframe */ \"../javascript/src/FriendlyIframe.js\");\n\tvar FlashVersion      = __webpack_require__(/*! FlashVersion */ \"../javascript/src/FlashVersion.js\");\n\tvar Attribute         = __webpack_require__(/*! Attribute */ \"../javascript/src/Attribute.js\");\n\tvar APJSON            = __webpack_require__(/*! vendor/JSONStringify */ \"../javascript/src/vendor/JSONStringify.js\");\n\tvar TemplateProcessor = __webpack_require__(/*! TemplateProcessor */ \"../javascript/src/TemplateProcessor.js\");\n\n\tvar _U       = 'undefined';\n\tvar _DONE    = 'DONE';\n\tvar _LOAD    = 'LOAD';\n\tvar _PENDING = 'PENDING';\n\n\tvar WindowManager;\n\t\n\tvar Debug, d;\n\n\t// window namespace\n\tif (typeof win[\"ToboAds\"] === _U) {\n\t\twin[\"ToboAds\"] = {};\n\t}\n\n\tDebug = __webpack_require__(/*! Debug */ \"../javascript/src/Debug.js\");\n\tDebug.init('ad_init');\n\td = Debug.open('ad_loader');\n\n\tvar topWindow = Environment.getTopWindow(win);\n\n\tif (!topWindow) {\n\t\td.msg(\"Couldn't get topWindow\");\n\t\treturn;\n\t}\n\n\twin[\"ToboAds\"].topWindow = topWindow;\n\td.msg('Acquired top window: ', topWindow);\n\td.msg('framed=' + Environment.isFramed(win));\n\n\t// global namespace\n\tif (typeof topWindow[\"ToboAds\"] === _U) {\n\t\ttopWindow[\"ToboAds\"] = {RQID: ''};\n\t\td.msg(\"Created global namespace topWindow.\" + \"ToboAds\");\n\t}\n\telse {\n\t\td.msg(\"Global namespace topWindow.\" + \"ToboAds\" + \" apparently exists:\", topWindow[\"ToboAds\"]);\n\t}\n\n\tvar isHomeUrl = function(url) {\n\t\td.msg('isHomeUrl? ' + url);\n\t\tvar matches = url.match(/^(https?)(:\\/\\/)(.*?)(\\/)(.*)$/);\n\t\tif (matches === null || matches.length < 4) {\n\t\t\treturn false;\n\t\t}\n\t\tvar parts = matches[3].split('.');\n\t\tif (parts.length < 2) {\n\t\t\treturn false;\n\t\t}\n\t\tvar domain = parts[parts.length - 2];\n\t\tif ((domain === \"toboads\" || domain === \"httpool\")) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn  false && false;\n\t};\n\n\tvar dropAdPlatformTag = function (type) {\n\t\tif (win.hasOwnProperty(type)) {\n\t\t\ttry {\n\t\t\t\tdelete win[type];\n\t\t\t} catch (e) {\n\t\t\t\twin[type] = undefined;\n\t\t\t}\n\t\t}\n\t};\n\n\tvar asyncAdPlatformTags = function () {\n\t\t// Check for async tags first and load them.\n\t\tvar tasAttr = {};\n\t\tvar prefix  = 'tas';\n\t\tvar tasTags = document.getElementsByClassName('tas-ads');\n\n\t\tif (tasTags.length < 1) {\n\t\t\ttasTags = document.getElementsByClassName('tma-ad');\n\n\t\t\tif (tasTags.length < 1) {\n\t\t\t\treturn tasAttr;\n\t\t\t}\n\n\t\t\tprefix = 'tma';\n\t\t}\n\n\t\tfor (var i = 0; i < tasTags.length; i++) {\n\t\t\tvar attributes = Attribute.newInstance(tasTags[i], prefix);\n\t\t\tvar options    = attributes.getTasAttributes();\n\t\t\tvar status     = attributes.getAttribute('status');\n\n\t\t\tif (status === _DONE || status === _LOAD || (prefix === 'tma' && status !== _PENDING)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tattributes.setAttribute('status', _LOAD);\n\n\t\t\tfor (var o = 0; o < options.length; o++) {\n\t\t\t\tvar attribute = attributes.replaceAttr(options[o]);\n\t\t\t\tvar value     = attributes.getAttribute(options[o]);\n\n\t\t\t\tif (!tasAttr.hasOwnProperty(attribute) && value) {\n\t\t\t\t\ttasAttr[attribute] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttasAttr.asyncBlock = 1;\n\t\t\ttasAttr.asyncEl    = tasTags[i];\n\n\t\t\treturn tasAttr;\n\t\t}\n\n\t\treturn tasAttr;\n\t};\n\n\tvar BASE_URL         = 'https://tas-rs.toboads.com';\n\tvar TRACK_VIEWER_TAG = 'b3b9bb7b-4499-4fca-bb37-2db89aad1e11';\n\n\tvar parseZone = function (zoneId) {\n\t\tif (zoneId && zoneId.length > 32) {\n\t\t\treturn zoneId.substr(-9);\n\t\t}\n\n\t\treturn zoneId;\n\t};\n\n\tif (typeof win.__vtcpcb !== _U && win.__vtcpcb instanceof Function && isHomeUrl(win.document.referrer)) {\n\t\tvar r = win.document.referrer;\n\t\tvar sp = r.search('[a-z]/');\n\n\t\tif (sp < 10) {\n\t\t\tsp = r.length - 1;\n\t\t}\n\n\t\twin.__vtcpcb(TRACK_VIEWER_TAG, r.substr(0, sp + 1));\n\t\treturn;\n\t}\n\n\tif (!topWindow[\"ToboAds\"].hasOwnProperty('GlobalManager')) {\n\t\ttopWindow[\"ToboAds\"].GlobalManager = __webpack_require__(/*! GlobalManager */ \"../javascript/src/GlobalManager.js\")();\n\t}\n\n\ttopWindow[\"ToboAds\"].Random          = Random;\n\ttopWindow[\"ToboAds\"].PubSubHub       = __webpack_require__(/*! PubSubHub */ \"../javascript/src/PubSubHub.js\")();\n\ttopWindow[\"ToboAds\"].CustomAdTag     = __webpack_require__(/*! CustomAdTag */ \"../javascript/src/CustomAdTag.js\")();\n\ttopWindow[\"ToboAds\"].DOMLoad         = __webpack_require__(/*! DOMLoad */ \"../javascript/src/DOMLoad.js\")(win);\n\ttopWindow[\"ToboAds\"].MessageReceiver = __webpack_require__(/*! MessageReceiver */ \"../javascript/src/MessageReceiver.js\")(\n\t\ttopWindow[\"ToboAds\"].DOMLoad,\n\t\tFriendlyIframe.getBlockWindow(win)\n\t);\n\t\n\tif (!topWindow[\"ToboAds\"].hasOwnProperty('WindowManager')) {\n\t\ttopWindow[\"ToboAds\"].WindowManager = __webpack_require__(/*! WindowManager */ \"../javascript/src/WindowManager.js\")(win, BASE_URL);\n\t}\n\n\tWindowManager = topWindow[\"ToboAds\"].WindowManager;\n\ttopWindow[\"ToboAds\"].VideoInBanner = __webpack_require__(/*! VideoInBanner */ \"../javascript/src/VideoInBanner.js\")(win, topWindow[\"ToboAds\"].MessageReceiver);\n\ttopWindow[\"ToboAds\"].VideoPushdown = __webpack_require__(/*! VideoPushdown */ \"../javascript/src/VideoPushdown.js\")(\n\t\twin,\n\t\ttopWindow[\"ToboAds\"].MessageReceiver,\n\t\ttopWindow[\"ToboAds\"].DOMLoad\n\t);\n\n\ttopWindow[\"ToboAds\"]._bindc = function(c, en, p, fl) {\n\t\ttopWindow[\"ToboAds\"].WindowManager.bindContainer(c, en, p, fl);\n\t};\n\n\twin[\"ToboAds\"]._bindc = function(c, en, p, fl) {\n\t\ttopWindow[\"ToboAds\"].WindowManager.bindContainer(c, en, p, fl);\n\t};\n\n\ttopWindow[\"ToboAds\"]._collc = function(c, en, p, fl) {\n\t\ttopWindow[\"ToboAds\"].WindowManager.bindContainer(c, en, p, fl);\n\t};\n\n\twin[\"ToboAds\"]._collc = function(c, soft, doc) {\n\t\tdoc = doc || FriendlyIframe.getBlockWindow(win).document;\n\n\t\ttopWindow[\"ToboAds\"].WindowManager.collapseContainer(c, soft, doc);\n\t};\n\n\twin[\"ToboAds\"]._bindp = function () {\n\t\td.msg('Adding pixel');\n\t};\n\n\tif (typeof topWindow[\"ToboAds\"].RQID === _U || topWindow[\"ToboAds\"].RQID === '') {\n\t\td.msg(\"topWindow.\" + \"ToboAds\" + \".RQID is empty, generating\");\n\t\ttopWindow[\"ToboAds\"].RQID = Random.generateUUID();\n\t}\n\td.msg(\"topWindow.\" + \"ToboAds\" + \".RQID:\", topWindow[\"ToboAds\"].RQID);\n\n\t// Populate necessary fields for engage and video inarticle ads.\n\tif (FriendlyIframe.isFriendlyIframe(win)) {\n\t\twin[\"ToboAds\"].topWindow = topWindow;\n\t\twin[\"ToboAds\"].DOMLoad   = topWindow[\"ToboAds\"].DOMLoad;\n\t}\n\n\tif (topWindow[\"ToboAds\"].WindowManager.readParam('publisher_id', '', 'md5')) {\n\t\t// OLD invocation code\n\t\tvar parameters = {\n\t\t\tpublisherId:      WindowManager.readParam('publisher_id', '', 'md5'),\n\t\t\tviewerTag:        TRACK_VIEWER_TAG,\n\t\t\tblockFormat:      WindowManager.readParam('ad_format', '', 'dim'),\n\t\t\tblockType:        WindowManager.readParam('block_type', 1, 'int'),\n\t\t\ttypeText:         WindowManager.readParam('ad_type_text', true, 'bool'),\n\t\t\ttypeShop:         WindowManager.readParam('ad_type_shop', true, 'bool'),\n\t\t\ttypeBigshop:      WindowManager.readParam('ad_type_bigshop', true, 'bool'),\n\t\t\ttypeRich:         WindowManager.readParam('ad_type_rich', true, 'bool'),\n\t\t\ttypeVideo:        WindowManager.readParam('ad_type_video', true, 'bool'),\n\t\t\ttypeHttpPerf:     WindowManager.readParam('ad_type_http_perf', '', {\n\t\t\t\ttype:   'set',\n\t\t\t\tvalues: ['local', 'global', 'false', ''],\n\t\t\t\tdef:    ''\n\t\t\t}),\n\t\t\ttypePerfText:     WindowManager.readParam('ad_type_perf_text', true, 'bool'),\n\t\t\ttypePerfShop:     WindowManager.readParam('ad_type_perf_shop', true, 'bool'),\n\t\t\ttypePerfBigshop:  WindowManager.readParam('ad_type_perf_bigshop', true, 'bool'),\n\t\t\ttypePerfRich:     WindowManager.readParam('ad_type_perf_rich', true, 'bool'),\n\t\t\ttypePerfVideo:    WindowManager.readParam('ad_type_perf_video', true, 'bool'),\n\t\t\tstyle:            {\n\t\t\t\t// colors taken from config/brand/generic.yml, should have the same values\n\t\t\t\tborderColor:     WindowManager.readParam('color_border', '#FFFFFF', 'clr'),\n\t\t\t\tbackgroundColor: WindowManager.readParam('color_bg', '#FFFFFF', 'clr'),\n\t\t\t\ttitleColor:      WindowManager.readParam('color_title', '#0000FF', 'clr'),\n\t\t\t\tlinkColor:       WindowManager.readParam('color_link', '#34A705', 'clr'),\n\t\t\t\ttextColor:       WindowManager.readParam('color_text', '#000000', 'clr')\n\t\t\t},\n\t\t\talternativeUrl:   WindowManager.readParam('alternative_url', ''),\n\t\t\tpageUrl:          WindowManager.readParam('page_url', ''),\n\t\t\tcustomCategories: WindowManager.readParam('categories', ''),\n\t\t\ttestMode:         WindowManager.readParam('test_mode', false, 'bool'),\n\t\t\tadChannel:        WindowManager.readParam('channel', '', 'chan'),\n\t\t\taltAdTag:         WindowManager.readParam('alternative_ad_tag', '', 'chan'),\n\t\t\tadZone:           '',\n\t\t\texcludeParams:    WindowManager.readParam('exclude_params', ''),\n\t\t\topenInNewWindow:  WindowManager.readParam('open_new_window', false, 'bool'),\n\t\t\tautoHide:         WindowManager.readParam('autohide', false, 'bool'),\n\t\t\thideTagline:      WindowManager.readParam('hide_tagline', false, 'bool'),\n\t\t\tclickTrackingUrl: WindowManager.readParam('click_tracking_url', ''),\n\t\t\tcookies:          WindowManager.readParam('cookies', '1'),\n\t\t\tflashVersion:     FlashVersion.major,\n\t\t\tvh:               Viewport.getHeight(win),\n\t\t\tvw:               Viewport.getWidth(win)\n\t\t};\n\n\t\t// special case: bigshop defaults to shop if value isn't set\n\t\tparameters.typeBigshop = WindowManager.readParam('ad_type_bigshop', parameters.typeShop, 'bool');\n\t\tparameters.typePerfBigshop = WindowManager.readParam('ad_type_perf_bigshop', parameters.typePerfShop, 'bool');\n\n\t\tWindowManager.createContainer(win, parameters);\n\t} else {\n\t\t/**\n\t\t * if zone or external id is set, publisher is using the new invocation code:\n\t\t * include javascript + run method\n\t\t */\n\t\twin.AdPlatform = {\n\t\t\tshowAds: function(p) {\n\t\t\t\tp.zone = parseZone(p.zone);\n\n\t\t\t\tvar parameters = {\n\t\t\t\t\tadZone:           WindowManager.filterVar(p.zone, '', 'zone'),\n\t\t\t\t\texternalId:       WindowManager.filterVar(p.external_id, '', 'external'),\n\t\t\t\t\tpixelId:          WindowManager.filterVar(p.pixel_id, '', 'pixel'),\n\t\t\t\t\tcp:               WindowManager.filterVar(APJSON.stringify(p.cp), ''),\n\t\t\t\t\tsfi:              false,\n\t\t\t\t\tasyncBlock:       p.hasOwnProperty('asyncBlock') ? p.asyncBlock : 0,\n\t\t\t\t\tpublisherId:      '',\n\t\t\t\t\tviewerTag:        TRACK_VIEWER_TAG,\n\t\t\t\t\tblockFormat:      WindowManager.filterVar(p.format, '', 'dim'),\n\t\t\t\t\tblockType:        '',\n\t\t\t\t\ttypeText:         '',\n\t\t\t\t\ttypeShop:         '',\n\t\t\t\t\ttypeBigshop:      '',\n\t\t\t\t\ttypeRich:         '',\n\t\t\t\t\ttypeVideo:        '',\n\t\t\t\t\ttypeHttpPerf:     '',\n\t\t\t\t\ttypePerfText:     '',\n\t\t\t\t\ttypePerfShop:     '',\n\t\t\t\t\ttypePerfBigshop:  '',\n\t\t\t\t\ttypePerfRich:     '',\n\t\t\t\t\ttypePerfVideo:    '',\n\t\t\t\t\tstyle:            {\n\t\t\t\t\t\t// colors taken from config/brand/generic.yml, should have the same values\n\t\t\t\t\t\tborderColor:     '',\n\t\t\t\t\t\tbackgroundColor: '',\n\t\t\t\t\t\ttitleColor:      '',\n\t\t\t\t\t\tlinkColor:       '',\n\t\t\t\t\t\ttextColor:       ''\n\t\t\t\t\t},\n\t\t\t\t\talternativeUrl:   '',\n\t\t\t\t\tpageUrl:          '',\n\t\t\t\t\tcustomCategories: '',\n\t\t\t\t\ttestMode:         WindowManager.filterVar(p.test, false, 'bool'),\n\t\t\t\t\tadChannel:        '',\n\t\t\t\t\taltAdTag:         '',\n\t\t\t\t\texcludeParams:    '',\n\t\t\t\t\topenInNewWindow:  WindowManager.filterVar(p.open_new_window, 0),\n\t\t\t\t\tautoHide:         0,\n\t\t\t\t\thideTagline:      WindowManager.filterVar(p.hide_tagline, ''),\n\t\t\t\t\tclickTrackingUrl: WindowManager.filterVar(p.click_tracking_url, ''),\n\t\t\t\t\tcookies:          WindowManager.filterVar(p.cookies, '1'),\n\t\t\t\t\tflashVersion:     FlashVersion.major,\n\t\t\t\t\tvh:               Viewport.getHeight(win),\n\t\t\t\t\tvw:               Viewport.getWidth(win),\n\t\t\t\t\tpixelLabel:       WindowManager.filterVar(p.pixel_label, ''),\n\t\t\t\t\tpixelValue:       WindowManager.filterVar(p.pixel_value, '')\n\t\t\t\t};\n\n\t\t\t\tvar templateProcessor = new TemplateProcessor(win, p, parameters);\n\t\t\t\ttemplateProcessor.createContainer(WindowManager);\n\t\t\t}\n\t\t};\n\n\t\tvar asyncTag = asyncAdPlatformTags();\n\n\t\tif (asyncTag.zone || asyncTag.external_id) {\n\t\t\twin.AdPlatform.showAds(asyncTag);\n\t\t\treturn;\n\t\t}\n\n\t\t// new ad tag now works with IE under doc..write..\n\t\tif (win.AdPlatformZone) {\n\t\t\t// change id to zone\n\t\t\tif (win.AdPlatformZone.id) {\n\t\t\t\twin.AdPlatformZone.zone = win.AdPlatformZone.id;\n\t\t\t\tdelete win.AdPlatformZone.id;\n\t\t\t}\n\n\t\t\twin.AdPlatform.showAds(win.AdPlatformZone);\n\t\t\tdropAdPlatformTag('AdPlatformZone');\n\t\t} else if (win.AdPlatformExternal) {\n\t\t\t// external logic\n\t\t\tif (win.AdPlatformExternal.id) {\n\t\t\t\twin.AdPlatformExternal.external_id = win.AdPlatformExternal.id;\n\t\t\t\tdelete win.AdPlatformExternal.id;\n\t\t\t}\n\n\t\t\twin.AdPlatform.showAds(win.AdPlatformExternal);\n\t\t\tdropAdPlatformTag('AdPlatformExternal');\n\t\t} else if (win.AdPlatformPixel) {\n\t\t\t// pixel logic\n\t\t\tif (win.AdPlatformPixel.id) {\n\t\t\t\twin.AdPlatformPixel.pixel_id = win.AdPlatformPixel.id;\n\t\t\t\tdelete win.AdPlatformPixel.id;\n\t\t\t\twin.AdPlatformPixel.pixel_label = win.AdPlatformPixel.label;\n\t\t\t\tdelete win.AdPlatformPixel.label;\n\t\t\t\twin.AdPlatformPixel.pixel_value = win.AdPlatformPixel.value;\n\t\t\t\tdelete win.AdPlatformPixel.value;\n\t\t\t\twin.AdPlatformPixel.format = '0x0';\n\t\t\t}\n\n\t\t\twin.AdPlatform.showAds(win.AdPlatformPixel);\n\t\t\tdropAdPlatformTag('AdPlatformPixel');\n\t\t}\n\t}\n}(window)); \n\n\n//# sourceURL=webpack:///../javascript/src/ad_init.js?");

/***/ }),

/***/ "../javascript/src/vendor/JSONStringify.js":
/*!*************************************************!*\
  !*** ../javascript/src/vendor/JSONStringify.js ***!
  \*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {

eval("\nvar JSON = {};\nJSONStringify = JSON;\n\nmodule.exports = JSONStringify;\n\n(function () {\n\n    function f(n) {\n        // Format integers to have at least two digits.\n        return n < 10 ? '0' + n : n;\n    }\n\n    if (typeof Date.prototype.toJSON !== 'function') {\n\n        Date.prototype.toJSON = function (key) {\n\n            return this.getUTCFullYear()   + '-' +\n                 f(this.getUTCMonth() + 1) + '-' +\n                 f(this.getUTCDate())      + 'T' +\n                 f(this.getUTCHours())     + ':' +\n                 f(this.getUTCMinutes())   + ':' +\n                 f(this.getUTCSeconds())   + 'Z';\n        };\n\n        String.prototype.toJSON =\n        Number.prototype.toJSON =\n        Boolean.prototype.toJSON = function (key) {\n            return this.valueOf();\n        };\n    }\n\n    var escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n        gap,\n        indent,\n        meta = {    // table of character substitutions\n            '\\b': '\\\\b',\n            '\\t': '\\\\t',\n            '\\n': '\\\\n',\n            '\\f': '\\\\f',\n            '\\r': '\\\\r',\n            '\"' : '\\\\\"',\n            '\\\\': '\\\\\\\\'\n        },\n        rep;\n\n\n    function quote(string) {\n\n        escapable.lastIndex = 0;\n        return escapable.test(string) ?\n            '\"' + string.replace(escapable, function (a) {\n                var c = meta[a];\n                return typeof c === 'string' ? c :\n                    '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n            }) + '\"' :\n            '\"' + string + '\"';\n    }\n\n\n    function str(key, holder) {\n\n        var i,          // The loop counter.\n            k,          // The member key.\n            v,          // The member value.\n            length,\n            mind = gap,\n            partial,\n            value = holder[key];\n\n        if (value && typeof value === 'object' &&\n                typeof value.toJSON === 'function') {\n            value = value.toJSON(key);\n        }\n\n        if (typeof rep === 'function') {\n            value = rep.call(holder, key, value);\n        }\n\n        switch (typeof value) {\n        case 'string':\n            return quote(value);\n\n        case 'number':\n\n            return isFinite(value) ? String(value) : 'null';\n\n        case 'boolean':\n        case 'null':\n\n            return String(value);\n\n        case 'object':\n\n            if (!value) {\n                return 'null';\n            }\n\n            gap += indent;\n            partial = [];\n\n            if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n                length = value.length;\n                for (i = 0; i < length; i += 1) {\n                    partial[i] = str(i, value) || 'null';\n                }\n\n                v = partial.length === 0 ? '[]' :\n                    gap ? '[\\n' + gap +\n                            partial.join(',\\n' + gap) + '\\n' +\n                                mind + ']' :\n                          '[' + partial.join(',') + ']';\n                gap = mind;\n                return v;\n            }\n\n            if (rep && typeof rep === 'object') {\n                length = rep.length;\n                for (i = 0; i < length; i += 1) {\n                    k = rep[i];\n                    if (typeof k === 'string') {\n                        v = str(k, value);\n                        if (v) {\n                            partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                        }\n                    }\n                }\n            } else {\n\n                for (k in value) {\n                    if (value.hasOwnProperty(k)) {\n                        v = str(k, value);\n                        if (v) {\n                            partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                        }\n                    }\n                }\n            }\n\n            v = partial.length === 0 ? '{}' :\n                gap ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' +\n                        mind + '}' : '{' + partial.join(',') + '}';\n            gap = mind;\n            return v;\n        }\n    }\n\n    if (typeof JSON.stringify !== 'function') {\n        JSON.stringify = function (value, replacer, space) {\n\n            var i;\n            gap = '';\n            indent = '';\n\n            if (typeof space === 'number') {\n                for (i = 0; i < space; i += 1) {\n                    indent += ' ';\n                }\n\n            } else if (typeof space === 'string') {\n                indent = space;\n            }\n\n            rep = replacer;\n            if (replacer && typeof replacer !== 'function' &&\n                    (typeof replacer !== 'object' ||\n                     typeof replacer.length !== 'number')) {\n                throw new Error('JSON.stringify');\n            }\n\n            return str('', {'': value});\n        };\n    }\n}());\n\n\n//# sourceURL=webpack:///../javascript/src/vendor/JSONStringify.js?");

/***/ })

/******/ });