
var FT=FT||{};FT.lib={type:function(unk){function arrayLike(o){return(typeof o.length==='number'&&!(o.propertyIsEnumerable('length')));}
function type(o){return(Object.prototype.toString.apply(o)).match(/\[object (\w+)\]/)[1].toLowerCase();}
var t=type(unk);return unk===undefined?"undefined":unk===null?"null":t==="object"&&arrayLike(unk)?"arraylike":t==="arguments"?"arraylike":t;},iterator:function(context,f){for(var ct=0;ct<context.length&&f.call(context,context[ct],ct)!==false;ct++){}},trim:function(str){return String(str).replace(/^\s+|\s+$/g,"");},index:function(obj,f){for(var key in obj){if(f.call(obj,key,obj[key])===false){break;}}},constrain:function(val,min,max){return+val<min||+val>max?Math.max(min,Math.min(val,max)):val;},addCssRule:function(selector,style){var ss=document.styleSheets[0];if(ss.addRule){ss.addRule(selector,style);}else{ss.insertRule(selector+"{"+style+"}",0);}},hash:function(str,delimiter,pairing){var hash={};FT.lib.iterator(str.split(delimiter),function(value,count){var pair=value.split(pairing);if(pair.length>1){hash[FT.lib.trim(pair[0])]=Array.prototype.slice.call(pair,1).join(pairing);}});return hash;},delimit:function(obj,delimiter,pairing){var first="";var str="";for(var i in obj){if(obj.hasOwnProperty(i)){str+=first+i+pairing+obj[i];first=delimiter;}}
return str;},extend:function(){var f=arguments.callee,o={};function second_loop(k,i){var cast=FT.lib.type(i);if(cast==="object"){o[k]=f(i);}else if(cast==="array"||cast==="arraylike"){o[k]=Array.prototype.slice.call(i,0);}else{o[k]=i;}}
function main_loop(item){FT.lib.index(item,second_loop);}
FT.lib.iterator(arguments,main_loop);return o;},hashCookies:function(fakeCookies){FT.cookies=FT.lib.hash(fakeCookies||document.cookie,";","=");return FT.cookies;},hashQueryString:function(fakeQueryString){FT.queryString=FT.lib.hash(fakeQueryString||window.location.search,/[?&]/,"=");return FT.queryString;},isSecure:function(doc){var d=doc||document;return(d.location.protocol=='https:');},writeScript:function(url){if(document.readyState!=="complete"){document.write('<scr'+'ipt src="'+url+'"></scr'+'ipt>');}},getElementsByClassName:function(oElm,strTagName,strClassName){var arrElements=(strTagName=="*"&&oElm.all)?oElm.all:oElm.getElementsByTagName(strTagName);var arrReturnElements=[];strClassName=strClassName.replace(/\-/g,"\\-");var oRegExp=new RegExp("(^|\\s)"+strClassName+"(\\s|$)");var oElement;for(var i=0;i<arrElements.length;i++){oElement=arrElements[i];if(oRegExp.test(oElement.className)){arrReturnElements.push(oElement);}}
return(arrReturnElements);},addClassName:function(oElm,strClassName){if(oElm){this.removeClassName(oElm,strClassName);oElm.className+=" "+strClassName;}},removeClassName:function(oElm,strClassName){if(oElm){oElm.className=oElm.className.replace(new RegExp(" ?"+strClassName),"");}}};FT.lib.hashCookies();FT.lib.hashQueryString();if(typeof FT==="undefined"){FT={};}
FT.PreInit=function(){this.distributeNavItems=function(nav){var childNodes=nav.childNodes;var navItems=[];for(var i=0;i<childNodes.length;i++){var node=childNodes[i];if(node.tagName=="LI"&&node.className.indexOf("dummy")<0){navItems.push(node);}}
var numItems=navItems.length;if(numItems>0){var availableWidth=navItems[0].parentNode.offsetWidth;var unpaddedWidth=14;for(var i=0;i<navItems.length;i++){var n=navItems[i];n.style.paddingLeft=0;n.style.paddingRight=0;n.style.marginLeft=0;n.style.marginRight=0;unpaddedWidth+=n.offsetWidth;}
var remainingWidth=availableWidth-unpaddedWidth;var paddingPerItem=Math.floor(remainingWidth/numItems);for(var i=0;i<navItems.length;i++){var n=navItems[i];if(i==0){n.style.paddingLeft="14px";}
n.style.paddingRight=paddingPerItem+"px";var anchors=n.getElementsByTagName("A");for(var a=0;a<anchors.length;a++){var anc=anchors[a];anc.style.visibility="visible";}}}};this.renderWsodMarketsHome=function(url){var urlBits=url.split("?");var urlLocation=urlBits[0];var urlQs="";if(urlBits.length>1){urlQs+="&"+urlBits[1].replace("?","&");}
if(!urlQs.match(/&id=([^&])*/)){urlQs="?id=wsodMarketsHomePlaceholder"+urlQs;}else{urlQs=urlQs.replace("&","?");}
if(!urlQs.match(/edition=([^&])*/)){var aysc14=document.cookie.match(/AYSC=.*_14([^_]*)/)?RegExp.$1:null;var aysc28=document.cookie.match(/AYSC=.*_28([^_]*)/)?RegExp.$1:null;var ayscEdition=aysc28?aysc28:aysc14?(aysc14=="GBR"?"uk":""):"uk";urlQs+="&edition="+ayscEdition;}
document.getElementById("wsodMarketsHomePlaceholder").innerHTML="";document.write(String.fromCharCode("60")+"script src='"+urlLocation+urlQs+"'"+String.fromCharCode("62")+String.fromCharCode("60")+"/script"+String.fromCharCode("62"));};this.removeNojsClassFromBody=function(){_removeClass(document.body,"nojs");};this.addOSClassToBody=function(nav){var body=document.getElementsByTagName("body")[0];if(/Mac/.test(nav.platform)&&(/Chrome|Firefox/.test(nav.userAgent)||/Apple/.test(nav.vendor)||window.opera)){body.className+=' OS_Mac';}};this.initaliseBrightcove=function(container,ftScriptBase){if(typeof runMobileCompatibilityScript=="function"){runMobileCompatibilityScript('myExperience','anId');}
_nonBlockingScriptInclude("http://admin.brightcove.com/js/BrightcoveExperiences.js");};var _addClass=function(el,classStr){if(el){el.className+=classStr;}};var _removeClass=function(el,classStr){if(el){el.className=el.className.replace(classStr,"");}};_nonBlockingScriptInclude=function(scriptSrc){var se=document.createElement('script');se.src=scriptSrc;document.getElementsByTagName('head')[0].appendChild(se);}};FT.preInit=new FT.PreInit();FT.lib.getAllVars=function(obj){obj=FT.lib.getEnvironmentVars(obj);obj=FT.lib.getBrowserVars(obj);obj=FT.lib.getAyscVars(obj);obj=FT.lib.getRememberVars(obj);obj=FT.lib.getUserVars(obj);obj=FT.lib.getRevenueScienceVars(obj);obj=FT.lib.getKeywordVar(obj);return obj;};FT.lib.getEnvironmentVars=function(obj){return FT.lib.extend(obj,FT.env);};FT.lib.getBrowserVars=function(obj){var tmp={};if(document.referrer){tmp.referrer=document.referrer;}
return FT.lib.extend(obj,tmp);};FT.lib.getAyscVars=function(obj){var out={};if(FT.cookies.AYSC!==undefined){var q=FT.cookies.AYSC.split("_");FT.lib.iterator(q,function(item){if(!!item){var m=item.match(/^(\d\d)([^_]+)/);if(m){key=m[1];val=m[2];out[key]=val;}}});}
return FT.lib.extend(obj,out);};FT.lib.getRememberVars=function(obj){if(FT.lib.type(FT.cookies.FT_Remember)!=="undefined"){obj.remember=true;}
return obj;};FT.lib.getUserVars=function(obj){var c;if(FT.cookies.FT_User!==undefined){c=unescape(FT.cookies.FT_User);var u=c.match(/USERID=([^:]*)/);if(u){obj.userid=u[1];}
var g=c.match(/GROUPS=([^:]*)/);if(g){obj.groups=g[1];}}
return obj;};FT.lib.getRevenueScienceVars=function(obj){var rsiSegsCookieValue=FT.cookies.rsi_segs;if(rsiSegsCookieValue){obj.rsi=","+FT.cookies.rsi_segs.replace(/\|/g,",")+",";}
if(FT.lib.type(tmp.keyword)!=="undefined"){return FT.lib.extend(obj,tmp);}else{return obj;}};FT.Advertising=function(){this.baseAdvert={};this.baseAdvert.tile=new Date().getTime();this.extraAds=[];this.adverts={};this.timeouts={};this.refreshTimer=null;}
FT.Advertising.prototype.request=function(name){if(name!="refresh"){var url=FT.ads.buildURL(name);FT.lib.writeScript(url);FT.ads.adverts[name]=FT.ads.adverts[name]||{};FT.ads.addDiagnostic(name,{"requestUrl":url});}}
FT.Advertising.prototype.callback=function(obj){if(!obj||typeof obj!=="object"||!obj.name){return false;}
FT.ads.storeResponse(obj);if(obj.addNewAttributes){FT.ads.extendBaseAdvert(obj.addNewAttributes);}
if(obj.insertAdRequest){FT.ads.insertNewAd(obj.insertAdRequest);}
if(parseInt(obj.refreshTimer)>0){FT.ads.startRefreshTimer(obj.refreshTimer);}
if(obj.type){switch(obj.type){case"empty":FT.ads.collapse(obj.name);FT.ads.addDiagnostic(obj.name,{"collapsed":"emptyAd"})
break;case"imageclick":FT.ads.renderImage(obj);break;default:FT.ads.expand(obj.name);break;}}}
FT.Advertising.prototype.storeResponse=function(obj){if(FT.lib.type(obj)!=="object"){return false;}
if(FT.lib.type(FT.ads.adverts[obj.name])!=="object"){FT.ads.adverts[obj.name]={};}
FT.ads.adverts[obj.name].response=obj;}
FT.Advertising.prototype.addDiagnostic=function(name,obj){if(FT.lib.type(name)!=="string"||FT.lib.type(obj)!=="object"){return false;}
if(!FT.ads.adverts[name]){FT.ads.adverts[name]={"diagnostics":{}};}
FT.ads.adverts[name].diagnostics=FT.lib.extend(FT.ads.adverts[name].diagnostics,obj);}
FT.Advertising.prototype.extendBaseAdvert=function(obj){FT.ads.baseAdvert=FT.lib.extend(FT.ads.baseAdvert,obj);}
FT.Advertising.prototype.insertNewAd=function(name){FT.ads.extraAds.unshift(name);}
FT.Advertising.prototype.buildURL=function(name){var advertParams="";var rsiParams="";var doubleEncodedParams="";var referrerParam="";FT.ads.extendBaseAdvert(FT.lib.getAllVars());for(var key in FT.ads.baseAdvert){if(typeof(key)==="number"||typeof(key)==="string"){var value=FT.ads.baseAdvert[key];switch(key){case"keyword":case"groups":case"12":case"17":case"18":case"24":case"25":doubleEncodedParams+="&"+key+"="+encodeURIComponent(encodeURIComponent(value));break;case"referrer":referrerParam="&"+key+"="+encodeURIComponent(encodeURIComponent(value));break;case"rsi":rsiParams="&"+key+"="+value;break;case"dfp_site":case"dfp_zone":case"dfp_targeting":break;default:value=value;advertParams+="&"+key+"="+value;}}}
return returnStr;}
FT.Advertising.prototype.requestInsertedAds=function(){while(advert=FT.ads.extraAds.shift()){FT.ads.request(advert);}}
FT.Advertising.prototype.requestNewssubs=function(){FT.ads.requestInsertedAds();}
FT.Advertising.prototype.collapse=function(name){var adElement=FT.ads.getAdContainer(name);if(adElement&&adElement.style){adElement.style.display="none";FT.lib.addClassName(document.body,"no-"+name);}}
FT.Advertising.prototype.expand=function(name){var adElement=FT.ads.getAdContainer(name);if(adElement&&adElement.style){adElement.style.display="block";FT.lib.removeClassName(document.body,"no-"+name);}}
FT.Advertising.prototype.getAdContainer=function(name){var adDiv=document.getElementById(name);if(adDiv){var ancestorLimit=3;var ancestorCount=0;var el=adDiv;while(ancestorCount<=ancestorLimit&&typeof el.className=="string"&&el.className.indexOf("advertising")==-1){el=el.parentNode;ancestorCount++;}
return(el.className&&el.className.indexOf("advertising")>=0)?el:false;}}
FT.Advertising.prototype.startRefreshTimer=function(delay){this.refreshTimer=setTimeout(function(){doTrackRefresh();},delay);}
FT.Advertising.prototype.renderImage=function(obj){if(FT.lib.type(obj)!=="object"||!obj.content||!obj.content.clickURL||!obj.content.imageURL){FT.ads.addDiagnostic(obj.name,{"noImageClickContent":true});return false}
var adDiv=document.getElementById(obj.name);if(!adDiv){FT.ads.addDiagnostic(obj.name,{"noTargetDiv":true});return false;}
var link=document.createElement("a");link.href=obj.content.clickURL;link.target="_blank";var img=document.createElement("img");if(obj.content.altText){img.alt=obj.content.altText;}
if(obj.content.width){img.width=obj.content.width;}
if(obj.content.height){img.height=obj.content.height;}
img.src=obj.content.imageURL;link.appendChild(img);var imageclickPlaceholderId=obj.name+"_imageclick_placeholder";document.write('<span style="display:none" id="'+imageclickPlaceholderId+'"></span>');var imageclickPlaceholderDiv=document.getElementById(imageclickPlaceholderId);if(imageclickPlaceholderDiv.parentNode.insertBefore(link,imageclickPlaceholderDiv)){FT.ads.addDiagnostic(obj.name,{"rendered":"fromJSON"})}
imageclickPlaceholderDiv.parentNode.removeChild(imageclickPlaceholderDiv);if(obj.content.height&&img.height<adDiv.offsetHeight){link.style.marginTop=((adDiv.offsetHeight-img.height)/2)+"px";link.style.display="block";FT.ads.addDiagnostic(obj.name,{"verticallyAligned":true})}
FT.ads.expand(obj.name);};if(FT.lib){FT.ads=new FT.Advertising();}
var clientAdsDE;if(typeof clientAds!=='undefined')
{clientAdsDE=clientAds;FT.Advertising=function()
{};if(FT.lib)
{FT.ads=new FT.Advertising();}}
clientAds=undefined;FT.Advertising.prototype.isDefaultAdModeDFP=function()
{return true;};FT.Advertising.prototype.requestDE=FT.Advertising.prototype.request;FT.Advertising.prototype.request=function(pos)
{FT.env.isLegacyAPI=false;clientAds.log("FT.Advertising.prototype.request("+pos+")");FT.Advertising.prototype.request=FT.Advertising.prototype.requestDE;this.initDFP();if(FT.env.useDFP)
{this.requestDFP(pos);}
else
{this.requestDE(pos);}};FT.Advertising.prototype.getVideoAdverts=function()
{var Ads=[];this.foreach(FT.ads.adverts,function(pos)
{if(this.adverts[pos].callType==='video')
{Ads.push(pos);}});return Ads;};FT.Advertising.prototype.getVideoSyncAdverts=function()
{var Ads=[];this.foreach(FT.ads.adverts,function(pos)
{if(this.adverts[pos].callType==='videoSync')
{Ads.push(pos);}});return Ads;};FT.Advertising.prototype.getNormalAdverts=function()
{var Ads=[];this.foreach(FT.ads.adverts,function(pos)
{if(this.adverts[pos].callType==='normal')
{Ads.push(pos);}});return Ads;};FT.Advertising.prototype.register=function(pos)
{clientAds.log("FT.Advertising.prototype.register("+pos+")");if(!FT.ads.hasCalledInitDFP)
{FT.env.isLegacyAPI=false;this.initDFP();}
FT.ads.adverts[pos]=FT.ads.adverts[pos]||{};FT.ads.adverts[pos].callType='videoSync';if(!this.videoAdverts){this.videoAdverts=[];}
this.videoAdverts.push(pos);};FT.Advertising.prototype.beginVideo=function()
{this.beginNewPage();};FT.Advertising.prototype.requestDFP=function(pos)
{clientAds.log("FT.Advertising.requestDFP("+pos+")");this.setInitialAdState(pos);var URL=this.buildURL(pos);if(URL){var self=this;FT.lib.writeScript(URL);if(this.adverts[pos].state.alwaysHide)
{this.collapse(pos);}
else
{clientAds.log("setting up anon_timeout("+pos+") "+this.timeoutTolerance);this.timeouts[pos]=setTimeout(function(){clientAds.log("called anon_timeout("+pos+")");self.collapsePositionIfNoAd(pos);},this.timeoutTolerance);}}
this.addDiagnostic(pos,{"requestUrl":URL});};FT.Advertising.prototype.setupInterface=function()
{clientAds.log("FT.Advertising.setupInterface()");FT.Advertising.prototype.foreach=function(obj,func)
{if(!obj||typeof obj==="function")
{return;}
if(obj.length)
{for(var idx=0,length=obj.length;idx<length;idx++)
{var value=typeof obj==="string"?obj.charAt(idx):obj[idx];if(func.call(this,value,idx)===false)
{break;}}}
else
{for(var prop in obj)
{if(obj.hasOwnProperty(prop))
{var what=FT.lib.type(obj[prop]);if(!what.match(/^function$/))
{if(func.call(this,prop,obj[prop])===false)
{break;}}}}}};FT.Advertising.prototype.getCookie=function(cookieName)
{var cookie=FT.cookies[cookieName];if(cookie)
{return cookie.replace(/%3D/g,"=");}
return undefined;};FT.Advertising.prototype.getAdFormat=function(pos)
{var rFormat;if(this.CONST.AdFormat[pos])
{rFormat=this.CONST.AdFormat[pos];}
return rFormat;};FT.Advertising.prototype.setInitialAdState=function(pos,callType)
{callType=callType||'normal';this.adverts[pos]=this.adverts[pos]||{};this.adverts[pos].callType=callType;this.adverts[pos].state={'state':'init','hasDiv':false,'alwaysHide':false,'requestsInterstitial':false,'hasInterstitial':false,'isSystemDefault':false,'isEmptyAd':false,'initialHTML':''};if(pos==='refresh')
{this.adverts[pos].state.alwaysHide=true;}
var adHTML=this.getAdInnerHTML(pos);if(typeof adHTML!=='undefined')
{this.adverts[pos].state.hasDiv=true;this.adverts[pos].state.initialHTML=adHTML;}};FT.Advertising.prototype.isAdStateEmpty=function(state)
{var empty=false;if(state.isSystemDefault||state.isEmptyAd)
{if(!state.hasInterstitial)
{empty=true;}}
return empty;};FT.Advertising.prototype.shouldAdBeZeroHeight=function(state)
{var beZero=false;if(state.isSystemDefault||state.isEmptyAd)
{if(state.hasInterstitial)
{beZero=true;}}
return beZero;};FT.Advertising.prototype.createAdRequestFromVideoUrl=function(pos,url)
{this.clearBaseAdvert();this.prepareBaseAdvert(pos);var URL=this.buildURLFromBaseAdvert('videoSync');URL=URL.replace(/\?$/,'');var requestURL=url.replace(/;pos=\w+/,';pos='+pos);requestURL=requestURL.replace(/^[^\s]+;sz=\d+x\d+(,\d+x\d+){0,3}(;dcopt=ist)?/,URL);requestURL=requestURL.replace(/;tile=(\d{1,2})/,';tile='+this.baseAdvert.tile);return requestURL;};FT.Advertising.prototype.insertAdIntoIFrame=function(pos,requestURL)
{var el=this.getAdContainer(pos).div;if(!el)
{return undefined;}
var iframeId=pos+'_iframe';var html=['<iframe id="',iframeId,'"',' width="',el.clientWidth,'"',' height="',el.clientHeight,'"></iframe>'].join('');el.innerHTML=html;document.getElementById(iframeId).src=requestURL;};FT.Advertising.prototype.requestVideoSync=function(pos,url)
{if(!this.getAdFormat(pos))
{this.addDiagnostic(pos,{'requestVideoSync':'ad position not valid'});return undefined;}
this.setInitialAdState(pos);var requestURL=this.createAdRequestFromVideoUrl(pos,url);this.adverts[pos].callType='videoSync';this.addDiagnostic(pos,{inputUrl:url,requestUrl:requestURL});this.insertAdIntoIFrame(pos,requestURL);return requestURL;};FT.Advertising.prototype.endVideo=function(){return;};FT.Advertising.prototype.handleRefreshLogic=function(obj,timeout)
{clientAds.log("FT.Advertising.prototype.handleRefreshLogic("+obj.name+", "+timeout+")");timeout=timeout||30*60*1000;if((obj.name==='refresh')&&(FT.env.asset==='page'))
{obj.refreshTimer=timeout;}};FT.Advertising.prototype.checkAdState=function(pos)
{clientAds.log("FT.Advertising.prototype.checkAdState("+pos+")");this.adverts[pos]=this.adverts[pos]||{'state':{}};var rState=this.adverts[pos].state;var adHTML=this.getAdInnerHTML(pos);if(typeof adHTML!=='undefined')
{rState.hasDiv=true;rState.innerHTML=adHTML;if(rState.innerHTML!==rState.initialHTML)
{rState.state='changed';}
if(rState.state==='changed')
{if(/817-grey/.test(rState.innerHTML))
{rState.isSystemDefault=true;}
if(/ft-no-ad-/.test(rState.innerHTML))
{rState.isEmptyAd=true;}
var rRegex=new RegExp("<!--\\s*Begin Interstitial Ad\\s*-->");if(rRegex.test(rState.innerHTML))
{rState.hasInterstitial=true;}}}
clientAds.log("FT.Advertising.prototype.checkAdState("+pos+") "+[rState.state,"hasDiv: "+rState.hasDiv,"isSystemDefault: "+rState.isSystemDefault,"isEmptyAd: "+rState.isEmptyAd,"requestsInterstitial: "+rState.requestsInterstitial,"hasInterstitial: "+rState.hasInterstitial].join(", "));};FT.Advertising.prototype.collapsePositionIfNoAd=function(pos)
{clientAds.log("FT.Advertising.prototype.collapsePositionIfNoAd("+pos+")");this.checkAdState(pos);var rState=this.adverts[pos].state;if(this.shouldAdBeZeroHeight(rState))
{this.collapse(pos,true);}
else if(this.isAdStateEmpty(rState))
{this.collapse(pos);}
else if(rState.state==='init')
{this.collapse(pos);this.watchAdPosition(pos);}
else
{this.expand(pos);}};FT.Advertising.prototype.expandPositionIfAd=function(pos)
{clientAds.log("FT.Advertising.prototype.expandPositionIfAd("+pos+")");this.checkAdState(pos);var rState=this.adverts[pos].state;if(!this.isAdStateEmpty(rState))
{clientAds.log("clearing anon_interval("+pos+") - is interstitial or not system default");this.expand(pos);clearInterval(this.intervals[pos]);}};FT.Advertising.prototype.watchAdPosition=function(adPos)
{clientAds.log("FT.Advertising.prototype.watchAdPosition("+adPos+")");var self=this;var pos=adPos;clientAds.log("setting up anon_interval("+pos+") "+self.timeIntervalTolerance);self.intervals[pos]=setInterval(function()
{clientAds.log("called anon_interval("+pos+")");self.expandPositionIfAd(pos);},self.timeIntervalTolerance);};FT.Advertising.prototype.clearAllTimeouts=function()
{clientAds.log("FT.Advertising.prototype.clearAllTimeouts()");this.foreach(this.timeouts,function(pos,id){clearTimeout(id);});};FT.Advertising.prototype.clearAllIntervals=function()
{clientAds.log("FT.Advertising.prototype.clearAllIntervals()");this.foreach(this.intervals,function(pos,id){clearInterval(id);});};FT.Advertising.prototype.clearTimer=function()
{clientAds.log("FT.Advertising.prototype.clearTimer()");};FT.Advertising.prototype.complete=function()
{clientAds.log("FT.ads.complete() "+this.isComplete);if(!this.isComplete)
{if(this.adverts['refresh'])
{FT.ads.legacyAdCollapse('refresh',false);}
this.injectUnclassifiedTrackCall();this.injectUrlTrackCall();}
this.isComplete=true;};FT.Advertising.prototype.callback=function(rResponse)
{if(!rResponse||typeof rResponse!=="object"||!rResponse.name)
{clientAds.log("FT.Advertising.callback("+rResponse+") - improper");return false;}
clientAds.log("FT.Advertising.callback("+[rResponse.name,rResponse.type,rResponse.adName].join(", ")+")");this.checkAdState(rResponse.name);this.storeResponse(rResponse);if(rResponse.addNewAttributes)
{this.extendBaseAdvert(rResponse.addNewAttributes);}
if(rResponse.insertAdRequest)
{this.insertNewAd(rResponse.insertAdRequest);}
var radix;if(parseInt(rResponse.refreshTimer,radix)>0)
{this.startRefreshTimer(rResponse.refreshTimer);}
if(rResponse.type)
{switch(rResponse.type)
{case"empty":if(!this.adverts[rResponse.name].state.requestsInterstitial)
{clientAds.log("anon_timeout("+rResponse.name+") is being cancelled");clearTimeout(this.timeouts[rResponse.name]);}
this.collapse(rResponse.name);this.addDiagnostic(rResponse.name,{"collapsed":"emptyAd"});break;case"imageclick":this.renderImage(rResponse);break;default:break;}}};FT.Advertising.prototype.storeResponse=function(rResponse)
{clientAds.log("FT.Advertising.storeResponse("+[rResponse.name,rResponse.type,rResponse.adName].join(", ")+")");if(FT.lib.type(rResponse)!=="object")
{return false;}
if(FT.lib.type(this.adverts[rResponse.name])!=="object")
{this.adverts[rResponse.name]={};}
this.adverts[rResponse.name].response=rResponse;};FT.Advertising.prototype.getKeys=function(rResponse)
{var Keys=[];if(FT.lib.type(rResponse)==='object')
{this.foreach(rResponse,function(prop)
{Keys.push(prop);});}
return Keys.sort();};FT.Advertising.prototype.hasClassName=function(fullClass,className)
{var matcher=className.constructor===RegExp?className:new RegExp('^'+className+'$');var Classes=fullClass.split(' ');for(var idx=0;idx<Classes.length;++idx)
{if(Classes[idx].match(matcher)!==null)
{return true;}}
return false;};FT.Advertising.prototype.addDiagnostic=function(pos,rDiagObj)
{if(!pos)
{pos='_anonymous';}
if(FT.lib.type(pos)!=="string"||FT.lib.type(rDiagObj)!=="object")
{return false;}
clientAds.log("FT.Advertising.addDiagnostic("+pos+", "+this.getKeys(rDiagObj).join(", ")+")");if(!this.adverts[pos])
{this.adverts[pos]={"diagnostics":{}};}
this.adverts[pos].diagnostics=FT.lib.extend(this.adverts[pos].diagnostics,rDiagObj);};FT.Advertising.prototype.extendBaseAdvert=function(rResponse)
{clientAds.log("FT.Advertising.extendBaseAdvert("+rResponse+")");this.baseAdvert=FT.lib.extend(this.baseAdvert,rResponse);};FT.Advertising.prototype.insertNewAd=function(pos)
{clientAds.log("FT.Advertising.insertNewAd("+pos+")");this.extraAds.unshift(pos);this.addDiagnostic(pos,{"inserted":true});};FT.Advertising.prototype.setDefaultSiteZone=function()
{FT.env.dfp_site="ftcom.5887.unclassified";FT.env.dfp_zone="unclassified";};FT.Advertising.prototype.isUnclassified=function()
{var result=false;if((FT.env.dfp_site==="ftcom.5887.unclassified"||FT.env.dfp_site==="test.5887.unclassified")&&FT.env.dfp_zone==="unclassified")
{result=true;}
return result;};FT.Advertising.prototype.checkSiteZone=function(pos)
{var ok='default';var fix=true;var reason_why;var rFormat=this.getAdFormat(pos);var site=this.getDFPSite();if(!rFormat)
{reason_why="invalid ad slot name";fix=false;ok='invalid';}
else if(!this.detectDFPTargeting())
{reason_why="dfp_site/zone are invalid";}
else if(site.length>31)
{reason_why="DFP site name too long: "+site;}
else if(FT.env.dfp_zone.length>32)
{reason_why="DFP zone name too long: "+FT.env.dfp_zone;}
else if(site.match(/^X+$/i))
{reason_why="DFP site name is default methode metadata";}
else if(FT.env.dfp_zone.match(/^X+$/i))
{reason_why="DFP zone name is default methode metadata";}
else if(!site.match(/^\w+\.5887\.[\-\w]+$/))
{reason_why="DFP site name is not the FT network: "+site;}
else
{ok='ok';fix=false;}
if(ok!=='ok')
{this.addDiagnostic(pos,{"checkSiteZone":reason_why});}
if(fix)
{this.setDefaultSiteZone();}
return ok;};FT.Advertising.prototype.clearBaseAdvert=function()
{for(var idx=0;idx<this.CONST.KeyOrder.length;idx++)
{var keyname=this.CONST.KeyOrder[idx];if((keyname!=='tile')&&(keyname!=='ord'))
{delete this.baseAdvert[keyname];}}};FT.Advertising.prototype.prepareAdVars=function(AllVars)
{AllVars=this.stripLeadingZeros(this.CONST.leading_zero_key_names,AllVars);AllVars=this.fieldRegex(this.CONST.regex_key_names,AllVars);AllVars=this.fieldSubstr(this.CONST.substr_key_names,AllVars);AllVars=this.detectERights(AllVars);return AllVars;};FT.Advertising.prototype.erightsID=function()
{if(!FT.cookies.FT_U){return undefined;}else{var eid=FT.cookies.FT_U.match(/_EID\=(\d+)_/i);if(eid[1]){return eid[1].replace(/^0*/,"");}else{return undefined;}}};FT.Advertising.prototype.duplicateEID=function(eid)
{if(eid){var u="eid="+eid;if(u.length>this.CONST.uParamMax){this.addDiagnostic(this.baseAdvert.pos,{'uParamSizeException':'Maximum length of u ('+this.CONST.uParamMax+') exceeded. Got '+u.length});this.addDiagnostic(this.baseAdvert.pos,{'uParamDataLoss':'u parameter data loss ['+u.slice(this.CONST.uParamMax)+']'});}
return"eid="+eid;}
return undefined;};FT.Advertising.prototype.rsiSegs=function(){if(FT.cookies.rsi_segs){var results=[];this.foreach(FT.cookies.rsi_segs.split('|'),function(value){results.push(this.encodeAudSci(value));});return results;}
return undefined;};FT.Advertising.prototype.prepareBaseAdvert=function(pos)
{var AllVars=this.prepareAdVars(FT.lib.getAyscVars({}));this.baseAdvert.pos=pos;this.baseAdvert.ad_server=this.adServerCountry(AllVars['15'],pos);AllVars=this.excludeFields(this.CONST.exclusions,AllVars);this.foreach(AllVars,function(ayscName,ayscVal)
{if(!ayscVal)
{return true;}
if(this.CONST.remove_exes[ayscName]&&/^x+$/i.test(ayscVal))
{return true;}
if(this.CONST.remove_res_pvt[ayscName]&&/^pvt|res$/i.test(ayscVal))
{return true;}
this.baseAdvert[ayscName]=ayscVal.toString().toLowerCase();});this.baseAdvert.a=this.rsiSegs();var rFormat=this.getAdFormat(pos);this.baseAdvert.sz=rFormat.sz;if(rFormat.dcopt){if(this.baseAdvert.hasInterstitial){this.addDiagnostic(pos,{"buildURLIst":"multiple interstitials on page, ignoring "+pos});}
else{this.baseAdvert.hasInterstitial=true;this.baseAdvert.dcopt=rFormat.dcopt;this.adverts[pos].state.requestsInterstitial=true;}}
this.baseAdvert.eid=this.erightsID();this.baseAdvert.u=this.duplicateEID(this.baseAdvert.eid);this.baseAdvert.dfp_site=this.getDFPSite();FT.env.dfp_site=this.baseAdvert.dfp_site;this.baseAdvert.dfp_zone=FT.env.dfp_zone;if(typeof FT.env.dfp_targeting!=='undefined')
{var targeting=FT.env.dfp_targeting.replace(/^;/,'').replace(/;$/,'').replace(/;;+/,';').toLowerCase();if(targeting!==''&&!/^x+$/.test(targeting))
{this.baseAdvert.dfp_targeting=targeting;}}};FT.Advertising.prototype.prepareKeywordsParam=function(pos)
{var url;if(FT.env.url_location)
{url=FT.env.url_location;}
var keywords=this.getKeywordsParam(url);if(keywords)
{this.baseAdvert.kw=keywords;}};FT.Advertising.prototype.encodeBaseAdvertProperties=function(mode)
{var results='',initial,remaining;var rsiSegs=this.baseAdvert.a;if(rsiSegs)
{initial='a='+rsiSegs.slice(0,this.CONST.audSciInitial).join(';a=');remaining=rsiSegs.slice(this.CONST.audSciInitial,this.CONST.audSciMax);if(remaining.length)
{remaining='a='+remaining.join(';a=');}}
var Order=this.CONST.KeyOrder;if(mode==='video')
{Order=this.CONST.KeyOrderVideo;}
else if(mode==='videoExtra')
{Order=this.CONST.KeyOrderVideoExtra;}
else if(mode==='videoSync')
{Order=this.CONST.KeyOrderVideoSync;}
this.foreach(Order,function(key){var value=this.baseAdvert[key];if(key==='u'&&this.baseAdvert.dfp_targeting)
{results+=this.baseAdvert.dfp_targeting+';';}
if(rsiSegs&&key==='a')
{results+=initial+';';}
else
{results+=!value?'':key+'='+value+';';if(rsiSegs&&key==='u'&&remaining.length)
{results+=remaining+';';}}});return results.replace(/;$/,'');};FT.Advertising.prototype.cleanKeywords=function(keywords)
{keywords=unescape(keywords).toLowerCase();keywords=keywords.replace(/[';\^\+]/g,' ');keywords=keywords.replace(/\s+/g,' ');keywords=keywords.replace(/^\s+/,'');keywords=keywords.replace(/\s+$/,'');keywords=escape(keywords);keywords=keywords.replace(/\./g,'%2E');return keywords;};FT.Advertising.prototype.getKeywordsParam=function(url)
{url=url||document.location.search;var keywords="";if(url.indexOf('?')>=0)
{url=url.replace(/^[^\?]*\?/,'');var Params=url.split('&');for(var idx=0;keywords===""&&idx<Params.length;++idx)
{var Match=Params[idx].match(/^(q|s|query|queryText|searchField)=(.+)$/);if(Match)
{keywords=this.cleanKeywords(Match[2]);}}}
return keywords;};FT.Advertising.prototype.buildURLFromBaseAdvert=function(mode)
{mode=mode||'normal';var type=(mode==='video')?"/pfadx/":"/adj/";type=(mode==='videoSync')?"/adi/":type;var URL="http://"+this.baseAdvert.ad_server+type+this.baseAdvert.dfp_site+"/"+this.baseAdvert.dfp_zone+";";URL+=this.encodeBaseAdvertProperties(mode);if(mode!=='video')
{URL=URL+'?';if(this.baseAdvert.tile>16)
{this.addDiagnostic(this.baseAdvert.pos,{"buildURLFromBaseAdvert":"too many ads, exceeds maximum tile"});URL=undefined;}
this.baseAdvert.tile++;}
return URL;};FT.Advertising.prototype.buildURL=function(pos)
{var URL;clientAds.log("FT.Advertising.buildURL("+pos+")");if(this.checkSiteZone(pos)==='invalid')
{return URL;}
this.clearBaseAdvert();this.prepareBaseAdvert(pos);this.prepareKeywordsParam();URL=this.buildURLFromBaseAdvert();return URL;};FT.Advertising.prototype.buildURLForVideo=function(zone,pos)
{pos=pos||'video';var mode='video';var URL;FT.env.dfp_zone=zone;if(this.checkSiteZone(pos)==='invalid')
{return URL;}
this.adverts[pos]=this.adverts[pos]||{};this.adverts[pos].callType=mode;this.clearBaseAdvert();this.prepareBaseAdvert(pos);URL=this.buildURLFromBaseAdvert(mode);var result={urlStem:URL,additionalAdTargetingParams:this.encodeBaseAdvertProperties('videoExtra')};this.addDiagnostic(pos,result);return result;};FT.Advertising.prototype.requestInsertedAds=function()
{clientAds.log("FT.Advertising.requestInsertedAds()");var advert=this.extraAds.shift();while(advert)
{this.request(advert);advert=this.extraAds.shift();}};FT.Advertising.prototype.requestNewssubs=function()
{this.request('newssubs');};FT.Advertising.prototype.collapse=function(pos,zeroHeight)
{var why=zeroHeight?"no ad booked but interstitial present":"no ad booked";why=this.adverts[pos].state.alwaysHide?'position is always hidden':why;clientAds.log("FT.Advertising.collapse("+pos+", "+zeroHeight+") - "+why);var doCollapse=this.legacyAdCollapse(pos,zeroHeight);if(doCollapse)
{var adContainer=this.getAdContainer(pos);if(adContainer.div)
{if(zeroHeight)
{adContainer.div.style.display="block";}
else
{adContainer.div.style.display="none";}
FT.lib.addClassName(document.body,"no-"+adContainer.name);}}
else
{why="collapse prevented by legacy handler";}
this.addDiagnostic(pos,{"collapsed":why});};FT.Advertising.prototype.setZeroHeight=function(pos,id)
{var rDiv=document.getElementById(id);if(rDiv)
{rDiv.style.height='0px';rDiv.style.padding='0px';}
else
{clientAds.log("FT.Advertising.setZeroHeight("+id+") - div not found");this.addDiagnostic(pos,{"setZeroHeight":"div not found: "+id});}};FT.Advertising.prototype.legacyAdCollapse=function(pos,zeroHeight)
{var doCollapse=true;if(FT.env.isLegacyAPI)
{if(this.adverts[pos].state.alwaysHide)
{clientAds.log("FT.Advertising.legacyAdCollapse("+pos+", "+zeroHeight+") for "+this.library+" always hide");var rDiv=document.getElementById('ad-container-'+pos);if(rDiv)
{rDiv.style.display='none';}}
if(pos==='lhn')
{doCollapse=false;}
if(pos==='banlb')
{clientAds.log("FT.Advertising.legacyAdCollapse("+pos+", "+zeroHeight+") for "+this.library);var rLeaderBoard=document.getElementById('leaderboard');if(rLeaderBoard)
{rLeaderBoard.style.minHeight=0;}
var Divs=['ad-placeholder-banlb','page-header-ad'];for(var idx=0;idx<Divs.length;++idx)
{this.setZeroHeight(pos,Divs[idx]);}}}
if(!doCollapse)
{clientAds.log("FT.Advertising.legacyAdCollapse("+pos+", "+zeroHeight+") for "+this.library+" ad position collapse prevented");}
return doCollapse;};FT.Advertising.prototype.legacyAdFixup=function(pos,adContainer)
{if(this.library==='ftcombase'&&adContainer.div.id==='ad-placeholder-hlfmpu')
{clientAds.log("FT.Advertising.legacyAdFixup("+pos+", "+adContainer.div.id+") for "+this.library);adContainer.div.style.padding="14px 0 14px 0";adContainer.div.style.marginBottom=15+"px";adContainer.div.style.border="solid 1px #999";}
if(this.library==='phoenix'&&adContainer.div.id==='ad-placeholder-hlfmpu')
{clientAds.log("FT.Advertising.legacyAdFixup("+pos+", "+adContainer.div.id+") for "+this.library);adContainer.div.style.padding="14px 0 14px 0";adContainer.div.style.marginBottom=15+"px";adContainer.div.style.marginLeft=0;adContainer.div.style.paddingLeft=0;}
if(this.library==='ftcombase'&&adContainer.div.id==='ad-placeholder-tradcent')
{clientAds.log("FT.Advertising.legacyAdFixup("+pos+", "+adContainer.div.id+") for "+this.library);adContainer.div.style.marginBottom=15+"px";}
if(this.library==='ftcombase'&&adContainer.div.id==='ad-placeholder-tlbxrib')
{clientAds.log("FT.Advertising.legacyAdFixup("+pos+", "+adContainer.div.id+") for "+this.library);adContainer.div.style.marginBottom=15+"px";}
if(this.library==='ftcombase'&&adContainer.div.id==='ad-placeholder-marketingrib')
{clientAds.log("FT.Advertising.legacyAdFixup("+pos+", "+adContainer.div.id+") for "+this.library);adContainer.div.className="";adContainer.div.style.marginBottom=15+"px";}};FT.Advertising.prototype.expand=function(pos)
{clientAds.log("FT.Advertising.expand("+pos+")");var adContainer=this.getAdContainer(pos);if(adContainer.div)
{this.legacyAdFixup(pos,adContainer);if(!adContainer.div.className.match(/\bhidden\b/)){adContainer.div.style.display="block";}
FT.lib.removeClassName(document.body,"no-"+adContainer.name);}};FT.Advertising.prototype.getNamedAdContainer=function(idDiv,pos)
{clientAds.log("FT.Advertising.getNamedAdContainer("+idDiv+") -- looking");var rDiv=document.getElementById(idDiv);clientAds.log("FT.Advertising.getNamedAdContainer("+idDiv+") -- got -- "+rDiv);if(rDiv)
{clientAds.log("FT.Advertising.getNamedAdContainer("+idDiv+")");var ancestorLimit=3;var ancestorCount=0;var el=rDiv;var rOriginalDiv=rDiv;while(ancestorCount<=ancestorLimit&&typeof el.className==="string"&&this.hasAdClass(el,pos)===false)
{el=el.parentNode;ancestorCount++;}
rDiv=(el.className&&this.hasAdClass(el,pos)===true)?el:rOriginalDiv;}
return rDiv;};FT.Advertising.prototype.getAdContainer=function(pos)
{var AdContainers=this.getAdContainers(pos);if(AdContainers.length===0)
{this.addDiagnostic(pos,{"getAdContainer":'div not found'});AdContainers=[{'div':null,'name':null}];}
return AdContainers[0];};FT.Advertising.prototype.getAdContainers=function(pos)
{var AdContainers=[];var stop=FT.env.isLegacyAPI?this.CONST.proxy_div_prefixes.length:1;for(var idx=0;idx<stop;++idx)
{var idDiv=this.CONST.proxy_div_prefixes[idx]+pos;if(FT.env.isLegacyAPI&&idDiv==='lhn')
{continue;}
var adElement=this.getNamedAdContainer(idDiv,pos);if(adElement)
{AdContainers.push({'div':adElement,'name':idDiv});}}
return AdContainers;};FT.Advertising.prototype.getAdInnerHTML=function(pos)
{var html=undefined;var AdContainers=this.getAdContainers(pos);if(AdContainers.length!==0)
{html='';this.foreach(AdContainers,function(rAdContainer)
{if(html.length)
{html=html+"\n";}
html=html+"<!-- "+rAdContainer.name+" -->\n"+rAdContainer.div.innerHTML;});}
else
{this.addDiagnostic(pos,{"getAdInnerHTML":'div not found'});}
return html;};FT.Advertising.prototype.hasAdClass=function(rElement,pos)
{clientAds.log("FT.Advertising.hasAdClass("+rElement+")");if(FT.env.isLegacyAPI)
{if(this.hasClassName(rElement.className,new RegExp('^ad-(container|placeholder)(-'+pos+')?$')))
{return true;}}
else if(this.hasClassName(rElement.className,'advertising'))
{return true;}
return false;};FT.Advertising.prototype.startRefreshTimer=function(delay)
{clientAds.log("FT.Advertising.startRefreshTimer("+delay+")");this.refreshTimer=setTimeout(function(){clientAds.log("refreshTimer callback()");doTrackRefresh();},delay);};FT.Advertising.prototype.renderImage=function(rResponse)
{clientAds.log("FT.Advertising.renderImage("+rResponse+")");if(FT.lib.type(rResponse)!=="object"||!rResponse.content||!rResponse.content.clickURL||!rResponse.content.imageURL)
{this.addDiagnostic(rResponse.name,{"noImageClickContent":true});return false;}
var rDiv=document.getElementById(rResponse.name);if(!rDiv)
{this.addDiagnostic(rResponse.name,{"noTargetDiv":true});return false;}
var link=document.createElement("a");link.href=rResponse.content.clickURL;link.target="_blank";var img=document.createElement("img");if(rResponse.content.altText)
{img.alt=rResponse.content.altText;}
if(rResponse.content.width)
{img.width=rResponse.content.width;}
if(rResponse.content.height)
{img.height=rResponse.content.height;}
img.src=rResponse.content.imageURL;link.appendChild(img);var imageclickPlaceholderId=rResponse.name+"_imageclick_placeholder";var doc=document;doc.write('<span style="display:none" id="'+imageclickPlaceholderId+'"></span>');var imageclickPlaceholderDiv=document.getElementById(imageclickPlaceholderId);if(imageclickPlaceholderDiv.parentNode.insertBefore(link,imageclickPlaceholderDiv))
{this.addDiagnostic(rResponse.name,{"rendered":"fromJSON"});}
imageclickPlaceholderDiv.parentNode.removeChild(imageclickPlaceholderDiv);if(rResponse.content.height&&img.height<rDiv.offsetHeight)
{link.style.marginTop=((rDiv.offsetHeight-img.height)/2)+"px";link.style.display="block";this.addDiagnostic(rResponse.name,{"verticallyAligned":true});}
this.expand(rResponse.name);};if(!this.CONST)
{this.CONST={};}
{return parseInt(value,10).toString(36);};this.fromBase36=function(value)
{return parseInt(value,36);};this.encodeAudSci=function(value)
{var rsiSeg=value.match(/^([A-L]\d{5})_(\d{5})$/i);if(rsiSeg){var segment=parseInt(rsiSeg[2],10)-10000;if(/^J07717$/i.test(rsiSeg[1])){return'z'+segment;}else{return rsiSeg[1].charAt(0).toLowerCase()+this.toBase36(segment+rsiSeg[1].substring(1));}}
return value.toUpperCase();};this.decodeAudSci=function(value)
{if(value.charAt(0).toLowerCase()==='z')
{return"J07717_"+(parseInt(value.substring(1),10)+10000);}
else
{var rsiSeg=this.fromBase36(value.substring(1)).toString();var segment=parseInt(rsiSeg.slice(0,-5),10)+10000;var clientId=value.charAt(0).toUpperCase()+rsiSeg.substring(rsiSeg.length-5);return clientId+'_'+segment;}};FT.Advertising.prototype.beginNewPage=function(env)
{clientAds.log("FT.Advertising.beginNewPage()");env=env||FT.env;this.baseAdvert={};this.baseAdvert.ord=Math.floor(Math.random()*1E16);this.baseAdvert.tile=1;this.extraAds=[];var VideoAds=this.getVideoAdverts();var VideoSyncAds=this.getVideoSyncAdverts();if(VideoAds.length||VideoSyncAds.length)
{this.foreach(VideoAds,function(pos){delete this.adverts[pos];});this.foreach(VideoSyncAds,function(pos){delete this.adverts[pos];});}
else
{this.adverts={};}
this.isComplete=false;this.timeouts={};this.intervals={};this.runinterval=undefined;this.refreshTimer=null;this.timeoutTolerance=FT.env.timeoutTolerance||25;this.timeIntervalTolerance=FT.env.timeIntervalTolerance||300;var cookie=this.getCookie('FTQA');if(cookie)
{var Match=cookie.match(/timeout=(\d+)/);if(Match)
{this.timeoutTolerance=Match[1];}
Match=cookie.match(/interval=(\d+)/);if(Match)
{this.timeIntervalTolerance=Match[1];}
Match=cookie.match(/longest_url=(\d+)-(\d+)/);if(Match)
{this.CONST.urlThreshold=Match[1];this.CONST.urlThresholdMax=Match[2];}
Match=cookie.match(/ord=(\d+)/);if(Match)
{this.baseAdvert.ord=Match[1];}
clientAds.log("Configured from Cookies:");clientAds.log("timeoutTolerance: "+this.timeoutTolerance);clientAds.log("timeIntervalTolerance: "+this.timeIntervalTolerance);clientAds.log("urlThreshold: "+this.CONST.urlThreshold);clientAds.log("urlThresholdMax: "+this.CONST.urlThresholdMax);clientAds.log("ord: "+this.baseAdvert.ord);}
this.baseAdvert.hasInterstitial=false;this.submitToTrack=false;this.useDFP=true;this.library="falcon";env.useDFP=true;};FT.Advertising.prototype.resetLibrary=function()
{this.beginNewPage();FT.ads.adverts={};};FT.Advertising.prototype.checkAdServerCountry=function(iso2)
{return this.CONST.AD_SERVERS.test(iso2);};FT.Advertising.prototype.adServerCountry=function(code,pos)
{var server='';if(code)
{code=code.toLowerCase();if(this.checkAdServerCountry(code))
{code=code.toLowerCase();server=code+'.';}
else if(code==='gb'||code==='gg'||code==='im'||code==='je')
{server='uk.';}
else
{this.addDiagnostic(pos,{"adServerCountry":"Unsupported ad server: "+code});}}
return'ad.'+server+'doubleclick.net';};FT.Advertising.prototype.detectERights=function(obj)
{if(FT.cookies.FT_U!==undefined)
{var erights=FT.cookies.FT_U.split("=");var keyname=erights[0];var val=erights[1];if((keyname!==undefined)&&(val===undefined))
{obj[keyname]=val;obj.u=erights;}}
return obj;};FT.Advertising.prototype.excludeFields=function(exclusions,obj)
{this.foreach(obj,function(prop)
{for(var idx=0;idx<exclusions.length;idx++)
{var keyvalsplit=exclusions[idx].split("=");if(((keyvalsplit[0]==="key")&&(prop===keyvalsplit[1]))||((keyvalsplit[0]==="val")&&(obj[prop]===keyvalsplit[1])))
{delete obj[prop];}}});return obj;};FT.Advertising.prototype.stripLeadingZeros=function(KeysToStrip,obj)
{for(var idx=0,length=KeysToStrip.length;idx<length;idx++)
{if(obj[KeysToStrip[idx]])
{obj[KeysToStrip[idx]]=obj[KeysToStrip[idx]].replace(/^0+/,"");}}
return obj;};FT.Advertising.prototype.fieldRegex=function(RegexKeyNames,obj)
{this.foreach(RegexKeyNames,function(keyName)
{var value=obj[keyName];if(value!==undefined)
{this.foreach(this.CONST.SubsLevelReplaceLookup,function(replaceValue,regex)
{if(value.match(regex)){obj.slv=replaceValue;}});}});return obj;};FT.Advertising.prototype.fieldSubstr=function(SubStrKeyNames,obj)
{this.foreach(SubStrKeyNames,function(keyName)
{var SubStrItems=keyName.split("=");var ayscField=SubStrItems[0];var val=obj[ayscField];if(val!==undefined)
{var newField=SubStrItems[3];obj[newField]=val.substring(SubStrItems[1],SubStrItems[2]);}});return obj;};FT.Advertising.prototype.getDFPSite=function()
{var site=FT.env.dfp_site;if(FT.Properties&&FT.Properties.ENV)
{var env=FT.Properties.ENV.toLowerCase();var cookie=this.getCookie('FTQA');if(cookie)
{if(cookie.match(/env=live/))
{env='live';clientAds.log("FTQA cookie has set ads from live environment");this.addDiagnostic(this.baseAdvert.pos,{"getDFPSite":"using FTQA cookie to set ads from live environment"});}
if(cookie.match(/env=nolive/))
{env='ci';clientAds.log("using FTQA cookie has set ads from non-live environment");this.addDiagnostic(this.baseAdvert.pos,{"getDFPSite":"using FTQA cookie to set ads from non-live environment"});}}
if(env!=='p'&&!env.match(/^live/))
{site=site.replace(/^\w+\./,"test.");}}
return site;};FT.Advertising.prototype.showDiagnostics=function(pos)
{var FullDiagnosis=["FT.ads.showDiagnostics:\n"];var AdPositions=this.getKeys(this.adverts);this.foreach(AdPositions,function(adPos)
{var thisAdvert=this.adverts[adPos];if(typeof thisAdvert==='object'&&(!pos||adPos===pos))
{var Diagnosis=[];if(thisAdvert.diagnostics)
{var rDiagnostics=thisAdvert.diagnostics;var Topics=this.getKeys(rDiagnostics);this.foreach(Topics,function(topic)
{if(typeof rDiagnostics[topic]!=='function')
{Diagnosis.push("   "+topic+": "+rDiagnostics[topic]);}});}
var diagnosis=Diagnosis.join("\n");if(diagnosis.length)
{if(!adPos.match(/^_/))
{adPos=adPos+" Ad Call";if(thisAdvert.response&&thisAdvert.response.adName)
{diagnosis="   "+thisAdvert.response.adName+"\n"+diagnosis;}}
FullDiagnosis.push(adPos+":\n"+diagnosis+"\n");}}});return FullDiagnosis.join("\n");};FT.Advertising.prototype.breakout=function(rResponse)
{var pause=true;var cookie=this.getCookie('FTQA');if(cookie){if(rResponse&&rResponse.name)
{pause=false;var break_if='breakout='+rResponse.name;if(cookie&&(cookie.match(/breakout=all/)||cookie.indexOf(break_if)>=0))
{pause=true;}}
if(pause)
{debugger;}}};};FT.Advertising.prototype.detectDFPTargeting=function(env)
{env=env||FT.env;return env.dfp_site&&env.dfp_zone?true:false;};FT.Advertising.prototype.detectAdMode=function(env)
{clientAds.log("FT.ads.detectAdMode()");env=env||FT.env;env.useDFP=this.isDefaultAdModeDFP();if(this.detectDFPTargeting())
{env.useDFP=env.dfp_site==="ftcom.5887.video"?true:env.useDFP;env.useDFP=env.dfp_site==="test.5887.video"?true:env.useDFP;}
var cookie=FT.cookies.FTQA;if(cookie)
{if(cookie.match(/dfp_ads/))
{env.useDFP=true;clientAds.log("FTQA cookie is setting DFP mode");}
if(cookie.match(/old_ads/))
{env.useDFP=false;clientAds.log("FTQA cookie is setting DE mode");}}
clientAds.log("useDFP = "+env.useDFP);return env.useDFP;};FT.Advertising.prototype.removeDEMethods=function(){var idx;var Methods=['clearTimer','callback','storeResponse','extendBaseAdvert','insertNewAd','expand','renderStaged','startRefreshTimer','renderImage'];for(idx=0;idx<Methods.length;idx++)
{(function(){delete FT.Advertising.prototype[Methods[idx]];}());}};FT.Advertising.prototype.initDFP=function(env)
{clientAds.log("FT.Advertising.initDFP() - top");env=env||FT.env;this.hasCalledInitDFP=true;if(typeof(env.useDFP)!=='undefined')
{if(env.useDFP)
{this.beginNewPage(env);}}
else
{this.detectAdMode();if(env.useDFP)
{clientAds.log("FT.ads.initDFP() - setup DFP");this.removeDEMethods();this.setupInterface();FT.Advertising.prototype.request=FT.Advertising.prototype.requestDFP;this.beginNewPage(env);}
else
{clientAds.log("FT.ads.initDFP() - reset DE");FT.Advertising.prototype.request=FT.Advertising.prototype.requestDE;if(clientAdsDE)
{clientAds=clientAdsDE;Advert=AdvertDE;}}}};FT.Advertising.prototype.getLongestUrl=function()
{var AdPositions=this.getKeys(this.adverts);var longestRequestUrl;var longestRequestUrlLength=0;this.foreach(AdPositions,function(pos)
{var thisAdvert=this.adverts[pos];if(typeof(thisAdvert)==='object')
{var rDiagnostics=thisAdvert.diagnostics;if(rDiagnostics&&rDiagnostics.requestUrl)
{var requestUrl=rDiagnostics.requestUrl.replace(/^http:\/\/[^\/]+\.net/,'');if(requestUrl.length>longestRequestUrlLength)
{longestRequestUrlLength=requestUrl.length;longestRequestUrl=requestUrl;}}}});return longestRequestUrl;};FT.Advertising.prototype.shouldSubmitToTrack=function()
{if(!this.submitToTrack)
{var rnd=Math.floor(Math.random()*this.CONST.urlThresholdMax);if(rnd<this.CONST.urlThreshold)
{this.submitToTrack=true;}}
return this.submitToTrack;};FT.Advertising.prototype.checkSubmitLongestUrl=function()
{if(this.shouldSubmitToTrack())
{return this.getLongestUrl();}
else
{return undefined;}};FT.Advertising.prototype.injectUrlTrackCall=function()
{var url=FT.ads.checkSubmitLongestUrl();if(url&&document.createElement)
{clientAds.log("Injecting call to track long URL:"+url);var rImg=document.createElement("img");rImg.src=this.CONST.trackUrl+"?long_url="+url;rImg.id="injectUrlTrackCall";rImg.setAttribute("style","display:none");document.getElementsByTagName("body")[0].appendChild(rImg);}
return url;};FT.Advertising.prototype.injectUnclassifiedTrackCall=function()
{var url;if(this.isUnclassified())
{if(this.shouldSubmitToTrack()&&document.createElement)
{url=document.location;clientAds.log("Injecting call to track unclassified page URL:"+url);var rImg=document.createElement("img");rImg.src=this.CONST.trackUrl+"?unclassified="+url;rImg.id="injectUnclassifiedTrackCall";rImg.setAttribute("style","display:none");document.getElementsByTagName("body")[0].appendChild(rImg);}}
return url;};var AD_BANLB='banlb';var AD_NEWSSUBS='newssubs';var AD_MPU='mpu';var AD_HLFMPU="hlfmpu";var AD_MPUSKY="mpusky";var AD_OOB='oob';var AD_CORPPOP='corppop';var AD_REFRESH='refresh';var AD_MACROAD="macroad";var AD_MARKETINGRIB="marketingrib";var AD_TLBXRIB="tlbxrib";var AD_INTRO="intro";var AD_HMMPU="hmmpu";var AD_TRADCENT="tradcent";var AD_MARKETING="marketing";var AD_DOUBLET="doublet";var AD_WDESKY="wdesky";var AD_NRWSKY="nrwsky";var AD_ARTBOX="artbox";var AD_FTHBOX="fthbox";var AD_TLBX="tlbx";var AD_FMBUT2="fmbut2";var AD_LHN="lhn";var AD_MKTBX="mktbx";var AD_POP="popp";var AD_BXBAR="bxbar";var AD_DKTALRT="dktalrt";var AD_DSKTICK="dsktick";var AD_PRNT="prnt";var AD_INV="inv";var AD_MBATOP="mbatop";var AD_MBABOT="mbabot";var AD_MBALINK="mbalink";var AD_SBHEAD="sbhead";var AD_FTNT="ftnt";var AD_1x1="1x1";var AD_CURRCON="currcon";var AD_CURRBOX="currbox";clientAds={'debug':null,'render':function(pos)
{if(pos)
{this.log('clientAds.render('+pos+') = NOP');}
else
{this.log('clientAds.render('+pos+') = FT.ads.requestInsertedAds() '+(FT.env.useDFP?'[DFP]':'[DE]'));FT.ads.requestInsertedAds();if(FT.env.useDFP)
{FT.ads.complete();}}},'fetch':function(pos)
{this.log('clientAds.fetch('+pos+') = NOP');},'log':function(msg){if(this.debug===null)
{this.debug=false;if(FT.cookies.FTQA&&FT.cookies.FTQA.match(/debug/))
{this.debug=true;}}
if(this.debug)
{if(window.console&&window.console.log)
{window.console.log(msg);}
else if(window.opera)
{window.opera.postError(msg);}}},'showCookies':function(reKeys)
{return"Cookies:\n"+document.cookie.split(';').sort().join(";\n");}};function Advert(pos)
{clientAds.log('new Advert('+pos+')');FT.env.isLegacyAPI=true;var obj={'name':pos,'init':function()
{clientAds.log('Advert.init('+this.name+') = FT.ads.request('+this.name+') '+(FT.env.useDFP?'[DFP]':'[DE]'));FT.ads.request(this.name);}};if(!FT.ads.hasCalledInitDFP)
{FT.ads.initDFP();if(clientAdsDE&&!FT.env.useDFP)
{clientAds.log('create using AdvertDE('+pos+')');obj=new AdvertDE(pos);}}
return obj;}
FT.Advertising.prototype.VERSION="Sprint18 $Rev: 51822 $";FT.Advertising.prototype.library="falcon";clientAds.log("DFP Ads: "+FT.Advertising.prototype.library.toUpperCase()+" "+FT.Advertising.prototype.VERSION);

