!function(){"use strict";var a=function(a){this.CONFIG=a,this.CONFIG.PUBLISHER={},this[this.CONFIG.SYSTEM.MODULESTORE]={},this[this.CONFIG.SYSTEM.ACTIVERESOURCES]={},this[this.CONFIG.SYSTEM.ADTEMPLATES]={},window.getSDG=function(){return SDG}};a.prototype={modStore:function(){return this[SDG.CONFIG.SYSTEM.MODULESTORE]},core:function(){return this[SDG.CONFIG.SYSTEM.CORE]},getCore:function(){return this.core()},modConfig:function(){return"CONFIG.MODULES"},getRes:function(){return this.resources()},getSetup:function(){return this.CONFIG},getCN:function(){return this.core().get(SDG.CONFIG.MODULES.ADSLOT_CONTROLLER)},getPUB:function(){return this[SDG.CONFIG.SYSTEM.PUBLIC_API]},getAdLib:function(){return this[SDG.CONFIG.SYSTEM.ADTEMPLATES]},getEventDispatcher:function(){return this.core().get(SDG.CONFIG.MODULES.EVENT_DISPATCHER)},getAdServer:function(){return this.core().get(SDG.CONFIG.MODULES.ADSERVER)},getFormatController:function(){return this.core().get(SDG.CONFIG.MODULES.FORMAT_CONFIG)},getVideoAdServer:function(){return this.core().get(SDG.CONFIG.MODULES.VIDEO)},getConsentManager:function(){return this.core().get(SDG.CONFIG.MODULES.CONSENTMANAGER)},getUtil:function(){return this[SDG.CONFIG.SYSTEM.UTILITY]},getInfoTool:function(){return this.core().get(SDG.CONFIG.MODULES.INFOTOOL)},getTTracker:function(){return this.core().get(SDG.CONFIG.MODULES.TTRACKER)},getCookieLayer:function(){return this.core().get(SDG.CONFIG.MODULES.COOKIELAYER)},log:function(a,b,c){SDG.core().get(SDG.CONFIG.MODULES.LOGGER).saveLogEntry(a,b,c)},loglvl:function(a){return this.core().get(SDG.CONFIG.MODULES.LOGGER).getLogStringAsNumber(a)},buildAd:function(a,b){this.core().get(SDG.CONFIG.MODULES.FORMAT_CONFIG).buildAd(a,b)},addInfoToolReport:function(a){return this.core().get(SDG.CONFIG.MODULES.INFOTOOL).addInfoToolReport(a)},getPath:function(){return this.CONFIG.SYSTEM.MODULESTORE}},window.SDG=new a({PROTOCOLS:{HTTP:"http:",HTTPS:"https:"},MODULES:{EVENT_DISPATCHER:"EventDispatcher",PUBLISHER_CONFIG:"PublisherConfig",ADSERVER_CONTROLLER:"AdServerControl",ADSERVER:"AdServer",LOGGER:"Logger",POSTSCRIBE:"postScribe",ADSLOT_CONTROLLER:"PlacementController",TAGMAN_CONVERTER:"TagManConverter",AD_LABELS:"AdLabels",GENERIC_TARGETING:"GenericTargets",FORMAT_CONFIG:"FormatController",TTRACKER:"timeTracker",INFOTOOL:"InfoTool",ADXPOSITIONS:"adxPosition",STICKYPLACEMENT:"stickySlot",CONSENTMANAGER:"Cmp",ADP:"audienceDiscoverPlattform",MEETRICS:"meetrics",NUGGAD_DMP:"nuggAdSegments",AUDIENCE_SCIENCE:"audienceScience",XAXISFOOTERBIDDER:"xaxisFooterBidder",OPENX:"openX",PREBID:"preBid",CRITEOONETAG:"criteoOneTag",NEUSTAR:"neustar",MBR_USER_ID:"mbrId",CRITEOBIDDER:"criteoBidder",VIDEO:"Video",CORALOGIX:"Coralogix",POSTCOOKIE:"PostCookie",PUBSTACK:"Pubstack",NETID:"NetID",COOKIELAYER:"CookieLayer",TRAFILLER:"Trafiller"},SYSTEM:{CORE:"Core",ACTIVERESOURCES:"ResourcesContainer",UTILITY:"Utilities",PUBLISHER:"COnf?",ADTEMPLATES:"AdTemplates",MODULESTORE:"ModuleStore",PUBLIC_API:"Publisher",MODULES:"ModuleStore"},LOGGER:{LEVELS:{NOLOG:0,DEBUG:10,INFO:20,NOTICE:30,WARNING:40,ERROR:50,CRITICAL:60,ALERT:70,EMERGENCY:80}}})}(),SDG.modStore().Advertisement=function(a,b,c,d){"use strict";this._mediaSegments={anchor:new SDG[SDG.CONFIG.SYSTEM.MODULESTORE].MediaClass(a,!!b.useAdServerNodeForAnchor)},this._countPixel={container:void 0},this._jsonData=b,this._connectedPlacement=c,this.formatParent=d,this.renderingNode=this.getRenderingNode(),this._visibilityDomNodes=[]},SDG.modStore().Advertisement.prototype={getAnchor:function(){"use strict";return this.getMedia("anchor").getNode()},getPlacement:function(){return this._connectedPlacement},getRenderingNode:function(){return this.formatParent.customRenderNodeQuery?document.querySelector(this.formatParent.customRenderNodeQuery)||(SDG.log("FORMATS: %o has a customRenderNodeQuery set: "+this.formatParent.customRenderNodeQuery+" which does not lead to a valid DOM-Node. Falling back to placement container for rendering the ad.","ERROR",this.formatParent.name),this.getPlacement().getContainer()):this.getPlacement().getContainer()},renderAnchor:function(){"use strict";var a=this.getMedia("anchor");return this.getResponseParameters().useAdServerNodeForAnchor&&this.formatParent.customRenderNodeQuery&&SDG.log('FORMATS: Ad construction for "'+this.getResponseParameters().name+'" uses a customRenderNodeQuery and the AdServer node as anchor. This might lead to count differences. To avoid problems, the ad will NOT use the customRenderNodeQuery!',"WARNING"),a.attachTo(this.renderingNode),!0},addMedia:function(a,b,c){"use strict";return this.getMediaStore()[a]=new SDG[SDG.CONFIG.SYSTEM.MODULESTORE].MediaClass(b,void 0!==c&&c),this.getMediaStore()[a]},getMediaStore:function(){"use strict";return this._mediaSegments},getMedia:function(a){"use strict";return this.getMediaStore()[a]},getResponseParameters:function(){"use strict";return this._jsonData},startLocalBuildProcess:function(){var a=this;return this.formatParent.executeFormatStartFunction(a)},finishLocalBuildProcess:function(){var a=this;return this.formatParent.executeFormatFinishFunction(a)},addVisibilityNode:function(a){"object"==typeof a&&void 0!==a.tagName?this._visibilityDomNodes.push(a):SDG.log("ADVERTISEMENT: "+this.formatParent.name.toUpperCase()+": Template reported an erroneous domNode to measure visibility. Node seems not to be an valid HTML Element.","ERROR")},renderingComplete:function(){this.getPlacement().setIdsForSystem("meetrics",{formatCode:this.formatParent.meetricsFormatCode,domNodes:this._visibilityDomNodes}),this.executeCallback(),SDG.log(this.getPlacement().getName().toUpperCase()+": "+this.formatParent.name.toUpperCase()+": ADVERTISEMENT: Ad assets build and appended to page. Delivery finished!","DEBUG")},executeCallback:function(){"use strict";if("function"==typeof this.getResponseParameters().callbackOnEnd)try{return this.getResponseParameters().callbackOnEnd(),!0}catch(a){return SDG.log("FORMATS: Error during AdFormat Callback: %o","ERROR",[a]),!1}return!0},startTemplate:function(){"use strict";var a=SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES],b=this.formatParent.useTemplate;return"none"!==b?"function"==typeof a["template"+b]?a["template"+b](this):(SDG.log('ADVERTISEMENT: Ad construction for "'+this.getResponseParameters().name+'" encountered an error. A template was selected for the format, but no such template could be found! Impression for the ad call is now void!',"CRITICAL"),!1):(SDG.log('ADVERTISEMENT: Ad construction for "'+this.getResponseParameters().name+'" was processed without a template. Not all format features might be available and working!',"DEBUG"),!0)},createCountContainer:function(){"use strict";return this._countPixel.container=document.createElement("div"),this._countPixel.container.className="sdgCountPixelAnker",this._countPixel.container.style.display="none",this._countPixel.container},addCountPixel:function(a,b){"use strict";return this._countPixel[a]=b,this._countPixel[a]},getCountContainer:function(){"use strict";return void 0!==this._countPixel.container?this._countPixel.container:this.createCountContainer()},setActiveBackground:function(){this._activeBackground=!0},deleteAllContent:function(){"use strict";var a,b,c,d=this.getMediaStore();this._activeBackground&&SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].featureController.removeBackground(this.getAnchor());for(a in d)d.hasOwnProperty(a)&&(c=d[a],"anchor"!==a&&c.detach());null!==this.getAnchor().parentNode&&this.getAnchor().parentNode.removeChild(this.getAnchor()),delete this._mediaSegments;for(b in this._countPixel)this._countPixel.hasOwnProperty(b)&&"container"!==b&&void 0!==this._countPixel[b]&&null!==this._countPixel[b].parentNode&&this._countPixel[b].parentNode.removeChild(this._countPixel[b]);return this._countPixel.container&&null!==this._countPixel.container.parentNode&&this._countPixel.container.parentNode.removeChild(this._countPixel.container),delete this._countPixel,!0}},SDG.modStore().MediaClass=function(a,b){this._node=a,this._attached=b},SDG.modStore().MediaClass.prototype={attachTo:function(a){if(this._attached)return!1;a.appendChild(this.getNode()),this._attached=!0},getNode:function(){return this._node},detach:function(){this.getNode()&&null!==this.getNode().parentNode&&(this.getNode().parentNode.removeChild(this.getNode()),this._attached=!1)}},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].featureController={currentStickies:[],currentBackgrounds:[],currentResizes:[],currentScrollTop:0,currentScrollLeft:0,currentViewportWidth:0,currentViewportHeight:0,siteAdhesionUnitHeight:0,iterateScrollFeatures:function(){"use strict";var a=SDG.getPUB().getConfig().getAdhesionUnit(),b=void 0!==SDG.getPUB().getConfig().getFeatureValue("adhesionUnitGap")?parseInt(SDG.getPUB().getConfig().getFeatureValue("adhesionUnitGap")):0;this.siteAdhesionUnitHeight=a?a.offsetHeight+a.offsetTop+b:0,this.currentStickies.forEach(function(a){a.recalcAfterScroll()}),this.currentBackgrounds.forEach(function(a){a.recalcAfterScroll()})},iterateResizeFeatures:function(){"use strict";this.currentStickies.forEach(function(a){a.recalcAfterResize()}),this.currentResizes.forEach(function(a){a.recalcAfterResize()})},addSticky:function(a,b,c){return this.currentStickies.push(new this.StickyInstance(a,b,c)),!0},removeSticky:function(a){this.currentStickies=this.currentStickies.filter(function(b){return b.name!==a.nodeName+"#"+a.id||(b.setObjectInert(),!1)})},addResize:function(a,b,c){return this.currentResizes.push(new this.ResizeInstance(a,b,c)),!0},addBackground:function(a,b){return this.currentBackgrounds.push(new this.BackgroundInstance(a,b)),!0},removeBackground:function(a){this.currentBackgrounds=this.currentBackgrounds.filter(function(b){return b.name!==a.nodeName+"#"+a.id||(b.deleteColor(),!1)})}},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].startAdConstruction=function(a,b,c){"use strict";var d,e=b.useAdServerNodeForAnchor?c.getAdServerNode():document.createElement("div");return"object"!=typeof c?(SDG.log("FORMATS: Error during ad construction. Placement for new ad not found, discarding impression for ad "+b.name+"! Please contact Stroeer Technical Partner Management for further informations.","EMERGENCY"),!1):(d=c.prepareNewAd(e,b,a),d.startTemplate()?void this.finishAdConstruction(d):(SDG.log("FORMATS: "+c.getName().toUpperCase()+": Error during ad construction. Calling template"+a.useTemplate+"() did not return positive results. Discarding impression for ad "+b.name+"!","EMERGENCY"),!1))},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].finishAdConstruction=function(a){"use strict";var b=a.getResponseParameters(),c=a.getPlacement();b.countPix&&(this.setupCountPixels(a),c.getContainer().appendChild(c.getAd().getCountContainer())),b.formatParams&&b.formatParams.useBackgroundColor&&SDG.getPUB().getConfig().getFeatureValue("allowBackgroundColor")&&(c.getAd().setActiveBackground(),this.addBackground(b.formatParams.backgroundColor,c.getAd().getAnchor()),b.formatParams.backgroundClickable&&SDG.getPUB().getConfig().getFeatureValue("allowClickableBackground")&&this.buildBackgroundClick(a)),SDG.getPUB().getConfig().getFeatureValue("allowStickies")&&this.processStickySegments(a),a.renderingComplete()},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].setupCountPixels=function(a){"use strict";var b=a.getResponseParameters();for(var c in b.countPix)b.countPix.hasOwnProperty(c)&&this.buildCountPixel(a,c,b.countPix[c].tech,b.countPix[c].url)},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].addSticky=function(a,b,c){"use strict";c=void 0===c||c,a&&b?this.featureController.addSticky(a,b,c):SDG.log("FORMATS: StickyInstance was created with an invalid DOM Node. Abandoning StickyInstance to avoid further errors.","ERROR")},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].removeSticky=function(a){"use strict";a&&"number"==typeof a.nodeType?this.featureController.removeSticky(a):SDG.log("FORMATS: Invalid DOM Node passed to remove sticky effect.","ERROR")},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].addBackground=function(a,b){"use strict";b&&this.featureController.addBackground(a,b)?SDG.log("FORMATS: BackgroundColorInstance successfully created, used %o as color and %o as reference.","DEBUG",[a,b]):SDG.log("FORMATS: BackgroundColorInstance was created with an invalid DOM Node. Abandoning BackgroundColorInstance to avoid further errors.","ERROR")},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].removeBackground=function(a){"use strict";a&&"number"==typeof a.nodeType?this.featureController.removeBackground(a):SDG.log("FORMATS: Invalid DOM Node passed to remove background color effect.","ERROR")},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].addResize=function(a,b,c){"use strict";b&&this.featureController.addResize(a,b,c)?SDG.log("FORMATS: ResizeInstance successfully created, used %o as object and %o as reference.","DEBUG",[a,b]):SDG.log("FORMATS: ResizeInstance was created with an invalid DOM Node. Abandoning ResizeInstance to avoid further errors.","ERROR")},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].buildMediaSegments=function(a){"use strict";var b,c,d,e=a.getPlacement(),f=a.getResponseParameters();for(var g in f.Media)if(f.Media.hasOwnProperty(g)){if(b=f.Media[g],"ExistingElement"===b.file.type)c=a.addMedia(b.mediaName,SDG.getAdServer().getAdServerContainerForPlacement(e),!0);else{if(c=a.addMedia(b.mediaName,this.buildContainer(b),!1),!(d=this["build"+b.file.type+"Media"](b,a)))return SDG.log("FORMATS: Error during MediaSegments construction! JSON segment causing the error: %o","ERROR",[b]),!1;"string"==typeof d?c.getNode().innerHTML=d:c.getNode().appendChild(d),SDG.getUtil().hasObjectKeys(b.file.expandable)&&this.buildExpandable(b,a)}a.addVisibilityNode(c.getNode())}return!0},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].buildContainer=function(a){"use strict";var b=document.createElement("div");return b.id="div-"+a.file.fileId,b.style.top="0px",b.style.left="0px",b.style.zIndex="2",b},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].buildExpandable=function(a,b){"use strict";var c,d,e,f,g,h,i,j;switch(c=b.getMedia(a.mediaName).getNode(),d=a.file.expandable.collapsedHeight,e=a.file.expandable.collapsedWidth,f=a.file.height,g=a.file.width,c.style.position="absolute",c.style.overflow="hidden",a.file.expandable.direction){case"u":h="rect("+(f-d)+"px "+g+"px "+f+"px 0px)",i=-(f-d),j=0;break;case"ur":h="rect("+(f-d)+"px "+e+"px "+f+"px 0px)",i=-(f-d),j=0;break;case"r":h="rect(0px "+e+"px "+f+"px 0px)",i=0,j=0;break;case"rd":h="rect(0px "+e+"px "+d+"px 0px)",i=0,j=0;break;case"d":h="rect(0px "+g+"px "+d+"px 0px)",i=0,j=0;break;case"dl":h="rect(0px "+g+"px "+d+"px "+(g-e)+"px)",i=0,j=-(g-e);break;case"l":h="rect(0px "+g+"px "+f+"px "+(g-e)+"px)",i=0,j=-(g-e);break;case"lu":h="rect("+(f-d)+"px "+g+"px "+f+"px "+(g-e)+"px)",i=-(f-d),j=-(g-e)}a.file.expandable.startExpanded?c.style.clip="rect(0px "+g+"px "+f+"px 0px)":c.style.clip=h,c.style.top=i+"px",c.style.left=j+"px",c.style.zIndex=100,c.style.width=g+"px",c.style.height=f+"px",window[a.file.expandable.collapseFunc]=function(){c.style.clip=h},window[a.file.expandable.expandFunc]=function(){c.style.clip="rect(0px "+g+"px "+f+"px 0px)"};for(var k in b.getResponseParameters().Media)b.getResponseParameters().Media.hasOwnProperty(k)&&(window[b.getResponseParameters().Media[k].file.fileId+"_DoFSCommand"]=function(b){switch(b){case a.file.expandable.expandFsCommand:window[a.file.expandable.expandFunc]();break;case a.file.expandable.collapseFsCommand:window[a.file.expandable.collapseFunc]()}})},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].buildImageMedia=function(a,b){"use strict";var c,d,e;return e=b.getMedia(a.mediaName).getNode(),d=document.createElement("a"),d.href=a.links[0].url,d.target=a.links[0].target,d.id=a.file.fileId,c=document.createElement("img"),c.width=a.file.width,c.height=a.file.height,c.border="0",c.src=a.file.url,d.appendChild(c),e.style.width=a.file.width+"px",e.style.height=a.file.height+"px",d},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].buildIframeMedia=function(a,b){"use strict";var c,d;return d=b.getMedia(a.mediaName).getNode(),c=document.createElement("iframe"),c.width=a.file.width,c.height=a.file.height,c.marginHeight="0",c.marginWidth="0",c.frameBorder="0",c.scrolling="no",c.src=a.file.url,d.style.width=a.file.width+"px",d.style.height=a.file.height+"px",c},SDG[SDG.CONFIG.SYSTEM.ADTEMPLATES].buildHtmlMedia=function(a,b){"use strict";var c,d,e=a.file.htmlString;return!1===/(<\/?.*?html\/?>?)|(<\/?.*?body\/?>?)/g.test(e)&&(e='