From de929406fa4646cc9b669d468a6063d74f2d7c2b Mon Sep 17 00:00:00 2001 From: Matt Kendall Date: Mon, 7 Dec 2015 17:49:42 -0500 Subject: [PATCH] Remove casale.js per #128 --- dist/prebid.js | 739 ++++++++++++++++++++++++++++------------- dist/prebid.min.js | 7 +- src/adapters/casale.js | 133 -------- 3 files changed, 510 insertions(+), 369 deletions(-) delete mode 100644 src/adapters/casale.js diff --git a/dist/prebid.js b/dist/prebid.js index a8a569b2e36..0e93b3ff2db 100644 --- a/dist/prebid.js +++ b/dist/prebid.js @@ -1,5 +1,5 @@ /* Prebid.js v0.4.1 -Updated : 2015-11-23 */ +Updated : 2015-12-07 */ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { + this.timeoutDelay = timeoutDelay; + } + + this.siteID = siteID; + this.impressions = []; + this._parseFnName = undefined; + if (top === self) { + this.sitePage = location.href; + this.topframe = 1; + } else { + this.sitePage = document.referrer; + this.topframe = 0; + } + if (typeof parseFn !== 'undefined') { + if (typeof parseFn === 'function') { + this._parseFnName = "cygnus_index_args.parseFn"; + } else { + throw "Invalid jsonp target function"; + } + } + if (typeof _IndexRequestData.requestCounter === 'undefined') { + _IndexRequestData.requestCounter = Math.floor(Math.random() * 256); + } else { + _IndexRequestData.requestCounter = (_IndexRequestData.requestCounter + 1) % 256; + } + this.requestID = String((new Date().getTime() % 2592000) * 256 + _IndexRequestData.requestCounter + 256); + this.initialized = true; + } + OpenRTBRequest.prototype.serialize = function() { + var json = '{"id":' + this.requestID + ',"site":{"page":"' + quote(this.sitePage) + '"'; + if (typeof document.referrer === 'string') { + json += ',"ref":"' + quote(document.referrer) + '"'; + } + json += '},"imp":['; + for (var i = 0; i < this.impressions.length; i++) { + var impObj = this.impressions[i]; + var ext = []; + json += '{"id":"' + impObj.id + '", "banner":{"w":' + impObj.w + ',"h":' + impObj.h + ',"topframe":' + String(this.topframe) + "}"; + if (typeof impObj.bidfloor === 'number') { + json += ',"bidfloor":' + impObj.bidfloor; + if (typeof impObj.bidfloorcur === 'string') { + json += ',"bidfloorcur":"' + quote(impObj.bidfloorcur) + '"'; + } + } + if (typeof impObj.slotID === 'string' && (!impObj.slotID.match(/^\s*$/))) { + ext.push('"sid":"' + quote(impObj.slotID) + '"'); + } + if (typeof impObj.siteID === 'number') { + ext.push('"siteID":' + impObj.siteID); + } + if (ext.length > 0) { + json += ',"ext": {' + ext.join() + '}'; + } + if (i + 1 == this.impressions.length) { + json += '}'; + } else { + json += '},'; + } + } + json += "]}"; + return json; + }; + OpenRTBRequest.prototype.setPageOverride = function(sitePageOverride) { + if (typeof sitePageOverride === 'string' && (!sitePageOverride.match(/^\s*$/))) { + this.sitePage = sitePageOverride; + return true; + } else { + return false; + } + }; + OpenRTBRequest.prototype.addImpression = function(width, height, bidFloor, bidFloorCurrency, slotID, siteID) { + var impObj = { + 'id': String(this.impressions.length + 1) + }; + if (typeof width !== 'number' || width <= 1) { + return null; + } + if (typeof height !== 'number' || height <= 1) { + return null; + } + if ((typeof slotID === 'string' || typeof slotID === 'number') && String(slotID).length <= 50) { + impObj.slotID = String(slotID); + } + impObj.w = width; + impObj.h = height; + if (bidFloor !== undefined && typeof bidFloor !== 'number') { + return null; + } + if (typeof bidFloor === 'number') { + if (bidFloor < 0) { + return null; + } + impObj.bidfloor = bidFloor; + if (bidFloorCurrency !== undefined && typeof bidFloorCurrency !== 'string') { + return null; + } + impObj.bidfloorcur = bidFloorCurrency; + } + if (typeof siteID !== 'undefined') { + if (typeof siteID === 'number' && siteID % 1 === 0 && siteID >= 0) { + impObj.siteID = siteID; + } else { + return null; + } + } + this.impressions.push(impObj); + return impObj.id; + }; + + OpenRTBRequest.prototype.buildRequest = function() { + if (this.impressions.length === 0 || this.initialized !== true) { + return; + } + var jsonURI = encodeURIComponent(this.serialize()); + var scriptSrc = window.location.protocol === 'https:' ? 'https://as-sec.casalemedia.com' : 'http://as.casalemedia.com'; + scriptSrc += '/headertag?v=9&x3=1&fn=cygnus_index_parse_res&s=' + this.siteID + '&r=' + jsonURI; + if (typeof this.timeoutDelay === "number" && this.timeoutDelay % 1 === 0 && this.timeoutDelay >= 0) { + scriptSrc += '&t=' + this.timeoutDelay; + } + return scriptSrc; + }; + try { + if (typeof cygnus_index_args === 'undefined' || typeof cygnus_index_args.siteID === 'undefined' || typeof cygnus_index_args.slots === 'undefined') { + return; + } + if (typeof _IndexRequestData === 'undefined') { + _IndexRequestData = {}; + _IndexRequestData.impIDToSlotID = {}; + _IndexRequestData.reqOptions = {}; + } + var req = new OpenRTBRequest(cygnus_index_args.siteID, cygnus_index_args.parseFn, cygnus_index_args.timeout); + if (cygnus_index_args.url && typeof cygnus_index_args.url === 'string') { + req.setPageOverride(cygnus_index_args.url); + } + _IndexRequestData.impIDToSlotID[req.requestID] = {}; + _IndexRequestData.reqOptions[req.requestID] = {}; + var slotDef, impID; + + for (var i = 0; i < cygnus_index_args.slots.length; i++) { + slotDef = cygnus_index_args.slots[i]; + + impID = req.addImpression(slotDef.width, slotDef.height, slotDef.bidfloor, slotDef.bidfloorcur, slotDef.id, slotDef.siteID); + if (impID) { + _IndexRequestData.impIDToSlotID[req.requestID][impID] = String(slotDef.id); + } + } + if (typeof cygnus_index_args.targetMode === 'number') { + _IndexRequestData.reqOptions[req.requestID].targetMode = cygnus_index_args.targetMode; + } + if (typeof cygnus_index_args.callback === 'function') { + _IndexRequestData.reqOptions[req.requestID].callback = cygnus_index_args.callback; + } + return req.buildRequest(); + } catch (e) {} +}; + var IndexExchangeAdapter = function IndexExchangeAdapter() { var slotIdMap = {}; var requiredParams = [ /* 0 */ - 'slotId', - /* 1 */ - 'indexUrl' + 'id' ]; var firstAdUnitCode = ''; function _callBids(request) { var bidArr = request.bids; - //validate first bid request with all required params. if (!utils.hasValidBidRequest(bidArr[0].params, requiredParams, ADAPTER_NAME)) { return; } + + var bid; + + var tier2SiteID; + var tier3SiteID; + + //Grab the global data for cygnus_index_args for (var i = 0; i < bidArr.length; i++) { - var bid = bidArr[i]; - //only validate 1st param on rest of bids - if (utils.hasValidBidRequest(bid.params, requiredParams.slice(0, 1), ADAPTER_NAME)) { + bid = bidArr[i]; + + if (bid.timeout) { + cygnus_index_args.timeout = bid.timeout; + } + + if (bid.siteID) { + cygnus_index_args.siteID = bid.siteID; + } + + if (bid.tier2SiteID) { + tier2SiteID = bid.tier2SiteID; + } + + if (bid.tier3SiteID) { + tier3SiteID = bid.tier3SiteID; + } + } + + if (!cygnus_index_args.siteID) { + return; + } + + cygnus_index_args.slots = []; + var bidCount = 0; + //Grab the slot level data for cygnus_index_args + for (i = 0; i < bidArr.length; i++) { + bid = bidArr[i]; + + var width; + var height; + + outer: for (var j = 0; j < bid.sizes.length; j++) { + inner: for (var k = 0; k < cygnus_index_adunits.length; k++) { + if (bid.sizes[j][0] === cygnus_index_adunits[k][0] && + bid.sizes[j][1] === cygnus_index_adunits[k][1]) { + width = bid.sizes[j][0]; + height = bid.sizes[j][1]; + break outer; + } + } + } + + if (bid.sqps && typeof cygnus_index_args.SQPS === 'undefined') { + cygnus_index_args.slots.push({ + id:"SPQS", + width: bid.sqps.width, + height: bid.sqps.height, + siteID: bid.sqps.siteID || cygnus_index_args.siteID + }); + } + + if (utils.hasValidBidRequest(bid.params, requiredParams, ADAPTER_NAME)) { firstAdUnitCode = bid.placementCode; var slotId = bid.params[requiredParams[0]]; slotIdMap[slotId] = bid; + + if (cygnus_index_primary_request) { + cygnus_index_args.slots.push({ + id: bid.params.id, + width: width, + height: height, + siteID: bid.params.siteID || cygnus_index_args.siteID + }); + + bidCount++; + + if (bid.params.tier2SiteID || tier2SiteID) { + cygnus_index_args.slots.push({ + id: "T1_"+bid.params.id, + width: width, + height: height, + siteID: bid.params.tier2SiteID || tier2SiteID + }); + } + if (bid.params.tier3SiteID || tier3SiteID) { + cygnus_index_args.slots.push({ + id:"T2_"+bid.params.id, + width:width, + height:height, + siteID:bid.params.tier3SiteID || tier3SiteID + }); + } + } } + bidmanager.setExpectedBidsCount(ADAPTER_CODE, bidCount); } + cygnus_index_primary_request = false; + + adloader.loadScript(cygnus_index_start()); - var adUrl = bidArr[0].params[requiredParams[1]]; - var iframeContents = createRequestContent(adUrl); - var iframe = buildIframeContainer(); - var iframeId = iframe.id; - //attach to onload event of iframe to ensure script is ready - utils.addEventHandler(iframe, 'load', function() { + window.cygnus_index_ready_state = function() { try { - var iframeObj = window.frames[iframeId]; - var indexObj = iframeObj.contentWindow._IndexRequestData.targetIDToBid; - var lookupObj = iframeObj.contentWindow.cygnus_index_args; + var indexObj = _IndexRequestData.targetIDToBid; + var lookupObj = cygnus_index_args; if (utils.isEmpty(indexObj)) { - //no bid response var bid = bidfactory.createBid(2); bid.bidderCode = ADAPTER_CODE; logErrorBidResponse(); @@ -624,7 +915,6 @@ var IndexExchangeAdapter = function IndexExchangeAdapter() { } utils._each(indexObj, function(adContents, cpmAndSlotId) { - utils._each(slotIdMap, function(bid, adSlotId) { var obj = cpmAndSlotId.split('_'); var currentId = obj[0]; @@ -632,29 +922,26 @@ var IndexExchangeAdapter = function IndexExchangeAdapter() { if (currentId === adSlotId) { var bidObj = slotIdMap[adSlotId]; var adUnitCode = bidObj.placementCode; - var slotObj = getSlotObj(lookupObj, adSlotId); + var slotObj = getSlotObj(cygnus_index_args, adSlotId); + bid = bidfactory.createBid(1); - bid.cpm = (currentCPM / 100); - bid.ad = adContents; + bid.cpm = currentCPM / 100; + bid.ad = adContents[0]; bid.ad_id = adSlotId; bid.bidderCode = ADAPTER_CODE; bid.width = slotObj.width; bid.height = slotObj.height; - bid.siteID = slotObj.siteID; + bid.siteId = slotObj.siteID; + bidmanager.addBidResponse(adUnitCode, bid); } }); }); - } catch (e) { utils.logError('Error calling index adapter', ADAPTER_NAME, e); logErrorBidResponse(); } - }); - - var iframeDoc = iframe.contentWindow.document; - iframeDoc.write(iframeContents); - iframeDoc.close(); + }; } function getSlotObj(obj, id) { @@ -676,24 +963,6 @@ var IndexExchangeAdapter = function IndexExchangeAdapter() { bidmanager.addBidResponse(firstAdUnitCode, bid); } - function buildIframeContainer() { - var iframe = utils.createInvisibleIframe(); - var elToAppend = document.getElementsByTagName('head')[0]; - //insert the iframe into document - elToAppend.insertBefore(iframe, elToAppend.firstChild); - return iframe; - - } - - function createRequestContent(url) { - var content = 'inDapIF=true;'; - content += ''; - content += ''; - content += ''; - return content; - } - - return { callBids: _callBids }; @@ -701,7 +970,8 @@ var IndexExchangeAdapter = function IndexExchangeAdapter() { }; module.exports = IndexExchangeAdapter; -},{"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],6:[function(require,module,exports){ + +},{"../adloader.js":11,"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],6:[function(require,module,exports){ var CONSTANTS = require('../constants.json'); var utils = require('../utils.js'); var bidfactory = require('../bidfactory.js'); @@ -1150,18 +1420,18 @@ var SovrnAdapter = function SovrnAdapter() { // build bid request object var domain = window.location.host; var page = window.location.pathname + location.search + location.hash; - + var sovrnImps = []; //assign the first adUnit (placement) for bad bids; defaultPlacementForBadBid = bidReqs[0].placementCode; - + //build impression array for sovrn utils._each(bidReqs, function(bid) { var tagId = utils.getBidIdParamater('tagid', bid.params); var bidFloor = utils.getBidIdParamater('bidfloor', bid.params); var adW=0,adH=0; - + //sovrn supports only one size per tagid, so we just take the first size if there are more //if we are a 2 item array of 2 numbers, we must be a SingleSize array var sizeArrayLength = bid.sizes.length; @@ -1174,7 +1444,7 @@ var SovrnAdapter = function SovrnAdapter() { adW=bid.sizes[0][0]; adH=bid.sizes[0][1]; } - imp = + imp = { id: utils.getUniqueIdentifierStr(), banner: { @@ -1192,13 +1462,13 @@ var SovrnAdapter = function SovrnAdapter() { var sovrnBidReq = { id: utils.getUniqueIdentifierStr(), imp: sovrnImps, - site:{ + site:{ domain: domain, page: page } }; - var scriptUrl = '//'+sovrnUrl+'?callback=window.pbjs.sovrnResponse' + + var scriptUrl = '//'+sovrnUrl+'?callback=window.pbjs.sovrnResponse' + '&br=' + encodeURIComponent(JSON.stringify(sovrnBidReq)); adloader.loadScript(scriptUrl, null); } @@ -1216,7 +1486,7 @@ var SovrnAdapter = function SovrnAdapter() { var responseCPM; var placementCode = ''; var id = sovrnBid.impid; - + // try to fetch the bid request we sent Sovrn var bidObj = bidmanager.getPlacementIdByCBIdentifer(id); if (bidObj){ @@ -1226,11 +1496,11 @@ var SovrnAdapter = function SovrnAdapter() { //place ad response on bidmanager._adResponsesByBidderId responseCPM = parseFloat(sovrnBid.price); - if(responseCPM !== 0) { + if(responseCPM !== 0) { sovrnBid.placementCode = placementCode; sovrnBid.size = bidObj.sizes; var responseAd = sovrnBid.adm; - + // build impression url from response var responseNurl = ''; @@ -1240,29 +1510,37 @@ var SovrnAdapter = function SovrnAdapter() { bid.creative_id = sovrnBid.Id; bid.bidderCode = 'sovrn'; bid.cpm = responseCPM; - + //set ad content + impression url // sovrn returns ';return t+="",t+='',t+=""}var l={},u=["slotId","indexUrl"],p="";return{callBids:e}};t.exports=s},{"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],6:[function(e,t,r){var n=(e("../constants.json"),e("../utils.js"),e("../bidfactory.js")),i=e("../bidmanager.js"),a=e("../adloader"),o=function(e){function t(e){d=e.bids||[];for(var t=0;t',e+="",e+="",e=n.replaceTokenInString(e,t,"%%")}var o,d,s=[];return pbjs.handlePubmaticCallback=function(e){var t,r,n,d,s,c=e&&e.bidDetailsMap||{},l=e&&e.progKeyValueMap||{};for(t=0;t",a+='',a+="",a=i.replaceTokenInString(a,o,"%%")}var s={};return window.pbjs=window.pbjs||{que:[]},window.pbjs.handleRubiconCallback=function(e){var r="",d={};if(e&&"ok"===e.status)try{var c="",l=o.getPlacementIdByCBIdentifer(t(e));if(l&&(r=l.placementCode,l.status=n.STATUS.GOOD,c=l.iframeId),d=a.createBid(1),e.ads&&e.ads[0]){var u=e.ads[0],p=s[u.size_id],f=0,g=0,m=window.frames[c],b=m.contentWindow.RubiconAdServing;if(b&&b.AdSizes){p=b.AdSizes[u.size_id];var h=p.dim.split("x");f=h[0],g=h[1]}d.cpm=u.cpm,d.ad="",d.ad_id=u.ad_id,d.bidderCode="rubicon",d.sizeId=u.size_id,d.width=f,d.height=g}}catch(v){i.logError("Error parsing rubicon response bid: "+v.message)}else{d=a.createBid(2),d.bidderCode="rubicon";var l=o.getPlacementIdByCBIdentifer(t(e));l&&(r=l.placementCode)}o.addBidResponse(r,d)},{callBids:e}};t.exports=d},{"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],9:[function(e,t,r){var n=e("../constants.json"),i=e("../utils.js"),a=e("../bidfactory.js"),o=e("../bidmanager.js"),d=e("../adloader"),s="",c=function(){function e(e){var n=e.bids||[];r(t(n))}function t(e){var t,r={},n=[];e.forEach(function(e){r[i.getBidIdParamater("tagid",e.params)]=e});for(t in r)r.hasOwnProperty(t)&&n.push(r[t]);return n}function r(e){var t=window.location.host,r=window.location.pathname+location.search+location.hash,n=[];s=e[0].placementCode,i._each(e,function(e){var t=i.getBidIdParamater("tagid",e.params),r=i.getBidIdParamater("bidfloor",e.params),a=0,d=0,s=e.sizes.length;2===s&&"number"==typeof e.sizes[0]&&"number"==typeof e.sizes[1]?(a=e.sizes[0],d=e.sizes[1]):(a=e.sizes[0][0],d=e.sizes[0][1]),imp={id:i.getUniqueIdentifierStr(),banner:{w:a,h:d},tagid:t,bidfloor:r},n.push(imp),o.pbCallbackMap[imp.id]=e});var a={id:i.getUniqueIdentifierStr(),imp:n,site:{domain:t,page:r}},l="//"+c+"?callback=window.pbjs.sovrnResponse&br="+encodeURIComponent(JSON.stringify(a));d.loadScript(l,null)}var c="ap.lijit.com/rtb/bid";return pbjs.sovrnResponse=function(e){var t={};e&&e.id&&e.seatbid&&0!==e.seatbid.length&&e.seatbid[0].bid&&0!==e.seatbid[0].bid.length?e.seatbid[0].bid.forEach(function(e){var r,i="",d=e.impid,s=o.getPlacementIdByCBIdentifer(d);if(s)if(i=s.placementCode,s.status=n.STATUS.GOOD,r=parseFloat(e.price),0!==r){e.placementCode=i,e.size=s.sizes;var c=e.adm,l='';t=a.createBid(1),t.creative_id=e.Id,t.bidderCode="sovrn",t.cpm=r,t.ad=decodeURIComponent(c+l),t.width=s.sizes[0][0],t.height=s.sizes[0][1],o.addBidResponse(i,t)}else t=a.createBid(2),t.bidderCode="sovrn",o.addBidResponse(i,t);else t=a.createBid(2),t.bidderCode="sovrn",o.addBidResponse(i,t)}):(t=a.createBid(2),t.bidderCode="sovrn",o.addBidResponse(s,t))},{callBids:e}};t.exports=c},{"../adloader":11,"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],10:[function(e,t,r){var n=e("../adloader"),i=e("../bidfactory"),a=e("../bidmanager"),o=e("../utils"),d=function(){window.ybotq=window.ybotq||[];var e={BID_STATUS:{PENDING:0,AVAILABLE:1,EMPTY:2},definedSlots:[],pageLevelOption:!1,buildCreative:function(e,t){return'"},buildBid:function(t){var r={};if(t&&t.ybot_ad&&"n"!==t.ybot_ad){r=i.createBid(e.BID_STATUS.AVAILABLE),r.cpm=parseInt(t.ybot_cpm)/100||0;var n=t.ybot_size?t.ybot_size.split("x"):[0,0],a=t.ybot_slot||"",o=t.ybot_size||"";r.width=n[0]||0,r.height=n[1]||0,r.ad=e.buildCreative(a,o);for(var d in t)r[d]=t[d]}else r=i.createBid(e.BID_STATUS.EMPTY);return r.bidderCode="yieldbot",r},callBids:function(t){var r=t.bids||[],i=window.ybotq||[];e.pageLevelOption=!1,i.push(function(){var t=window.yieldbot;o._each(r,function(r){var n=r,i=n.params&&n.params.psn||"ERROR_DEFINE_YB_PSN",d=n.params&&n.params.slot||"ERROR_DEFINE_YB_SLOT";t.pub(i),t.defineSlot(d,{sizes:n.sizes||[]});var s=o.getUniqueIdentifierStr();a.pbCallbackMap[s]=n,e.definedSlots.push(s)}),t.enableAsync(),t.go()}),i.push(function(){e.handleUpdateState()}),n.loadScript("//cdn.yldbt.com/js/yieldbot.intent.js")},handleUpdateState:function(){var t=window.yieldbot;o._each(e.definedSlots,function(r){var n,i,o,d;d=a.getPlacementIdByCBIdentifer(r)||{},n=d.params.slot||"",i=t.getSlotCriteria(n),o=d.placementCode||"ERROR_YB_NO_PLACEMENT";var s=e.buildBid(i);a.addBidResponse(o,s)})}};return{callBids:e.callBids}};t.exports=d},{"../adloader":11,"../bidfactory":12,"../bidmanager":13,"../utils":18}],11:[function(e,t,r){r.loadScript=function(e,t){var r=document.createElement("script");r.type="text/javascript",r.async=!0,t&&"function"==typeof t&&(r.readyState?r.onreadystatechange=function(){("loaded"==r.readyState||"complete"==r.readyState)&&(r.onreadystatechange=null,t())}:r.onload=function(){t()}),r.src=e;var n=document.getElementsByTagName("head");n=n.length?n:document.getElementsByTagName("body"),n.length&&(n=n[0],n.insertBefore(r,n.firstChild))},r.trackPixel=function(e){try{if(e+="&rnd="+Math.random()){var t=document.createElement("img");t.src=e}}catch(r){}}},{}],12:[function(e,t,r){function n(e){function t(){switch(n){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}var r=i.getUniqueIdentifierStr(),n=e||0;this.bidderCode="",this.width=0,this.height=0,this.statusMessage=t(),this.adId=r,this.getStatusCode=function(){return n},this.getSize=function(){return this.width+"x"+this.height}}var i=e("./utils.js");r.createBid=function(e){return new n(e)}},{"./utils.js":18}],13:[function(e,t,r){function n(){T={};for(var e=0;et)&&(e=!1)}else 1>t&&(e=!1)}),e}var g=e("./constants.json"),m=e("./utils.js"),b=(e("./adaptermanager"),e("./events")),h="function",v="undefined",y=[],B=[],w=null,_={},E={};r.pbCallbackMap=E;var I={};r.pbBidResponseByPlacement=I;var C={};r._adResponsesByBidderId=C;var T={};r.bidResponseReceivedCount=T;var A={},R=!1,j=!1,S={},P={};r.getPlacementIdByCBIdentifer=function(e){return E[e]},r.getBidResponseByAdUnit=function(e){return I},r.clearAllBidResponses=function(e){R=!1,j=!1,n(),a(),B.called=!1;for(var t in this.pbBidResponseByPlacement)delete this.pbBidResponseByPlacement[t]},r.getTimedOutBidders=function(){var e=[];return m._each(T,function(t,r){0===t&&e.push(r)}),e},r.increaseBidResponseReceivedCount=function(e){i(e)},r.setExpectedBidsCount=function(e,t){A[e]=t},r.addBidResponse=function(e,t){var r={};if(t){t.requestTimestamp=P[t.bidderCode],t.responseTimestamp=(new Date).getTime(),t.timeToRespond=t.responseTimestamp-t.requestTimestamp,i(t.bidderCode),2===t.getStatusCode()&&(t.cpm=0);var n=m.getPriceBucketString(t.cpm,t.height,t.width);t.pbLg=n.low,t.pbMg=n.med,t.pbHg=n.high,t.adUnitCode=e,t.bidder=t.bidderCode;var a={};t.bidderCode&&0!==t.cpm&&(a=d(t.bidderCode,t),t.adserverTargeting=a),t.adId&&(C[t.adId]=t),e&&I[e]?(r=I[e],r.bids.push(t),r.bidsReceivedCount++):m.logError("Internal error in bidmanager.addBidResponse. Params: "+e+" & "+t),b.emit("bidResponse",e,t)}else r=this.createEmptyBidResponseObj();I[e]=r,this.checkIfAllBidsAreIn(e)},r.createEmptyBidResponseObj=function(){return{bids:[],allBidsAvailable:!1,bidsReceivedCount:0}},r.registerDefaultBidderSetting=function(e,t){S[e]=t},r.registerBidRequestTime=function(e,t){P[e]=t},r.executeCallback=function(){if(typeof pbjs.registerBidCallbackHandler===h&&!j)try{pbjs.registerBidCallbackHandler(),j=!0}catch(e){j=!0,m.logError("Exception trying to execute callback handler registered : "+e.message)}if(B.called!==!0){var t=[];l(B,t),B.called=!0}if(w){var t=[],r=pbjs.getBidResponses();t.push(r),l(w,t),w=null}},r.allBidsBack=function(){return R},r.setBidderMap=function(e){_=e},r.checkIfAllBidsAreIn=function(e){R=f(),p(e),R&&this.executeCallback()},r.addOneTimeCallback=function(e){w=e},r.addCallback=function(e,t,r){t.id=e,g.CB.TYPE.ALL_BIDS_BACK===r?B.push(t):g.CB.TYPE.AD_UNIT_BIDS_BACK===r&&y.push(t)}},{"./adaptermanager":1,"./constants.json":14,"./events":15,"./utils.js":18}],14:[function(e,t,r){t.exports={JSON_MAPPING:{PL_CODE:"code",PL_SIZE:"sizes",PL_BIDS:"bids",BD_BIDDER:"bidder",BD_ID:"paramsd",BD_PL_ID:"placementId",ADSERVER_TARGETING:"adserverTargeting",BD_SETTING_STANDARD:"standard"},DEBUG_MODE:"pbjs_debug",STATUS:{GOOD:"good",TIMEOUT:"timed out"},CB:{TYPE:{ALL_BIDS_BACK:"allRequestedBidsBack",AD_UNIT_BIDS_BACK:"adUnitBidsBack"}},objectType_function:"function",objectType_undefined:"undefined",objectType_object:"object",objectType_string:"string",objectType_number:"number",EVENTS:{BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_WON:"bidWon"}}},{}],15:[function(e,t,r){var n=e("./utils"),i=e("./constants"),a=Array.prototype.slice,o=n._map(i.EVENTS,function(e){return e}),d=[];t.exports=function(){function e(e,t){n.logMessage("Emitting event for: "+e),d.push({eventType:e,args:t}),n._each(r[e],function(e){if(e)try{e.apply(null,t)}catch(r){n.logError("Error executing handler:","events.js",r)}})}function t(e){return n.contains(o,e)}var r={},i={};return i.on=function(e,i){t(e)?(r[e]=r[e]||[],r[e].push(i)):n.logError("Wrong event name : "+e+" Valid event names :"+o)},i.emit=function(t){var r=a.call(arguments,1);e(t,r)},i.off=function(e,t,i){n.isEmpty(r[e])||n._each(r[e],function(e){null!==e[t]&&void 0!==e[t]&&("undefined"==typeof i||e[t]===i)&&(e[t]=null)})},i.get=function(){return r},i.getEvents=function(){var e=[];return n._each(d,function(t){var r=n.extend({},t);e.push(r)}),e},i}()},{"./constants":14,"./utils":18}],16:[function(e,t,r){function n(){for(var e=0;e0&&n.push({cpm:o.cpm,bid:o}),t.push(i)}}if(r&&0!==n.length){var d=l(n),s=d.adserverTargeting;x[r]=B.extend(x[r],s)}return t}function g(e){var t={};if(e){var r=JSON.stringify(e);t=JSON.parse(r),delete t.pbLg,delete t.pbMg,delete t.pbHg}return t}function m(){w.clearAllBidResponses(),O={},N=[],x={},k=!1}function b(e){var t=e;m(),i(t)}function h(e){var t=null;return e&&(t=v.getAdserverTargetingForAdUnitCode(e.getSlotElementId()),t||(t=v.getAdserverTargetingForAdUnitCode(e.getAdUnitPath()))),t}window.pbjs=window.pbjs||{},window.pbjs.que=window.pbjs.que||[];var v=window.pbjs,y=e("./constants.json"),B=e("./utils.js"),w=e("./bidmanager.js"),_=e("./adaptermanager"),E=e("./bidfactory"),I=e("./adloader"),C=e("./ga"),T=e("./events"),A="function",R="undefined",j="object",S="string",P=y.EVENTS.BID_WON,U=y.EVENTS.BID_TIMEOUT,D=[],N=[],O={},x={},M={},k=!1;v.bidderTimeout=v.bidderTimeout||3e3,v.logging=v.logging||!1,v.libLoaded=!0,v.adUnits=v.adUnits||[],v.que.push=function(e){if(typeof e===A)try{e.call()}catch(t){B.logError("Error processing command :"+t.message)}else B.logError("Commands written into pbjs.que.push must wrapped in a function")},v.getAdserverTargetingForAdUnitCodeStr=function(e){if(e){var t=v.getAdserverTargetingForAdUnitCode(e);return B.transformAdServerTargetingObj(t)}B.logMessage("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},v.getAdserverTargetingForAdUnitCode=function(e){return v.getBidResponses(e),e?x[e]:x},v.getAdserverTargeting=function(){return v.getAdserverTargetingForAdUnitCode()},v.getBidResponses=function(e){var t={},r=[],n={};if(e)t=p(e),r=[],t&&t.bids&&(r=f(t.bids)),n={bids:r};else{t=p();for(var i in t)t.hasOwnProperty(i)&&(t&&t[i]&&t[i].bids&&(r=f(t[i].bids)),n[i]={bids:r})}return n},v.getBidResponsesForAdUnitCode=function(e){return v.getBidResponses(e)},v.setTargetingForAdUnitsGPTAsync=function(e){if(!window.googletag||!B.isFn(window.googletag.pubads)||!B.isFn(window.googletag.pubads().getSlots))return void B.logError("window.googletag is not defined on the page");o();var t=e;typeof e===S?t=[e]:typeof e===j&&(t=e);var r={},n=0;if(t)for(n=0;n'),e.close(),e.defaultView&&e.defaultView.frameElement&&(e.defaultView.frameElement.width=i,e.defaultView.frameElement.height=n)):B.logError("Error trying to write ad. No ad for bid response id: "+t)}else B.logError("Error trying to write ad. Cannot find ad by given id : "+t)}catch(d){B.logError("Error trying to write ad Id :"+t+" to the page:"+d.message)}else B.logError("Error trying to write ad Id :"+t+" to the page. Missing document or adId")},v.requestBidsForAdUnit=function(e){m(),i(e)},v.requestBidsForAdUnits=function(e){if(!e||e.constructor!==Array)return void B.logError("requestBidsForAdUnits must pass an array of adUnits");m();var t=v.adUnits.slice(0);v.adUnits=e,i(),v.adUnits=t},v.removeAdUnit=function(e){if(e)for(var t=0;t=0&&200>e?t="0-200ms":e>=200&&300>e?t="200-300ms":e>=300&&400>e?t="300-400ms":e>=400&&500>e?t="400-500ms":e>=500&&600>e?t="500-600ms":e>=600&&800>e?t="600-800ms":e>=800&&1e3>e?t="800-1000ms":e>=1e3&&1200>e?t="1000-1200ms":e>=1200&&1500>e?t="1200-1500ms":e>=1500&&2e3>e?t="1500-2000ms":e>=2e3&&(t="2000ms above"),t}function o(e){var t;return e>=0&&.5>e?t="$0-0.5":e>=.5&&1>e?t="$0.5-1":e>=1&&1.5>e?t="$1-1.5":e>=1.5&&2>e?t="$1.5-2":e>=2&&2.5>e?t="$2-2.5":e>=2.5&&3>e?t="$2.5-3":e>=3&&4>e?t="$3-4":e>=4&&6>e?t="$4-6":e>=6&&8>e?t="$6-8":e>=8&&(t="$8 above"),t}function d(e){e&&e.bidderCode&&y.push(function(){E++,window[B]("send","event",_,"Requests",e.bidderCode,1,v)}),n()}function s(e){e&&e.bidder&&y.push(function(){var t=i(e.cpm),r=e.bidder;if("undefined"!=typeof e.timeToRespond&&I){E++;var n=a(e.timeToRespond);window[B]("send","event","Prebid.js Load Time Distribution",n,r,1,v)}if(e.cpm>0){E+=2;var d=o(e.cpm);I&&(E++,window[B]("send","event","Prebid.js CPM Distribution",d,r,1,v)),window[B]("send","event",_,"Bids",r,t,v),window[B]("send","event",_,"Bid Load Time",r,e.timeToRespond,v)}}),n()}function c(e){p._each(e,function(e){y.push(function(){E++,window[B]("send","event",_,"Timeouts",e,1,v)})}),n()}function l(e){var t=i(e.cpm);y.push(function(){E++,window[B]("send","event",_,"Wins",e.bidderCode,t,v)}),n()}var u=e("./events"),p=e("./utils"),f=e("./constants.json"),g=f.EVENTS.BID_REQUESTED,m=f.EVENTS.BID_TIMEOUT,b=f.EVENTS.BID_RESPONSE,h=f.EVENTS.BID_WON,v={nonInteraction:!0},y=[],B=null,w=!0,_="Prebid.js Bids",E=0,I=!1;r.enableAnalytics=function(e){B="undefined"!=typeof e.global?e.global:"ga","undefined"!=typeof e.enableDistribution&&(I=e.enableDistribution);var t=null,r=u.getEvents();p._each(r,function(e){var r=e.args;if(e)if(e.eventType===g)t=r[0],d(t);else if(e.eventType===b)t=r[1],s(t);else if(e.eventType===m){var n=r[0];c(n)}else e.eventType===h&&(t=r[0],l(t))}),u.on(g,function(e){d(e)}),u.on(b,function(e,t){s(t)}),u.on(m,function(e){c(e)}),u.on(h,function(e){l(e)})}},{"./constants.json":14,"./events":15,"./utils":18}],18:[function(e,t,r){function n(){return v()+Math.random().toString(16).substr(2)}function i(){return window.console&&window.console.log}{var a=e("./constants.json"),o="object",d="string",s="number",c=!1,l=5,u=20,p=20,f="Array",g="String",m="Function",b=Object.prototype.toString,h=Object.prototype.hasOwnProperty;Array.prototype.slice}r.replaceTokenInString=function(e,t,r){return this._each(t,function(t,n){t=void 0===t?"":t;var i=r+n.toUpperCase()+r,a=new RegExp(i,"g");e=e.replace(a,t)}),e};var v=function(){var e=0;return function(){return e++,e}}();r.getUniqueIdentifierStr=n,r.getBidIdParamater=function(e,t){return t&&t[e]?t[e]:""},r.tryAppendQueryString=function(e,t,r){return r?e+=t+"="+encodeURIComponent(r)+"&":e},r.parseQueryStringParameters=function(e){var t="";for(var r in e)e.hasOwnProperty(r)&&(t+=r+"="+encodeURIComponent(e[r])+"&");return t},r.transformAdServerTargetingObj=function(e){var t="";if(!e)return"";for(var r in e)e.hasOwnProperty(r)&&(t+=r+"="+encodeURIComponent(e[r])+"&");return t},r.extend=function(e,t){return e=e||{},this._each(t,function(r,n){e[n]=typeof t[n]===o?this.extend(e[n],t[n]):t[n]}),e},r.parseSizesInput=function(e){var t,r=[];if(typeof e===d){var n=e.split(","),i=/^(\d)+x(\d)+$/i;if(n)for(var a in n)hasOwn(n,a)&&n[a].match(i)&&r.push(n[a])}else if(typeof e===o){var c=e.length;if(c>0)if(2===c&&typeof e[0]===s&&typeof e[1]===s)r.push(this.parseGPTSingleSizeArray(e));else for(var l=0;c>l;l++)r.push(this.parseGPTSingleSizeArray(e[l]))}var u=r.length;if(u>0&&(t="size="+r[0],u>1)){t+="&promo_sizes=";for(var p=1;u>p;p++)t+=r[p]+=",";t&&","===t.charAt(t.length-1)&&(t=t.slice(0,t.length-1))}return t},r.parseGPTSingleSizeArray=function(e){return!this.isArray(e)||2!==e.length||isNaN(e[0])||isNaN(e[1])?void 0:e[0]+"x"+e[1]},r.getTopWindowUrl=function(){try{return window.top.location.href}catch(e){return window.location.href}},r.logMessage=function(e){B()&&i()&&console.log("MESSAGE: "+e)},r.hasConsoleLogger=i;var y=function(e){return e?window.console.error?"error":"log":""}(i()),B=function(){return pbjs.logging===!1&&c===!1&&(pbjs.logging="TRUE"===w(a.DEBUG_MODE).toUpperCase(),c=!0),pbjs.logging?!0:!1};r.debugTurnedOn=B,r.logError=function(e,t,r){var n=t||"ERROR";B()&&i()&&console[y].call(console,n+": "+e,r||"")},r.createInvisibleIframe=function(){var e=document.createElement("iframe");return e.id=n(),e.height=0,e.width=0,e.border="0px",e.hspace="0",e.vspace="0",e.marginWidth="0",e.marginHeight="0",e.style.border="0",e.scrolling="no",e.frameBorder="0",e.src="about:self",e.style="display:none",e};var w=function(e){var t="[\\?&]"+e+"=([^&#]*)",r=new RegExp(t),n=r.exec(window.location.search);return null===n?"":decodeURIComponent(n[1].replace(/\+/g," "))};r.getPriceBucketString=function(e){var t="",r="",n="",i=0,a={low:t,med:r,high:n};try{i=parseFloat(e),i&&(a.low=i>l?l.toFixed(2):(Math.floor(2*e)/2).toFixed(2),a.med=i>u?u.toFixed(2):(Math.floor(10*e)/10).toFixed(2),a.high=i>p?p.toFixed(2):(Math.floor(100*e)/100).toFixed(2))}catch(o){this.logError("Exception parsing CPM :"+o.message)}return a},r.hasValidBidRequest=function(e,t,r){for(var n=0;n0);for(var t in e)if(h.call(e,t))return!1;return!0},r._each=function(e,t){if(!this.isEmpty(e)){if(this.isFn(e.forEach))return e.forEach(t,this);var r=0,n=e.length;if(n>0)for(;n>r;r++)t(e[r],r,e);else for(r in e)h.call(e,r)&&t.call(this,e[r],r)}},r.contains=function(e,t){if(this.isEmpty(e))return!1;if(this.isFn(e.indexOf))return-1!==e.indexOf(t);for(var r=e.length;r--;)if(e[r]===t)return!0;return!1},r._map=function(e,t){if(this.isEmpty(e))return[];if(this.isFn(e.map))return e.map(t);var r=[];return this._each(e,function(n,i){r.push(t(n,i,e))}),r}},{"./constants.json":14}]},{},[16]); \ No newline at end of file +Updated : 2015-12-07 */ +!function e(t,r,i){function n(s,o){if(!r[s]){if(!t[s]){var d="function"==typeof require&&require;if(!o&&d)return d(s,!0);if(a)return a(s,!0);throw new Error("Cannot find module '"+s+"'")}var c=r[s]={exports:{}};t[s][0].call(c.exports,function(e){var r=t[s][1][e];return n(r?r:e)},c,c.exports,e,t,r,i)}return r[s].exports}for(var a="function"==typeof require&&require,s=0;si;i++){var o=t[i],c=n.getUniqueIdentifierStr();a.loadScript(d(o,c)),s.pbCallbackMap[c]=o}}function r(e,t,r){if(e&&t){var i=t-e,s=!1,o="";for(var d in c)if(d>=i){s=!0,o=c[d],a.trackPixel(o);break}s||(o=u,a.trackPixel(o)),n.logMessage("latency for placement code : "+r+" : "+i+" ms. Tracking URL Fired : "+o)}}function d(e,t){var r=n.getBidIdParamater("placementId",e.params),i=n.getBidIdParamater("memberId",e.params),a=n.getBidIdParamater("invCode",e.params),s=n.getBidIdParamater("query",e.params),o=n.getBidIdParamater("referrer",e.params),d=n.getBidIdParamater("alt_referrer",e.params),c="http"+("https:"===document.location.protocol?"s://secure.adnxs.com/jpt?":"://ib.adnxs.com/jpt?");c=n.tryAppendQueryString(c,"callback","pbjs.handleCB"),c=n.tryAppendQueryString(c,"callback_uid",t),c=n.tryAppendQueryString(c,"psa","0"),c=n.tryAppendQueryString(c,"id",r),c=n.tryAppendQueryString(c,"member_id",i),c=n.tryAppendQueryString(c,"code",a);var u=n.parseSizesInput(e.sizes);u&&(c+=u+"&");var p=n.parseQueryStringParameters(s);return p&&(c+=p),""===o&&(o=n.getTopWindowUrl()),c=n.tryAppendQueryString(c,"referrer",o),c=n.tryAppendQueryString(c,"alt_referrer",d),c.lastIndexOf("&")===c.length-1&&(c=c.substring(0,c.length-1)),n.logMessage("jpt request built: "+c),e.startTime=(new Date).getTime(),c}var c=[];c[100]=e(21139),c[200]=e(21140),c[300]=e(21141),c[400]=e(21142),c[500]=e(21143),c[600]=e(21144),c[700]=e(21145),c[800]=e(21146),c[1e3]=e(21147),c[1300]=e(21148),c[1600]=e(21149),c[2e3]=e(21150),c[5e3]=e(21151),c[1e4]=e(21152);{var u=e(21154);e(21153)}return pbjs.handleCB=function(e){if(e&&e.callback_uid){var t,a=e.callback_uid,d="",c=s.getPlacementIdByCBIdentifer(a);if(c){d=c.placementCode,c.status=i.STATUS.GOOD;try{r(c.startTime,(new Date).getTime(),d)}catch(u){}}n.logMessage("JSONP callback function called for ad ID: "+a);var p=[];if(e.result&&e.result.cpm&&0!==e.result.cpm){t=parseInt(e.result.cpm,10),t/=1e4;var l=(e.result.ad,e.result.creative_id);p=o.createBid(1),p.creative_id=l,p.bidderCode="appnexus",p.cpm=t,p.adUrl=e.result.ad,p.width=e.result.width,p.height=e.result.height,p.dealId=e.result.deal_id,s.addBidResponse(d,p)}else n.logMessage("No prebid response from AppNexus for placement code "+d),p=o.createBid(2),p.bidderCode="appnexus",s.addBidResponse(d,p)}else n.logMessage("No prebid response for placement %%PLACEMENT%%")},{callBids:t}};t.exports=d},{"../adloader.js":11,"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],4:[function(e,t,r){var i=(e("../constants.json"),e("../utils.js"),e("../bidfactory.js")),n=e("../bidmanager.js"),a=e("../adloader"),s=function(){function e(e){s=e.bids||[],t(s).forEach(r)}function t(e){var t,r={},i=[];e.forEach(function(e){r[e.params.nid]=e});for(t in r)r.hasOwnProperty(t)&&i.push(r[t]);return i}function r(e){var t=e.params.varname,r="//rtax.criteo.com/delivery/rta/rta.js?netId="+encodeURI(e.params.nid)+"&cookieName="+encodeURI(e.params.cookiename)+"&rnd="+Math.floor(99999999999*Math.random())+"&varName="+encodeURI(t);a.loadScript(r,function(r){var a,o=window[t];s.forEach(function(t){t.params.nid===e.params.nid&&(o?(a=i.createBid(1),a.bidderCode="criteo",a.keys=o.split(";")):(a=i.createBid(2),a.bidderCode="criteo"),n.addBidResponse(t.placementCode,a))})})}var s;return{callBids:e}};t.exports=s},{"../adloader":11,"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],5:[function(e,t,r){var i=(e("../constants.json"),e("../utils.js")),n=e("../bidfactory.js"),a=e("../bidmanager.js"),s=e("../adloader.js"),o="INDEXEXCHANGE",d="indexExchange",c=!0,u=function(){};window.cygnus_index_args={};var p=[[728,90],[120,600],[300,250],[160,600],[336,280],[234,60],[300,600],[300,50],[320,50],[970,250],[300,1050],[970,90],[180,150]],l=function(){function e(e){var t=n[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)}function t(t){return i.lastIndex=0,i.test(t)?t.replace(i,e):t}function r(e,t,r){if(this.initialized=!1,"number"!=typeof e||e%1!==0||0>e)throw"Invalid Site ID";if("number"==typeof r&&r%1===0&&r>=0&&(this.timeoutDelay=r),this.siteID=e,this.impressions=[],this._parseFnName=void 0,top===self?(this.sitePage=location.href,this.topframe=1):(this.sitePage=document.referrer,this.topframe=0),"undefined"!=typeof t){if("function"!=typeof t)throw"Invalid jsonp target function";this._parseFnName="cygnus_index_args.parseFn"}_IndexRequestData.requestCounter="undefined"==typeof _IndexRequestData.requestCounter?Math.floor(256*Math.random()):(_IndexRequestData.requestCounter+1)%256,this.requestID=String((new Date).getTime()%2592e3*256+_IndexRequestData.requestCounter+256),this.initialized=!0}cygnus_index_args.parseFn=u;var i=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,n={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};r.prototype.serialize=function(){var e='{"id":'+this.requestID+',"site":{"page":"'+t(this.sitePage)+'"';"string"==typeof document.referrer&&(e+=',"ref":"'+t(document.referrer)+'"'),e+='},"imp":[';for(var r=0;r0&&(e+=',"ext": {'+n.join()+"}"),e+=r+1==this.impressions.length?"}":"},"}return e+="]}"},r.prototype.setPageOverride=function(e){return"string"!=typeof e||e.match(/^\s*$/)?!1:(this.sitePage=e,!0)},r.prototype.addImpression=function(e,t,r,i,n,a){var s={id:String(this.impressions.length+1)};if("number"!=typeof e||1>=e)return null;if("number"!=typeof t||1>=t)return null;if(("string"==typeof n||"number"==typeof n)&&String(n).length<=50&&(s.slotID=String(n)),s.w=e,s.h=t,void 0!==r&&"number"!=typeof r)return null;if("number"==typeof r){if(0>r)return null;if(s.bidfloor=r,void 0!==i&&"string"!=typeof i)return null;s.bidfloorcur=i}if("undefined"!=typeof a){if(!("number"==typeof a&&a%1===0&&a>=0))return null;s.siteID=a}return this.impressions.push(s),s.id},r.prototype.buildRequest=function(){if(0!==this.impressions.length&&this.initialized===!0){var e=encodeURIComponent(this.serialize()),t="https:"===window.location.protocol?"https://as-sec.casalemedia.com":"http://as.casalemedia.com";return t+="/headertag?v=9&x3=1&fn=cygnus_index_parse_res&s="+this.siteID+"&r="+e,"number"==typeof this.timeoutDelay&&this.timeoutDelay%1===0&&this.timeoutDelay>=0&&(t+="&t="+this.timeoutDelay),t}};try{if("undefined"==typeof cygnus_index_args||"undefined"==typeof cygnus_index_args.siteID||"undefined"==typeof cygnus_index_args.slots)return;"undefined"==typeof _IndexRequestData&&(_IndexRequestData={},_IndexRequestData.impIDToSlotID={},_IndexRequestData.reqOptions={});var a=new r(cygnus_index_args.siteID,cygnus_index_args.parseFn,cygnus_index_args.timeout);cygnus_index_args.url&&"string"==typeof cygnus_index_args.url&&a.setPageOverride(cygnus_index_args.url),_IndexRequestData.impIDToSlotID[a.requestID]={},_IndexRequestData.reqOptions[a.requestID]={};for(var s,o,d=0;d',e+="",e+="",e=i.replaceTokenInString(e,t,"%%")}var s,o,d=[];return pbjs.handlePubmaticCallback=function(e){var t,r,i,o,d,c=e&&e.bidDetailsMap||{},u=e&&e.progKeyValueMap||{};for(t=0;t",a+='',a+="",a=n.replaceTokenInString(a,s,"%%")}var d={};return window.pbjs=window.pbjs||{que:[]},window.pbjs.handleRubiconCallback=function(e){var r="",o={};if(e&&"ok"===e.status)try{var c="",u=s.getPlacementIdByCBIdentifer(t(e));if(u&&(r=u.placementCode,u.status=i.STATUS.GOOD,c=u.iframeId),o=a.createBid(1),e.ads&&e.ads[0]){var p=e.ads[0],l=d[p.size_id],f=0,g=0,m=window.frames[c],h=m.contentWindow.RubiconAdServing;if(h&&h.AdSizes){l=h.AdSizes[p.size_id];var b=l.dim.split("x");f=b[0],g=b[1]}o.cpm=p.cpm,o.ad="",o.ad_id=p.ad_id,o.bidderCode="rubicon",o.sizeId=p.size_id,o.width=f,o.height=g}}catch(v){n.logError("Error parsing rubicon response bid: "+v.message)}else{o=a.createBid(2),o.bidderCode="rubicon";var u=s.getPlacementIdByCBIdentifer(t(e));u&&(r=u.placementCode)}s.addBidResponse(r,o)},{callBids:e}};t.exports=o},{"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],9:[function(e,t,r){var i=e("../constants.json"),n=e("../utils.js"),a=e("../bidfactory.js"),s=e("../bidmanager.js"),o=e("../adloader"),d="",c=function(){function e(e){var i=e.bids||[];r(t(i))}function t(e){var t,r={},i=[];e.forEach(function(e){r[n.getBidIdParamater("tagid",e.params)]=e});for(t in r)r.hasOwnProperty(t)&&i.push(r[t]);return i}function r(e){var t=window.location.host,r=window.location.pathname+location.search+location.hash,i=[];d=e[0].placementCode,n._each(e,function(e){var t=n.getBidIdParamater("tagid",e.params),r=n.getBidIdParamater("bidfloor",e.params),a=0,o=0,d=e.sizes.length;2===d&&"number"==typeof e.sizes[0]&&"number"==typeof e.sizes[1]?(a=e.sizes[0],o=e.sizes[1]):(a=e.sizes[0][0],o=e.sizes[0][1]),imp={id:n.getUniqueIdentifierStr(),banner:{w:a,h:o},tagid:t,bidfloor:r},i.push(imp),s.pbCallbackMap[imp.id]=e});var a={id:n.getUniqueIdentifierStr(),imp:i,site:{domain:t,page:r}},u="//"+c+"?callback=window.pbjs.sovrnResponse&br="+encodeURIComponent(JSON.stringify(a));o.loadScript(u,null)}var c="ap.lijit.com/rtb/bid";return pbjs.sovrnResponse=function(e){var t={};e&&e.id&&e.seatbid&&0!==e.seatbid.length&&e.seatbid[0].bid&&0!==e.seatbid[0].bid.length?e.seatbid[0].bid.forEach(function(e){var r,n="",o=e.impid,d=s.getPlacementIdByCBIdentifer(o);if(d)if(n=d.placementCode,d.status=i.STATUS.GOOD,r=parseFloat(e.price),0!==r){e.placementCode=n,e.size=d.sizes;var c=e.adm,u='';t=a.createBid(1),t.creative_id=e.Id,t.bidderCode="sovrn",t.cpm=r,t.ad=decodeURIComponent(c+u);var p=d.sizes.length;2===p&&"number"==typeof d.sizes[0]&&"number"==typeof d.sizes[1]?(t.width=d.sizes[0],t.height=d.sizes[1]):(t.width=d.sizes[0][0],t.height=d.sizes[0][1]),s.addBidResponse(n,t)}else t=a.createBid(2),t.bidderCode="sovrn",s.addBidResponse(n,t);else t=a.createBid(2),t.bidderCode="sovrn",s.addBidResponse(n,t)}):(t=a.createBid(2),t.bidderCode="sovrn",s.addBidResponse(d,t))},{callBids:e}};t.exports=c},{"../adloader":11,"../bidfactory.js":12,"../bidmanager.js":13,"../constants.json":14,"../utils.js":18}],10:[function(e,t,r){var i=e("../adloader"),n=e("../bidfactory"),a=e("../bidmanager"),s=e("../utils"),o=function(){window.ybotq=window.ybotq||[];var e={BID_STATUS:{PENDING:0,AVAILABLE:1,EMPTY:2},definedSlots:[],pageLevelOption:!1,buildCreative:function(e,t){return'"},buildBid:function(t){var r={};if(t&&t.ybot_ad&&"n"!==t.ybot_ad){r=n.createBid(e.BID_STATUS.AVAILABLE),r.cpm=parseInt(t.ybot_cpm)/100||0;var i=t.ybot_size?t.ybot_size.split("x"):[0,0],a=t.ybot_slot||"",s=t.ybot_size||"";r.width=i[0]||0,r.height=i[1]||0,r.ad=e.buildCreative(a,s);for(var o in t)r[o]=t[o]}else r=n.createBid(e.BID_STATUS.EMPTY);return r.bidderCode="yieldbot",r},callBids:function(t){var r=t.bids||[],n=window.ybotq||[];e.pageLevelOption=!1,n.push(function(){var t=window.yieldbot;s._each(r,function(r){var i=r,n=i.params&&i.params.psn||"ERROR_DEFINE_YB_PSN",o=i.params&&i.params.slot||"ERROR_DEFINE_YB_SLOT";t.pub(n),t.defineSlot(o,{sizes:i.sizes||[]});var d=s.getUniqueIdentifierStr();a.pbCallbackMap[d]=i,e.definedSlots.push(d)}),t.enableAsync(),t.go()}),n.push(function(){e.handleUpdateState()}),i.loadScript("//cdn.yldbt.com/js/yieldbot.intent.js")},handleUpdateState:function(){var t=window.yieldbot;s._each(e.definedSlots,function(r){var i,n,s,o;o=a.getPlacementIdByCBIdentifer(r)||{},i=o.params.slot||"",n=t.getSlotCriteria(i),s=o.placementCode||"ERROR_YB_NO_PLACEMENT";var d=e.buildBid(n);a.addBidResponse(s,d)})}};return{callBids:e.callBids}};t.exports=o},{"../adloader":11,"../bidfactory":12,"../bidmanager":13,"../utils":18}],11:[function(e,t,r){r.loadScript=function(e,t){var r=document.createElement("script");r.type="text/javascript",r.async=!0,t&&"function"==typeof t&&(r.readyState?r.onreadystatechange=function(){("loaded"==r.readyState||"complete"==r.readyState)&&(r.onreadystatechange=null,t())}:r.onload=function(){t()}),r.src=e;var i=document.getElementsByTagName("head");i=i.length?i:document.getElementsByTagName("body"),i.length&&(i=i[0],i.insertBefore(r,i.firstChild))},r.trackPixel=function(e){try{if(e+="&rnd="+Math.random()){var t=document.createElement("img");t.src=e}}catch(r){}}},{}],12:[function(e,t,r){function i(e){function t(){switch(i){case 0:return"Pending";case 1:return"Bid available";case 2:return"Bid returned empty or error response";case 3:return"Bid timed out"}}var r=n.getUniqueIdentifierStr(),i=e||0;this.bidderCode="",this.width=0,this.height=0,this.statusMessage=t(),this.adId=r,this.getStatusCode=function(){return i},this.getSize=function(){return this.width+"x"+this.height}}var n=e("./utils.js");r.createBid=function(e){return new i(e)}},{"./utils.js":18}],13:[function(e,t,r){function i(){R={};for(var e=0;et)&&(e=!1)}),e}var g=e("./constants.json"),m=e("./utils.js"),h=(e("./adaptermanager"),e("./events")),b="function",v="undefined",y=[],_=[],I=null,B={},w={};r.pbCallbackMap=w;var E={};r.pbBidResponseByPlacement=E;var C={};r._adResponsesByBidderId=C;var R={};r.bidResponseReceivedCount=R;var S={},T=!1,A=!1,D={},j={};r.getPlacementIdByCBIdentifer=function(e){return w[e]},r.getBidResponseByAdUnit=function(e){return E},r.clearAllBidResponses=function(e){T=!1,A=!1,i(),a(),_.called=!1;for(var t in this.pbBidResponseByPlacement)delete this.pbBidResponseByPlacement[t]},r.getTimedOutBidders=function(){var e=[];return m._each(R,function(t,r){0===t&&e.push(r)}),e},r.increaseBidResponseReceivedCount=function(e){n(e)},r.setExpectedBidsCount=function(e,t){S[e]=t},r.getExpectedBidsCount=s,r.addBidResponse=function(e,t){var r={};if(t){t.requestTimestamp=j[t.bidderCode],t.responseTimestamp=(new Date).getTime(),t.timeToRespond=t.responseTimestamp-t.requestTimestamp,n(t.bidderCode),2===t.getStatusCode()&&(t.cpm=0);var i=m.getPriceBucketString(t.cpm,t.height,t.width);t.pbLg=i.low,t.pbMg=i.med,t.pbHg=i.high,t.adUnitCode=e,t.bidder=t.bidderCode;var a={};t.bidderCode&&0!==t.cpm&&(a=o(t.bidderCode,t),t.adserverTargeting=a),t.adId&&(C[t.adId]=t),e&&E[e]?(r=E[e],r.bids.push(t),r.bidsReceivedCount++):m.logError("Internal error in bidmanager.addBidResponse. Params: "+e+" & "+t),h.emit("bidResponse",e,t)}else r=this.createEmptyBidResponseObj();E[e]=r,this.checkIfAllBidsAreIn(e)},r.createEmptyBidResponseObj=function(){return{bids:[],allBidsAvailable:!1,bidsReceivedCount:0}},r.registerDefaultBidderSetting=function(e,t){D[e]=t},r.registerBidRequestTime=function(e,t){j[e]=t},r.executeCallback=function(){if(typeof pbjs.registerBidCallbackHandler===b&&!A)try{pbjs.registerBidCallbackHandler(),A=!0}catch(e){A=!0,m.logError("Exception trying to execute callback handler registered : "+e.message)}if(_.called!==!0){var t=[];u(_,t),_.called=!0}if(I){var t=[],r=pbjs.getBidResponses();t.push(r),u(I,t),I=null}},r.allBidsBack=function(){return T},r.setBidderMap=function(e){B=e},r.checkIfAllBidsAreIn=function(e){T=f(),l(e),T&&this.executeCallback()},r.addOneTimeCallback=function(e){I=e},r.addCallback=function(e,t,r){t.id=e,g.CB.TYPE.ALL_BIDS_BACK===r?_.push(t):g.CB.TYPE.AD_UNIT_BIDS_BACK===r&&y.push(t)}},{"./adaptermanager":1,"./constants.json":14,"./events":15,"./utils.js":18}],14:[function(e,t,r){t.exports={JSON_MAPPING:{PL_CODE:"code",PL_SIZE:"sizes",PL_BIDS:"bids",BD_BIDDER:"bidder",BD_ID:"paramsd",BD_PL_ID:"placementId",ADSERVER_TARGETING:"adserverTargeting",BD_SETTING_STANDARD:"standard"},DEBUG_MODE:"pbjs_debug",STATUS:{GOOD:"good",TIMEOUT:"timed out"},CB:{TYPE:{ALL_BIDS_BACK:"allRequestedBidsBack",AD_UNIT_BIDS_BACK:"adUnitBidsBack"}},objectType_function:"function",objectType_undefined:"undefined",objectType_object:"object",objectType_string:"string",objectType_number:"number",EVENTS:{BID_TIMEOUT:"bidTimeout",BID_REQUESTED:"bidRequested",BID_RESPONSE:"bidResponse",BID_WON:"bidWon"}}},{}],15:[function(e,t,r){var i=e("./utils"),n=e("./constants"),a=Array.prototype.slice,s=i._map(n.EVENTS,function(e){return e}),o=[];t.exports=function(){function e(e,t){i.logMessage("Emitting event for: "+e),o.push({eventType:e,args:t}),i._each(r[e],function(e){if(e)try{e.apply(null,t)}catch(r){i.logError("Error executing handler:","events.js",r)}})}function t(e){return i.contains(s,e)}var r={},n={};return n.on=function(e,n){t(e)?(r[e]=r[e]||[],r[e].push(n)):i.logError("Wrong event name : "+e+" Valid event names :"+s)},n.emit=function(t){var r=a.call(arguments,1);e(t,r)},n.off=function(e,t,n){i.isEmpty(r[e])||i._each(r[e],function(e){null!==e[t]&&void 0!==e[t]&&("undefined"==typeof n||e[t]===n)&&(e[t]=null)})},n.get=function(){return r},n.getEvents=function(){var e=[];return i._each(o,function(t){var r=i.extend({},t);e.push(r)}),e},n}()},{"./constants":14,"./utils":18}],16:[function(e,t,r){function i(){for(var e=0;e0&&i.push({cpm:s.cpm,bid:s}),t.push(n)}}if(r&&0!==i.length){var o=u(i),d=o.adserverTargeting;O[r]=_.extend(O[r],d)}return t}function g(e){var t={};if(e){var r=JSON.stringify(e);t=JSON.parse(r),delete t.pbLg,delete t.pbMg,delete t.pbHg}return t}function m(){I.clearAllBidResponses(),N={},U=[],O={},q=!1}function h(e){var t=e;m(),n(t)}function b(e){var t=null;return e&&(t=v.getAdserverTargetingForAdUnitCode(e.getSlotElementId()),t||(t=v.getAdserverTargetingForAdUnitCode(e.getAdUnitPath()))),t}window.pbjs=window.pbjs||{},window.pbjs.que=window.pbjs.que||[];var v=window.pbjs,y=e("./constants.json"),_=e("./utils.js"),I=e("./bidmanager.js"),B=e("./adaptermanager"),w=e("./bidfactory"),E=e("./adloader"),C=e("./ga"),R=e("./events"),S="function",T="undefined",A="object",D="string",j=y.EVENTS.BID_WON,P=y.EVENTS.BID_TIMEOUT,x=[],U=[],N={},O={},M={},q=!1;v.bidderTimeout=v.bidderTimeout||3e3,v.logging=v.logging||!1,v.libLoaded=!0,v.adUnits=v.adUnits||[],v.que.push=function(e){if(typeof e===S)try{e.call()}catch(t){_.logError("Error processing command :"+t.message)}else _.logError("Commands written into pbjs.que.push must wrapped in a function")},v.getAdserverTargetingForAdUnitCodeStr=function(e){if(e){var t=v.getAdserverTargetingForAdUnitCode(e);return _.transformAdServerTargetingObj(t)}_.logMessage("Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode")},v.getAdserverTargetingForAdUnitCode=function(e){return v.getBidResponses(e),e?O[e]:O},v.getAdserverTargeting=function(){return v.getAdserverTargetingForAdUnitCode()},v.getBidResponses=function(e){var t={},r=[],i={};if(e)t=l(e),r=[],t&&t.bids&&(r=f(t.bids)),i={bids:r};else{t=l();for(var n in t)t.hasOwnProperty(n)&&(t&&t[n]&&t[n].bids&&(r=f(t[n].bids)),i[n]={bids:r})}return i},v.getBidResponsesForAdUnitCode=function(e){return v.getBidResponses(e)},v.setTargetingForAdUnitsGPTAsync=function(e){if(!window.googletag||!_.isFn(window.googletag.pubads)||!_.isFn(window.googletag.pubads().getSlots))return void _.logError("window.googletag is not defined on the page");s();var t=e;typeof e===D?t=[e]:typeof e===A&&(t=e);var r={},i=0;if(t)for(i=0;i'),e.close(),e.defaultView&&e.defaultView.frameElement&&(e.defaultView.frameElement.width=n,e.defaultView.frameElement.height=i)):_.logError("Error trying to write ad. No ad for bid response id: "+t)}else _.logError("Error trying to write ad. Cannot find ad by given id : "+t)}catch(o){_.logError("Error trying to write ad Id :"+t+" to the page:"+o.message)}else _.logError("Error trying to write ad Id :"+t+" to the page. Missing document or adId")},v.requestBidsForAdUnit=function(e){m(),n(e)},v.requestBidsForAdUnits=function(e){if(!e||e.constructor!==Array)return void _.logError("requestBidsForAdUnits must pass an array of adUnits");m();var t=v.adUnits.slice(0);v.adUnits=e,n(),v.adUnits=t},v.removeAdUnit=function(e){if(e)for(var t=0;t=0&&200>e?t="0-200ms":e>=200&&300>e?t="200-300ms":e>=300&&400>e?t="300-400ms":e>=400&&500>e?t="400-500ms":e>=500&&600>e?t="500-600ms":e>=600&&800>e?t="600-800ms":e>=800&&1e3>e?t="800-1000ms":e>=1e3&&1200>e?t="1000-1200ms":e>=1200&&1500>e?t="1200-1500ms":e>=1500&&2e3>e?t="1500-2000ms":e>=2e3&&(t="2000ms above"),t}function s(e){var t;return e>=0&&.5>e?t="$0-0.5":e>=.5&&1>e?t="$0.5-1":e>=1&&1.5>e?t="$1-1.5":e>=1.5&&2>e?t="$1.5-2":e>=2&&2.5>e?t="$2-2.5":e>=2.5&&3>e?t="$2.5-3":e>=3&&4>e?t="$3-4":e>=4&&6>e?t="$4-6":e>=6&&8>e?t="$6-8":e>=8&&(t="$8 above"),t}function o(e){e&&e.bidderCode&&y.push(function(){w++,window[_]("send","event",B,"Requests",e.bidderCode,1,v)}),i()}function d(e){e&&e.bidder&&y.push(function(){var t=n(e.cpm),r=e.bidder;if("undefined"!=typeof e.timeToRespond&&E){w++;var i=a(e.timeToRespond);window[_]("send","event","Prebid.js Load Time Distribution",i,r,1,v)}if(e.cpm>0){w+=2;var o=s(e.cpm);E&&(w++,window[_]("send","event","Prebid.js CPM Distribution",o,r,1,v)),window[_]("send","event",B,"Bids",r,t,v),window[_]("send","event",B,"Bid Load Time",r,e.timeToRespond,v)}}),i()}function c(e){l._each(e,function(e){y.push(function(){w++,window[_]("send","event",B,"Timeouts",e,1,v)})}),i()}function u(e){var t=n(e.cpm);y.push(function(){w++,window[_]("send","event",B,"Wins",e.bidderCode,t,v)}),i()}var p=e("./events"),l=e("./utils"),f=e("./constants.json"),g=f.EVENTS.BID_REQUESTED,m=f.EVENTS.BID_TIMEOUT,h=f.EVENTS.BID_RESPONSE,b=f.EVENTS.BID_WON,v={nonInteraction:!0},y=[],_=null,I=!0,B="Prebid.js Bids",w=0,E=!1;r.enableAnalytics=function(e){_="undefined"!=typeof e.global?e.global:"ga","undefined"!=typeof e.enableDistribution&&(E=e.enableDistribution);var t=null,r=p.getEvents();l._each(r,function(e){var r=e.args;if(e)if(e.eventType===g)t=r[0],o(t);else if(e.eventType===h)t=r[1],d(t);else if(e.eventType===m){var i=r[0];c(i)}else e.eventType===b&&(t=r[0],u(t))}),p.on(g,function(e){o(e)}),p.on(h,function(e,t){d(t)}),p.on(m,function(e){c(e)}),p.on(b,function(e){u(e)})}},{"./constants.json":14,"./events":15,"./utils":18}],18:[function(e,t,r){function i(){return v()+Math.random().toString(16).substr(2)}function n(){return window.console&&window.console.log}{var a=e("./constants.json"),s="object",o="string",d="number",c=!1,u=5,p=20,l=20,f="Array",g="String",m="Function",h=Object.prototype.toString,b=Object.prototype.hasOwnProperty;Array.prototype.slice}r.replaceTokenInString=function(e,t,r){return this._each(t,function(t,i){t=void 0===t?"":t;var n=r+i.toUpperCase()+r,a=new RegExp(n,"g");e=e.replace(a,t)}),e};var v=function(){var e=0;return function(){return e++,e}}();r.getUniqueIdentifierStr=i,r.getBidIdParamater=function(e,t){return t&&t[e]?t[e]:""},r.tryAppendQueryString=function(e,t,r){return r?e+=t+"="+encodeURIComponent(r)+"&":e},r.parseQueryStringParameters=function(e){var t="";for(var r in e)e.hasOwnProperty(r)&&(t+=r+"="+encodeURIComponent(e[r])+"&");return t},r.transformAdServerTargetingObj=function(e){var t="";if(!e)return"";for(var r in e)e.hasOwnProperty(r)&&(t+=r+"="+encodeURIComponent(e[r])+"&");return t},r.extend=function(e,t){return e=e||{},this._each(t,function(r,i){e[i]=typeof t[i]===s?this.extend(e[i],t[i]):t[i]}),e},r.parseSizesInput=function(e){var t,r=[];if(typeof e===o){var i=e.split(","),n=/^(\d)+x(\d)+$/i;if(i)for(var a in i)hasOwn(i,a)&&i[a].match(n)&&r.push(i[a])}else if(typeof e===s){var c=e.length;if(c>0)if(2===c&&typeof e[0]===d&&typeof e[1]===d)r.push(this.parseGPTSingleSizeArray(e));else for(var u=0;c>u;u++)r.push(this.parseGPTSingleSizeArray(e[u]))}var p=r.length;if(p>0&&(t="size="+r[0],p>1)){t+="&promo_sizes=";for(var l=1;p>l;l++)t+=r[l]+=",";t&&","===t.charAt(t.length-1)&&(t=t.slice(0,t.length-1))}return t},r.parseGPTSingleSizeArray=function(e){return!this.isArray(e)||2!==e.length||isNaN(e[0])||isNaN(e[1])?void 0:e[0]+"x"+e[1]},r.getTopWindowUrl=function(){try{return window.top.location.href}catch(e){return window.location.href}},r.logMessage=function(e){_()&&n()&&console.log("MESSAGE: "+e)},r.hasConsoleLogger=n;var y=function(e){return e?window.console.error?"error":"log":""}(n()),_=function(){return pbjs.logging===!1&&c===!1&&(pbjs.logging="TRUE"===I(a.DEBUG_MODE).toUpperCase(),c=!0),pbjs.logging?!0:!1};r.debugTurnedOn=_,r.logError=function(e,t,r){var i=t||"ERROR";_()&&n()&&console[y].call(console,i+": "+e,r||"")},r.createInvisibleIframe=function(){var e=document.createElement("iframe");return e.id=i(),e.height=0,e.width=0,e.border="0px",e.hspace="0",e.vspace="0",e.marginWidth="0",e.marginHeight="0",e.style.border="0",e.scrolling="no",e.frameBorder="0",e.src="about:self",e.style="display:none",e};var I=function(e){var t="[\\?&]"+e+"=([^&#]*)",r=new RegExp(t),i=r.exec(window.location.search);return null===i?"":decodeURIComponent(i[1].replace(/\+/g," "))};r.getPriceBucketString=function(e){var t="",r="",i="",n=0,a={low:t,med:r,high:i};try{n=parseFloat(e),n&&(a.low=n>u?u.toFixed(2):(Math.floor(2*e)/2).toFixed(2),a.med=n>p?p.toFixed(2):(Math.floor(10*e)/10).toFixed(2),a.high=n>l?l.toFixed(2):(Math.floor(100*e)/100).toFixed(2))}catch(s){this.logError("Exception parsing CPM :"+s.message)}return a},r.hasValidBidRequest=function(e,t,r){for(var i=0;i0);for(var t in e)if(b.call(e,t))return!1;return!0},r._each=function(e,t){if(!this.isEmpty(e)){if(this.isFn(e.forEach))return e.forEach(t,this);var r=0,i=e.length;if(i>0)for(;i>r;r++)t(e[r],r,e);else for(r in e)b.call(e,r)&&t.call(this,e[r],r)}},r.contains=function(e,t){if(this.isEmpty(e))return!1;if(this.isFn(e.indexOf))return-1!==e.indexOf(t);for(var r=e.length;r--;)if(e[r]===t)return!0;return!1},r._map=function(e,t){if(this.isEmpty(e))return[];if(this.isFn(e.map))return e.map(t);var r=[];return this._each(e,function(i,n){r.push(t(i,n,e))}),r}},{"./constants.json":14}]},{},[16]); \ No newline at end of file diff --git a/src/adapters/casale.js b/src/adapters/casale.js deleted file mode 100644 index 2be18902516..00000000000 --- a/src/adapters/casale.js +++ /dev/null @@ -1,133 +0,0 @@ -//Factory for creating the bidderAdaptor -var CONSTANTS = require('../constants.json'); -var utils = require('../utils.js'); -var bidfactory = require('../bidfactory.js'); -var bidmanager = require('../bidmanager.js'); - -var ADAPTER_NAME = 'CASALE'; -var ADAPTER_CODE = 'casale'; - -var CasaleAdapter = function CasaleAdapter() { - var slotIdMap = {}; - var requiredParams = [ - /* 0 */ - 'slotId', - /* 1 */ - 'casaleUrl' - ]; - var firstAdUnitCode = ''; - - function _callBids(request) { - var bidArr = request.bids; - - //validate first bid request with all required params. - if (!utils.hasValidBidRequest(bidArr[0].params, requiredParams, ADAPTER_NAME)) { - return; - } - for (var i = 0; i < bidArr.length; i++) { - var bid = bidArr[i]; - //only validate 1st param on rest of bids - if (utils.hasValidBidRequest(bid.params, requiredParams.slice(0, 1), ADAPTER_NAME)) { - firstAdUnitCode = bid.placementCode; - var slotId = bid.params[requiredParams[0]]; - slotIdMap[slotId] = bid; - } - } - - var adUrl = bidArr[0].params[requiredParams[1]]; - var iframeContents = createRequestContent(adUrl); - var iframe = buildIframeContainer(); - var iframeId = iframe.id; - //attach to onload event of iframe to ensure script is ready - utils.addEventHandler(iframe, 'load', function() { - try { - var iframeObj = window.frames[iframeId]; - var casaleObj = iframeObj.contentWindow._IndexRequestData.targetIDToBid; - var lookupObj = iframeObj.contentWindow.cygnus_index_args; - - if (utils.isEmpty(casaleObj)) { - //no bid response - var bid = bidfactory.createBid(2); - bid.bidderCode = ADAPTER_CODE; - logErrorBidResponse(); - return; - } - - utils._each(casaleObj, function(adContents, cpmAndSlotId) { - - utils._each(slotIdMap, function(bid, adSlotId) { - var obj = cpmAndSlotId.split('_'); - var currentId = obj[0]; - var currentCPM = obj[1]; - if (currentId === adSlotId) { - var bidObj = slotIdMap[adSlotId]; - var adUnitCode = bidObj.placementCode; - var slotObj = getSlotObj(lookupObj, adSlotId); - bid = bidfactory.createBid(1); - bid.cpm = (currentCPM / 100); - bid.ad = adContents; - bid.ad_id = adSlotId; - bid.bidderCode = ADAPTER_CODE; - bid.width = slotObj.width; - bid.height = slotObj.height; - bid.siteID = slotObj.siteID; - bidmanager.addBidResponse(adUnitCode, bid); - } - }); - }); - - } catch (e) { - utils.logError('Error calling casale adapter', ADAPTER_NAME, e); - logErrorBidResponse(); - } - }); - - var iframeDoc = iframe.contentWindow.document; - iframeDoc.write(iframeContents); - iframeDoc.close(); - } - - function getSlotObj(obj, id) { - var arr = obj.slots; - var returnObj = {}; - utils._each(arr, function(value) { - if (value.id === id) { - returnObj = value; - } - }); - return returnObj; - } - - function logErrorBidResponse() { - //no bid response - var bid = bidfactory.createBid(2); - bid.bidderCode = ADAPTER_CODE; - //log error to first add unit - bidmanager.addBidResponse(firstAdUnitCode, bid); - } - - function buildIframeContainer() { - var iframe = utils.createInvisibleIframe(); - var elToAppend = document.getElementsByTagName('head')[0]; - //insert the iframe into document - elToAppend.insertBefore(iframe, elToAppend.firstChild); - return iframe; - - } - - function createRequestContent(url) { - var content = 'inDapIF=true;'; - content += ''; - content += ''; - content += ''; - return content; - } - - - return { - callBids: _callBids - }; - //end of Rubicon bid adaptor -}; - -module.exports = CasaleAdapter; \ No newline at end of file