
function sitestat(nedstatUrl){var d=document,l=d.location;ns_pixelUrl=nedstatUrl+"&ns__t="+(new Date().getTime());u=ns_pixelUrl+"&ns_c="+((d.characterSet)?d.characterSet:d.defaultCharset)+"&ns_ti="+escape(d.title)+"&ns_jspageurl="+escape(l&&l.href?l.href:d.URL)+"&ns_referrer="+escape(d.referrer);(d.images)?new Image().src=u:d.write('<'+'p><img src="'+u+'" height="1" width="1" alt="*"><'+'/p>');}

var ItvPlayer=ItvPlayer||{};ItvPlayer.Utils=ItvPlayer.Utils||{};ItvPlayer.Utils.Cookie=function()
{var getByName=function(name)
{if(!name)
{return null;}
var cookies=ItvPlayer.Abstractions.getCookies();if(!cookies||cookies==="")
{return null;}
var cookieArr=cookies.split(";");var cookieValue=null;for(var i=0;i<cookieArr.length;i++)
{var cookie=$.trim(cookieArr[i]);if(cookie.substring(0,name.length+1)===name+"=")
{var value=cookie.substring(name.length+1);cookieValue=ItvPlayer.Abstractions.decodeUriComponent(value);break;}}
return cookieValue;};return{getByName:getByName};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Utils=ItvPlayer.Utils||{};ItvPlayer.Utils.TemplateRenderer=function(templateId)
{this.templateId=templateId;this.templateElement=undefined;};(function(proto)
{proto.render=function(placeholders_arg)
{var placeholders=placeholders_arg||{};if(!this.templateElement)
{this.templateElement=document.getElementById(this.templateId);}
if(!this.templateElement)
{return null;}
var content=this.templateElement.innerHTML;var placeholder;for(placeholder in placeholders){content=content.replace(new RegExp('{{'+placeholder+'}}','g'),placeholders[placeholder]);}
return content;};})(ItvPlayer.Utils.TemplateRenderer.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Utils=ItvPlayer.Utils||{};ItvPlayer.Utils.QueryString=function()
{var parameters={};var getParameter=function(parameter)
{var queryString=ItvPlayer.Abstractions.getQueryString();if(queryString.length<=1)
{return null;}
queryString=queryString.substring(1);var parameters=queryString.split("&");for(var i=0;i<parameters.length;i++)
{var parts=parameters[i].split("=");if(!parameters[parts[0]])
{parameters[parts[0]]=parts[1];}
if(parts[0]===parameter)
{return parts[1];}}
return null;};return{getParameter:getParameter};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Utils=ItvPlayer.Utils||{};ItvPlayer.Utils.MercuryClient=function()
{var call=function(urlFragment)
{if(urlFragment&&ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.mercuryBasePath)
{var url=ItvPlayer.Config.items.mercuryBasePath+urlFragment;return $.ajax({url:url,dataType:"jsonp",timeout:3000});}};var getImageUrl=function(url,width,height){return url.replace(/img\/157x88\//,'img/'+width+'x'+height+'/');};return{call:call,getImageUrl:getImageUrl};}();

var ItvPlayer=ItvPlayer||{};function getAdArea(){if(typeof(segment)!=='undefined'){return segment;}else{return'ITVPLAYER.VIDEO';}}
(function(ip)
{var videoPlayer;ip.embedVideoPlayer=function(vodcrid,countername)
{var videoPlayerUrl=[ItvPlayer.Config.items.flashVars.basePath,ItvPlayer.Config.items.videoPlayerSwf,"?v=",ItvPlayer.Config.items.mercuryVersion].join("");if(ItvPlayer.Config.items.videoPlaceholderId)
{videoPlayer=new ItvPlayer.VideoPlayer(ItvPlayer.Config.items.videoPlaceholderId,videoPlayerUrl);if(ItvPlayer.Config.items.overrideVodcrid)
{videoPlayer.setVodcrid(ItvPlayer.Config.items.overrideVodcrid);}
else if(vodcrid)
{videoPlayer.setVodcrid(vodcrid);}
else if(ItvPlayer.Config.items.vodcridUrlParameter)
{videoPlayer.getVodcridFromUrlParameter(ItvPlayer.Config.items.vodcridUrlParameter);}
if(countername){videoPlayer.setTrackingBaseUrl(countername);}
videoPlayer.attemptEmbed();}};ip.setupGuidance=function()
{var cfg=ItvPlayer.Config.items;if(cfg.flashVars.basePath&&cfg.guidanceSwf&&cfg.guidancePlaceholderId&&cfg.guidanceTemplateId)
{var guidanceSwfUrl=[cfg.flashVars.basePath,cfg.guidanceSwf,"?v=",cfg.mercuryVersion].join("");var guidance=new ItvPlayer.Flash.Guidance(cfg.guidancePlaceholderId,guidanceSwfUrl,cfg.guidanceTemplateId);ItvPlayer.Flash.Guidance.Legacy.setGuidanceObject(guidance);if(videoPlayer)
{$(guidance).bind("guidanceAccepted",$.proxy(videoPlayer.guidanceAccepted,videoPlayer));$(guidance).bind("guidanceRejected",function()
{videoPlayer.guidanceRejected();});}}};})(ItvPlayer);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Abstractions=function()
{var decodeUriComponent=function(uriComponent)
{return decodeURIComponent(uriComponent);};var escapeString=function(string)
{return escape(string);};var getCharacterSet=function()
{return(document.characterSet)?document.characterSet:document.defaultCharset;};var getCookies=function()
{return document.cookie;};var getNewImage=function()
{return new Image();};var getHostname=function()
{return window.location.hostname;};var getPathname=function()
{return window.location.pathname;};var getTitle=function()
{return document.title;};var getQueryString=function()
{return window.location.search;};var getReferrer=function()
{return document.referrer;};var getUrl=function()
{return(document.URL)?document.URL:document.location.href;};var scrollTo=function(x,y)
{window.scrollTo(x,y);};return{decodeUriComponent:decodeUriComponent,escapeString:escapeString,getCharacterSet:getCharacterSet,getCookies:getCookies,getHostname:getHostname,getNewImage:getNewImage,getPathname:getPathname,getTitle:getTitle,getQueryString:getQueryString,getReferrer:getReferrer,getUrl:getUrl,scrollTo:scrollTo};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Adverts=(function()
{var getUrl=function(position,dimensions,useAdProxy)
{var segmentBuilder=new ItvPlayer.Adverts.SegmentBuilder();segment=segmentBuilder.getSegment();var BuilderClass=(useAdProxy)?ItvPlayer.Adverts.AdProxyUrlBuilder:ItvPlayer.Adverts.AdServerUrlBuilder;var urlBuilder=new BuilderClass(segment);var revenueScienceSegments=ItvPlayer.Tracking.RevenueScience.getSegments();urlBuilder.setRevenueScienceString(revenueScienceSegments);return urlBuilder.getUrl(position,dimensions);};var getDimensionsFromString=function(dimensionsString)
{var parts=dimensionsString.split("x");return{width:parts[0],height:parts[1]};};var displayAdvertIframe=function(placeholderId,position,dimensions)
{if(placeholderId&&position&&dimensions)
{var placeholder=document.getElementById(placeholderId);if(placeholder)
{var url=getUrl(position,dimensions,true);if(url)
{var dims=getDimensionsFromString(dimensions);var iframe=document.createElement("iframe");iframe.setAttribute("src",url);iframe.setAttribute("width",dims.width);iframe.setAttribute("height",dims.height);iframe.setAttribute("frameBorder","0");iframe.setAttribute("scrolling","no");placeholder.appendChild(iframe);}}}};var displayAdvertInline=function(position,dimensions)
{if(position&&dimensions)
{var url=getUrl(position,dimensions,false);if(url)
{document.write("<script type=\"text/javascript\" src=\""+url+"\"></"+"script>");}}};return{displayAdvertIframe:displayAdvertIframe,displayAdvertInline:displayAdvertInline};})();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Config=function()
{var baseConfig={adProxyUrl:"/Html/AiMatchAdvertStub.htm?d=d&t=0",adServerUrl:"http://tom.itv.com",guidanceSwf:"Guidance.swf",guidancePlaceholderId:"guidance-placeholder",guidanceTemplateId:"guidanceTemplate",lastViewedPlaceholderId:"puxLastViewedPlaceholder",resumeItemUrlParameter:"resume",videoPlaceholderId:"puxVideoPlayerPlaceholder",vodcridUrlParameter:"Filter",mercuryVideoPlayerSwf:"Mercury_VideoPlayer.swf",osmfVideoPlayerSwf:"ITVMediaPlayer.swf",mercuryVideoPlayerId:"Mercury_VideoPlayer",osmfVideoPlayerId:"ITVMediaPlayer",mercuryAutoResumeSwf:"MercuryAutoResume.swf",osmfAutoResumeSwf:"ITVsoUtil.swf",mercuryVersion:'',pageNum:Math.round(Math.random()*100000000)};var environments={local:{hostname:"localhost",config:{bcmUrl:"",comscoreBaseUrl:"//ned.itv.com/itv/test/s?",mercuryFlashVars:{basePath:"http://rc3.itv.com/mercury/"},osmfFlashVars:{basePath:"http://rc3.itv.com/mediaplayer/",loggingTargets:"firebug,debugscreen",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:true},mercuryBasePath:"http://mercury.itv.com/api/json/",bloomBasePath:"/itv/itvplayer/",overrideVodcrid:"",adProxyUrl:"http://rc3.itv.com/Html/AiMatchAdvertStub.htm?d=d&t=0"}},rc1:{hostname:"g22ms17.itvbb.ads",config:{bcmUrl:"http://bcm.itvbb.ads/BehaviourCaptureHandler.ashx",comscoreBaseUrl:"//ned.itv.com/itv/test/s?",mercuryFlashVars:{basePath:"http://g22ms17.itvbb.ads/mercury/"},osmfFlashVars:{basePath:"http://rc3.itv.com/mediaplayer/",loggingTargets:"firebug,debugscreen",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:true},mercuryBasePath:"http://g22ms17.itvbb.ads:8095/api/json/"}},rc2:{hostname:"g22msrc217.itvbbrc2.ads",config:{bcmUrl:"http://girmsa5:8000/BehaviourCaptureHandler.ashx",comscoreBaseUrl:"//ned.itv.com/itv/test/s?",mercuryFlashVars:{basePath:"http://rc3.itv.com/mercury/"},osmfFlashVars:{basePath:"http://rc3.itv.com/mediaplayer/",loggingTargets:"firebug,debugscreen",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:true},mercuryBasePath:"http://g22msrc217.itvbbrc2.ads:8095/api/json/",overrideVodcrid:"254051"}},rc3:{hostname:"rc3.itv.com",config:{bcmUrl:"http://bcm.rc3.itv.com/bcm.ashx",comscoreBaseUrl:"//ned.itv.com/itv/test/s?",mercuryFlashVars:{basePath:"http://rc3.itv.com/mercury/"},osmfFlashVars:{basePath:"http://rc3.itv.com/mediaplayer/",loggingTargets:"firebug,debugscreen",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:true},mercuryBasePath:"http://mercury.rc3.itv.com/api/json/"}},rcx:{hostname:"d01.www.itv.com",config:{bcmUrl:"http://bcm.rc3.itv.com/bcm.ashx",comscoreBaseUrl:"//ned.itv.com/itv/test/s?",mercuryFlashVars:{basePath:"http://d01.www.itv.com/mercury/"},osmfFlashVars:{basePath:"http://d01.www.itv.com/mediaplayer/",loggingTargets:"firebug,debugscreen",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:false},mercuryBasePath:"http://d01.mercury.itv.com/api/json/"}},stage:{hostname:"s01-www.itv.com",config:{bcmUrl:"http://bcm.rc3.itv.com/bcm.ashx",comscoreBaseUrl:"//ned.itv.com/itv/test/s?",mercuryFlashVars:{basePath:"http://s01-www.itv.com/mercury/"},osmfFlashVars:{basePath:"http://s01-www.itv.com/mediaplayer/",loggingTargets:"firebug,debugscreen",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:false},mercuryBasePath:"http://s01-mercury.itv.com/api/json/"}},prod:{hostname:"www.itv.com",config:{bcmUrl:"http://bcm.itv.com/BehaviourCaptureHandler.ashx",comscoreBaseUrl:"//ned.itv.com/itv/itv/s?",mercuryFlashVars:{basePath:"http://www.itv.com/mercury/"},osmfFlashVars:{basePath:"http://www.itv.com/mediaplayer/",configPath:"/mediaplayer/xml/config.xml",loadExternalConfig:false},mercuryBasePath:"http://mercury.itv.com/api/json/"}}};var determineEnvironment=function()
{var hostname=ItvPlayer.Abstractions.getHostname();for(var env in environments)
{if(environments.hasOwnProperty(env))
{if(environments[env].hostname===hostname)
{return env;}}}};var addEnvironmentalConfigToBase=function(environment)
{if(environments[environment])
{$.extend(baseConfig,environments[environment].config);}};var addMercuryVersionToBase=function(){try{baseConfig.mercuryVersion=Itv.Video.Mercury.version||'';}
catch(e){}};var addPlayerConfig=function(type)
{if(type=="osmf")
{baseConfig.videoPlayerSwf=baseConfig.osmfVideoPlayerSwf;baseConfig.videoPlayerId=baseConfig.osmfVideoPlayerId;baseConfig.autoResumeSwf=baseConfig.osmfAutoResumeSwf;baseConfig.flashVars=baseConfig.osmfFlashVars;}
else
{baseConfig.videoPlayerSwf=baseConfig.mercuryVideoPlayerSwf;baseConfig.videoPlayerId=baseConfig.mercuryVideoPlayerId;baseConfig.autoResumeSwf=baseConfig.mercuryAutoResumeSwf;baseConfig.flashVars=baseConfig.mercuryFlashVars;}};var setup=function()
{var environment=determineEnvironment();addEnvironmentalConfigToBase(environment);var yourPlayer='osmf';addPlayerConfig(yourPlayer);addMercuryVersionToBase();};return{items:baseConfig,setup:setup};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.MultiPlayer=function()
{var thresholds=[[40,'osmf'],[101,'mercury']];var range={min:1,max:100};var cookieName='itvmp';var getCookie=function()
{return window.getCookie(cookieName);};var setCookie=function(value)
{var expiryDate=new Date();expiryDate.setMonth(expiryDate.getMonth()+3);document.cookie=cookieName+"="+window.escape(value)+";expires="+expiryDate.toGMTString()+";path=/itvplayer";};var isValidValue=function(value)
{return(value>=range.min-1&&value<=range.max+1);};var generateNumber=function(){return Math.floor(Math.random()*(range.max-range.min+1)+range.min);};var getPlayer=function()
{var value=getCookie(),playerName;if(!value||!isValidValue(value))
{value=generateNumber();setCookie(value);}
for(var i=thresholds.length-1;i>=0;i--)
{var tuple=thresholds[i];if(value<=tuple[0])
{playerName=tuple[1];}
else{break;}}
return playerName;};return{getPlayer:getPlayer,setCookie:setCookie};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.VideoPlayer=function(videoPlaceholderId,playerUrl)
{this.videoPlaceholderId=videoPlaceholderId;this.playerUrl=playerUrl;this._playerElement=null;this.config={attributes:{id:ItvPlayer.Config.items.videoPlayerId,name:ItvPlayer.Config.items.videoPlayerId},expressInstallLocation:"http://www.itv.com/_devpacks/itvglobal/swf/expressInstall.swf",flashVars:{advertisingArea:"ITVPLAYER.VIDEO",advertisingSite:"ITV",advertisingRestriction:"None",autoPlay:false,enableAutoResume:true,isITVPlayer:true,isPlaylistItem:false,playercontainer:"",toppicks:false,vodcridPartition:"itv.com"},flashVersion:"10.2",guidanceAcceptedMethod:"guidanceAproved",guidanceRejectedMethod:"guidanceDenied",innerElementId:"videoPlayerInner",params:{allowfullscreen:"true",allowscriptaccess:"always",autoplay:"false",bgcolor:"#000000",quality:"high",wmode:"opaque"},playMethod:"playVideo",noFlashTemplate:"video-player-noflash",lastViewed:{swfHolder:'MercuryAutoResume',swfName:ItvPlayer.Config.items.autoResumeSwf+'?v='+ItvPlayer.Config.items.mercuryVersion}};};(function(proto)
{var width,height;var playerVersion;var createInnerElement=function(innerElementId)
{var inner=document.createElement("div");inner.setAttribute("id",innerElementId);return inner;};var transferInnerHtml=function(from,to)
{$(from).contents().detach().appendTo(to);};var getWidthAndHeightFromPlaceholder=function(placeholder)
{var ph=$(placeholder);width=ph.width();height=ph.height();};var addMainConfigToFlashVars=function(config)
{if(ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.flashVars)
{$.extend(config.flashVars,ItvPlayer.Config.items.flashVars);}};var addLocalConnectionToFlashVars=function(config)
{if(ItvPlayer.Flash&&ItvPlayer.Flash.LocalConnection)
{config.flashVars.localConn=ItvPlayer.Flash.LocalConnection.get();}};var addResumeItemToFlashVars=function(config)
{if(ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.resumeItemUrlParameter)
{var value=ItvPlayer.Utils.QueryString.getParameter(ItvPlayer.Config.items.resumeItemUrlParameter);if(value==="true")
{config.flashVars.resumeItem=true;}}};var addRevenueScienceToFlashVars=function(config)
{if(ItvPlayer.Tracking&&ItvPlayer.Tracking.RevenueScience)
{var segments=ItvPlayer.Tracking.RevenueScience.getSegments();if(segments)
{config.flashVars.revenueScience=segments;}}};proto.attemptEmbed=function()
{function finishEmbed(swfobjectEvent)
{if(swfobjectEvent.success&&swfobjectEvent.ref)
{this._playerElement=swfobjectEvent.ref;$('<div id="'+this.config.lastViewed.swfHolder+'" />').prependTo('body');var loader=new ItvPlayer.Flash.LastViewed.Loader(this.config.lastViewed.swfHolder,ItvPlayer.Config.items.flashVars.basePath+this.config.lastViewed.swfName);loader.load();}
else{var noFlashTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.noFlashTemplate);var innerEle=document.getElementById(this.config.innerElementId);$(noFlashTemplateRenderer.render()).prependTo(innerEle);}}
var placeholder=document.getElementById(this.videoPlaceholderId);if(placeholder&&this.playerUrl)
{var innerElement=createInnerElement(this.config.innerElementId);transferInnerHtml(placeholder,innerElement);placeholder.appendChild(innerElement);getWidthAndHeightFromPlaceholder(placeholder);addMainConfigToFlashVars(this.config);addLocalConnectionToFlashVars(this.config);addResumeItemToFlashVars(this.config);addRevenueScienceToFlashVars(this.config);var userFlashVersion=parseFloat(parseInt(swfobject.getFlashPlayerVersion().major,10)+'.'+parseInt(swfobject.getFlashPlayerVersion().minor,10));if(userFlashVersion>=this.config.flashVersion){swfobject.embedSWF(this.playerUrl,this.config.innerElementId,width,height,this.config.flashVersion,false,this.config.flashVars,this.config.params,this.config.attributes,$.proxy(finishEmbed,this));}else{var noFlashTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.noFlashTemplate);var innerEle=document.getElementById(this.config.innerElementId);$(noFlashTemplateRenderer.render()).prependTo(innerEle);}}};proto.guidanceAccepted=function()
{if(this._playerElement)
{this._playerElement[this.config.guidanceAcceptedMethod]();this._playerElement[this.config.playMethod]();}};proto.guidanceRejected=function()
{if(this._playerElement)
{this._playerElement[this.config.guidanceRejectedMethod]();}};proto.getVodcridFromUrlParameter=function(parameter)
{var value=ItvPlayer.Utils.QueryString.getParameter(parameter);if(value)
{this.config.flashVars.vodcridId=value;}};proto.setVodcrid=function(vodcrid)
{this.config.flashVars.vodcridId=vodcrid;};proto.setTrackingBaseUrl=function(countername)
{this.config.flashVars.trackingBaseUrl=ItvPlayer.Config.items.comscoreBaseUrl+countername;};}(ItvPlayer.VideoPlayer.prototype));

var ItvPlayer=ItvPlayer||{};ItvPlayer.Adverts=ItvPlayer.Adverts||{};ItvPlayer.Adverts.AdServerUrlBuilder=function(segment)
{this.segment=segment;this._adServerUrl="http://tom.itv.com/itv/jserver/";this._adServerParameters={"site":"itv","area":"itvplayer"};};(function(proto)
{var addPositionToParameters=function(parameters,position)
{parameters.position=position;};var addSegmentToParameters=function(parameters,segment)
{parameters.seg=segment;};var addDimensionsToParameters=function(parameters,dimensions)
{parameters.size=dimensions;};var addViewIdToParameters=function(parameters,pageId)
{parameters.viewid=pageId;};var addRandomNumberToParameters=function(parameters)
{parameters.random=getRandomNumber();};var getRandomNumber=function()
{return Math.round(Math.random()*10000000000);};var formatParameters=function(parameters)
{var params=$.map(parameters,function(value,key)
{return[key,"=",value].join("");});return params.join("/");};proto.getUrl=function(position,dimensions)
{var cfg=ItvPlayer.Config.items;if(!this.segment||!position||!dimensions)
{return null;}
addViewIdToParameters(this._adServerParameters,cfg.pageNum);addDimensionsToParameters(this._adServerParameters,dimensions);addRandomNumberToParameters(this._adServerParameters);addPositionToParameters(this._adServerParameters,position);addSegmentToParameters(this._adServerParameters,this.segment);return this._adServerUrl+formatParameters(this._adServerParameters).toLowerCase();};proto.setRevenueScienceString=function(revenueScienceString)
{this._adServerParameters.rs=revenueScienceString;};})(ItvPlayer.Adverts.AdServerUrlBuilder.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Adverts=ItvPlayer.Adverts||{};ItvPlayer.Adverts.AdProxyUrlBuilder=function(segment)
{this.segment=segment;this._adProxyParameters={client:"itv",adrestriction:"",itvarea:"itvplayer",itvsite:"itv"};};(function(proto)
{var addSegmentToParameters=function(parameters,segment)
{parameters.seg=segment.toLowerCase();};var addPositionToParameters=function(parameters,position)
{parameters.position=position;};var addDimensionsToParameters=function(parameters,dimensions)
{parameters.dimensions=dimensions;};var addAdServerUrlToParameters=function(parameters,adServerUrl)
{parameters.adserver=escape(adServerUrl);};var addPageNumToParameters=function(parameters,pageNum)
{parameters.pagenum=pageNum;};var urlIncludesQueryString=function(url)
{return url.indexOf('?')>-1;};var getQueryStringParameters=function(parameters,urlAlreadyIncludesQueryString)
{var firstParameterSpecified=urlAlreadyIncludesQueryString;var params=$.map(parameters,function(value,key)
{var firstCharacter="&";if(!firstParameterSpecified)
{firstCharacter="?";firstParameterSpecified=true;}
return[firstCharacter,key,"=",value].join("");});return params.join("");};proto.getUrl=function(position,dimensions)
{var cfg=ItvPlayer.Config.items;if(!this.segment||!position||!dimensions||!cfg.adServerUrl||!cfg.adProxyUrl)
{return null;}
addSegmentToParameters(this._adProxyParameters,this.segment);addPositionToParameters(this._adProxyParameters,position);addDimensionsToParameters(this._adProxyParameters,dimensions);addAdServerUrlToParameters(this._adProxyParameters,cfg.adServerUrl);addPageNumToParameters(this._adProxyParameters,cfg.pageNum);return cfg.adProxyUrl+getQueryStringParameters(this._adProxyParameters,urlIncludesQueryString(cfg.adProxyUrl));};proto.setRevenueScienceString=function(revenueScienceString)
{this._adProxyParameters.rs=revenueScienceString;};})(ItvPlayer.Adverts.AdProxyUrlBuilder.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Adverts=ItvPlayer.Adverts||{};ItvPlayer.Adverts.SegmentBuilder=function()
{};(function(proto)
{var customSegments=["atoz","bychannel","search","thirtydaycatchup","video","halifax","time"];var defaultSegment="itvplayer";var formatSegment=function(segment)
{return defaultSegment+"."+segment.toUpperCase();};proto.getSegment=function()
{var path=ItvPlayer.Abstractions.getPathname();var parts=path.split("/");for(var i=(parts.length-1);i>-1;i--)
{for(var j=0;j<customSegments.length;j++)
{if(parts[i].toLowerCase()===customSegments[j])
{return formatSegment(customSegments[j]);}}}
return defaultSegment;};})(ItvPlayer.Adverts.SegmentBuilder.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.AZFilter=ItvPlayer.AZFilter||{};ItvPlayer.AZFilter.Featured=ItvPlayer.AZFilter.Featured||{};ItvPlayer.AZFilter.Featured=function(element)
{this.element=element;this.config={imageTemplate:'featured-item-image',imageDimensions:{width:144,height:81},queryUrls:['dotcom/Episode/Carousel','dotcom/Episode/Crucial']};};(function(proto)
{proto.render=function()
{var resultsDeferred=this._getResults();resultsDeferred.done(this._populateItems);};proto._getResults=function()
{var allResultsComplete=$.Deferred();var apiCalls=$.map(this.config.queryUrls,function(url){return ItvPlayer.Utils.MercuryClient.call(url);});var _this=this;$.when.apply(null,apiCalls).done(function(){var args=Array.prototype.slice.call(arguments);if(typeof args[1]==='string'){args=[args];}
var resultSets=$.map(args,function(set){return set[0].Result;});var placeholders=_mergeAndGeneratePlaceholdersFromData(resultSets,_this.config.imageDimensions);allResultsComplete.resolveWith(_this,[placeholders]);});return allResultsComplete;};proto._populateItems=function(placeholders)
{if(!this.element){return;}
var imgTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.imageTemplate);$('li',this.element).each(function(){var thisResult=placeholders[this.getAttribute('data-latestepisode')];if(!thisResult){return;}
$(this).addClass('featured').prepend($(imgTemplateRenderer.render(thisResult)));});};var _mergeAndGeneratePlaceholdersFromData=function(resultSets,imageDimensions)
{var programmes={};$.each(resultSets,function(i,result){var prog=result.Details[0].Programme;programmes[prog.MostRecentEpisodeId]={video_id:prog.MostRecentEpisodeId,image_url:ItvPlayer.Utils.MercuryClient.getImageUrl(prog.ImageUri,imageDimensions.width,imageDimensions.height),image_width:imageDimensions.width,image_height:imageDimensions.height};});return programmes;};})(ItvPlayer.AZFilter.Featured.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.AZFilter=ItvPlayer.AZFilter||{};ItvPlayer.AZFilter.Navigation=ItvPlayer.AZFilter.Navigation||{};ItvPlayer.AZFilter.Navigation=function(navigation,listing)
{this.navigation=navigation;this.listing=listing;this.navigationBody=$(this.navigation).find('.pux-moduleBody');this.itemsBody=$(this.listing).find('.pux-moduleBody');this.allHeadings=null;this.allNavLinks=null;this.config={activeClass:'itv-active'};};(function(proto)
{proto.bindEvents=function()
{if(!this.allHeadings){this.allHeadings=this.itemsBody.find('h2');}
if(!this.allNavLinks){this.allNavLinks=this.navigationBody.find('.pux-linkList > li a');}
_this=this;this.navigationBody.find('ul.pux-linkList > .pux-link a').click(function(e){e.preventDefault();var itemLetter=$(this).text();_this.allHeadings.each(function(){var isThisItem=this.id==itemLetter;$(this).parent().toggle(isThisItem);if($.browser.msie&&$.browser.version.substr(0,1)<8){$(".columnTwo").css({'left':'-480px','position':'relative'});}});_this._updateActiveItem(e.currentTarget);});this.navigationBody.find('ul.pux-linkList > .pux-link-all a').click(function(e){e.preventDefault();_this.allHeadings.parent().show();_this._updateActiveItem(e.currentTarget);});};proto._updateActiveItem=function(newActiveEle){this.allNavLinks.each(function(){$(this).toggleClass(_this.config.activeClass,this==newActiveEle);});};})(ItvPlayer.AZFilter.Navigation.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Catchup=ItvPlayer.Catchup||{};ItvPlayer.Catchup.Renderer=ItvPlayer.Catchup.Renderer||{};ItvPlayer.Catchup.Renderer=function(initialTime)
{this.config={itemTemplate:'catchup-item',itemUnavailableTemplate:'catchup-item-unavailable',itemWrapperTemplate:'catchup-item-wrapper',imageDimensions:{width:144,height:81},unavailableImagePath:'/_devpacks/dotcomplayer/img/catchup-unavailable.png',unavailableprogrammesImagePath:'/_devpacks/dotcomplayer/img/catchup-unavailable-programmes.png',comingSoonImagePath:'/_devpacks/dotcomplayer/img/catchup-comingsoon.png'};this._initialTime=initialTime;};(function(proto)
{proto.render=function(data)
{var config=this.config;var initialTime=this._initialTime;var itemTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemTemplate);var itemUnavailableTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemUnavailableTemplate);var wrapperTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemWrapperTemplate);var listItems=$.map(data,function(item){var isAvailableEver=item.ComingSoon;var isAvailableNow=item.AvailabilityStart&&initialTime>=jsonDateToNative(item.AvailabilityStart)&&item.AvailabilityEnd&&initialTime<=jsonDateToNative(item.AvailabilityEnd);var html;if(isAvailableNow){html=itemTemplateRenderer.render(generatePlaceholders(item,config.imageDimensions));}
else{var imageUrl=(isAvailableEver?config.comingSoonImagePath:config.unavailableImagePath);html=itemUnavailableTemplateRenderer.render(generatePlaceholders(item,config.imageDimensions,imageUrl));}
return $(html).get(0);});var dummyContainer=$('<div/>').append(listItems);return $(wrapperTemplateRenderer.render({catchup_items:dummyContainer.html()})).get(0);};proto.renderNoProgrammes=function()
{var itemUnavailableTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemUnavailableTemplate);var wrapperTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemWrapperTemplate);var placeholders={video_title:'&#160;',image_url:this.config.unavailableprogrammesImagePath,image_width:this.config.imageDimensions.width,image_height:this.config.imageDimensions.height,air_date:'&#160;',air_date_ms:(new Date()).toUTCString()};var html=itemUnavailableTemplateRenderer.render(placeholders);return $(wrapperTemplateRenderer.render({catchup_items:html})).get(0);};var generatePlaceholders=function(item,imageDimensions,imageUrl){return{video_title:item.ProgrammeTitle,video_id:item.Vodcrid,image_url:(imageUrl?imageUrl:item.ImageUri+'?w='+imageDimensions.width),air_date:formatTime(jsonDateToNative(item.BroadcastDate)),air_date_ms:jsonDateToNative(item.BroadcastDate).toUTCString(),image_width:imageDimensions.width,image_height:imageDimensions.height};};var jsonDateToNative=function(string)
{if(string===null){return new Date(null);}
return new Date(+string.replace(/\/Date\((\d+)\)\//,'$1'));};var formatTime=function(date){var hours=(date.getHours()===0||date.getHours()===12?12:date.getHours()%12);var minutes=date.getMinutes();var ampm=(date.getHours()===0||date.getHours()<=11?'am':'pm');minutes=''+(minutes<10?'0'+minutes:minutes);return hours+':'+minutes+' '+ampm;};})(ItvPlayer.Catchup.Renderer.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Catchup=ItvPlayer.Catchup||{};ItvPlayer.Catchup.CacheManager=ItvPlayer.Catchup.CacheManager||{};ItvPlayer.Catchup.CacheManager=function(initialTime)
{this.config={mercuryUrl:'dotcom/whatsonschedule/',mercuryUrlByDate:'dotcom/Episode/bydate/',itemTemplate:'catchup-item',itemWrapperTemplate:'catchup-item-wrapper',imageDimensions:{width:144,height:81}};this._initialTime=initialTime;this._apiCalls={};this._apiCallsByDate={};this._cache={};};(function(proto)
{proto.getItem=function(date,channel)
{this._cache[date]=this._cache[date]||{};this._cache[date][channel]=this._cache[date][channel]||$.Deferred();if(!this._cache[date][channel].isResolved())
{var isByDate=(channel=='CITV');var apiCallCache=(!isByDate?'_apiCalls':'_apiCallsByDate');var mercuryUrl=(!isByDate?this.config.mercuryUrl:this.config.mercuryUrlByDate);if(!(date in this[apiCallCache]))
{this[apiCallCache][date]=ItvPlayer.Utils.MercuryClient.call(mercuryUrl+date.replace(/-/g,'/'));}
this[apiCallCache][date].done($.proxy(function(data){if(isByDate)
{data=transformByDateToWhatsOn(data);data.reverse();}
this._generateDeferredItems(date,channel,data);},this));this[apiCallCache][date].fail($.proxy(function(){this._generateDeferredItemsEmpty(date,channel);},this));}
return this._cache[date][channel].promise();};proto._generateDeferredItems=function(date,channel,data)
{var channeldata=$.map(data,function(item){return(item.Channel==channel?item:null);});if(!channeldata.length){this._generateDeferredItemsEmpty(date,channel);return;}
var renderer=new ItvPlayer.Catchup.Renderer(this._initialTime);var generatedHtml=renderer.render(channeldata);this._cache[date][channel].resolve(generatedHtml);};proto._generateDeferredItemsEmpty=function(date,channel)
{var renderer=new ItvPlayer.Catchup.Renderer(this._initialTime);var generatedHtml=renderer.renderNoProgrammes();this._cache[date][channel].resolve(generatedHtml);};var transformByDateToWhatsOn=function(data){if(!(data.Result&&data.Result[0]&&data.Result[0].Details)){return[];}
return $.map(data.Result[0].Details,function(item){var episode=item.Episodes[0];var programme=item.Programme;return{Channel:episode.Channel.Name,BroadcastDate:episode.LastBroadcast,ProgrammeTitle:programme.Programme.Title,EpisodeTitle:episode.Episode.Title,Synopsis:episode.Episode.ShorySynopsis,ImageUri:episode.PosterFrameUri,Vodcrid:episode.Vodcrid.Id,AvailabilityStart:episode.LastBroadcast,AvailabilityEnd:episode.LastBroadcast.replace(/[0-9]+/g,function(r){return parseInt(r,10)+(86400000*(episode.DaysRemaining+1));}),Repeat:false,ComingSoon:true};});};})(ItvPlayer.Catchup.CacheManager.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Error=ItvPlayer.Error||{};ItvPlayer.Error.Critical=(function()
{var buildDialog=function(html){var $dialogEle=$(html).appendTo(document.body);$dialogEle.dialog({width:606,position:['center','top'],modal:true,draggable:false,resizable:false});};var alreadyCalled=false;var run=function(){if(!$.fn.dialog){return false;}
if(alreadyCalled){return false;}
alreadyCalled=true;$.get('/_devpacks/dotcomplayer/html/error.xml',buildDialog,'html');return true;};return run;})();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.LocalConnection=function()
{var lcNum;var get=function()
{if(!lcNum)
{lcNum=Math.round(Math.random()*10000000000);}
return lcNum;};return{get:get};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.Guidance=function(guidanceElementId,guidanceSwfUrl,guidanceTemplateId)
{this.guidanceElementId=guidanceElementId;this.guidanceSwfUrl=guidanceSwfUrl;this.guidanceTemplateId=guidanceTemplateId;this._guidanceElement=null;this._config={attributes:{id:"Mercury_Guidance",name:"Mercury_Guidance"},expressInstallLocation:"http://www.itv.com/_devpacks/itvglobal/swf/expressInstall.swf",flashVars:{},flashVersion:"10.2",height:"600",innerElementId:"guidanceInner",params:{autoplay:"true",allowscriptaccess:"always",bgcolor:"#000000",quality:"high",wmode:"opaque"},width:"600"};};(function(proto)
{var addGuidanceElementFromTemplate=function(guidanceTemplateId)
{var templateRenderer=new ItvPlayer.Utils.TemplateRenderer(guidanceTemplateId);var templateHtml=templateRenderer.render();if(templateHtml)
{var containerElement=document.createElement("div");containerElement.innerHTML=templateHtml;document.body.appendChild(containerElement);}};var addInnerElement=function(parentElement,innerElementId)
{var innerElement=document.createElement("div");innerElement.setAttribute("id",innerElementId);parentElement.appendChild(innerElement);};var addBasePathToFlashVars=function(flashVars,basePath)
{flashVars.basePath=basePath;};var setGuidanceOverlayHeight=function(overlayElement)
{$(overlayElement).height($(document).height());};var destroyGuidance=function(guidanceElement)
{guidanceElement.parentNode.style.display="none";guidanceElement.style.display="none";for(var i=0;i<guidanceElement.childNodes.length;i++)
{guidanceElement.removeChild(guidanceElement.childNodes[i]);}};proto.show=function()
{function finishShowing(swfObjectEvent)
{if(swfObjectEvent.success)
{setGuidanceOverlayHeight(this._guidanceElement.parentNode);ItvPlayer.Abstractions.scrollTo(0,0);this._guidanceElement.style.display="block";this._guidanceElement.parentNode.style.display="block";}}
if(this.guidanceTemplateId)
{addGuidanceElementFromTemplate(this.guidanceTemplateId);}
if(this.guidanceElementId&&this.guidanceSwfUrl&&ItvPlayer.Config.items.flashVars.basePath)
{this._guidanceElement=document.getElementById(this.guidanceElementId);if(this._guidanceElement)
{addInnerElement(this._guidanceElement,this._config.innerElementId);addBasePathToFlashVars(this._config.flashVars,ItvPlayer.Config.items.flashVars.basePath);swfobject.embedSWF(this.guidanceSwfUrl,this._config.innerElementId,this._config.width,this._config.height,this._config.flashVersion,this._config.expressInstallLocation,this._config.flashVars,this._config.params,this._config.attributes,$.proxy(finishShowing,this));}}};proto.guidanceAccepted=function()
{destroyGuidance(this._guidanceElement);$(this).trigger("guidanceAccepted");};proto.guidanceRejected=function()
{destroyGuidance(this._guidanceElement);$(this).trigger("guidanceRejected");};})(ItvPlayer.Flash.Guidance.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.Guidance=ItvPlayer.Flash.Guidance||function(){};ItvPlayer.Flash.Guidance.Legacy=(function()
{var _guidanceObject=null;var getGuidanceObject=function()
{return _guidanceObject;};var setGuidanceObject=function(guidanceObject)
{_guidanceObject=guidanceObject;};return{getGuidanceObject:getGuidanceObject,setGuidanceObject:setGuidanceObject};})();function flashExt_playVideo(){var guidanceObject=ItvPlayer.Flash.Guidance.Legacy.getGuidanceObject();if(guidanceObject)
{guidanceObject.guidanceAccepted();}}
function flashExt_noVideo(){var guidanceObject=ItvPlayer.Flash.Guidance.Legacy.getGuidanceObject();if(guidanceObject)
{guidanceObject.guidanceRejected();}}
function showGuidance(playerContainerIdLocal,basePath){var guidanceObject=ItvPlayer.Flash.Guidance.Legacy.getGuidanceObject();if(guidanceObject)
{guidanceObject.show();}}
function sendEmailResponse(emailSent){document.Mercury_Guidance.sendEmailCallback(emailSent);}
function sendNewPin(params){$.ajax({url:"//"+window.location.host+"/_app/dynamic/PinChangeHandler.ashx?Action=GenerateNew&email="+params.emailAddress+"&rnd="+params.pinNumber,type:"GET",dataType:'jsonp',success:function(data){if(data.emailSent){sendEmailResponse(true);}
else{sendEmailResponse(false);}},error:function(){sendEmailResponse(false);}});}

var ITVPlayer={setLoadLastWatchedFromSWFCallback:function(callback,context)
{this.loadLastWatchedFromSWFCallback=callback;this.loaderContext=context;},loadLastWatchedFromSWF:function()
{if(this.loadLastWatchedFromSWFCallback)
{$.proxy(this.loadLastWatchedFromSWFCallback,this.loaderContext)();}},setLoadAutoResumeItemsCallback:function(callback,context)
{this.loadAutoResumeItemsCallback=callback;this.parserContext=context;},loadAutoResumeItems:function(string)
{if(this.loadAutoResumeItemsCallback)
{$.proxy(this.loadAutoResumeItemsCallback,this.parserContext)(string);}}};

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.LastViewed=ItvPlayer.Flash.LastViewed||{};ItvPlayer.Flash.LastViewed.LoaderDeferred=null;ItvPlayer.Flash.LastViewed.Loader=function(placeholderId,swfUrl)
{this.placeholderId=placeholderId;this.swfUrl=swfUrl;this._config={attributes:{id:"MercuryAutoResume",name:"MercuryAutoResume"},expressInstallLocation:"http://www.itv.com/_devpacks/itvglobal/swf/expressInstall.swf",flashVars:{addLastWatchedCallback:true},flashVersion:"9",height:1,params:{autoplay:"true",allowscriptaccess:"always",bgcolor:"#000000",name:"MercuryAutoResume",quality:"high",wmode:"transparent"},width:1};this._swfElement=null;};(function(proto)
{var addMainConfigToFlashVars=function(config)
{if(ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.flashVars)
{$.extend(config.flashVars,ItvPlayer.Config.items.flashVars);}};var addLocalConnectionToFlashVars=function(config)
{if(ItvPlayer.Flash&&ItvPlayer.Flash.LocalConnection)
{config.flashVars.localConn=ItvPlayer.Flash.LocalConnection.get();}};var callback=function(swfobjectEvent)
{if(!swfobjectEvent.success)
{ItvPlayer.Flash.LastViewed.LoaderDeferred.reject();}
else
{this._swfElement=swfobjectEvent.ref;}};proto.load=function()
{if(ItvPlayer.Flash.LastViewed.LoaderDeferred!==null)
{return ItvPlayer.Flash.LastViewed.LoaderDeferred.promise();}
var placeholder=document.getElementById(this.placeholderId);if(this.placeholderId&&placeholder&&this.swfUrl)
{ItvPlayer.Flash.LastViewed.LoaderDeferred=$.Deferred();ITVPlayer.setLoadLastWatchedFromSWFCallback(this.continueLoad,this);addMainConfigToFlashVars(this._config);addLocalConnectionToFlashVars(this._config);swfobject.embedSWF(this.swfUrl,this.placeholderId,this._config.width,this._config.height,this._config.flashVersion,this._config.expressInstallLocation,this._config.flashVars,this._config.params,this._config.attributes,$.proxy(callback,this));return ItvPlayer.Flash.LastViewed.LoaderDeferred.promise();}};proto.continueLoad=function()
{if(this._swfElement)
{ItvPlayer.Flash.LastViewed.LoaderDeferred.resolve(this._swfElement);}};})(ItvPlayer.Flash.LastViewed.Loader.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.LastViewed=ItvPlayer.Flash.LastViewed||{};ItvPlayer.Flash.LastViewed.Parser=function(element)
{this.element=element;this.config={flashPlayerLoadFunction:"getLastWatchedJS",numItems:5};this._deferred=$.Deferred();};(function(proto)
{proto.parse=function()
{ITVPlayer.setLoadAutoResumeItemsCallback(this.continueParse,this);if(this.element)
{this.element[this.config.flashPlayerLoadFunction](this.config.numItems);}
return this._deferred.promise();};proto.continueParse=function(string)
{var doc;try
{doc=$.parseXML(string);if(doc.documentElement.nodeName!=='lastWatched')
{throw"";}}
catch(e)
{this._deferred.reject([]);return;}
var vodcrids=$.map($(doc).find("video"),function(ele)
{return $(ele).text();});this._deferred.resolve(vodcrids);};})(ItvPlayer.Flash.LastViewed.Parser.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.LastViewed=ItvPlayer.Flash.LastViewed||{};ItvPlayer.Flash.LastViewed.Renderer=function(vodcrids,element)
{this.element=element;this.vodcrids=vodcrids||[];this.config={itemTemplate:'last-watched-item',imageDimensions:{width:100,height:56},itemsToReplace:'.pux-linkList li',searchURL:'dotcom/Episode/Indexes/'};};(function(proto)
{proto.render=function()
{var self=this;if(!this.vodcrids.length||!this.element){return;}
var apiCall=ItvPlayer.Utils.MercuryClient.call(this.config.searchURL+this.vodcrids.join('/'));apiCall.done($.proxy(_populateLastViewed,this));};var _populateLastViewed=function(data)
{var self=this;var results=_generatePlaceholdersFromData(data,this.config.imageDimensions);if(!results.length)
{return;}
var itemTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemTemplate);var listItems=$.map(results,function(result){var $elem=$(itemTemplateRenderer.render(result));if($.fn.bindBehaviourTracking){$('a',$elem).bindBehaviourTracking();}
return $elem.get(0);});$(this.element).each(function(){$(this).find(self.config.itemsToReplace).slice(0,listItems.length).each(function(i){$(this).replaceWith(listItems[i]);});}).puxMultiRowFix({numCols:5});};var _generatePlaceholdersFromData=function(data,imageDimensions)
{return $.map(data.Result,function(item){var episode=item.Details[0].Episodes[0].Episode;return{image_url:ItvPlayer.Utils.MercuryClient.getImageUrl(item.Details[0].Episodes[0].PosterFrameUri,imageDimensions.width,imageDimensions.height),video_id:episode.Vodcrid.Id,video_title:episode.Title,image_width:imageDimensions.width,image_height:imageDimensions.height};});};})(ItvPlayer.Flash.LastViewed.Renderer.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Flash=ItvPlayer.Flash||{};ItvPlayer.Flash.LastViewed=ItvPlayer.Flash.LastViewed||{};ItvPlayer.Flash.LastViewed.History=function(swfEle,element)
{this.swfEle=swfEle;this.element=element;this.config={flashPlayerClearFunction:"clearAutoResumeJS",clearHistoryTemplate:'last-watched-clearHistory',itemBlankTemplate:'last-watched-item-blank',itemsToReplace:'.pux-linkList li',clearHistorySelector:'.clearHistory'};};(function(proto)
{proto.render=function()
{if(!this.swfEle||!this.element){return;}
var historyTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.clearHistoryTemplate);$(historyTemplateRenderer.render()).click($.proxy(this.clearHistory,this)).appendTo(this.element);};proto.clearHistoryFromPlayer=function()
{if(this.swfEle)
{this.swfEle[this.config.flashPlayerClearFunction]();}};proto.clearHistory=function()
{this.clearHistoryFromPlayer();var itemBlankTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemBlankTemplate);var blankElement=itemBlankTemplateRenderer.render();$(this.element).find(this.config.itemsToReplace).replaceWith(blankElement);$(this.element).find(this.config.clearHistorySelector).remove();};})(ItvPlayer.Flash.LastViewed.History.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.MoreEpisodes=ItvPlayer.MoreEpisodes||{};ItvPlayer.MoreEpisodes.Renderer=function(channel,element,carouselConfig)
{this.element=element;this.channel=channel;this.carouselConfig=carouselConfig;this.config={itemTemplate:'player-programme-item',imageDimensions:{width:144,height:81},itemsContainer:'.pux-linkList',searchURL:'dotcom/Programme/PerChannel/'};};(function(proto)
{proto.render=function()
{var self=this;if(!this.channel||!this.element){return;}
var apiCall=ItvPlayer.Utils.MercuryClient.call(this.config.searchURL+this.channel);apiCall.done($.proxy(_populateLastViewed,this));};var _populateLastViewed=function(data)
{var self=this;var results=_generatePlaceholdersFromData(data,this.config.imageDimensions);if(!results.length)
{return;}
var itemTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer(this.config.itemTemplate);var listItems=$.map(results,function(result){return $(itemTemplateRenderer.render(result)).get(0);});$(this.element).each(function(){$(this).find(self.config.itemsContainer).empty().append(listItems);}).puxMultiRowFix().puxCarousel(this.carouselConfig).hide();};var _generatePlaceholdersFromData=function(data,imageDimensions)
{return $.map(data.Result[0].Details,function(item){var programme=item.Programme;var daysRemaining=item.Episodes[0].DaysRemaining;return{image_url:ItvPlayer.Utils.MercuryClient.getImageUrl(programme.ImageUri,imageDimensions.width,imageDimensions.height),video_id:programme.MostRecentEpisodeId,video_title:programme.Programme.Title,days_remaining:daysRemaining+' DAY'+(daysRemaining!=1?'S':''),summary:programme.ShortSynopsis,image_width:imageDimensions.width,image_height:imageDimensions.height};});};})(ItvPlayer.MoreEpisodes.Renderer.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Tracking=ItvPlayer.Tracking||{};ItvPlayer.Tracking.RevenueScience=function()
{var config={cookieName:"rsi_segs"};var getSegments=function()
{var segmentsInCookie=ItvPlayer.Utils.Cookie.getByName(config.cookieName);if(!segmentsInCookie||segmentsInCookie==="")
{return null;}
var segmentString="";$.each(segmentsInCookie.split("|"),function(index,segment)
{segmentString+=segment+".";});return segmentString.replace(/_/g,"");};return{getSegments:getSegments};}();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Tracking=ItvPlayer.Tracking||{};ItvPlayer.Tracking.Bcm=(function()
{var setupLinkTracking=function()
{if(ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.bcmUrl)
{$("a").bind("click",function()
{trackLinkClick(this.getAttribute("href"));});}};var trackLinkClick=function(href)
{if(href&&ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.bcmUrl)
{var urlBuilder=new ItvPlayer.Tracking.Bcm.UrlBuilder(ItvPlayer.Config.items.bcmUrl);urlBuilder.setActionParameter("Browse");urlBuilder.setSupplierParameter("");urlBuilder.setValueParameter(href,true);var url=urlBuilder.getUrl();if(url)
{ItvPlayer.Abstractions.getNewImage().src=url;}}};var trackPageLoad=function()
{if(ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.bcmUrl)
{var urlBuilder=new ItvPlayer.Tracking.Bcm.UrlBuilder(ItvPlayer.Config.items.bcmUrl);urlBuilder.setActionParameter("PageLoad");var referrer=ItvPlayer.Abstractions.getReferrer();urlBuilder.setHrefParameter(referrer);var url=ItvPlayer.Abstractions.getUrl();urlBuilder.setValueParameter(url,true);var scriptUrl=urlBuilder.getUrl();if(scriptUrl)
{var script=document.createElement("script");script.setAttribute("src",scriptUrl);document.body.appendChild(script);}}};var trackVideoView=function(vodcrid)
{if(vodcrid&&ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.bcmUrl)
{var urlBuilder=new ItvPlayer.Tracking.Bcm.UrlBuilder(ItvPlayer.Config.items.bcmUrl);urlBuilder.setActionParameter("Video");urlBuilder.setValueParameter(vodcrid);var url=urlBuilder.getUrl();if(url)
{ItvPlayer.Abstractions.getNewImage().src=url;}}};return{setupLinkTracking:setupLinkTracking,trackPageLoad:trackPageLoad,trackVideoView:trackVideoView};})();

function CallBehaviourModulePlayer(vodcrid,action)
{ItvPlayer.Tracking.Bcm.trackVideoView(vodcrid);}

var ItvPlayer=ItvPlayer||{};ItvPlayer.Tracking=ItvPlayer.Tracking||{};ItvPlayer.Tracking.Bcm=ItvPlayer.Tracking.Bcm||{};ItvPlayer.Tracking.Bcm.UrlBuilder=function(baseUrl)
{this.baseUrl=baseUrl;this._parameters={};};(function(proto)
{var addCacheBusterToParameters=function(parameters)
{parameters.cachebuster=(Math.random()*1000000).toString();};var getQueryStringParameters=function(parameters,urlAlreadyIncludesQueryString)
{var firstParameterSpecified=urlAlreadyIncludesQueryString;var params=$.map(parameters,function(value,key)
{var firstCharacter="&";if(!firstParameterSpecified)
{firstCharacter="?";firstParameterSpecified=true;}
return[firstCharacter,key,"=",value].join("");});return params.join("");};proto.getUrl=function()
{if(!this.baseUrl)
{return null;}
addCacheBusterToParameters(this._parameters);var urlIncludesQueryString=this.baseUrl.indexOf('?')>-1;return this.baseUrl+getQueryStringParameters(this._parameters,urlIncludesQueryString);};proto.setActionParameter=function(action)
{this._parameters.action=action;};proto.setHrefParameter=function(href)
{this._parameters.hRef=escape(href);};proto.setSupplierParameter=function(supplier)
{this._parameters.supplier=supplier;};proto.setValueParameter=function(value,shouldEscape)
{this._parameters.value=(shouldEscape)?ItvPlayer.Abstractions.escapeString(value):value;};})(ItvPlayer.Tracking.Bcm.UrlBuilder.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Tracking=ItvPlayer.Tracking||{};ItvPlayer.Tracking.Comscore=(function()
{var getSecondSiteSectionFromCounterName=function(counterName)
{var parts=counterName.split(".");return(parts.length>2)?parts[1]:null;};var call=function(pageName,pageData)
{var cfg=ItvPlayer.Config.items,baseUrl=cfg.comscoreBaseUrl;if(baseUrl)
{var counterNameBuilder=new ItvPlayer.Tracking.Comscore.CounterNameBuilder(pageName,pageData);var counterName=counterNameBuilder.getCounterName();if(counterName)
{var urlBuilder=new ItvPlayer.Tracking.Comscore.UrlBuilder(baseUrl,counterName);var pageVersion=cfg.pageVersion;if(pageVersion)
{urlBuilder.setPageVersion(pageVersion);}
if(pageData&&pageData.searchTerm&&pageData.searchResults)
{urlBuilder.setSearchParameters(pageData.searchTerm,pageData.searchResults);}
var siteSection2=getSecondSiteSectionFromCounterName(counterName);if(siteSection2)
{urlBuilder.setSiteSection2(siteSection2);}
var url=urlBuilder.getUrl();if(url)
{sitestat(url);}}}};return{call:call};})();

var ItvPlayer=ItvPlayer||{};ItvPlayer.Tracking=ItvPlayer.Tracking||{};ItvPlayer.Tracking.Comscore=ItvPlayer.Tracking.Comscore||{};ItvPlayer.Tracking.Comscore.CounterNameBuilder=function(pageName,pageData)
{this.pageName=pageName;this.pageData=pageData;};(function(proto)
{function byChannelCounterNameBuilder(pageData)
{return["itvplayer","channel",pageData.channel.toLowerCase(),"page"].join(".");}
function byDayCounterNameBuilder(pageData)
{var counterNameParts=["itvplayer","thirtydaycatchup"];var date=dateFromDateString(pageData.date);if(!date||isNaN(date.getDate()))
{throw"";}
var dateFormattedString=date.getFullYear().toString()+
zeroPadNumericStringIfNecessary((date.getMonth()+1).toString())+
zeroPadNumericStringIfNecessary(date.getDate().toString());counterNameParts.push(dateFormattedString);if(pageData.todayYesterday)
{counterNameParts.push(pageData.todayYesterday);}
counterNameParts.push("page");return counterNameParts.join(".");}
function videoCounterNameBuilder(pageData)
{var counterNameParts=["itvplayer","video"];var formattedProgName=pageData.programmeName.replace(/[^A-Za-z0-9]/g,"").toLowerCase();counterNameParts.push(formattedProgName);counterNameParts.push("episode");var broadcastDateTime=new Date(pageData.broadcastDateTime);if(!broadcastDateTime||isNaN(broadcastDateTime.getDate()))
{throw"";}
var formattedBroadcastDateTime=broadcastDateTime.getFullYear().toString()+
zeroPadNumericStringIfNecessary((broadcastDateTime.getMonth()+1).toString())+
zeroPadNumericStringIfNecessary(broadcastDateTime.getDate().toString())+
zeroPadNumericStringIfNecessary(broadcastDateTime.getHours().toString())+
zeroPadNumericStringIfNecessary(broadcastDateTime.getMinutes().toString());counterNameParts.push(formattedBroadcastDateTime);counterNameParts.push("page");return counterNameParts.join(".");}
var pages={home:{counterName:"itvplayer.page"},byChannel:{counterNameBuilder:byChannelCounterNameBuilder,requiredData:["channel"]},byDay:{counterNameBuilder:byDayCounterNameBuilder,requiredData:["date"]},aToZ:{counterName:"itvplayer.atoz.page"},search:{counterName:"itvplayer.search.page",requiredData:["searchTerm","searchResults"]},video:{counterNameBuilder:videoCounterNameBuilder,requiredData:["programmeName","broadcastDateTime"]}};var dateFromDateString=function(dateString)
{var monthNum=parseInt(dateString.substr(5,2),10);if(!isNaN(monthNum))
{monthNum--;if(dateString.length>10)
{return new Date(dateString.substr(0,4),monthNum.toString(),dateString.substr(8,2),dateString.substr(11,2),dateString.substr(14,2));}
else
{return new Date(dateString.substr(0,4),monthNum.toString(),dateString.substr(8,2));}}
return null;};var zeroPadNumericStringIfNecessary=function(numericStr)
{return(numericStr.length===1)?"0"+numericStr:numericStr;};var getPageInfo=function(pageName)
{return(pages[pageName]!==undefined)?pages[pageName]:null;};proto.getCounterName=function()
{if(!this.pageName)
{return null;}
var pageInfo=getPageInfo(this.pageName);if(!pageInfo)
{return null;}
if(pageInfo.requiredData)
{if(!this.pageData)
{return null;}
for(var i=0;i<pageInfo.requiredData.length;i++)
{if(!this.pageData[pageInfo.requiredData[i]])
{return null;}}}
var counterName=null;if(pageInfo.counterName)
{counterName=pageInfo.counterName;}
else if(pageInfo.counterNameBuilder)
{try
{counterName=pageInfo.counterNameBuilder(this.pageData);}
catch(err)
{return null;}}
return counterName;};})(ItvPlayer.Tracking.Comscore.CounterNameBuilder.prototype);

var ItvPlayer=ItvPlayer||{};ItvPlayer.Tracking=ItvPlayer.Tracking||{};ItvPlayer.Tracking.Comscore=ItvPlayer.Tracking.Comscore||{};ItvPlayer.Tracking.Comscore.UrlBuilder=function(baseUrl,counterName)
{this.baseUrl=baseUrl;this.counterName=counterName;this._comscoreParameters={itv_contenttype:"landing",itv_loggedin:"false",itv_sitesection1:"itvplayer",itv_sitesection2:"none",itv_sitesection3:"none",itv_tvchannel:"general",itv_userid:"none"};};(function(proto)
{var addCounterNameToBaseUrl=function(url,counterName)
{return url+counterName;};var addCurrentTimeToParameters=function(parameters)
{parameters.ns__t=new Date().getTime().toString();};var addCharacterSetToParameters=function(parameters)
{parameters.ns_c=ItvPlayer.Abstractions.getCharacterSet();};var addTitleToParameters=function(parameters)
{parameters.ns_ti=escape(ItvPlayer.Abstractions.getTitle());};var addUrlToParameters=function(parameters)
{parameters.ns_jspageurl=escape(ItvPlayer.Abstractions.getUrl());};var addReferrerToParameters=function(parameters)
{parameters.ns_referrer=escape(ItvPlayer.Abstractions.getReferrer());};var addComscoreParametersToUrl=function(url,parameters)
{var urlFormattedParams=$.map(parameters,function(value,key)
{return"&"+key+"="+value;});return url+urlFormattedParams.join("");};proto.getUrl=function()
{if(!this.baseUrl||!this.counterName)
{return null;}
var url=addCounterNameToBaseUrl(this.baseUrl,this.counterName);url=addComscoreParametersToUrl(url,this._comscoreParameters);return url;};proto.setPageVersion=function(pageVersion)
{this._comscoreParameters.itv_pageversion=pageVersion;};proto.setSearchParameters=function(searchTerm,searchResult)
{this._comscoreParameters.ns_search_term=escape(searchTerm);this._comscoreParameters.ns_search_result=searchResult;};proto.setSiteSection2=function(siteSection2)
{this._comscoreParameters.itv_sitesection2=siteSection2;};})(ItvPlayer.Tracking.Comscore.UrlBuilder.prototype);

ItvPlayer.Config.setup();$(document).ready(function()
{ItvPlayer.Tracking.Bcm.trackPageLoad();ItvPlayer.Tracking.Bcm.setupLinkTracking();});window.onload=function()
{$('.pux-html-lastviewed:last').puxLastViewed();};

(function($){$(function(){if(!$.fn.autocomplete){return;}
var searchURL='dotcom/Programme/Search/';var maxItems=5;var imageDimensions={width:100,height:56};var templateId='nav-autocomplete-item';var itemTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer('nav-autocomplete-item');var itemMetadataTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer('nav-autocomplete-meta');var noResultsTemplateRenderer=new ItvPlayer.Utils.TemplateRenderer('nav-autocomplete-noresults');var videoPlayerUrl=document.getElementById(templateId).getAttribute('data-player-url');var getResults=function(request,response){var success=function(data){if("NoResults"in data.Parameters){response([{noData:true}]);}
else{var metadata={resultsInfo:true,visible_results:Math.min(data.Result.length,maxItems),total_results:data.Result.length};data.Result=data.Result.slice(0,maxItems);var placeholders=generatePlaceholdersFromData(data,imageDimensions);placeholders.push(metadata);response(placeholders);}};ItvPlayer.Utils.MercuryClient.call(searchURL+$.trim(request.term)).done(success);};var onSelect=function(e,ui){$(this).data('autocomplete')._trigger("selected",e,{item:this.active});if(ui.item.video_id){window.location=videoPlayerUrl+'?Filter='+ui.item.video_id;}};var renderItem=function(ul,item){if(item.noData){$('<li style="display:none;"><a></a></li>').data("item.autocomplete",{}).appendTo(ul);return $(noResultsTemplateRenderer.render(item)).click($.proxy(gotoSearchResults,this)).appendTo(ul);}
if(item.resultsInfo){return $(itemMetadataTemplateRenderer.render(item)).click($.proxy(gotoSearchResults,this)).appendTo(ul);}
var $elem=$(itemTemplateRenderer.render(item)).data("item.autocomplete",item);if($.fn.bindBehaviourTracking){$('a',$elem).bindBehaviourTracking();}
return $elem.appendTo(ul);};var gotoSearchResults=function(){this.element[0].form.submit();};var generatePlaceholdersFromData=function(data,imageDimensions){return $.map(data.Result,function(item){var programme=item.Details[0].Programme;return{video_id:programme.MostRecentEpisodeId,label:programme.Programme.Title,value:programme.Programme.Title,image_url:ItvPlayer.Utils.MercuryClient.getImageUrl(programme.ImageUri,imageDimensions.width,imageDimensions.height),image_width:imageDimensions.width,image_height:imageDimensions.height,episode_count:programme.EpisodeCount+' episode'+(programme.EpisodeCount==1?'':'s')};});};$("#player_q").autocomplete({source:getResults,minLength:3,select:onSelect}).data('autocomplete')._renderItem=renderItem;});})(jQuery);

(function($){$.fn.puxMultiRowFix=function(options){var config={numCols:0,container:'.pux-linkList',containerItems:'> *'};if(options){$.extend(config,options);}
return this.each(function(){var self=this;var currentCount=0;var currentHighest=0;var numListItems=0;var currentLinkList=null;$(config.container,self).each(function(listNum){var currentLinkList=$(this);var currentCount=0;var currentHighest=0;var $listItems=currentLinkList.find(config.containerItems);var numListItems=$listItems.length;$listItems.each(function(n){if(config.numCols>0){currentCount=n%config.numCols;}else{currentCount=n;}
if($(this).height()>currentHighest){currentHighest=$(this).height();}
if((config.numCols>0&&currentCount>=(config.numCols-1))||n>=(numListItems-1)){for(var m=0;m<=currentCount;m++){$listItems.eq(n-m).css('height',currentHighest+'px');}
currentHighest=0;}});});});};})(jQuery);

(function($){$.fn.puxLastViewed=function(options){if(this.length>1){this.each(function(){$(this).puxLastViewed(options);});return this;}
var self=this;var autoResumeSwf=null;var config={swfHolder:'MercuryAutoResume',swfName:ItvPlayer.Config.items.autoResumeSwf+'?v='+ItvPlayer.Config.items.mercuryVersion,itemTemplate:'last-watched-item',itemBlankTemplate:'last-watched-item-blank',clearHistoryTemplate:'last-watched-clearHistory',itemsToReplace:'.pux-linkList li'};if(options){$.extend(config,options);}
var intialize=function(){if(!document.getElementById(config.swfHolder)){$('<div />').attr('id',config.swfHolder).prependTo(document.body);}
if(ItvPlayer.Config&&ItvPlayer.Config.items&&ItvPlayer.Config.items.flashVars)
{var loader=new ItvPlayer.Flash.LastViewed.Loader(config.swfHolder,ItvPlayer.Config.items.flashVars.basePath+config.swfName);loader.load().pipe(onSwfLoaded).pipe(onVodCridsObtained,onVodCridsObtained);}};var onSwfLoaded=function(swfEle){autoResumeSwf=swfEle;var parser=new ItvPlayer.Flash.LastViewed.Parser(swfEle);return parser.parse();};var onVodCridsObtained=function(vodcrids){if(!$.isArray(vodcrids)){vodcrids=[];}
if(vodcrids.length){var renderer=new ItvPlayer.Flash.LastViewed.Renderer(vodcrids,self);renderer.render();var history=new ItvPlayer.Flash.LastViewed.History(autoResumeSwf,self);history.render();}};return intialize();};})(jQuery);

(function($){$.fn.puxCarousel=function(options){if(this.length>1){this.each(function(){$(this).puxCarousel(options);});return this;}
var self=this;var config={itemsWrapper:'.itemsWrapper',automate:false,delay:6000,firstItem:0,scrollCount:'auto',scrollSpeed:800,centralOffset:0,infinite:true,showDotControls:true,animationStyle:'standard'};if(options){$.extend(config,options);}
var timerInterval;var isAnimating=false;var $itemsWrapper=$(config.itemsWrapper,self);var $items=$itemsWrapper.children();var $itemsChildren=$items.children();var scrollLeft=$('<a href="#" class="scrollLeft"><span class="gradient"></span><span class="arrow"></span></a>').get(0);var scrollRight=$('<a href="#" class="scrollRight"><span class="gradient"></span><span class="arrow"></span></a>').get(0);var visibleElements;var $dotControls,elementOffsets,firstElementInViewport;var clonedNodes=0;var intialize=function(){if(!$itemsWrapper.length){return self;}
self.addClass('JSCarousel');$itemsWrapper.css({'left':$(scrollLeft).outerWidth()+'px','height':$itemsWrapper.innerHeight()});$items.css('position','absolute');visibleElements=Math.floor(($itemsWrapper.width()-(config.centralOffset*2))/$itemsChildren.eq(0).innerWidth());if(!visibleElements||visibleElements>=$itemsChildren.length){config.infinite=false;}
if(config.infinite){clonedNodes=visibleElements*2;}
$(scrollLeft).insertBefore($itemsWrapper).click(gotoPrev);$(scrollRight).insertAfter($itemsWrapper).click(gotoNext);var scrollMarginSize=0;var $scrollLeft=$(scrollLeft);$.each(['marginTop','marginBottom','paddingTop','paddingBottom'],function(i,prop){scrollMarginSize+=parseInt($scrollLeft.css(prop),10);});$([scrollLeft,scrollRight]).css('visibility','visible').css('height',$itemsWrapper.height()-scrollMarginSize+'px');if(config.scrollCount=='auto'){config.scrollCount=visibleElements;}
config.scrollCount=Math.min(config.scrollCount,visibleElements);buildCloneNodes();elementOffsets=$.map($itemsChildren,function(ele){return $(ele).position().left-config.centralOffset;});var itemsWidth=0;$itemsChildren.each(function(i){itemsWidth+=$(this).outerWidth(true);});$dotControls=$('<div class="dotControls"></div>');if(config.showDotControls&&config.scrollCount==visibleElements){buildDotControls();}
$items.css('width',itemsWidth+'px');var addedDummiesAtFront=(visibleElements-(config.firstItem%visibleElements))%visibleElements;firstElementInViewport=config.firstItem+clonedNodes+addedDummiesAtFront;$itemsChildren.slice(firstElementInViewport,firstElementInViewport+visibleElements).addClass('visible').eq(0).addClass('visibleFirst').end().eq(-1).addClass('visibleLast').end();$items.css('left',-(elementOffsets[firstElementInViewport])+'px');updateScrollArrows(firstElementInViewport);if(config.automate&&$itemsChildren.length>visibleElements){startTimer();$itemsWrapper.parent().hover(stopTimer,startTimer);}
return self;};var startTimer=function(){timerInterval=setInterval(gotoNext,config.delay);};var stopTimer=function(){clearInterval(timerInterval);};var gotoNext=function(){gotoFirstElement(firstElementInViewport+config.scrollCount,firstElementInViewport);return false;};var gotoPrev=function(){gotoFirstElement(firstElementInViewport-config.scrollCount,firstElementInViewport);return false;};var buildDotControls=function(){var i,n;for(i=clonedNodes,n=1;i<$itemsChildren.length-clonedNodes;i++){if(i%visibleElements===0){$('<a></a>').data('element',i).appendTo($dotControls);n++;}}
$('a:first',$dotControls).addClass('active');$('a:last',$dotControls).addClass('last');$('a',$dotControls).click(function(){if(!$(this).is('.active')){gotoFirstElement($(this).data('element'),$dotControls.find('.active').data('element'));}
return false;});$itemsWrapper.parent().append($dotControls);};var buildCloneNodes=function(){var dummyLi=$('<li class="dummy"></li>').css({height:'1px',width:$itemsChildren.eq(0).width()});for(i=config.firstItem;i%visibleElements;i++){$items.prepend(dummyLi.clone());}
for(i=$itemsChildren.length-config.firstItem;i%visibleElements;i++){$items.append(dummyLi.clone());}
$itemsChildren=$items.children();if(config.infinite){$itemsChildren.slice(0,clonedNodes).clone().removeClass("visible visibleFirst").addClass("cloned").insertAfter($itemsChildren.filter(':last'));$itemsChildren.slice(-clonedNodes).clone().removeClass("visible visibleLast").addClass("cloned").insertBefore($itemsChildren.filter(':first'));}
$itemsChildren=$items.children();};var gotoFirstElement=function(newFirstElement,oldFirstElement){var firstElementExists=elementOffsets[newFirstElement]!==undefined;var lastElementExists=elementOffsets[newFirstElement+visibleElements-config.scrollCount]!==undefined;if(firstElementExists&&lastElementExists&&$(self).is(':visible')){animations[config.animationStyle](newFirstElement,oldFirstElement);}
return false;};var animations={'standard':function(newFirstElement,oldFirstElement){$items.filter(':not(:animated)').animate({left:-(elementOffsets[newFirstElement])+'px'},config.scrollSpeed,function(){newFirstElement=updateScrollPoint(newFirstElement);firstElementInViewport=newFirstElement;updateScrollArrows(newFirstElement);updateDotControls(newFirstElement);});},'mostPopular':function(newFirstElement,oldFirstElement){var fadeSpeed=100;if(!isAnimating){isAnimating=true;var oldVisibleItems=$itemsChildren.slice(oldFirstElement,oldFirstElement+visibleElements);$.when(oldVisibleItems.animate({opacity:0.4},fadeSpeed,function(){oldVisibleItems.addClass('visible');oldVisibleItems.eq(0).addClass('visibleFirst');oldVisibleItems.eq(-1).addClass('visibleLast');}).find('.textWrapper').css({visibility:'hidden'}).end()).done(function(){$.when($items.animate({left:-(elementOffsets[newFirstElement])+'px'},config.scrollSpeed,function(){newFirstElement=updateScrollPoint(newFirstElement);})).done(function(){var newVisibleItems=$itemsChildren.slice(newFirstElement,newFirstElement+visibleElements);updateScrollArrows(newFirstElement);updateDotControls(newFirstElement);newVisibleItems.animate({opacity:1},fadeSpeed,function(){newVisibleItems.addClass('visible').find('.textWrapper').css({visibility:'visible'}).end().eq(0).addClass('visibleFirst').end().eq(-1).addClass('visibleLast').end();oldVisibleItems.removeClass('visible').eq(0).removeClass('visibleFirst').end().eq(-1).removeClass('visibleLast').end();firstElementInViewport=newFirstElement;isAnimating=false;});});});}},'hero':function(newFirstElement,oldFirstElement){var fadeSpeed=100;if(!isAnimating){isAnimating=true;$.when($itemsChildren.eq(oldFirstElement).animate({opacity:0.4,width:'340px',paddingLeft:'40px',paddingRight:'40px'},fadeSpeed).find('h3').animate({fontSize:'1.33333em'},fadeSpeed).end().find('h3 a').animate({marginRight:'50px'},fadeSpeed).end().find('h3 img').animate({width:'40px',height:'20px'},fadeSpeed).end().find('.linkImg img').animate({height:'189px',marginTop:'22px',width:'336px'},fadeSpeed,function(){$itemsChildren.eq(oldFirstElement).addClass('visible');})).done(function(){$.when($items.animate({left:-(elementOffsets[newFirstElement])+'px'},config.scrollSpeed,function(){newFirstElement=updateScrollPoint(newFirstElement);})).done(function(){var ele=$itemsChildren.eq(newFirstElement);updateDotControls(newFirstElement);ele.animate({opacity:1,width:'420px',paddingLeft:'0px',paddingRight:'0px'},fadeSpeed).find('h3').animate({fontSize:'1.66667em'},fadeSpeed).end().find('h3 a').animate({marginRight:'70px'},fadeSpeed).end().find('h3 img').animate({width:'60px',height:'30px'},fadeSpeed).end().find('.linkImg img').animate({height:'234px',marginTop:'0px',width:'416px'},fadeSpeed,function(){ele.addClass('visible');$itemsChildren.eq(oldFirstElement).removeClass('visible');firstElementInViewport=newFirstElement;isAnimating=false;});});});}}};var updateScrollPoint=function(newFirstElement){var updatedFirst=newFirstElement;if(config.infinite){if(newFirstElement===clonedNodes-visibleElements){updatedFirst=elementOffsets.length-clonedNodes-visibleElements;}
else if(newFirstElement==elementOffsets.length-clonedNodes){updatedFirst=clonedNodes;}}
if(newFirstElement!==updatedFirst){$itemsChildren.slice(updatedFirst,updatedFirst+visibleElements).addClass('visible');$items.css('left',-(elementOffsets[updatedFirst])+'px');$itemsChildren.slice(newFirstElement,newFirstElement+visibleElements).removeClass('visible');}
return updatedFirst;};var updateScrollArrows=function(newFirstElement){if(!config.infinite){var leftDisabled=(newFirstElement===0);var rightDisabled=(newFirstElement+visibleElements==elementOffsets.length);$(scrollLeft).toggleClass('disabled',leftDisabled);$(scrollRight).toggleClass('disabled',rightDisabled);}};var updateDotControls=function(newFirstElement){if($dotControls.children().length){var pageNumber=(newFirstElement/visibleElements)-(clonedNodes/visibleElements);$dotControls.children().removeClass('active').eq(pageNumber).addClass('active');}};$("a.pux-button").click(function(){$("ul.pux-linkList").hide().show();});return intialize();};})(jQuery);

(function($){$.fn.puxCarouselHeroTitles=function(options){if(this.length>1){this.each(function(){$(this).puxCarouselHeroTitles(options);});return this;}
var self=this;var config={moduleSelector:'.pux-mercury-carousel-hero',headingSelector:'> h2',template:{wrapper:self.find('#titles-wrapper').html(),heading:self.find('#titles-content').html()}};if(options){$.extend(config,options);}
var allModules=[];var intialize=function(){var $siblingModules=$(self).siblings(config.moduleSelector);var $titleModule=$(config.template.wrapper);$siblingModules.each(function(i){var $this=$(this);var $heading=$this.find(config.headingSelector);$heading.hide();if(i>0){$this.hide();}
var $newHeading=$(config.template.heading.replace('{{heading}}',$heading.text())).data('carousel',this).click(headingClick);if(i===0){$newHeading.find('.pux-button').addClass('itv-active');}
if($this.hasClass('sponsor')){$newHeading.addClass('sponsor').append('<span class="logo" />');}
allModules.push(this);$titleModule.append($newHeading);});$siblingModules.eq(0).before($titleModule);return self;};var headingClick=function(e){e.preventDefault();var toggleSpeed=800;if($(this).hasClass('itv-active')){return;}
$(allModules).filter(':visible').hide();$($.data(this,'carousel')).show();$(e.currentTarget).siblings().find('.pux-button').removeClass('itv-active');$(e.currentTarget).find('.pux-button').addClass('itv-active');};return intialize();};})(jQuery);

(function($){$.fn.puxCatchup=function(options){if(this.length>1){this.each(function(){$(this).puxCatchup(options);});return this;}
var self=this;var config={itemsWrapper:'.carouselContent'};if(options){$.extend(config,options);}
var puxCarouselOptions={infinite:false,scrollCount:4,centralOffset:71,scrollSpeed:400,showDotControls:false,animationStyle:'mostPopular'};var puxMultiRowFixOptions={numCols:0};var initialTime=new Date(parseInt(self.attr('data-initial-time'),10));var cacheManager=new ItvPlayer.Catchup.CacheManager(initialTime);var $dateListItems=self.find('.dateList a');var $channelListItems=self.find('.channelList a');var $browseByChannel=self.find('.browseByChannel');var $browseByDay=self.find('.browseByDay');var date,channel,itemsWrapper;var intialize=function(){loadCarouselPlugin();date=self.find('.dateList .itv-active').attr('data-date');channel=self.find('.channelList .itv-active').attr('data-channel');itemsWrapper=self.find(config.itemsWrapper).get(0);$channelListItems.click(channelClick);$dateListItems.click(dateClick);return self;};var channelClick=function(e){channel=this.getAttribute('data-channel');cacheManager.getItem(date,channel).done(updateCarousel);toggleActiveState($channelListItems,this);updateBrowseChannel();return false;};var dateClick=function(e){date=this.getAttribute('data-date');cacheManager.getItem(date,channel).done(updateCarousel);toggleActiveState($dateListItems,this);updateBrowseDay();return false;};var loadCarouselPlugin=function()
{var ve=4;var startIndex=(function(){var allAirDates=self.find('.airDate');if(allAirDates.length<=ve){return 0;}
var midnight=new Date(allAirDates[0].getAttribute('data-air-date'));midnight.setHours(23);midnight.setMinutes(59);midnight.setSeconds(59);var activeAirDates=allAirDates.filter(function(){var isToday=midnight>(new Date(this.getAttribute('data-air-date')));return $(this).closest('li').has('a').length&&isToday;});if(!activeAirDates.length){return allAirDates.length-ve;}
return activeAirDates.last().closest('li').prevAll().length-ve+1;})();self.puxCarousel($.extend(puxCarouselOptions,{firstItem:startIndex})).puxMultiRowFix(puxMultiRowFixOptions);};var updateCarousel=function(newItemsWrapper){var newWrapper=$(newItemsWrapper).clone();$('a',newWrapper).bindBehaviourTracking();$(itemsWrapper).replaceWith(newWrapper);itemsWrapper=newWrapper;loadCarouselPlugin();};var toggleActiveState=function($listItems,newActive){$listItems.each(function(){$(this).toggleClass('itv-active',this==newActive);});};var updateBrowseChannel=function(){$browseByChannel.attr('href',function(i,oldHref){return oldHref.replace(/\?Filter=(.*)/,'?Filter='+channel);}).find('span').text(channel);};var updateBrowseDay=function(){$browseByDay.attr('href',function(i,oldHref){var dateparts=date.split('-');return oldHref.replace(/\?year=([^\&]*)/,'?year='+dateparts[0]).replace(/&month=([^\&]*)/,'&month='+dateparts[1]).replace(/&day=([^\&]*)/,'&day='+dateparts[2]);});};return intialize();};})(jQuery);

(function($){$.fn.puxAZFilter=function(options){if(this.length>1){this.each(function(){$(this).puxCarousel(options);});return this;}
var self=this;var config={navigation:self.find('.pux-atoz-nav').get(0),listing:self.find('.pux-mercury-atoz').get(0)};if(options){$.extend(config,options);}
var initialize=function(){var featured=new ItvPlayer.AZFilter.Featured(config.listing);featured.render();var navigation=new ItvPlayer.AZFilter.Navigation(config.navigation,config.listing);navigation.bindEvents();return self;};return initialize();};})(jQuery);

(function($){$.fn.puxMoreEpisodes=function(options){if(this.length>1){this.each(function(){$(this).puxMoreEpisodes(options);});return this;}
var self=this;var config={episodesWrapper:'.moreEpisodes',programmesWrapper:'.moreProgrammes',headingsWrapper:'.moduleHeading',carouselBlocks:'.carouselBlock',channel:''};if(options){$.extend(config,options);}
var puxCarouselOptions={scrollCount:5,infinite:false};var $headingButtons=self.find(config.headingsWrapper+' a');var $carouselBlocks=self.find(config.carouselBlocks);var intialize=function(){$(config.episodesWrapper,self).puxMultiRowFix().puxCarousel(puxCarouselOptions);$headingButtons.each(function(i){$(this).click({visibleItem:$carouselBlocks.get(i)},clickHeading);});var renderer=new ItvPlayer.MoreEpisodes.Renderer(config.channel,self.find(config.programmesWrapper).get(0),puxCarouselOptions);renderer.render();return self;};var clickHeading=function(e){e.preventDefault();activeHeading=this;$carouselBlocks.each(function(){$(this).toggle(this==e.data.visibleItem);});$headingButtons.each(function(){$(this).toggleClass('itv-active',this==activeHeading);});};return intialize();};})(jQuery);

(function($){$.fn.puxInsertModule=function(options){if(this.length>1){this.each(function(){$(this).puxInsertModule(options);});return this;}
var self=this;var config={};if(options){$.extend(config,options);}
var intialize=function(){self.load('/api/widget/'+config.moduleId);return self;};return intialize();};})(jQuery);

new function(settings){var $separator=settings.separator||'&';var $spaces=settings.spaces===false?false:true;var $suffix=settings.suffix===false?'':'[]';var $prefix=settings.prefix===false?false:true;var $hash=$prefix?settings.hash===true?"#":"?":"";var $numbers=settings.numbers===false?false:true;jQuery.query=new function(){var is=function(o,t){return o!=undefined&&o!==null&&(!!t?o.constructor==t:true);};var parse=function(path){var m,rx=/\[([^[]*)\]/g,match=/^([^[]+)(\[.*\])?$/.exec(path),base=match[1],tokens=[];while(m=rx.exec(match[2]))tokens.push(m[1]);return[base,tokens];};var set=function(target,tokens,value){var o,token=tokens.shift();if(typeof target!='object')target=null;if(token===""){if(!target)target=[];if(is(target,Array)){target.push(tokens.length==0?value:set(null,tokens.slice(0),value));}else if(is(target,Object)){var i=0;while(target[i++]!=null);target[--i]=tokens.length==0?value:set(target[i],tokens.slice(0),value);}else{target=[];target.push(tokens.length==0?value:set(null,tokens.slice(0),value));}}else if(token&&token.match(/^\s*[0-9]+\s*$/)){var index=parseInt(token,10);if(!target)target=[];target[index]=tokens.length==0?value:set(target[index],tokens.slice(0),value);}else if(token){var index=token.replace(/^\s*|\s*$/g,"");if(!target)target={};if(is(target,Array)){var temp={};for(var i=0;i<target.length;++i){temp[i]=target[i];}
target=temp;}
target[index]=tokens.length==0?value:set(target[index],tokens.slice(0),value);}else{return value;}
return target;};var queryObject=function(a){var self=this;self.keys={};if(a.queryObject){jQuery.each(a.get(),function(key,val){self.SET(key,val);});}else{jQuery.each(arguments,function(){var q=""+this;q=q.replace(/^[?#]/,'');q=q.replace(/[;&]$/,'');if($spaces)q=q.replace(/[+]/g,' ');jQuery.each(q.split(/[&;]/),function(){var key=decodeURIComponent(this.split('=')[0]||"");var val=decodeURIComponent(this.split('=')[1]||"");if(!key)return;if($numbers){if(/^[+-]?[0-9]+\.[0-9]*$/.test(val))
val=parseFloat(val);else if(/^[+-]?[0-9]+$/.test(val))
val=parseInt(val,10);}
val=(!val&&val!==0)?true:val;if(val!==false&&val!==true&&typeof val!='number')
val=val;self.SET(key,val);});});}
return self;};queryObject.prototype={queryObject:true,has:function(key,type){var value=this.get(key);return is(value,type);},GET:function(key){if(!is(key))return this.keys;var parsed=parse(key),base=parsed[0],tokens=parsed[1];var target=this.keys[base];while(target!=null&&tokens.length!=0){target=target[tokens.shift()];}
return typeof target=='number'?target:target||"";},get:function(key){var target=this.GET(key);if(is(target,Object))
return jQuery.extend(true,{},target);else if(is(target,Array))
return target.slice(0);return target;},SET:function(key,val){var value=!is(val)?null:val;var parsed=parse(key),base=parsed[0],tokens=parsed[1];var target=this.keys[base];this.keys[base]=set(target,tokens.slice(0),value);return this;},set:function(key,val){return this.copy().SET(key,val);},REMOVE:function(key){return this.SET(key,null).COMPACT();},remove:function(key){return this.copy().REMOVE(key);},EMPTY:function(){var self=this;jQuery.each(self.keys,function(key,value){delete self.keys[key];});return self;},load:function(url){var hash=url.replace(/^.*?[#](.+?)(?:\?.+)?$/,"$1");var search=url.replace(/^.*?[?](.+?)(?:#.+)?$/,"$1");return new queryObject(url.length==search.length?'':search,url.length==hash.length?'':hash);},empty:function(){return this.copy().EMPTY();},copy:function(){return new queryObject(this);},COMPACT:function(){function build(orig){var obj=typeof orig=="object"?is(orig,Array)?[]:{}:orig;if(typeof orig=='object'){function add(o,key,value){if(is(o,Array))
o.push(value);else
o[key]=value;}
jQuery.each(orig,function(key,value){if(!is(value))return true;add(obj,key,build(value));});}
return obj;}
this.keys=build(this.keys);return this;},compact:function(){return this.copy().COMPACT();},toString:function(){var i=0,queryString=[],chunks=[],self=this;var encode=function(str){str=str+"";if($spaces)str=str.replace(/ /g,"+");return encodeURIComponent(str);};var addFields=function(arr,key,value){if(!is(value)||value===false)return;var o=[encode(key)];if(value!==true){o.push("=");o.push(encode(value));}
arr.push(o.join(""));};var build=function(obj,base){var newKey=function(key){return!base||base==""?[key].join(""):[base,"[",key,"]"].join("");};jQuery.each(obj,function(key,value){if(typeof value=='object')
build(value,newKey(key));else
addFields(chunks,newKey(key),value);});};build(this.keys);if(chunks.length>0)queryString.push($hash);queryString.push(chunks.join($separator));return queryString.join("");}};return new queryObject(location.search,location.hash);};}(jQuery.query||{});$.urlParam=function(name){var results=new RegExp('[\\?&]'+name+'=([^&#]*)').exec(window.location.href);if(!results)
{return 0;}
return results[1]||0;}
