function cvpSearchTheClient(theObj,thePath)
{var index=thePath.indexOf("."),objName="",subPath="",childObj;if(theObj===null)
theObj=window;if(index===-1)
{if(thePath.indexOf("(")!==-1&&thePath.indexOf(")")!==-1)
return eval("theObj."+thePath);else
return theObj[thePath];}
objName=thePath.substring(0,index);subPath=thePath.substring(index+1);childObj=theObj[objName];if(objName.indexOf("(")!==-1&&objName.indexOf(")")!==-1)
childObj=eval("theObj."+objName);if(childObj===null)
return"";if(subPath.length<1)
return childObj.toString();return cvpSearchTheClient(childObj,subPath);}
(function(){var debug=false;if(typeof window.CVP!=='undefined'){return;}
var Class=(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz;})?/\b_super\b/:/.*/;var Class=function(){};Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret;};})(name,prop[name]):prop[name];}function Class(){if(!initializing&&this.init)this.init.apply(this,arguments);}Class.prototype=prototype;Class.constructor=Class;Class.extend=arguments.callee;return Class;};return Class;})();var VERSION="2.7";var FLASH_VERSION="10.0.0.0";var HTML5="html5";var FLASH="flash";var CVP=window.CVP=function(options){this.options=extend({id:'cvp_player',width:'320',height:'240',flashVars:{},playerType:FLASH,initialize:function(){}},options||{});this.options.embed=extend({containerSwf:'',expressInstallSwf:'http://i.cdn.turner.com/xslo/cvp/assets/flash/expressInstall.swf',flashVersion:FLASH_VERSION},this.options.embed||{});this.options.embed.options=extend({quality:'high',bgcolor:'#000000',allowFullScreen:'true',allowScriptAccess:'always'},this.options.embed.options||{});if(!this.options.embed.containerSwf){log('Invalid containerSwf...exiting');throw"Invalid containerSwf";}
this.options.initialize();var id=this.options.id,width=this.options.width,height=this.options.height,flashVars=this.options.flashVars,embed=this.options.embed;this._playerType=this.options.playerType;var player=null;if(this._playerType===HTML5||CVP.Browser.apple_mobile)
{if(flashVars.site&&flashVars.profile)
{log("instantiating the HTML5 player");this._playerType=HTML5;player=new CVP.Players.HTML5(this.options);}
else
{log("invalid HTML5 params...instantiating null player");this._playerType=false;player=new CVP.Players.NullPlayer(this.options);}
this.getDOMPlayer=function()
{return player;};}
else
{log("instantiating the Flash player");this._playerType=FLASH;}
if(CVP.findInstance(id)||byId(id)){log(id+' is already in use...exiting');throw id+' is already in use';}
this.getId=function(){return id;};this.getWidth=function(){return width;};this.getHeight=function(){return height;};this.getFlashVars=function(){return flashVars;};this.getEmbed=function(){return embed;};this.getPlayerType=function(){return this._playerType;};if(!createCallbackHandler(id)){log('callback handler for id "'+id+'" could not be created...exiting');throw'callback handler for id "'+id+'" could not be created...exiting';}
this.callbacks={};delete this.options.initialize;var p,pfn;for(p in this.options){if(hasOwn(this.options,p)){pfn=this.options[p];if(isFunc(pfn)){this.callbacks[p]=pfn;}}}
this.handleCallBack=function(){var ret=null;if(arguments.length){var funcName=arguments[0],args=Array.prototype.slice.call(arguments,1),fn;log("handleCallBack - "+funcName+" args("+args.length+")");fn=this[funcName];if(!undef(fn)&&isFunc(fn)){try{log("Found internal CB");ret=fn.apply(this,args);}catch(internalCBException){log("Warning - exception on internal CB "+funcName);log("Exception - "+internalCBException.message);}}
fn=this.callbacks[funcName];if(!undef(fn)&&isFunc(fn)){try{log("Found user CB");ret=fn.apply(this,args);}catch(userCBException){log("Warning - exception on user CB "+funcName);log("Exception - "+userCBException.message);}}}
return ret;};var contentId=this.options.flashVars.contentId||'',contentUrl=this.options.flashVars.contentUrl||'',playlistId=this.options.flashVars.playlistId||'',context=this.options.flashVars.context||'',playerInstance=context,contentType='',contentWidth=0,contentHeight=0,duration=0,playhead=0,buffering=false,paused=false;this.getDOMPlayerInstance=function(){return playerInstance;};this.getContentId=function(){return contentId;};this.getContentUrl=function(){return contentUrl;};this.playlistId=function(){return playlistId;};this.getContext=function(){return context;};this.getContentWidth=function(){return contentWidth;};this.getContentHeight=function(){return contentHeight;};this.getDuration=function(){return duration;};this.getPlayhead=function(){return playhead;};this.isBuffering=function(){return buffering;};this.isPaused=function(){return paused;};this.onContentMetadata=function(pPlayerId,pContentId,pDuration,pWidth,pHeight){contentId=pContentId;playhead=0;duration=pDuration;contentWidth=pWidth;contentHeight=pHeight;};this.onContentBegin=function(pPlayerId,pContentId){contentId=pContentId;};this.onContentBuffering=function(pPlayerId,pContentId,pBuffering){buffering=pBuffering;};this.onContentPlayhead=function(pPlayerId,pContentId,pPlayhead,pTotalDuration){playhead=pPlayhead;};this.onContentPause=function(pPlayerId,pContentId,pPaused){paused=pPaused;};this.onPlayerReady=function(){playerInstance=this.getDOMPlayerInstance();};CVP.registerInstance(id,this);return this;};CVP.prototype={getDOMPlayer:function(){if(navigator.appName.indexOf("Microsoft")!==-1){return window[this.getId()];}else{return document[this.getId()];}},getPlayer:function(id){if(this._playerType===HTML5||CVP.Browser.apple_mobile){return this.getDOMPlayer();}
else{this.getDOMPlayer().getPlayerJS(id);return this;}},setDefaultPlayer:function(id){this.getDOMPlayer().setDefaultPlayer(id);return this;},embedSWF:function(containerElementId){return this.embed.apply(this,arguments);},embed:function(containerElementId){if(this._playerType===FLASH)
{var flashvars=this.getFlashVars();flashvars.domId=this.getId();flashvars.w=this.getWidth();flashvars.h=this.getHeight();flashvars.cvpSessionToken=CVP.getSessionToken();var embed=this.getEmbed();var container=embed.containerSwf;var params=embed.options;var express=embed.expressInstallSwf;var version=validateFlashVersion(embed.flashVersion);var attributes={id:this.getId(),name:this.getId()};if(!CVP.swfobject.hasFlashPlayerVersion("1.0.0"))
this.handleCallBack("onNoFlashDetected");CVP.swfobject.embedSWF(container,containerElementId,this.getWidth(),this.getHeight(),version,express,flashvars,params,attributes);}
else
{if(this.getPlayer().embed)
{this.getPlayer().embed(containerElementId);}}
return this;},removeSWF:function(){return this.remove.apply(this,arguments);},remove:function(){if(this._playerType===FLASH)
{if(CVP.swfobject&&CVP.swfobject.removeSWF){CVP.swfobject.removeSWF(this.getId());}}
else
{if(isFunc(this.getPlayer().remove))
{this.getPlayer().remove();}}
return this;},play:function(id,options){this.getDOMPlayer().playContent(id,options||{});return this;},replay:function(){this.getDOMPlayer().replayContent();return this;},playNextInQueue:function(){this.getDOMPlayer().playNextInQueue();return this;},pause:function(){this.getDOMPlayer().pause();return this;},resume:function(){this.getDOMPlayer().resume();return this;},stop:function(){this.getDOMPlayer().stopContent();return this;},queue:function(id,options,index){if(typeof index==='undefined')
index=-1;this.getDOMPlayer().queue(id,options||{},index);return this;},dequeue:function(id){this.getDOMPlayer().dequeue(id);return this;},emptyQueue:function(){this.getDOMPlayer().emptyQueue();return this;},setQueueAutoplay:function(autoplay){this.getDOMPlayer().setQueueAutoplay(autoplay);return this;},getQueue:function(){return this.getDOMPlayer().getQueue();},seek:function(time){this.getDOMPlayer().seek(time);return this;},mute:function(){this.getDOMPlayer().mute();return this;},unmute:function(){this.getDOMPlayer().unmute();return this;},setVolume:function(volume){this.getDOMPlayer().setVolume(volume);return this;},getVolume:function(){return this.getDOMPlayer().getVolume();},isMuted:function(){return this.getDOMPlayer().isMuted();},getContentEntry:function(id){return this.getDOMPlayer().getContentEntry(id);},goFullscreen:function(){this.getDOMPlayer().goFullscreen();return this;},resize:function(width,height,duration){this.getDOMPlayer().resize(width,height,duration);return this;},setMaxBitrate:function(bitrate){this.getDOMPlayer().setMaxBitrate(bitrate);return this;},switchBitrateId:function(id){this.getDOMPlayer().switchBitrateId(id);return this;},setAutoBitrateSwitch:function(auto){this.getDOMPlayer().setAutoBitrateSwitch(auto);return this;},getAvailableBitrates:function(playMode){return this.getDOMPlayer().getAvailableBitrates(playMode);},getBitrateId:function(){return this.getDOMPlayer().getBitrateId();},setGroupOrder:function(order){this.getDOMPlayer().setGroupOrder(order);return this;},getShareOptions:function(){return this.getDOMPlayer().getShareOptions();},setClosedCaptionsOn:function(on){return this.getDOMPlayer().setClosedCaptionsOn(on);},setAdSection:function(section){this.getDOMPlayer().setAdSection(section);return this;},setAdKeyValue:function(key,value){this.getDOMPlayer().setAdKeyValue(key,value);return this;},setAdVisibility:function(adsObject){this.getDOMPlayer().setAdVisibility(adsObject);return this;},switchAdContext:function(context){this.getDOMPlayer().switchAdContext(context);return this;},switchTrackingContext:function(context){this.getDOMPlayer().switchTrackingContext(context);return this;},setDataSrc:function(src){this.getDOMPlayer().setDataSrc(src);return this;},setFileKey:function(key){this.getDOMPlayer().setFileKey(key);return this;},sendUIMessage:function(message,data){this.getDOMPlayer().sendUIMessage(message,data);return this;}};CVP.Utils={};CVP.Events={};CVP.Browser={};CVP.Players={};CVP.version=VERSION;CVP.VIDEO_NOT_FOUND_ERROR="video not found";CVP.VIDEO_XML_NOT_FOUND_ERROR="cms error";CVP.instances={};CVP.registerInstance=function(id,instance){CVP.instances[id]=instance;};CVP.unregisterInstance=function(id){CVP.instances[id]=null;};CVP.findInstance=function(id){return CVP.instances[id];};CVP.onCallback=function(id,args){var instance=CVP.findInstance(id);if(instance){return instance.handleCallBack.apply(instance,args);}else{log("Error - onCallback - unable to find instance "+id);}};CVP.cleanup=function(){var inst;for(inst in CVP.instances){if(hasOwn(CVP.instances,inst)){window[inst+'_callback_handler']=null;CVP.instances[inst]=null;}}};CVP.Events.onReady=function(handler)
{if(!CVP.swfobject)
throw new Error("swfobject is required for onReady functionality");CVP.swfobject.addDomLoadEvent(handler);};CVP.Events.addListener=function(element,type,handler)
{if(element.addEventListener)
element.addEventListener(type,handler,false);else
{if(!handler.$$guid)handler.$$guid=CVP.Events.addListener.guid++;if(!element.events)element.events={};var handlers=element.events[type];if(!handlers)
{handlers=element.events[type]={};if(element['on'+type])handlers[0]=element['on'+type];element['on'+type]=CVP.Events._handleEvent;}
handlers[handler.$$guid]=handler;}};CVP.Events.addListener.guid=1;CVP.Events.removeListener=function(element,type,handler)
{if(element.removeEventListener)
element.removeEventListener(type,handler,false);else if(element.events&&element.events[type]&&handler.$$guid)
delete element.events[type][handler.$$guid];};CVP.Events._handleEvent=function(event)
{event=event||CVP.Events._fixEvent(window.event);var returnValue=true;var handlers=this.events[event.type];var i;for(i in handlers)
{if(hasOwn(handlers,i))
{this.$$handler=handlers[i];if(this.$$handler(event)===false)returnValue=false;}}
if(this.$$handler)this.$$handler=null;return returnValue;};CVP.Events._fixEvent=function(event)
{event.preventDefault=CVP.Events._fixEvent._preventDefault;event.stopPropagation=CVP.Events._fixEvent._stopPropagation;return event;};CVP.Events._fixEvent._preventDefault=function()
{this.returnValue=false;};CVP.Events._fixEvent._stopPropagation=function()
{this.cancelBubble=true;};CVP.Events.CustomEvent=Class.extend({init:function(type){this._type=type;this._listeners=[];},addListener:function(fn,scope){this._listeners.push({fn:fn,scope:scope});},removeListener:function(fn,scope){var i=0,len=this._listeners.length,o;for(;i<len;i+=1)
{o=this._listeners[i];if(o.fn===fn&&o.scope===scope)
{this._listeners.splice(i,1);break;}}},dispatch:function(){var i=0,len=this._listeners.length,o;for(;i<len;++i)
{o=this._listeners[i];o.fn.apply(o.scope,arguments);}}});CVP.Utils={getCookie:function()
{return document.cookie;},setCookie:function(key,value,timeExpire)
{if(!key)
return;document.cookie=key+"="+value+"; expires="+timeExpire;},undef:function(obj){return typeof obj==="undefined";},isNull:function(obj){return CVP.Utils.undef(obj)||obj===null;},empty:function(str){return CVP.Utils.undef(str)||CVP.Utils.isNull(str)||str==="";},isFunc:function(f){return typeof f==="function";},isObject:function(obj){return typeof obj==="object";},isString:function(obj){return typeof obj==="string";},isFlagActive:function(str,bDefault)
{if(CVP.Utils.empty(str))
return bDefault;switch(str.toLowerCase())
{case"yes":case"true":case"on":return true;default:return false;}},extend:function(target,source){var p;if(!target)target={};for(p in source){target[p]=source[p];}
return target;},byId:function(id){return document.getElementById(id);},query:function(str)
{return CVP.Utils.isString(id)?document.querySelector(str):str;},slice:function(arr,index){return Array.prototype.slice.call(arr,index||0);},hasOwn:(typeof Object.prototype.hasOwnProperty==="function"?function(object,property){return Object.prototype.hasOwnProperty.call(object,property);}:function(object,property){return object[property]!==Object.prototype[property];}),bind:function(func,scope,argv){var args=CVP.Utils.slice(arguments,2);return function(){var a=args.concat(CVP.Utils.slice(arguments));return func.apply(scope,a);};},template:function(template,values)
{var matches=template.match(/\{[^{}]*\}/g),i=0,len=0,args=CVP.Utils.slice(arguments,1),argc=args.length;if(!matches)
{log("No {placeholders} present in template: ",template);}
else
{for(i=0,len=matches.length;i<len&&i<argc;++i)
{template=template.replace(matches[i],args[i]);}}
return template;},joinKeys:function(obj,delimiter)
{var arr=[],p;if(nil(delimiter))delimiter=",";for(p in obj){if(hasOwn(obj,p)){arr.push(p+"="+obj[p]);}}
return arr.join(delimiter);},getQueryParams:function(str){var params={},source=str||location.href,data=[],i=0,endi=0,pair=[];try{data=(source.split("?",2)[1]||"").split("#")[0].split("&")||[];for(endi=data.length;i<endi;++i){pair=data[i].split("=");if(pair[0])
params[pair[0]]=unescape(pair[1]);}}
catch(e){CVP.Utils.log("unable to get url params");}
Utils.getQueryParams=function(){return params;};return Utils.getQueryParams();},getQueryParam:function(key){return CVP.Utils.getQueryParams()[key];},log:function(){if(window.console&&window.console.log&&debug){window.console.log(CVP.Utils.slice(arguments).join(" | "));}},print:function(obj,str){var o;if(str!=="nested")
CVP.Utils.log("\nPrint all values for ",str);for(o in obj)
{if(hasOwn(obj,o))
{if(!o)
continue;if(CVP.Utils.isObject(obj[o]))
{CVP.Utils.log("Printing nested object value",o);CVP.Utils.print(obj[o],"nested");}
else
{CVP.Utils.log(str==="nested"?"\t":"","key:",o,"value:",obj[o]);}}}
if(str!=="nested")
{CVP.Utils.log("End Print all values for ",str);CVP.Utils.log("\n");}},randomString:function(length)
{var chars='0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');if(!length)
{length=Math.floor(Math.random()*chars.length);}
var str='';for(var i=0;i<length;i++)
{str+=chars[Math.floor(Math.random()*chars.length)];}
return str;}};CVP.Utils.CommandQueue=Class.extend({init:function()
{this._queue=[];},push:function(fn,scope,args)
{this._queue.push({fn:fn,scope:scope,args:args});},remove:function(index)
{index=CVP.Utils.isNull(index)?this._queue.length-1:index;this._queue.splice(index,1);},execute:function()
{var i=0,len=this._queue.length,cmd;for(;i<len;++i)
{cmd=this._queue[i];cmd.fn.apply(cmd.scope,cmd.args);}}});CVP.Utils.Asset=Class.extend({init:function(url,type)
{this._firedSuccess=false;this._url=url;this._type=CVP.Utils.isNull(type)?this._determineType():type;this.id="cvp_asset_"+Math.round(Math.random()*1000);this.eSuccess=new CVP.Events.CustomEvent();this.eFailure=new CVP.Events.CustomEvent();},_determineType:function()
{var ext=(CVP.Utils.empty(this._url))?"":this._url.substring(this._url.lastIndexOf(".")+1);return ext;},load:function()
{log("Asset","loading type",this._type);switch(this._type)
{case"js":this._loadJs();break;case"css":this._loadCss();break;default:this._failure();}},_success:function()
{log("Asset","successfully loaded asset",this._url);this.eSuccess.dispatch();this._firedSuccess=true;},_failure:function()
{log("Asset","failed to load asset",this._url);this.eFailure.dispatch();},_loadJs:function()
{var head=document.getElementsByTagName("head")[0];if(!head)
{this._failure();return;}
var script=document.createElement('script');script.id=this.id;script.type='text/javascript';var success=CVP.Utils.bind(this._success,this);var successCB=function(){if(this._firedSuccess)
return;success();script.onload=script.onreadystatechange=null;head.removeChild(script);};script.onload=successCB;script.onerror=CVP.Utils.bind(this._failure,this);script.onreadystatechange=function()
{if(this.readyState==='loaded'||this.readyState==='complete')
{successCB();}};script.src=this._url;head.appendChild(script);},_loadCss:function()
{var node,head=document.getElementsByTagName("head")[0];if(!head)
{this._failure();return;}
node=document.createElement('link');node.type='text/css';node.rel='stylesheet';node.href=src;node.media='screen';head.appendChild(node);this._success();}});function createCallbackHandler(id){var funcName=id+'_callback_handler';if(typeof window[funcName]!=='undefined')
return false;window[funcName]=function(){var ret=CVP.onCallback(id,arguments);if(typeof ret!=='undefined'){return ret;}};return true;}
function validateFlashVersion(embedVersion)
{var f1="",f2="",f1V=0,f2V=0,i=0,endi=0;FLASH_VERSION=String(FLASH_VERSION);embedVersion=String(embedVersion);if(embedVersion===FLASH_VERSION)
return embedVersion;if(typeof embedVersion==="undefined"||embedVersion===null)
return FLASH_VERSION;f1=FLASH_VERSION.split(".");f2=embedVersion.split(".");for(endi=f1.length;i<endi;++i)
{f1V=+f1[i];f2V=+f2[i];if(isNaN(f2V)||f1V>f2V)
return FLASH_VERSION;else if(f2V>f1V)
return embedVersion;}
return FLASH_VERSION;}
function addBeforeUnLoadEvent(func)
{var oldfunc=window.onbeforeunload;if(typeof window.onbeforeunload!=='function')
{window.onbeforeunload=func;}
else
{window.onbeforeunload=function()
{if(oldfunc)
{oldfunc();}
func();};}}
var byId=CVP.Utils.byId;var extend=CVP.Utils.extend;var undef=CVP.Utils.undef;var isFunc=CVP.Utils.isFunc;var hasOwn=CVP.Utils.hasOwn;var bind=CVP.Utils.bind;var log=CVP.Utils.log;CVP.Class=Class;CVP.Utils.JsonConverter={escapeString:function(str)
{var s="",ch="",len=0,i=0;if(!CVP.Utils.empty(str))
{for(i=0,len=str.length;i<len;++i)
{ch=str.charAt(i);switch(ch)
{case'"':s+="\\\\\"";break;case'\\':s+="\\\\";break;case'\b':s+="\\b";break;case'\f':s+="\\f";break;case'\n':s+="\\n";break;case'\r':s+="\\r";break;case'\t':s+="\\t";break;default:if(ch<' ')
{var hexCode=ch.charCodeAt(0).toString(16);var zeroPad=hexCode.length===2?"00":"000";s+="\\u"+zeroPad+hexCode;}
else
{s+=ch;}}}
return"\""+s+"\"";}},convertNode:function(xml,ident,nodeType)
{var json="",first=false,i=0,endi=0;if(CVP.Utils.empty(ident))
ident="";if(CVP.Utils.empty(nodeType))
nodeType="";json=ident;if(nodeType==="")
json+="{";ident=ident+"\t";first=true;if(!CVP.Utils.undef(xml.attributes))
{var removeAttributes=[];for(endi=xml.attributes.length;i<endi;++i)
{var attribute=xml.attributes[i];if(!CVP.Utils.undef(attribute.nodeName)&&attribute.nodeName.indexOf('xmlns')===-1)
{if(first)
{first=false;json+="\n";}
else
{json+=",\n";}
if(nodeType==='array')
json+=ident+"{";else
json+=ident;json+="\""+attribute.nodeName+"\":"+CVP.Utils.JsonConverter.escapeString(attribute.nodeValue);if(nodeType==='array')
json+="}";}else{if(!CVP.Utils.undef(attribute.nodeName)){removeAttributes.push(attribute.nodeName);}}}
for(i=0,endi=removeAttributes.length;i<endi;++i){xml.removeAttribute(removeAttributes[0]);}}
var type;var name;if(!CVP.Utils.undef(xml.childNodes))
{for(i=0,endi=xml.childNodes.length;i<endi;++i)
{var node=xml.childNodes[i];if(!CVP.Utils.undef(node.tagName))
{if(first)
{first=false;json+="\n";}
else
{json+=",\n";}
name=node.tagName;if(CVP.Utils.empty(name))
{name="text";}
json+=ident;if(nodeType==='array')
json+="{";if((CVP.Utils.empty(node.childNodes)||node.childNodes.length<=1)&&(CVP.Utils.empty(node.attributes)||node.attributes.length===0)&&!(node.childNodes.length>0&&node.childNodes[0].nodeType===1))
{if(node.childNodes.length>0)
json+="\""+name+"\":"+CVP.Utils.JsonConverter.escapeString(node.childNodes[0].nodeValue);else
json+="\""+name+"\":"+"\"\"";}
else
{var isArray=CVP.Utils.JsonConverter.isNodeAnArray(node);json+="\""+name+"\":"+(isArray?"[":"{")+"\n";if(node.childNodes.length>0&&!CVP.Utils.empty(node.childNodes[0].nodeValue))
json+="\"text\":"+CVP.Utils.JsonConverter.escapeString(node.childNodes[0].nodeValue)+",";type=isArray?'array':'object';json+=CVP.Utils.JsonConverter.convertNode(node,ident,type);}
if(nodeType==='array')
json+="}";}}}
ident=ident.substr(0,ident.length-1);json+="\n"+ident;json+=(nodeType==='array')?"]":"}";return json;},isNodeAnArray:function(node)
{var names={},i=0,endi=0;if(!CVP.Utils.undef(node.childNodes))
{for(endi=node.childNodes.length;i<endi;++i)
{var element=node.childNodes[i];if(!CVP.Utils.empty(element.tagName))
{if(!CVP.Utils.empty(names[element.tagName]))
return true;else
names[element.tagName]="exists";}}}
return false;},encodeXmlObject:function(xmlObj)
{var json=CVP.Utils.JsonConverter.convertNode(xmlObj);return json;}};CVP.Browser=(function(){var ua=navigator.userAgent;var chrome=!!ua.match(/chrome/i);var iphone=!!ua.match(/iPhone/i);var ipod=!!ua.match(/iPod/i);var ipad=!!ua.match(/iPad/i);var apple_mobile=(iphone||ipod||ipad);return{chrome:chrome,iphone:iphone,ipod:ipod,ipad:ipad,apple_mobile:apple_mobile};}());CVP.HTML5=HTML5;CVP.FLASH=FLASH;CVP.Players.NullPlayer=Class.extend({init:function()
{var functions="play replay playNextInQueue pause resume stop queue dequeue emptyQueue setQueueAutoplay getQueue seek mute unmute setVolume getVolume isMuted getContentEntry goFullscreen resize setMaxBitrate setGroupOrder getShareOptions setAdSection setAdKeyValue switchAdContext switchTrackingContext".split(" "),f=0,endf=functions.length,noop=function(){},fn;for(;f<endf;++f)
{fn=functions[f];if(!this[fn])
this[fn]=noop;}}});CVP.Players.HTML5=CVP.Players.NullPlayer.extend({init:function(options)
{this._super();this._options=options;this._instance=null;this._loadQ=new CVP.Utils.CommandQueue();this._loaded=false;this._load();},_load:function()
{if(CVP.Players._HTML5Player)
{this._onLoaded();}
else
{log("HTML5 player not found");}},_onLoaded:function()
{if(CVP.Players._HTML5Player)
{this._instance=new CVP.Players._HTML5Player(this._options);this._instance.ePlayerLoaded.addListener(this._onPlayerLoaded,this);this._instance.ePlayerReady.addListener(this._onPlayerReady,this);this._instance.ePlayerReady.addListener(this._onCVPReady,this);this._instance.ePlayerReady.addListener(bind(this._onCallBack,this,'onPlayerReady'));this._instance.ePlayerReady.addListener(bind(this._onCallBack,this,'onCVPReady'));this._instance.eContentBegin.addListener(bind(this._onCallBack,this,'onContentBegin'));this._instance.eContentPlay.addListener(bind(this._onCallBack,this,'onContentPlay'));this._instance.eContentPause.addListener(bind(this._onCallBack,this,'onContentPause'));this._instance.eContentEnd.addListener(bind(this._onCallBack,this,'onContentEnd'));this._instance.eContentComplete.addListener(bind(this._onCallBack,this,'onContentComplete'));this._instance.eContentMetadata.addListener(bind(this._onCallBack,this,'onContentMetadata'));this._instance.eContentPlayhead.addListener(bind(this._onCallBack,this,'onContentPlayhead'));this._instance.eContentBuffering.addListener(bind(this._onCallBack,this,'onContentBuffering'));this._instance.eContentVolume.addListener(bind(this._onCallBack,this,'onContentVolume'));this._instance.eContentError.addListener(bind(this._onCallBack,this,'onContentError'));this._instance.eAdPlay.addListener(bind(this._onCallBack,this,'onAdPlay'));this._instance.eAdEnd.addListener(bind(this._onCallBack,this,'onAdEnd'));this._instance.eAdError.addListener(bind(this._onCallBack,this,'onAdError'));}
else
{log("HTML5 player not found");}},_onLoadError:function()
{log("HTML5 load error");},_onPlayerLoaded:function()
{log("_onPlayerLoaded");this._loaded=true;this._loadQ.execute();},_onPlayerReady:function()
{log("_onPlayerReady");},_onCVPReady:function()
{log("_onCVPReady");},embed:function(containerElement)
{if(!this._loaded)
{log("queuing embed");this._loadQ.push(this.embed,this,arguments);return;}
log("executing embed");this._instance.render(containerElement);},remove:function()
{this._instance.remove();},playContent:function(contentId,options)
{this._instance.play(contentId,options);},queue:function(contentId,options)
{this._instance.queue(contentId,options);},pause:function()
{this._instance.pause();},resume:function()
{this._instance.resume();},setVolume:function(v)
{this._instance.setVolume(v);},getVolume:function()
{return this._instance.getVolume();},mute:function()
{this._instance.mute();},unmute:function()
{this._instance.unmute();},getContentEntry:function(id)
{return this._instance.getContentEntry(id);},setAdSection:function(ssid)
{this._instance.setAdSection(ssid);},_onCallBack:function()
{log("HTML5",arguments[0]);CVP.onCallback(this._options.id,arguments);},instance:function()
{return this._instance;},supported:function()
{return!!document.createElement('video').canPlayType;}});CVP.swfobject=function(){var UNDEF="undefined",OBJECT="object",SHOCKWAVE_FLASH="Shockwave Flash",SHOCKWAVE_FLASH_AX="ShockwaveFlash.ShockwaveFlash",FLASH_MIME_TYPE="application/x-shockwave-flash",EXPRESS_INSTALL_ID="SWFObjectExprInst",ON_READY_STATE_CHANGE="onreadystatechange",win=window,doc=document,nav=navigator,plugin=false,domLoadFnArr=[main],regObjArr=[],objIdArr=[],listenersArr=[],storedAltContent,storedAltContentId,storedCallbackFn,storedCallbackObj,isDomLoaded=false,isExpressInstallActive=false,dynamicStylesheet,dynamicStylesheetMedia,autoHideShow=true,ua=function(){var w3cdom=typeof doc.getElementById!=UNDEF&&typeof doc.getElementsByTagName!=UNDEF&&typeof doc.createElement!=UNDEF,u=nav.userAgent.toLowerCase(),p=nav.platform.toLowerCase(),windows=p?/win/.test(p):/win/.test(u),mac=p?/mac/.test(p):/mac/.test(u),webkit=/webkit/.test(u)?parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,ie=!+"\v1",playerVersion=[0,0,0],d=null;if(typeof nav.plugins!=UNDEF&&typeof nav.plugins[SHOCKWAVE_FLASH]==OBJECT){d=nav.plugins[SHOCKWAVE_FLASH].description;if(d&&!(typeof nav.mimeTypes!=UNDEF&&nav.mimeTypes[FLASH_MIME_TYPE]&&!nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)){plugin=true;ie=false;d=d.replace(/^.*\s+(\S+\s+\S+$)/,"$1");playerVersion[0]=parseInt(d.replace(/^(.*)\..*$/,"$1"),10);playerVersion[1]=parseInt(d.replace(/^.*\.(.*)\s.*$/,"$1"),10);playerVersion[2]=/[a-zA-Z]/.test(d)?parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0;}}
else if(typeof win.ActiveXObject!=UNDEF){try{var a=new ActiveXObject(SHOCKWAVE_FLASH_AX);if(a){d=a.GetVariable("$version");if(d){ie=true;d=d.split(" ")[1].split(",");playerVersion=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)];}}}
catch(e){}}
return{w3:w3cdom,pv:playerVersion,wk:webkit,ie:ie,win:windows,mac:mac};}(),onDomLoad=function(){if(!ua.w3){return;}
if((typeof doc.readyState!=UNDEF&&doc.readyState=="complete")||(typeof doc.readyState==UNDEF&&(doc.getElementsByTagName("body")[0]||doc.body))){callDomLoadFunctions();}
if(!isDomLoaded){if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("DOMContentLoaded",callDomLoadFunctions,false);}
if(ua.ie&&ua.win){doc.attachEvent(ON_READY_STATE_CHANGE,function(){if(doc.readyState=="complete"){doc.detachEvent(ON_READY_STATE_CHANGE,arguments.callee);callDomLoadFunctions();}});if(win==top){(function(){if(isDomLoaded){return;}
try{doc.documentElement.doScroll("left");}
catch(e){setTimeout(arguments.callee,0);return;}
callDomLoadFunctions();})();}}
if(ua.wk){(function(){if(isDomLoaded){return;}
if(!/loaded|complete/.test(doc.readyState)){setTimeout(arguments.callee,0);return;}
callDomLoadFunctions();})();}
addLoadEvent(callDomLoadFunctions);}}();function callDomLoadFunctions(){if(isDomLoaded){return;}
try{var t=doc.getElementsByTagName("body")[0].appendChild(createElement("span"));t.parentNode.removeChild(t);}
catch(e){return;}
isDomLoaded=true;var dl=domLoadFnArr.length;for(var i=0;i<dl;i++){domLoadFnArr[i]();}}
function addDomLoadEvent(fn){if(isDomLoaded){fn();}
else{domLoadFnArr[domLoadFnArr.length]=fn;}}
function addLoadEvent(fn){if(typeof win.addEventListener!=UNDEF){win.addEventListener("load",fn,false);}
else if(typeof doc.addEventListener!=UNDEF){doc.addEventListener("load",fn,false);}
else if(typeof win.attachEvent!=UNDEF){addListener(win,"onload",fn);}
else if(typeof win.onload=="function"){var fnOld=win.onload;win.onload=function(){fnOld();fn();};}
else{win.onload=fn;}}
function main(){if(plugin){testPlayerVersion();}
else{matchVersions();}}
function testPlayerVersion(){var b=doc.getElementsByTagName("body")[0];var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);var t=b.appendChild(o);if(t){var counter=0;(function(){if(typeof t.GetVariable!=UNDEF){var d=t.GetVariable("$version");if(d){d=d.split(" ")[1].split(",");ua.pv=[parseInt(d[0],10),parseInt(d[1],10),parseInt(d[2],10)];}}
else if(counter<10){counter++;setTimeout(arguments.callee,10);return;}
b.removeChild(o);t=null;matchVersions();})();}
else{matchVersions();}}
function matchVersions(){var rl=regObjArr.length;if(rl>0){for(var i=0;i<rl;i++){var id=regObjArr[i].id;var cb=regObjArr[i].callbackFn;var cbObj={success:false,id:id};if(ua.pv[0]>0){var obj=getElementById(id);if(obj){if(hasPlayerVersion(regObjArr[i].swfVersion)&&!(ua.wk&&ua.wk<312)){setVisibility(id,true);if(cb){cbObj.success=true;cbObj.ref=getObjectById(id);cb(cbObj);}}
else if(regObjArr[i].expressInstall&&canExpressInstall()){var att={};att.data=regObjArr[i].expressInstall;att.width=obj.getAttribute("width")||"0";att.height=obj.getAttribute("height")||"0";if(obj.getAttribute("class")){att.styleclass=obj.getAttribute("class");}
if(obj.getAttribute("align")){att.align=obj.getAttribute("align");}
var par={};var p=obj.getElementsByTagName("param");var pl=p.length;for(var j=0;j<pl;j++){if(p[j].getAttribute("name").toLowerCase()!="movie"){par[p[j].getAttribute("name")]=p[j].getAttribute("value");}}
showExpressInstall(att,par,id,cb);}
else{displayAltContent(obj);if(cb){cb(cbObj);}}}}
else{setVisibility(id,true);if(cb){var o=getObjectById(id);if(o&&typeof o.SetVariable!=UNDEF){cbObj.success=true;cbObj.ref=o;}
cb(cbObj);}}}}}
function getObjectById(objectIdStr){var r=null;var o=getElementById(objectIdStr);if(o&&o.nodeName=="OBJECT"){if(typeof o.SetVariable!=UNDEF){r=o;}
else{var n=o.getElementsByTagName(OBJECT)[0];if(n){r=n;}}}
return r;}
function canExpressInstall(){return!isExpressInstallActive&&hasPlayerVersion("6.0.65")&&(ua.win||ua.mac)&&!(ua.wk&&ua.wk<312);}
function showExpressInstall(att,par,replaceElemIdStr,callbackFn){isExpressInstallActive=true;storedCallbackFn=callbackFn||null;storedCallbackObj={success:false,id:replaceElemIdStr};var obj=getElementById(replaceElemIdStr);if(obj){if(obj.nodeName=="OBJECT"){storedAltContent=abstractAltContent(obj);storedAltContentId=null;}
else{storedAltContent=obj;storedAltContentId=replaceElemIdStr;}
att.id=EXPRESS_INSTALL_ID;if(typeof att.width==UNDEF||(!/%$/.test(att.width)&&parseInt(att.width,10)<310)){att.width="310";}
if(typeof att.height==UNDEF||(!/%$/.test(att.height)&&parseInt(att.height,10)<137)){att.height="137";}
doc.title=doc.title.slice(0,47)+" - Flash Player Installation";var pt=ua.ie&&ua.win?"ActiveX":"PlugIn",fv="MMredirectURL="+win.location.toString().replace(/&/g,"%26")+"&MMplayerType="+pt+"&MMdoctitle="+doc.title;if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+fv;}
else{par.flashvars=fv;}
if(ua.ie&&ua.win&&obj.readyState!=4){var newObj=createElement("div");replaceElemIdStr+="SWFObjectNew";newObj.setAttribute("id",replaceElemIdStr);obj.parentNode.insertBefore(newObj,obj);obj.style.display="none";(function(){if(obj.readyState==4){obj.parentNode.removeChild(obj);}
else{setTimeout(arguments.callee,10);}})();}
createSWF(att,par,replaceElemIdStr);}}
function displayAltContent(obj){if(ua.ie&&ua.win&&obj.readyState!=4){var el=createElement("div");obj.parentNode.insertBefore(el,obj);el.parentNode.replaceChild(abstractAltContent(obj),el);obj.style.display="none";(function(){if(obj.readyState==4){obj.parentNode.removeChild(obj);}
else{setTimeout(arguments.callee,10);}})();}
else{obj.parentNode.replaceChild(abstractAltContent(obj),obj);}}
function abstractAltContent(obj){var ac=createElement("div");if(ua.win&&ua.ie){ac.innerHTML=obj.innerHTML;}
else{var nestedObj=obj.getElementsByTagName(OBJECT)[0];if(nestedObj){var c=nestedObj.childNodes;if(c){var cl=c.length;for(var i=0;i<cl;i++){if(!(c[i].nodeType==1&&c[i].nodeName=="PARAM")&&!(c[i].nodeType==8)){ac.appendChild(c[i].cloneNode(true));}}}}}
return ac;}
function createSWF(attObj,parObj,id){var r,el=getElementById(id);if(ua.wk&&ua.wk<312){return r;}
if(el){if(typeof attObj.id==UNDEF){attObj.id=id;}
if(ua.ie&&ua.win){var att="";for(var i in attObj){if(attObj[i]!=Object.prototype[i]){if(i.toLowerCase()=="data"){parObj.movie=attObj[i];}
else if(i.toLowerCase()=="styleclass"){att+=' class="'+attObj[i]+'"';}
else if(i.toLowerCase()!="classid"){att+=' '+i+'="'+attObj[i]+'"';}}}
var par="";for(var j in parObj){if(parObj[j]!=Object.prototype[j]){par+='<param name="'+j+'" value="'+parObj[j]+'" />';}}
el.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+att+'>'+par+'</object>';objIdArr[objIdArr.length]=attObj.id;r=getElementById(attObj.id);}
else{var o=createElement(OBJECT);o.setAttribute("type",FLASH_MIME_TYPE);for(var m in attObj){if(attObj[m]!=Object.prototype[m]){if(m.toLowerCase()=="styleclass"){o.setAttribute("class",attObj[m]);}
else if(m.toLowerCase()!="classid"){o.setAttribute(m,attObj[m]);}}}
for(var n in parObj){if(parObj[n]!=Object.prototype[n]&&n.toLowerCase()!="movie"){createObjParam(o,n,parObj[n]);}}
el.parentNode.replaceChild(o,el);r=o;}}
return r;}
function createObjParam(el,pName,pValue){var p=createElement("param");p.setAttribute("name",pName);p.setAttribute("value",pValue);el.appendChild(p);}
function removeSWF(id){var obj=getElementById(id);if(obj&&obj.nodeName=="OBJECT"){if(ua.ie&&ua.win){obj.style.display="none";(function(){if(obj.readyState==4){removeObjectInIE(id);}
else{setTimeout(arguments.callee,10);}})();}
else{obj.parentNode.removeChild(obj);}}}
function removeObjectInIE(id){var obj=getElementById(id);if(obj){for(var i in obj){if(typeof obj[i]=="function"){obj[i]=null;}}
obj.parentNode.removeChild(obj);}}
function getElementById(id){var el=null;try{el=doc.getElementById(id);}
catch(e){}
return el;}
function createElement(el){return doc.createElement(el);}
function addListener(target,eventType,fn){target.attachEvent(eventType,fn);listenersArr[listenersArr.length]=[target,eventType,fn];}
function hasPlayerVersion(rv){var pv=ua.pv,v=rv.split(".");v[0]=parseInt(v[0],10);v[1]=parseInt(v[1],10)||0;v[2]=parseInt(v[2],10)||0;return(pv[0]>v[0]||(pv[0]==v[0]&&pv[1]>v[1])||(pv[0]==v[0]&&pv[1]==v[1]&&pv[2]>=v[2]))?true:false;}
function createCSS(sel,decl,media,newStyle){if(ua.ie&&ua.mac){return;}
var h=doc.getElementsByTagName("head")[0];if(!h){return;}
var m=(media&&typeof media=="string")?media:"screen";if(newStyle){dynamicStylesheet=null;dynamicStylesheetMedia=null;}
if(!dynamicStylesheet||dynamicStylesheetMedia!=m){var s=createElement("style");s.setAttribute("type","text/css");s.setAttribute("media",m);dynamicStylesheet=h.appendChild(s);if(ua.ie&&ua.win&&typeof doc.styleSheets!=UNDEF&&doc.styleSheets.length>0){dynamicStylesheet=doc.styleSheets[doc.styleSheets.length-1];}
dynamicStylesheetMedia=m;}
if(ua.ie&&ua.win){if(dynamicStylesheet&&typeof dynamicStylesheet.addRule==OBJECT){dynamicStylesheet.addRule(sel,decl);}}
else{if(dynamicStylesheet&&typeof doc.createTextNode!=UNDEF){dynamicStylesheet.appendChild(doc.createTextNode(sel+" {"+decl+"}"));}}}
function setVisibility(id,isVisible){if(!autoHideShow){return;}
var v=isVisible?"visible":"hidden";if(isDomLoaded&&getElementById(id)){getElementById(id).style.visibility=v;}
else{createCSS("#"+id,"visibility:"+v);}}
function urlEncodeIfNecessary(s){var regex=/[\\\"<>\.;]/;var hasBadChars=regex.exec(s)!=null;return hasBadChars&&typeof encodeURIComponent!=UNDEF?encodeURIComponent(s):s;}
var cleanup=function(){if(ua.ie&&ua.win){window.attachEvent("onunload",function(){var ll=listenersArr.length;for(var i=0;i<ll;i++){listenersArr[i][0].detachEvent(listenersArr[i][1],listenersArr[i][2]);}
var il=objIdArr.length;for(var j=0;j<il;j++){removeSWF(objIdArr[j]);}
for(var k in ua){ua[k]=null;}
ua=null;for(var l in CVP.swfobject){CVP.swfobject[l]=null;}
CVP.swfobject=null;});}}();return{registerObject:function(objectIdStr,swfVersionStr,xiSwfUrlStr,callbackFn){if(ua.w3&&objectIdStr&&swfVersionStr){var regObj={};regObj.id=objectIdStr;regObj.swfVersion=swfVersionStr;regObj.expressInstall=xiSwfUrlStr;regObj.callbackFn=callbackFn;regObjArr[regObjArr.length]=regObj;setVisibility(objectIdStr,false);}
else if(callbackFn){callbackFn({success:false,id:objectIdStr});}},getObjectById:function(objectIdStr){if(ua.w3){return getObjectById(objectIdStr);}},embedSWF:function(swfUrlStr,replaceElemIdStr,widthStr,heightStr,swfVersionStr,xiSwfUrlStr,flashvarsObj,parObj,attObj,callbackFn){var callbackObj={success:false,id:replaceElemIdStr};if(ua.w3&&!(ua.wk&&ua.wk<312)&&swfUrlStr&&replaceElemIdStr&&widthStr&&heightStr&&swfVersionStr){setVisibility(replaceElemIdStr,false);addDomLoadEvent(function(){widthStr+="";heightStr+="";var att={};if(attObj&&typeof attObj===OBJECT){for(var i in attObj){att[i]=attObj[i];}}
att.data=swfUrlStr;att.width=widthStr;att.height=heightStr;var par={};if(parObj&&typeof parObj===OBJECT){for(var j in parObj){par[j]=parObj[j];}}
if(flashvarsObj&&typeof flashvarsObj===OBJECT){for(var k in flashvarsObj){if(typeof par.flashvars!=UNDEF){par.flashvars+="&"+k+"="+flashvarsObj[k];}
else{par.flashvars=k+"="+flashvarsObj[k];}}}
if(hasPlayerVersion(swfVersionStr)){var obj=createSWF(att,par,replaceElemIdStr);if(att.id==replaceElemIdStr){setVisibility(replaceElemIdStr,true);}
callbackObj.success=true;callbackObj.ref=obj;}
else if(xiSwfUrlStr&&canExpressInstall()){att.data=xiSwfUrlStr;showExpressInstall(att,par,replaceElemIdStr,callbackFn);return;}
else{setVisibility(replaceElemIdStr,true);}
if(callbackFn){callbackFn(callbackObj);}});}
else if(callbackFn){callbackFn(callbackObj);}},switchOffAutoHideShow:function(){autoHideShow=false;},ua:ua,getFlashPlayerVersion:function(){return{major:ua.pv[0],minor:ua.pv[1],release:ua.pv[2]};},hasFlashPlayerVersion:hasPlayerVersion,createSWF:function(attObj,parObj,replaceElemIdStr){if(ua.w3){return createSWF(attObj,parObj,replaceElemIdStr);}
else{return undefined;}},showExpressInstall:function(att,par,replaceElemIdStr,callbackFn){if(ua.w3&&canExpressInstall()){showExpressInstall(att,par,replaceElemIdStr,callbackFn);}},removeSWF:function(objElemIdStr){if(ua.w3){removeSWF(objElemIdStr);}},createCSS:function(selStr,declStr,mediaStr,newStyleBoolean){if(ua.w3){createCSS(selStr,declStr,mediaStr,newStyleBoolean);}},addDomLoadEvent:addDomLoadEvent,addLoadEvent:addLoadEvent,getQueryParamValue:function(param){var q=doc.location.search||doc.location.hash;if(q){if(/\?/.test(q)){q=q.split("?")[1];}
if(param==null){return urlEncodeIfNecessary(q);}
var pairs=q.split("&");for(var i=0;i<pairs.length;i++){if(pairs[i].substring(0,pairs[i].indexOf("="))==param){return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=")+1)));}}}
return"";},expressInstallCallback:function(){if(isExpressInstallActive){var obj=getElementById(EXPRESS_INSTALL_ID);if(obj&&storedAltContent){obj.parentNode.replaceChild(storedAltContent,obj);if(storedAltContentId){setVisibility(storedAltContentId,true);if(ua.ie&&ua.win){storedAltContent.style.display="block";}}
if(storedCallbackFn){storedCallbackFn(storedCallbackObj);}}
isExpressInstallActive=false;}}};}();var sessionToken="";CVP.getSessionToken=function(){if(sessionToken=="")
{sessionToken=CVP.Utils.randomString(25);}
return sessionToken;};addBeforeUnLoadEvent(CVP.cleanup);}());(function(container){if(!container||!container.CVP)
{throw"CVP is a required dependency for the HTML5 player";}
var debug=window.location.search.indexOf('dmtdebug')!==-1||window.location.hash.indexOf('dmtdebug')!==-1;var HTML5VERSION="2.7";var MAPPING_PATH="http://i.cdn.turner.com/xslo/cvp/config/{site}/";var MAPPING_FILE="mapping.xml";var FREEWHEEL_JS_URL="http://i.cdn.turner.com/xslo/cvp/ads/freewheel/js/AdManager.js";var OMNITURE_JS_URL="";var Class=CVP.Class;var undef=CVP.Utils.undef;var nil=CVP.Utils.isNull;var empty=CVP.Utils.empty;var extend=CVP.Utils.extend;var byId=CVP.Utils.byId;var query=CVP.Utils.query;var bind=CVP.Utils.bind;var slice=CVP.Utils.slice;var hasOwn=CVP.Utils.hasOwn;var template=CVP.Utils.template;var joinKeys=CVP.Utils.joinKeys;var isString=CVP.Utils.isString;var isFlagActive=CVP.Utils.isFlagActive;var print=CVP.Utils.print;var Event=CVP.Events.CustomEvent;var CommandQueue=CVP.Utils.CommandQueue;var Asset=CVP.Utils.Asset;var log=function(){if(window.console&&window.console.log&&debug){window.console.log(slice(arguments).join(" | "));}};var ConditionalTask=function(condition,success,interval){this._interval=nil(interval)?10:interval;this._maxTries=500;this._condition=condition;this._success=success;this._tries=0;this.conditionWrapper=bind(function(){var ret=this._condition();if(ret)
{clearInterval(this._timer);this._success();}
else if(this._tries>this._maxTries)
{log("condition never met!");clearInterval(this._timer);}
++this._tries;},this);this.start=function(){this._timer=setInterval(this.conditionWrapper,this._interval);};};var Utils={replaceExtension:function(str,find,replace){if(empty(str))
return str;return str.replace(new RegExp(find+"$","i"),replace);}};var ConfigUtils={stringReplace:function(str,entry,uriEncode){var patterns=this.getReplacementPatterns(str),i=0,endi=0,pattern,replaceStr="";if(!empty(patterns)){for(endi=patterns.length;i<endi;++i)
{pattern=patterns[i];replaceStr="";replaceStr=this.getReplacementText(pattern,entry);if(empty(replaceStr))
replaceStr="";else if(uriEncode)
replaceStr=encodeURI(replaceStr);str=str.replace(pattern,replaceStr);}}
return str;},getReplacementPatterns:function(str){return(str.match(/[$][{][^}]*[}]/g));},getReplacementText:function(pattern,entry){var replaceStr="",nodeName="",array=[],objName="";switch(pattern)
{case"${page.domain}":if(player)
replaceStr=document.domain;break;case"${page.url}":replaceStr=location.href;break;case"${videoId}":case"${video.id}":if(entry)
replaceStr=entry.getId();break;default:nodeName=pattern.substr(2,pattern.length-3);array=nodeName.split('.');objName=array[0];if(array.length>1)
{nodeName=nodeName.substr(objName.length+1);switch(objName)
{case"video":if(entry)
replaceStr=XMLUtils.getNodeValue(entry._xmlEntry,nodeName);break;default:replaceStr=pattern;break;}}
else
replaceStr=pattern;}
return replaceStr;}};var Ajax={get:function(obj){obj.type="GET";this._request(obj);},getXml:function(obj){obj.dataType="xml";this.get(obj);},getJSONP:function(obj){this.JSONP._request(obj);},post:function(obj){obj.type="POST";this._request(obj);},_request:function(obj)
{var request=new XMLHttpRequest();request.onreadystatechange=function()
{if(request.readyState===4)
{if(request.status<=200&&request.status<400)
{if(obj.success)
obj.success(request.responseText);}
else
{if(obj.error)
obj.error(request);}
request=null;}};request.open(obj.type,obj.url,true);request.send(obj.type==="POST"?obj.data:null);}};Ajax.JSONP={requestMap:{},_counter:0,_request:function(obj){var self=this;obj=extend({timeout:2000,maxRetries:0},obj||{});obj.tries=0;this._sendRequest(obj);},_sendRequest:function(obj){var self=this;var requestId=this._createCallback(obj);var script=this._createScript(requestId);if(!script){log("JSONP - unable to create script for request ",obj.url);return false;}
script.src=obj.url;if(obj.timeout){setTimeout(function(){self._onError(requestId,obj);},obj.timeout);}},_onSuccess:function(id,obj,data){if(!this.requestMap[id]){return;}
this._destroyRequest(id,obj);if(isString(data)){try{data=JSON.parse(data);}catch(e1){log("JSON.parse failed - falling back to eval");try{data=eval('('+data+')');}catch(e2){log("eval data failed");}}}
if(obj.success){obj.success(data);}},_onError:function(id,obj){if(!this.requestMap[id]){return;}
this._destroyRequest(id,obj);++obj.tries;if(obj.maxRetries&&obj.tries<obj.maxRetries){log("Request failed - resending");this._sendRequest(obj);return;}
if(obj.error)
obj.error(obj.url);},_destroyRequest:function(id,obj){if(obj.jsonpCallback)
window[obj.jsonpCallback]=null;delete this.requestMap[id];this._counter--;var script=document.getElementById(this._getScriptName(id));if(script){script.parentNode.removeChild(script);script=null;}},_createScript:function(id){var head=document.getElementsByTagName("head")[0];if(!head)
return false;var script=document.createElement("script");script.type='text/javascript';if(id)
script.id=this._getScriptName(id);head.appendChild(script);return script;},_getScriptName:function(id){return"cvp_jsonp_"+id;},_createCallback:function(obj){var self=this;if(empty(obj.jsonpCallback)){return null;}
++this._counter;var id="request_"+this._counter;this.requestMap[id]=function(data){self._onSuccess(id,obj,data);};window[obj.jsonpCallback]=function(data){self.requestMap[id](data);};return id;}};var Loader=Class.extend({init:function(){this.eLoaded=new Event("LoadedEvent");this.eLoadError=new Event("LoadErrorEvent");},load:function(url,options){var self=this;options=extend({ajax:{}},options||{});var success=function(data){log("Loader","success:",url);self.eLoaded.dispatch(data);};var error=function(requestObj,textStatus,errorThrown){log("Loader","error:",url,"text:",textStatus);self.eLoadError.dispatch(requestObj,textStatus,errorThrown);};var ajaxOptions=extend({success:success,error:error},options.ajax);ajaxOptions.url=url;this._sendRequest(ajaxOptions);},_sendRequest:function(ajaxOptions){Ajax.get(ajaxOptions);}});var JSONPLoader=Loader.extend({init:function(){this._super();},_sendRequest:function(ajaxOptions){Ajax.getJSONP(ajaxOptions);}});var XMLLoader=Class.extend({init:function(){this._loader=new Loader();this._loader.eLoaded.addListener(this._onLoaded,this);this._loader.eLoadError.addListener(this._onLoadError,this);this.eLoaded=new Event();this.eLoadError=new Event();},load:function(url,options){this._loader.load(url,options);},_onLoaded:function(xmlStr){xmlStr=XMLUtils.clean(xmlStr);var xDoc=XMLUtils.createDoc(xmlStr);log("XMLLoader","XML loaded");this.eLoaded.dispatch(xDoc);},_onLoadError:function(requestObj,textStatus,errorThrown){log("XMLParser","onLoadError:",textStatus);if(textStatus==="parsererror"){log("XMLParser","ParseError...attempting to create an xml doc manually");var xmlStr=requestObj.responseText;xmlStr=XMLUtils.clean(xmlStr);var xDoc=XMLUtils.createDoc(xmlStr);if(xDoc)
this.eLoaded.dispatch(xDoc);else
this.eLoadError.dispatch(requestObj,textStatus,errorThrown);}}});var UberLoader=Class.extend({init:function(){this._loader=null;this.eLoaded=new Event();this.eLoadError=new Event();},load:function(url,options){this._createLoader(url);this._loader.load(url,options);},_createLoader:function(url){if(this._loader)
this._destroyLoader();var ext=this._getFileType(url);switch(ext){case"xml":this._loader=new XMLLoader();break;case"json":this._loader=new JSONPLoader();break;default:this._loader=new Loader();break;}
this._loader.eLoaded.addListener(this._onLoaded,this);this._loader.eLoadError.addListener(this._onLoadError,this);},_getFileType:function(url){var match=String(url).match(/\.([^.?#]+)(?:[?#]|$)/);var ext=match?match[1]:"";return ext;},_destroyLoader:function(){this._loader.eLoaded.removeListener(this._onLoaded,this);this._loader.eLoadError.removeListener(this._onLoadError,this);this._loader=null;},_onLoaded:function(data){this.eLoaded.dispatch(data);},_onLoadError:function(requestObj,textStatus,errorThrown){this.eLoadError.dispatch(requestObj,textStatus,errorThrown);}});var Parser=Class.extend({init:function(){this._loader=this._createLoader();this._loader.eLoaded.addListener(this.onLoaded,this);this._loader.eLoadError.addListener(this.onLoadError,this);},_createLoader:function(){return new UberLoader();},parse:function(url){log("XMLParser","Loading the xml to parse",url);this.load(url);},load:function(url,options){this._loader.load(url,options);},onLoaded:function(data){log("Parser","Data loaded");this.parseData(data);},onLoadError:function(requestObj,textStatus,errorThrown){log("Parser","onLoadError:",textStatus);},parseData:function(xml){},_fireLoadedSuccess:function()
{log("Parser","successfully Loaded asset");this.eLoaded.dispatch();},_fireLoadedFailure:function()
{log("Parser","failed to Load asset");this.eLoadedError.dispatch();}});var MappingParser=Parser.extend({init:function(){this.eParseCompleted=new Event();this.eParseError=new Event();this._super();},load:function(url){var options={ajax:{jsonpCallback:"cvp_onMappingReceived"}};this._super(url,options);},parseData:function(data){var mappings,profile,map;if(undef(data)||undef(data.mappings)){this.eParseError.dispatch();return;}
mappings=data.mappings;profile=_params.profile;for(map in mappings){if(mappings[map].profile===profile){break;}}
_mapping=mappings[map];this.eParseCompleted.dispatch();}});var AppConfigParser=Parser.extend({init:function(){this.eParseCompleted=new Event();this.eParseError=new Event();this._super();},load:function(url){var options={ajax:{jsonpCallback:"cvp_onAppConfigReceived"}};this._super(url,options);},parseData:function(data){_appConfig=data.appConfig;this.eParseCompleted.dispatch();}});var ContainerParser=Parser.extend({init:function(){this.eParseCompleted=new Event();this.eParseError=new Event();this._super();},parseData:function(xml){var self=this,i=0,endi=0,docElement=xml.documentElement,contextName=_params.context||"",elementName=_params.element||"",contexts=null,context=null,element=null,node=null,policies=null,adPolicySrc=null,adPolicyContext=null,playerWidth=null,playerHeight=null,playerX=null,playerY=null;defaultNode=docElement.getElementsByTagName("default");policies=(defaultNode.length&&defaultNode[0].getElementsByTagName("policies"))||[];if(policies.length){adPolicySrc=XMLUtils.getParamValue(policies[0],"adPolicySrc");adPolicyContext=XMLUtils.getParamValue(policies[0],"adPolicyContext");}
_containerInfo.elementName=elementName;_containerInfo.adPolicySrc=adPolicySrc;_containerInfo.adPolicyContext=adPolicyContext;contexts=docElement.getElementsByTagName("context");for(endi=contexts.length;i<endi;++i)
{if(XMLUtils.getAttribute(contexts[i],"name")===contextName)
{context=contexts[i];break;}}
if(context)
{var elements=context.getElementsByTagName("element");for(i=0,endi=elements.length;i<endi;++i){if(XMLUtils.getAttribute(elements[i],"id")===elementName){element=elements[i];break;}}
if(!element)element=elements[0];if(element){elementName=XMLUtils.getAttribute(element,"id");policies=element.getElementsByTagName("policies");if(policies.length>0){adPolicySrc=XMLUtils.getParamValue(policies[0],"adPolicySrc");adPolicyContext=XMLUtils.getParamValue(policies[0],"adPolicyContext");}
var players=element.getElementsByTagName("player");var playerName=XMLUtils.getAttribute(players[players.length-1],"playerInstance");if(empty(playerName))
playerName=contextName;_containerInfo.playerInstance=playerName;}}
if(!empty(elementName)){_containerInfo.elementName=elementName;}
if(!empty(adPolicySrc)){_containerInfo.adPolicySrc=adPolicySrc;}
if(!empty(adPolicyContext)){_containerInfo.adPolicyContext=adPolicyContext;}
CVP.Utils.print(_containerInfo,"_containerInfo");this.eParseCompleted.dispatch();},parseParams:function(obj,name,value){switch(name)
{case"adPolicySrc":obj.adPolicySrc=value;break;case"adPolicyContext":obj.adPolicyContext=value;break;default:obj[name]=value;}}});var ConfigParser=Parser.extend({init:function(){this.eParseCompleted=new Event();this.eParseError=new Event();this._super();},parseData:function(xml){var self=this,docElement=xml.documentElement,playerInstanceName=_containerInfo.playerInstance||"",player=null,players=docElement.getElementsByTagName("player"),node,process;while(players.length){node=players[players.length-1];if(XMLUtils.getAttribute(node,"name")===playerInstanceName)
{player=node.cloneNode(true);}
docElement.removeChild(node);}
process=function(xml,objToAssign){if(nil(xml))
return;var childNodes=xml.childNodes,xmlLength=childNodes.length,childNode,obj,i=0;for(;i<xmlLength;++i){childNode=childNodes[i];obj=self.findMapping(childNode.nodeName);if(!nil(obj))
{self.parseAttributes(obj,childNode);if(childNode.childNodes.length)
{process(childNode,obj);}}
else if(childNode.nodeName==="param")
{self.parseParams(objToAssign,XMLUtils.getAttribute(childNode,"name"),XMLUtils.getAttribute(childNode,"value"));}}};defaultNode=docElement.getElementsByTagName("default");if(defaultNode.length>0){process(defaultNode[0],_configInfo);}
if(!nil(player))
{process(player,_configInfo);}
CVP.Utils.print(_configInfo,"_configInfo");players=player=childNodes=childNode=null;this.eParseCompleted.dispatch();},parseParams:function(obj,name,value){switch(name)
{default:obj[name]=value;}},parseAttributes:function(obj,node)
{if(node.hasAttributes)
{if(!obj.attr)
obj.attr={};XMLUtils.assignAttributes(obj.attr,node.attributes);}},findMapping:function(nodeName){var obj=null;switch(nodeName)
{default:obj=null;}
return obj;}});var TrackingPolicyParser=Parser.extend({init:function(){this.eParseCompleted=new Event();this.eParseError=new Event();this._super();},parseData:function(xml){var self=this,i=0,docElement=xml.documentElement,adContextName=_containerInfo.adPolicyContext||"",context=null,contexts=docElement.getElementsByTagName("context"),endi=contexts.length||0,node,process,defaultNode;for(;i<endi;++i)
{if(XMLUtils.getAttribute(contexts[i],"name")===adContextName)
{context=contexts[i];break;}}
process=function(xml,objToAssign){if(nil(xml))
return;var childNodes=xml.childNodes,xmlLength=childNodes.length,childNode,obj,i=0;for(;i<xmlLength;++i)
{childNode=childNodes[i];obj=self.findMapping(childNode.nodeName);if(!nil(obj))
{self.parseAttributes(obj,childNode);if(childNode.childNodes.length)
{process(childNode,obj);}}
else if(childNode.nodeName==="param")
{self.parseParams(objToAssign,XMLUtils.getAttribute(childNode,"name"),XMLUtils.getAttribute(childNode,"value"));}}};defaultNode=docElement.getElementsByTagName("default");if(defaultNode.length!==0){process(defaultNode[0],_trackingPolicy);}
if(!nil(context))
{process(context,_trackingPolicy);}
CVP.Utils.print(_trackingPolicy,"_trackingPolicy");contexts=context=childNodes=childNode=null;this.eParseCompleted.dispatch();},parseParams:function(obj,name,value){switch(name)
{case"adApi":obj.apiUrl=value;break;case"adManRootUrl":obj.adManRootUrl=value;break;case"adServerRootUrl":obj.adServerRootUrl=value;break;case"adVideoRootUrl":obj.adVideoRootUrl=value;break;case"adVideoExtension":obj.adVideoExtension=value;break;case"additionalVideoSegvars":obj.additionalVideoSegVars=value;break;case"additionalSyncSegvars":obj.additionalSyncSegVars=value;break;case"adSection":obj.adSection=value;break;case"adNetworkId":obj.adNetworkId=value;break;case"adVideoNetworkId":obj.adVideoNetworkId=value;break;case"adVideoAssetId":obj.adVideoAssetId=value;break;case"adPlayerProfile":obj.adPlayerProfile=value;break;case"renderersUrl":obj.renderersUrl=value;break;case"externalSlots":obj.externalSlots=isFlagActive(value,obj.externalSlots);break;case"adLiveContentDuration":obj.liveDuration=value;break;default:obj[name]=value;}},parseAttributes:function(obj,node)
{if(node.hasAttributes)
{if(!obj.attr)
obj.attr={};XMLUtils.assignAttributes(obj.attr,node.attributes);}},findMapping:function(nodeName){var obj=null;switch(nodeName)
{case"adServer":obj=_trackingPolicy.ads;break;}
return obj;}});var XMLUtils={createDoc:function(xmlString){if(undef(window.DOMParser))
{this.createDoc=function(xmlString){if(empty(xmlString))return null;var xDoc=new ActiveXObject("MSXML2.DOMDocument");xDoc.async=false;xDoc.loadXML(xmlString);return xDoc;};}
else
{this.createDoc=function(xmlString){if(empty(xmlString))return null;var parser=new DOMParser();var xDoc=parser.parseFromString(xmlString,"text/xml");return xDoc;};}
return this.createDoc(xmlString);},clean:function(xmlString){xmlString=xmlString.replace(/>\s*?</g,"><");xmlString=xmlString.replace(/\t*/g,"");xmlString=xmlString.replace(/\n*/g,"");xmlString=xmlString.replace(/<!--(.*?)-->/g,"");xmlString=xmlString.replace(/&/g,"&amp;");while(xmlString.indexOf('xmlns')>-1){var start=xmlString.indexOf('xmlns');var firstQuote=xmlString.indexOf('"',start);var endQuote=xmlString.indexOf('"',firstQuote+1);xmlString=xmlString.slice(0,start)+xmlString.slice(endQuote+1);}
return xmlString;},getNodeValue:function(doc,nodeName){if(doc)
{if(!nodeName)
return(!nil(doc.firstChild)?doc.firstChild.nodeValue:null);var nodes=doc.getElementsByTagName(nodeName);if(nodes.length>0)
return nodes[0].firstChild.nodeValue;}
return null;},getParamValue:function(doc,paramName){var nodes,i=0,endi=0;if(doc)
{if(!paramName)
return null;nodes=doc.getElementsByTagName("param");for(endi=nodes.length;i<endi;++i){if(this.getAttribute(nodes[i],"name")===paramName){return this.getAttribute(nodes[i],"value");}}}
return null;},getAttribute:function(node,attrName){if(node&&node.attributes&&!empty(attrName))
{var attr=node.attributes.getNamedItem(attrName);return attr?attr.nodeValue:null;}},assignAttributes:function(obj,attributes)
{var a=0,end=(attributes&&attributes.length)||0,attr;for(;a<end;++a)
{attr=attributes[a];obj[attr.nodeName]=attr.nodeValue;}},toString:function(xmlDoc){if(undef(window.XMLSerializer))
{this.toString=function(xmlDoc){return xmlDoc.xml;};}
else
{this.toString=function(xmlDoc){return new XMLSerializer().serializeToString(xmlDoc);};}
return this.toString(xmlDoc);}};var DependencyMananger,Dependency,MappingDependency,AppConfigDependency,ContainerDependency,ConfigDependency,TrackingPolicyDependency;DependencyMananger=Class.extend({init:function()
{this._dependencies=[];this._currentDependency=null;this.eSuccess=new Event();this.eFailure=new Event();this.eDependencySuccess=new Event();this.eDependencyFailure=new Event();},addDependency:function(dependency)
{dependency.setManager(this);this._dependencies.push(dependency);},load:function()
{this._currentDependency=this._dependencies.shift();this._currentDependency.eSuccess.addListener(this._onDependencySuccess,this);this._currentDependency.eFailure.addListener(this._onDependencyFailure,this);var self=this;setTimeout(function(){self._currentDependency.load();},10);},_onDependencySuccess:function()
{this.eDependencySuccess.dispatch(this._currentDependency.getDesc());this._next();},_onDependencyFailure:function()
{this.eDependencyFailure.dispatch(this._currentDependency.getDesc());if(this._currentDependency.required)
{this._onFailure(this._currentDependency.getDesc());return;}
this._next();},_next:function()
{if(this._dependencies.length)
this.load();else
this._onSuccess();},_onSuccess:function(desc)
{this.eSuccess.dispatch(desc);},_onFailure:function(desc)
{this.eFailure.dispatch(desc);}});Dependency=Class.extend({init:function(assetUrl,required)
{this._assetUrl=assetUrl;this.required=required;this._manager=null;this.eSuccess=new Event();this.eFailure=new Event();},load:function()
{log("Dependency","loading asset",this._assetUrl);var assetLoader=new Asset(this._assetUrl);assetLoader.eSuccess.addListener(this._success,this);assetLoader.eFailure.addListener(this._failure,this);assetLoader.load();},_success:function()
{log("Dependency","successfully loaded dependency",this._assetUrl);this.eSuccess.dispatch();},_failure:function()
{log("Dependency","failed to load dependency",this._assetUrl);this.eFailure.dispatch();},setManager:function(manager)
{this._manager=manager;},getDesc:function()
{return this._assetUrl;}});MappingDependency=Dependency.extend({init:function()
{this._super.apply(this,arguments);this.required=true;this._parser=new MappingParser();this._parser.eParseCompleted.addListener(this._onParseCompleted,this);this._parser.eParseError.addListener(this._onParseError,this);},load:function()
{log("MappingDependency","loading xml",this._assetUrl);this._parser.parse(this._assetUrl);},_onParseCompleted:function()
{if(!_mapping||empty(_mapping.url)){log("Unable to retrieve the mapping file.");this._failure();return;}
var appConfigUrl=Utils.replaceExtension(_mapping.url,"xml","json");this._manager.addDependency(new AppConfigDependency(appConfigUrl,true));this._success();},_onParseError:function()
{this._failure();},getDesc:function()
{return"MappingDependency: "+this._assetUrl;}});AppConfigDependency=Dependency.extend({init:function()
{this._super.apply(this,arguments);this.required=true;this._parser=new AppConfigParser();this._parser.eParseCompleted.addListener(this._onParseCompleted,this);this._parser.eParseError.addListener(this._onParseError,this);},load:function()
{log("AppConfigDependency","loading xml",this._assetUrl);this._parser.parse(this._assetUrl);},_onParseCompleted:function()
{if(!_appConfig||empty(_appConfig.containerUrl)||empty(_appConfig.configUrl))
{log("Unable to retrieve the appConfig file.");this._failure();return;}
this._manager.addDependency(new ContainerDependency(_appConfig.containerUrl,true));this._manager.addDependency(new ConfigDependency(_appConfig.configUrl,true));this._success();},_onParseError:function()
{this._failure();},getDesc:function()
{return"AppConfigDependency: "+this._assetUrl;}});ContainerDependency=Dependency.extend({init:function()
{this._super.apply(this,arguments);this.required=true;this._parser=new ContainerParser();this._parser.eParseCompleted.addListener(this._onParseCompleted,this);this._parser.eParseError.addListener(this._onParseError,this);},load:function()
{log("ContainerDependency","loading xml",this._assetUrl);this._parser.parse(this._assetUrl);},_onParseCompleted:function()
{if(!empty(_containerInfo.adPolicySrc)){this._manager.addDependency(new TrackingPolicyDependency(_containerInfo.adPolicySrc,true));}
this._success();},_onParseError:function()
{this._failure();},getDesc:function()
{return"ContainerDependency: "+this._assetUrl;}});ConfigDependency=Dependency.extend({init:function()
{this._super.apply(this,arguments);this.required=true;this._parser=new ConfigParser();this._parser.eParseCompleted.addListener(this._onParseCompleted,this);this._parser.eParseError.addListener(this._onParseError,this);},load:function()
{this._parser.parse(this._assetUrl);},_onParseCompleted:function()
{if(this._manager)
{if(!empty(_configInfo.omniture.omniture_account))
{log("ContainerDependency","adding Omniture dependency");}}
this._success();},_onParseError:function()
{this._failure();},getDesc:function()
{return"ConfigDependency: "+this._assetUrl;}});TrackingPolicyDependency=Dependency.extend({init:function()
{this._super.apply(this,arguments);this.required=true;this._parser=new TrackingPolicyParser();this._parser.eParseCompleted.addListener(this._onParseCompleted,this);this._parser.eParseError.addListener(this._onParseError,this);},load:function()
{log("TrackingPolicyDependency","loading xml",this._assetUrl);this._parser.parse(this._assetUrl);},_onParseCompleted:function()
{if(_trackingPolicy.ads.attr.type.toLowerCase()==="freewheel")
{log("ContainerDependency","adding FW dependency");this._manager.addDependency(new Dependency(FREEWHEEL_JS_URL,true));}
this._success();},_onParseError:function()
{this._failure();},getDesc:function()
{return"TrackingPolicyDependency: "+this._assetUrl;}});var CMS=Class.extend({init:function(){this._catalogDataURL="";this._requestPendingQueue=[];this._videoCatalog=[];this._requests={};this._loader=new XMLLoader();this._loader.eLoaded.addListener(this._onContentIdRequestComplete,this);this._loader.eLoadError.addListener(this._onContentIdRequestIOError,this);this.eRequestCompleted=new Event("CmsRequestCompletedEvent");},addContentId:function(contentId){var entry=this.getContentId(contentId);if(nil(entry))
this._requestPendingQueue.push(contentId);else{var index=contentId.split("|")[1];contentId=contentId.split("|")[0];this._notifyListeners(contentId,contentId,index);}
if(this._requestPendingQueue.length===1)
this._processNextRequest();},getContentId:function(contentId){contentId=contentId.split("|")[0];var i=0,ct=this._videoCatalog.length;for(;i<ct;++i)
{var entry=this._videoCatalog[i];if(entry.getId()===contentId)
return entry;}
return null;},clear:function(){this._videoCatalog=[];},setDataUrl:function(url){this._catalogDataURL=url;},_getRequestUrl:function(contentId){var requestUrl;var start=this._catalogDataURL.substr(0).search(/\$\{/);if(start!==-1)
{var end=this._catalogDataURL.substr(start).search(/\}/);if(end!==-1)
{var pattern=this._catalogDataURL.substr(start,end+1);requestUrl=this._catalogDataURL.replace(pattern,contentId);}}
else
{requestUrl=this._catalogDataURL+"/"+contentId+".xml";}
return requestUrl;},_createContentEntryFromRequestData:function(requestData,fileId){try
{return new ContentCatalogEntry(requestData);}
catch(e)
{alert(this._catalogDataURL+"/"+fileId+".xml: "+e.message);}
return null;},_processNextRequest:function(){if(this._requestPendingQueue.length>0)
{var contentId=this._requestPendingQueue[0].split("|")[0];this._requestVideoWithId(contentId);}},_requestVideoWithId:function(contentId){var url=this._getRequestUrl(contentId);this._loader.load(url);},_onContentIdRequestComplete:function(data){var request=this._requestPendingQueue[0].split("|");var contentId=request[0];var requestIndex=request[1];if(data)
{var entry=this._createContentEntryFromRequestData(data,contentId);if(!entry)
{this._notifyListeners(contentId,contentId,requestIndex,"No URLLoader");}
else
{entry.requestId=contentId;this._videoCatalog.push(entry);this._notifyListeners(entry.getId(),entry.requestId,requestIndex,"");}}
else
{this._notifyListeners(contentId,contentId,requestIndex,"No URLLoader");}
this._requestPendingQueue.shift();this._processNextRequest();},_onContentIdRequestIOError:function(){var request=this._requestPendingQueue[0].split("|");var contentId=request[0];var requestIndex=request[1];this._notifyListeners(contentId,contentId,"IOError : "+event.text);this._requestPendingQueue.shift();this._processNextRequest();},_notifyListeners:function(contentId,requestId,index,errorMsg){this.eRequestCompleted.dispatch(contentId,requestId,index,errorMsg);}});var ContentCatalogEntry=Class.extend({init:function(xml){var files,f,fKey,fFallback,fValue,ext,images,image,iWidth,iHeight,iKey,iValue;this._xmlEntry=xml.documentElement;this._requestId=null;this._name=XMLUtils.getNodeValue(this._xmlEntry,"slug");this._title=XMLUtils.getNodeValue(this._xmlEntry,"headline");this._category=XMLUtils.getNodeValue(this._xmlEntry,"category");this._trt=+XMLUtils.getNodeValue(this._xmlEntry,"trt");files=this._xmlEntry.getElementsByTagName("files");if(files.length)
{files=files[0].childNodes;this._fileList={};for(f in files)
{if(files[f].nodeType!==1)
continue;fKey=XMLUtils.getAttribute(files[f],"bitrate");fFallback=XMLUtils.getAttribute(files[f],"fallback");fValue=XMLUtils.getNodeValue(files[f]);ext=empty(fValue)?"":fValue.substring(fValue.lastIndexOf(".")+1);log("ContentCatalogEntry",fKey,fValue,ext);this._fileList[fKey]={url:fValue,fallback:fFallback,ext:ext};}}
else
{log("ContentCatalogEntry","No file entries found!");}
images=this._xmlEntry.getElementsByTagName("images");if(images.length)
{images=images[0].childNodes;this._imageList={};for(image in images)
{if(images[image].nodeType!==1)
continue;iWidth=XMLUtils.getAttribute(images[image],"width");iHeight=XMLUtils.getAttribute(images[image],"height");iValue=XMLUtils.getNodeValue(images[image]);log("ContentCatalogEntry","images",iWidth,iHeight,iValue);iKey=iWidth+"|"+iHeight;this._imageList[iKey]={url:iValue,width:iWidth,height:iHeight};}}},getId:function()
{var attr=XMLUtils.getAttribute(this._xmlEntry,"id");if(!empty(attr))
return attr;else
return this._requestId;},getName:function()
{return this._name;},getTitle:function()
{return this._title;},getCategory:function()
{return this._category;},getTrt:function()
{return this._trt;},getContentUrl:function(quality)
{var url=null,dbgFound=false,bitrate;for(bitrate in this._fileList)
{if(bitrate===quality)
{url=this._fileList[bitrate].url;if(url.indexOf("://")===-1)
url=_configInfo.mediaSrc+url;dbgFound=true;break;}}
if(!dbgFound)
log("Config XML specifies a "+quality+" bitrate entry, but there is no <file> node in video XML where bitrate attribute = "+quality+".");else if(empty(url))
log("text attribute is empty in the video XML for the <file> node whose quality is "+quality+".");return url;},getContentUrlFromFallback:function(fallback){var url=null,bitrate;for(bitrate in this._fileList){if(!(empty(this._fileList[bitrate].fallback))&&fallback===this._fileList[bitrate].fallback){url=this._fileList[bitrate].url;if(url.indexOf("://")===-1)
url=_configInfo.mediaSrc+url;break;}}
return url;},getContentUrlFromType:function(ext)
{var url=null,bitrate;for(bitrate in this._fileList)
{if(ext===this._fileList[bitrate].ext)
{url=this._fileList[bitrate].url;if(url.indexOf("://")===-1)
url=_configInfo.mediaSrc+url;break;}}
return url;},getThumbnailUrl:function(width,height)
{var url=null,key=width+"|"+height,k;for(k in this._imageList)
{if(k===key)
{url=this._imageList[k].url;break;}}
return url;},getXML:function()
{return this._xmlEntry;}});var BasePlayer=Class.extend({init:function(options){this.options=extend({containerElement:'',elementId:'',autoplay:true,controls:true,width:0,height:0},options||{});this.containerElement=byId(this.options.containerElement);this.elementId=this.options.elementId;if(empty(this.elementId))
{log("Invalid element id...exiting");throw"Invalid element id";}
this.playerOptions={};this.width=this.options.width;this.height=this.options.height;this.airplay=(!CVP.Browser.apple_mobile&&(undef(_params.iosAirplay)||undef(_configInfo.iosAirplay)))?"":"x-webkit-airplay=\"allow\"";this.perVideoFallbacks=undef(_params.perVideoFallbacks)?[]:_params.perVideoFallbacks;this.element=null;this.rendering=false;this.position={top:null,right:null,bottom:null,left:null};this.eRendered=new Event();this.eContentMetadata=new Event();this.eContentBegin=new Event();this.eContentPlay=new Event();this.eContentPause=new Event();this.eContentEnd=new Event();this.eContentComplete=new Event();this.eContentPlayhead=new Event();this.eContentBuffering=new Event();this.eContentVolume=new Event();this.eContentError=new Event();},getMarkup:function(){return"";},render:function(containerElement){log("Player","render");if(!empty(containerElement))
this.containerElement=byId(containerElement);if(nil(this.containerElement))
{log("Container element could not be found...cannot render...exiting");throw"Container could not be found";}
var markup=this.getMarkup();this.rendering=true;this.containerElement.innerHTML=markup;var self=this;new ConditionalTask(function(){if(!nil(byId(self.elementId)))
return true;},function(){self.rendering=false;self.element=byId(self.elementId);self.fireRendered();}).start();},rendered:function(){return this.element&&this.element.parentNode===this.containerElement;},show:function(){if(this.element)
{if(this.position.left)
this.element.style.left=this.position.left;}},hide:function(){if(this.element)
{this.position.left=this.element.style.left;this.element.style.left="-5000px";}},remove:function(){log("Player","remove");if(nil(this.containerElement)){log("Container element could not be found .. cannot remove");throw"Container element could not be found";}
var element=byId(this.elementId);while(element.firstChild){element.removeChild(element.firstChild);}
element.parentNode.removeChild(element);},addPlayerListeners:function(){},removePlayerListeners:function(){},fireRendered:function(){this.eRendered.dispatch();},fireBegin:function(){this.eContentBegin.dispatch(this._catalogEntry.getId());},firePlay:function(){this.eContentPlay.dispatch(this._catalogEntry.getId());},fireEnded:function(){this.eContentEnd.dispatch(this._catalogEntry.getId());},fireCompleted:function(){this.eContentComplete.dispatch(this._catalogEntry.getId());}});var VideoPlayer=BasePlayer.extend({init:function(options){this._super(options);this.playerOptions.controls=this.options.controls;this.playerOptions.autoplay=this.options.autostart;this._supportedFileTypes=this._determineSupportedFileTypes();this._firePlay=false;this._addedListeners=false;this._loaded=false;this._playheadTimer=null;this._playheadThrottling=false;this._mousedown=false;this._waitForMouseUp=false;this._setupMouseWatcher=function(){this.element.addEventListener('mousedown',bind(function(){this._mousedown=true;},this));this.element.addEventListener('mouseup',bind(function(){this._mousedown=false;},this));};this._triggerPlayhead=function(){if(this._playheadTimer){window.clearTimeout(this._playheadTimer);this._playheadTimer=null;}
this.element.removeEventListener('mouseup',this._triggerPlayheadBind);this.firePlayhead();this._playheadThrottling=false;this._waitForMouseUp=false;};this._triggerPlayheadBind=bind(this._triggerPlayhead,this);this._onLoadedMetaDataBind=bind(this._onLoadedMetaData,this);this._onContentPlayBind=bind(this._onContentPlay,this);this._onContentEndBind=bind(this._onContentEnd,this);this._onContentPauseBind=bind(this._onContentPause,this);this._onContentPlayheadBind=bind(this._onContentPlayhead,this);this._onContentBufferingBind=bind(this._onContentBuffering,this);this._onContentVolumeBind=bind(this._onContentVolume,this);},render:function(options){this._super(options);this.eRendered.addListener(this._setupMouseWatcher,this);},fireMetadata:function(){this.eContentMetadata.dispatch(this._catalogEntry.getId(),this.element.duration,this.element.videoWidth,this.element.videoHeight);},firePlayhead:function(){this.eContentPlayhead.dispatch(this._catalogEntry.getId(),this.element.currentTime,this.element.duration);},getMarkup:function(){return template("<video id=\"{0}\" width={1} height={2} controls {3}></video>",this.elementId,this.width,this.height,this.airplay);},play:(CVP.Browser.apple_mobile?function(catalogEntry)
{this._catalogEntry=catalogEntry;var url=this._getFileUrl(catalogEntry);this._setOptions();this._setThumbnail();if(!url){return;}
this.element.src=url;this.element.load();this.element.play();this._firePlay=true;}:function(catalogEntry)
{this._catalogEntry=catalogEntry;var url=this._getFileUrl(catalogEntry);if(!this.playerOptions.autoplay)
{this._setThumbnail();}
if(!url){return;}
this.element.src=url;this.element.load();}),pause:function()
{this.element.pause();},resume:function()
{if(this.element.paused)
this.element.play();},setVolume:function(v)
{this.element.volume=v;},getVolume:function()
{return this.element.volume;},mute:function()
{this.element.muted=true;},unmute:function()
{this.element.muted=false;},_setOptions:function()
{var option;for(option in this.playerOptions)
{if(hasOwn(this.playerOptions,option)){this.element[option]=this.playerOptions[option];}}},_setThumbnail:function()
{var image=this._catalogEntry.getThumbnailUrl(this.width,this.height);log("VideoPlayer","_setThumbnail",image);if(image)
{this.element.poster=image;}},_onLoadedMetaData:function()
{log("VideoPlayer","_onLoadedMetaData");this._loaded=true;this.fireMetadata();if(!CVP.Browser.apple_mobile){this._onLoaded();}},_onLoaded:function()
{log("VideoPlayer","_onLoaded");this._setOptions();this._firePlay=true;this.element.play();},_onReadyStateChange:function()
{log("VideoPlayer","_onReadyStateChange");},_onContentBegin:function()
{log("VideoPlayer","_onContentBegin");this.fireBegin();},_onContentPlay:function()
{log("VideoPlayer","_onContentPlay");if(this._firePlay)
{this.firePlay();this._firePlay=false;}},_onContentPlaying:function()
{log("VideoPlayer","_onContentPlaying");},_onContentPause:function()
{log("VideoPlayer","_onContentPause");this.eContentPause.dispatch(this._catalogEntry.getId(),this.element.paused);},_onContentPlayhead:function()
{log("VideoPlayer","_onContentPlayhead");if(!this._mousedown){this.firePlayhead();}else{if(!this.element.paused){if(!this._playheadThrottling){this._playheadThrottling=true;this.firePlayhead();this._playheadTimer=window.setTimeout(this._triggerPlayheadBind,250);this.element.addEventListener('mouseup',this._triggerPlayheadBind);}}else{if(!this._waitForMouseUp){this._waitForMouseUp=true;this.element.addEventListener('mouseup',this._triggerPlayheadBind);}}}},_onContentEnd:function()
{log("VideoPlayer","_onContentEnd");this.fireEnded();},_onContentError:function()
{log("VideoPlayer","_onContentError");this.eContentError.dispatch(this._catalogEntry.getId());},_onContentBuffering:function()
{log("VideoPlayer","_onContentBuffering");if(!this._rendered){return;}
this.eContentBuffering.dispatch(this._catalogEntry.getId(),true);},_onContentVolume:function()
{log("VideoPlayer","_onContentVolume");this.eContentVolume.dispatch(this.element.muted,this.element.volume);},addPlayerListeners:function(){if(this.element&&!this._addedListeners)
{log("VideoPlayer","addPlayerListeners");this.element.addEventListener("loadedmetadata",this._onLoadedMetaDataBind,false);this.element.addEventListener("loadeddata",this._onContentBeginBind,false);this.element.addEventListener("play",this._onContentPlayBind,false);this.element.addEventListener("ended",this._onContentEndBind,false);this.element.addEventListener("readystatechange",this._onReadyStateChange,false);this.element.addEventListener("playing",this._onContentPlaying,false);this.element.addEventListener("pause",this._onContentPauseBind,false);this.element.addEventListener("timeupdate",this._onContentPlayheadBind,false);this.element.addEventListener("error",this._onContentError,false);this.element.addEventListener("waiting",this._onContentBufferingBind,false);this.element.addEventListener("volumechange",this._onContentVolumeBind,false);this._addedListeners=true;}},removePlayerListeners:function(){if(this.element&&this._addedListeners)
{log("VideoPlayer","removePlayerListeners");this.element.removeEventListener("loadedmetadata",this._onLoadedMetaDataBind,false);this.element.removeEventListener("play",this._onContentPlayBind,false);this.element.removeEventListener("ended",this._onContentEndBind,false);this.element.removeEventListener("readystatechange",this._onReadyStateChange,false);this.element.removeEventListener("playing",this._onContentPlaying,false);this.element.removeEventListener("pause",this._onContentPauseBind,false);this.element.removeEventListener("timeupdate",this._onContentPlayheadBind,false);this.element.removeEventListener("error",this._onContentError,false);this.element.removeEventListener("waiting",this._onContentBufferingBind,false);this.element.removeEventListener("volumechange",this._onContentVolumeBind,false);this._addedListeners=false;}},_getFileUrl:function(catalogEntry)
{var url=this._getFileByParameterFallback(catalogEntry);if(url===null)
url=this._getFileByFallback(catalogEntry);if(url===null){url=catalogEntry.getContentUrl(_configInfo.lowBitrate);if(!this._isFileSupported(url))
{log("VideoPlayer","File is not supported!",url);log("VideoPlayer","Attempting to find a compatible file");url=this._getFileBySupportedType(catalogEntry);if(empty(url))
url=this._getFileByConfigFallbackParam(catalogEntry);log("VideoPlayer","Found:",url);}}else{log("VideoPlayer","Fallback file found",url);}
if(!url)
log("VideoPlayer","No valid media file found!",catalogEntry.getId());return url;},_getFileByParameterFallback:function(catalogEntry){var foundit=-1,i=0,endi=this.perVideoFallbacks.length,dvf,criteria;for(;i<endi;++i){dvf=this.perVideoFallbacks[i];criteria=ConfigUtils.stringReplace(dvf.criteria,catalogEntry,false);if(dvf.evaluate(criteria)){return ConfigUtils.stringReplace(dvf.filter,catalogEntry,false);}}
return null;},_getFileByConfigFallbackParam:function(catalogEntry){var str=_configInfo.fallbackFilenameIOS;if(empty(str))
return str;else
str=ConfigUtils.stringReplace(str,catalogEntry,false);return str;},_getFileByFallback:function(catalogEntry){if(CVP.Browser.apple_mobile){return catalogEntry.getContentUrlFromFallback("iOS");}},_getFileBySupportedType:function(catalogEntry)
{var url=null,i=0,len=this._supportedFileTypes.length;for(;i<len;++i)
{url=catalogEntry.getContentUrlFromType(this._supportedFileTypes[i]);}
return url;},_isFileSupported:function(url)
{if(!empty(url))
{var ext=url.indexOf(".")>-1?url.substring(url.lastIndexOf(".")+1):url,i=0,len=this._supportedFileTypes.length;for(;i<len;++i)
{if(ext===this._supportedFileTypes[i])
{return true;}}}
return false;},_determineSupportedFileTypes:function()
{if(CVP.Browser.apple_mobile)
{return["m3u8","mp4"];}
else
{return["mp4"];}}});var PlayerController=Class.extend({init:function()
{this._commandQ=new CommandQueue();this._videoPlayer=new VideoPlayer({containerElement:"player_container",elementId:"videoPlayer",width:_params.width,height:_params.height,controls:true,autostart:_params.autostart});this._videoPlayer.eRendered.addListener(this._onRendered,this);this._videoPlayer.eContentMetadata.addListener(this._onContentMetadata,this);this._videoPlayer.eContentBegin.addListener(this._onContentBegin,this);this._videoPlayer.eContentPlay.addListener(this._onContentPlay,this);this._videoPlayer.eContentPause.addListener(this._onContentPause,this);this._videoPlayer.eContentEnd.addListener(this._onContentEnd,this);this._videoPlayer.eContentComplete.addListener(this._onContentComplete,this);this._videoPlayer.eContentPlayhead.addListener(this._onContentPlayhead,this);this._videoPlayer.eContentBuffering.addListener(this._onContentBuffering,this);this._videoPlayer.eContentVolume.addListener(this._onContentVolume,this);this._videoPlayer.eContentError.addListener(this._onContentError,this);this._adProxy=new AdServerProxy();this._adProxy.eAdPlay.addListener(this._onAdPlay,this);this._adProxy.eAdEnd.addListener(this._onAdEnd,this);this._adProxy.eAdError.addListener(this._onAdError,this);this._contentQueue=[];this.eRendered=new Event();this.eContentMetadata=new Event();this.eContentBegin=new Event();this.eContentPlay=new Event();this.eContentPause=new Event();this.eContentEnd=new Event();this.eContentComplete=new Event();this.eContentPlayhead=new Event();this.eContentBuffering=new Event();this.eContentVolume=new Event();this.eContentError=new Event();this.eAdPlay=new Event();this.eAdEnd=new Event();this.eAdError=new Event();},render:function(containerElement)
{this._adProxy.setVideoDisplayBase(containerElement);this._videoPlayer.render(containerElement);},remove:function()
{this._videoPlayer.remove();},_onRendered:function(type)
{log("_onRendered",type);this._commandQ.execute();this.eRendered.dispatch();},play:function(catalogEntry){log("PlayerController","play",catalogEntry.getId());this._catalogEntry=catalogEntry;if(!this._videoPlayer.rendered())
{this._commandQ.push(this.play,this,arguments);return;}
this._onContentBegin(this._catalogEntry.getId());if(this._adProxy.enabled)
this._adProxy.loadAds(catalogEntry);else
this._playContent();},_playContent:function()
{log("PlayerController","_playContent");this._videoPlayer.play(this._catalogEntry);},queue:function(catalogEntry)
{log("PlayerController","queue",catalogEntry.getId());this._contentQueue.push(catalogEntry);},emptyQueue:function()
{this._contentQueue=[];},pause:function()
{this._videoPlayer.pause();},resume:function()
{this._videoPlayer.resume();},setVolume:function(v)
{this._videoPlayer.setVolume(v);},getVolume:function()
{return this._videoPlayer.getVolume();},mute:function()
{this._videoPlayer.mute();},unmute:function()
{this._videoPlayer.unmute();},setAdSection:function(ssid)
{this._adProxy.setAdSection(ssid);},_onContentMetadata:function()
{log("PlayerController","_onContentMetadata");this.eContentMetadata.dispatch.apply(this.eContentMetadata,arguments);},_onContentBegin:function()
{log("PlayerController","_onContentBegin");this.eContentBegin.dispatch.apply(this.eContentBegin,arguments);},_onContentPlay:function()
{log("PlayerController","_onContentPlay");this.eContentPlay.dispatch.apply(this.eContentPlay,arguments);},_onContentPause:function()
{log("PlayerController","_onContentPause");this.eContentPause.dispatch.apply(this.eContentPause,arguments);},_onContentEnd:function()
{log("PlayerController","_onContentEnd");this.eContentEnd.dispatch.apply(this.eContentEnd,arguments);if(this._adProxy.enabled)
this._adProxy.playPostroll();else
this._onContentComplete.dispatch.apply(this._onContentComplete,arguments);},_onContentComplete:function()
{log("PlayerController","_onContentComplete");this.eContentComplete.dispatch.call(this.eContentComplete,this._catalogEntry.getId());if(this._contentQueue.length)
this.play(this._contentQueue.shift());},_onContentPlayhead:function()
{log("PlayerController","_onContentPlayhead");this.eContentPlayhead.dispatch.apply(this.eContentPlayhead,arguments);},_onContentBuffering:function()
{log("PlayerController","_onContentBuffering");this.eContentBuffering.dispatch.apply(this.eContentBuffering,arguments);},_onContentVolume:function()
{log("PlayerController","_onContentVolume");this.eContentVolume.dispatch.apply(this.eContentVolume,arguments);},_onContentError:function()
{log("PlayerController","_onContentError");this.eContentError.dispatch.apply(this.eContentError,arguments);},_onAdPlay:function(e)
{log("PlayerController","_onAdPlay");this.eAdPlay.dispatch();this._videoPlayer.removePlayerListeners();},_onAdEnd:function(e)
{timePositionClass=e&&e.timePositionClass?e.timePositionClass:null;log("PlayerController","_onAdEnd",timePositionClass);this.eAdEnd.dispatch();this._videoPlayer.addPlayerListeners();if(timePositionClass===AdServerProxy.PREROLL||this._adProxy.currentAdType===AdServerProxy.PREROLL)
this._playContent();else
this._onContentComplete();},_onAdError:function(e)
{this.eAdError.dispatch();}});var AdServerProxy=Class.extend({init:function()
{this._adServerInfo=_trackingPolicy.ads;this._freewheel=null;if(!undef(window.tv)&&window.tv.freewheel)
{if(!AdServerProxy.initialized)
{AdServerProxy.PREROLL=tv.freewheel.SDK.TIME_POSITION_CLASS_PREROLL;AdServerProxy.POSTROLL=tv.freewheel.SDK.TIME_POSITION_CLASS_POSTROLL;AdServerProxy.initialized=true;}}
else
{this.enabled=false;}
this.currentAdType=null;this._adSection=this.getConfigProperty("ad_section");this.eAdPlay=new Event();this.eAdEnd=new Event();this.eAdError=new Event();},setAdSection:function(adSection)
{this._adSection=adSection;},setVideoDisplayBase:function(videoDisplayBase)
{if(!undef(window.tv)&&!undef(window.tv.freewheel))
{this.displayBase=videoDisplayBase;this.enabled=true;}},loadAds:function(catalogEntry)
{this._freewheel=new tv.freewheel.SDK.AdManager();var serverUrl=this.getConfigProperty("ad_server_root_url")+"/ad/g/1?nw="+this.getConfigProperty("ad_network_id")
+"&prof="+this.getConfigProperty("ad_network_id")+":turner_html5"
+"&flag=+sltp+exvt+slcb+unka+unks;";this._freewheel.setServerURL(serverUrl);this._freewheel.registerVideoDisplayBase(this.displayBase);var duration=catalogEntry.getTrt();var adId="";if(empty(this._adServerInfo.adVideoAssetId))
adId=catalogEntry.getId();else
adId=ConfigUtils.stringReplace(this._adServerInfo.adVideoAssetId,catalogEntry,false);this._freewheel.setVideoAsset(adId,duration);this._freewheel.setSiteSection(this._adSection);this._freewheel.submitRequest(bind(this.playPreroll,this),2000);},playPreroll:function(e)
{log("AdServerProxy","playPreroll");this.currentAdType=AdServerProxy.PREROLL;this._adPlay(AdServerProxy.PREROLL,bind(this.onPrerollCompleted,this),e);},onPrerollCompleted:function(e)
{log("AdServerProxy","onPrerollCompleted");this._adEnd(e);},playPostroll:function(e)
{log("AdServerProxy","playPostroll");this.currentAdType=AdServerProxy.POSTROLL;this._adPlay(AdServerProxy.POSTROLL,bind(this.onPostrollCompleted,this),e);},onPostrollCompleted:function(e)
{log("AdServerProxy","onPostrollCompleted");this._adEnd(e);},_adPlay:function(slot,cb,e)
{this.eAdPlay.dispatch(e);this._freewheel.playSlots(slot,cb);},_adEnd:function(e)
{this.eAdEnd.dispatch(e);this._freewheel.dispose();},onAdPlayHead:function(playhead,duration)
{},getConfigProperty:function(key)
{var value=null;var required=false;switch(key)
{case'ad_api':value=this._adServerInfo.apiUrl;required=true;break;case'ad_server_root_url':value=this._adServerInfo.adServerRootUrl;required=true;break;case'ad_network_id':value=this._adServerInfo.adNetworkId;required=true;break;case'ad_video_network_id':value=this._adServerInfo.adVideoNetworkId;required=true;break;case'ad_video_asset_id':value=this._adServerInfo.adVideoAssetId;required=true;break;case'ad_section':value=this._adServerInfo.adSection;required=true;break;case'ad_player_profile':value=this._adServerInfo.adPlayerProfile;required=true;break;case'renderers_url':value=this._adServerInfo.renderersUrl;required=false;break;case'sensitive_fallback_id':value=this._adServerInfo.sensitiveFallbackId;required=false;break;case'ad_live_content_duration':value=this._adServerInfo.liveDuration;required=false;break;}
if(empty(value))
{if(required)
log("the following required ad server config value is missing:",key);else
log("the following optional ad server config value is missing:",key);}
return value;}});AdServerProxy.PREROLL=null;AdServerProxy.POSTROLL=null;var MainController={ePlayerLoaded:new Event(),ePlayerLoadError:new Event(),ePlayerRendered:new Event(),eContentMetadata:new Event(),eContentBegin:new Event(),eContentPlay:new Event(),eContentPause:new Event(),eContentEnd:new Event(),eContentComplete:new Event(),eContentPlayhead:new Event(),eContentBuffering:new Event(),eContentVolume:new Event(),eContentError:new Event(),eAdPlay:new Event(),eAdEnd:new Event(),eAdError:new Event(),init:function(options)
{_params=this._options=options;_params.site=_params.flashVars&&_params.flashVars.site;_params.profile=_params.flashVars&&_params.flashVars.profile;_params.context=_params.flashVars&&_params.flashVars.context;_params.contentId=_params.flashVars&&_params.flashVars.contentId;_params.autoplay=_params.flashVars&&isFlagActive(_params.flashVars.autostart);_params.containerUrl=_params.flashVars&&_params.flashVars.containerUrl;_params.configUrl=_params.flashVars&&_params.flashVars.configUrl;_params.dt=_params.flashVars&&_params.flashVars.superduperdevtime;var mappingUrl=this._calculateMappingUrl(_params.site);if(empty(mappingUrl)){log("Unable to calculate mapping file url. Failing.");this._bootStrapFailure();return;}
this._bootStrapper=new DependencyMananger();this._bootStrapper.addDependency(new MappingDependency(mappingUrl),true);this._bootStrapper.eSuccess.addListener(this._bootStrapSuccess,this);this._bootStrapper.eFailure.addListener(this._bootStrapFailure,this);this._bootStrapper.load();},_calculateMappingUrl:function(site){if(empty(site))
return null;var url=Utils.replaceExtension(MAPPING_FILE,"xml","json");if(!_params.dt)
url=template(MAPPING_PATH,site)+url;return url;},_bootStrapSuccess:function()
{log("MainController","_bootStrapSuccess");this._playerController=new PlayerController();this._playerController.eRendered.addListener(this._onRendered,this);this._playerController.eContentMetadata.addListener(this._onContentMetadata,this);this._playerController.eContentBegin.addListener(this._onContentBegin,this);this._playerController.eContentPlay.addListener(this._onContentPlay,this);this._playerController.eContentPause.addListener(this._onContentPause,this);this._playerController.eContentEnd.addListener(this._onContentEnd,this);this._playerController.eContentComplete.addListener(this._onContentComplete,this);this._playerController.eContentPlayhead.addListener(this._onContentPlayhead,this);this._playerController.eContentBuffering.addListener(this._onContentBuffering,this);this._playerController.eContentVolume.addListener(this._onContentVolume,this);this._playerController.eContentError.addListener(this._onContentError,this);this._playerController.eAdPlay.addListener(this._onAdPlay,this);this._playerController.eAdEnd.addListener(this._onAdEnd,this);this._playerController.eAdError.addListener(this._onAdError,this);this._cms=new CMS();this._cms.setDataUrl(_configInfo.dataSrc);this._cms.eRequestCompleted.addListener(this._onCmsRequestCompleted,this);this._loadingEntryQueue={};this.ePlayerLoaded.dispatch();},_bootStrapFailure:function()
{log("MainController","_bootStrapFailure");this.ePlayerLoadError.dispatch();},render:function(containerElement)
{this._playerController.render(containerElement);},remove:function()
{this._playerController.remove();},_onRendered:function()
{if(!nil(_params.contentId))
{this.playContentWithId(_params.contentId);}
this.ePlayerRendered.dispatch();},playContentWithId:function(id,options)
{log("MainController","playContentWithId",id);var index=this._getNextIndexForId(id);var key=id+"|"+index;log("MainController","playContentWithId","key",key);this._loadingEntryQueue[key]={play:true,additionalParams:options};this._cms.addContentId(key,options);},queueContentWithId:function(id,options)
{log("MainController","queueContentWithId",id);var index=this._getNextIndexForId(id);var key=id+"|"+index;log("MainController","queueContentWithId","key",key);this._loadingEntryQueue[key]={play:false,additionalParams:options};this._cms.addContentId(key,options);},pause:function()
{this._playerController.pause();},resume:function()
{this._playerController.resume();},setVolume:function(v)
{this._playerController.setVolume(v);},getVolume:function()
{return this._playerController.getVolume();},mute:function()
{this._playerController.mute();},unmute:function()
{this._playerController.unmute();},getContentEntry:function(id)
{var catalogEntry=this._cms.getContentId(id);return CVP.Utils.JsonConverter.encodeXmlObject(catalogEntry.getXML());},setAdSection:function(ssid)
{this._playerController.setAdSection(ssid);},_onContentMetadata:function()
{this.eContentMetadata.dispatch.apply(this.eContentMetadata,arguments);},_onContentBegin:function()
{this.eContentBegin.dispatch.apply(this.eContentBegin,arguments);},_onContentPlay:function()
{this.eContentPlay.dispatch.apply(this.eContentPlay,arguments);},_onContentPause:function()
{this.eContentPause.dispatch.apply(this.eContentPause,arguments);},_onContentEnd:function()
{this.eContentEnd.dispatch.apply(this.eContentEnd,arguments);},_onContentComplete:function()
{this.eContentComplete.dispatch.apply(this.eContentComplete,arguments);},_onContentPlayhead:function()
{this.eContentPlayhead.dispatch.apply(this.eContentPlayhead,arguments);},_onContentBuffering:function()
{this.eContentBuffering.dispatch.apply(this.eContentBuffering,arguments);},_onContentVolume:function()
{this.eContentVolume.dispatch.apply(this.eContentVolume,arguments);},_onContentError:function()
{this.eContentError.dispatch.apply(this.eContentError,arguments);},_onAdPlay:function()
{this.eAdPlay.dispatch.apply(this.eAdPlay,arguments);},_onAdEnd:function()
{this.eAdEnd.dispatch.apply(this.eAdEnd,arguments);},_onAdError:function()
{this.eAdError.dispatch.apply(this.eAdError,arguments);},_onCmsRequestCompleted:function(contentId,requestId,index,errorMsg)
{log("_onCmsRequestCompleted",contentId,requestId,index,errorMsg);var key=requestId+"|"+index;var catalogEntry=this._cms.getContentId((contentId+"|"+index));if(this._loadingEntryQueue[key]!==null)
{log("onCmsRequestCompleted",contentId,this._loadingEntryQueue[key].play);if(this._loadingEntryQueue[key].play)
{this._playerController.emptyQueue();this._playerController.play(catalogEntry,this._loadingEntryQueue[key].additionalParams);}
else
{this._playerController.queue(catalogEntry,this._loadingEntryQueue[key].additionalParams);}
delete this._loadingEntryQueue[key];}},_getNextIndexForId:function(contentId)
{var index=0,p,q;for(p in this._loadingEntryQueue)
{q=p.split("|");if(q[0]===contentId&&q[1]>=index)
{index=q[1]+1;}}
return index;}};container.CVP.Players._HTML5Player=Class.extend({init:function(options)
{MainController.ePlayerLoaded.addListener(this._onPlayerLoaded,this);MainController.ePlayerLoadError.addListener(this._onPlayerLoadError,this);MainController.ePlayerRendered.addListener(this._onPlayerRendered,this);MainController.eContentMetadata.addListener(this._onContentMetadata,this);MainController.eContentBegin.addListener(this._onContentBegin,this);MainController.eContentPlay.addListener(this._onContentPlay,this);MainController.eContentPause.addListener(this._onContentPause,this);MainController.eContentEnd.addListener(this._onContentEnd,this);MainController.eContentComplete.addListener(this._onContentComplete,this);MainController.eContentPlayhead.addListener(this._onContentPlayhead,this);MainController.eContentBuffering.addListener(this._onContentBuffering,this);MainController.eContentVolume.addListener(this._onContentVolume,this);MainController.eContentError.addListener(this._onContentError,this);MainController.eAdPlay.addListener(this._onAdPlay,this);MainController.eAdEnd.addListener(this._onAdEnd,this);MainController.eAdError.addListener(this._onAdError,this);this.ePlayerLoaded=new Event();this.ePlayerLoadError=new Event();this.ePlayerReady=new Event();this.eContentMetadata=new Event();this.eContentBegin=new Event();this.eContentPlay=new Event();this.eContentPause=new Event();this.eContentEnd=new Event();this.eContentComplete=new Event();this.eContentPlayhead=new Event();this.eContentBuffering=new Event();this.eContentVolume=new Event();this.eContentError=new Event();this.eAdPlay=new Event();this.eAdEnd=new Event();this.eAdError=new Event();MainController.init(options);},render:function(containerElement)
{MainController.render(containerElement);},remove:function()
{MainController.remove();},getDefaultPlayer:function(){return _containerInfo.elementName;},play:function(id,options)
{MainController.playContentWithId(id,options);},queue:function(id,options)
{MainController.queueContentWithId(id,options);},pause:function()
{MainController.pause();},resume:function()
{MainController.resume();},setVolume:function(v)
{MainController.setVolume(v);},getVolume:function()
{return MainController.getVolume();},mute:function()
{MainController.mute();},unmute:function()
{MainController.unmute();},getContentEntry:function(id)
{return MainController.getContentEntry(id);},setAdSection:function(ssid)
{MainController.setAdSection(ssid);},_mungeArgs:function(argv)
{var args=slice(argv);args.unshift(this.getDefaultPlayer());return args;},_onPlayerLoaded:function()
{this.ePlayerLoaded.dispatch();},_onPlayerLoadError:function()
{this.ePlayerLoadError.dispatch();},_onPlayerRendered:function()
{this.ePlayerReady.dispatch.apply(this.ePlayerReady,this._mungeArgs(arguments));},_onContentMetadata:function()
{this.eContentMetadata.dispatch.apply(this.eContentMetadata,this._mungeArgs(arguments));},_onContentBegin:function()
{this.eContentBegin.dispatch.apply(this.eContentBegin,this._mungeArgs(arguments));},_onContentPlay:function()
{this.eContentPlay.dispatch.apply(this.eContentPlay,this._mungeArgs(arguments));},_onContentPause:function()
{this.eContentPause.dispatch.apply(this.eContentPause,this._mungeArgs(arguments));},_onContentEnd:function()
{this.eContentEnd.dispatch.apply(this.eContentEnd,this._mungeArgs(arguments));},_onContentComplete:function()
{this.eContentComplete.dispatch.apply(this.eContentComplete,this._mungeArgs(arguments));},_onContentPlayhead:function()
{this.eContentPlayhead.dispatch.apply(this.eContentPlayhead,this._mungeArgs(arguments));},_onContentBuffering:function()
{this.eContentBuffering.dispatch.apply(this.eContentBuffering,this._mungeArgs(arguments));},_onContentVolume:function()
{this.eContentVolume.dispatch.apply(this.eContentVolume,this._mungeArgs(arguments));},_onContentError:function()
{this.eContentError.dispatch.apply(this.eContentError,this._mungeArgs(arguments));},_onAdPlay:function()
{this.eAdPlay.dispatch.apply(this.eAdPlay,this._mungeArgs(arguments));},_onAdEnd:function()
{this.eAdEnd.dispatch.apply(this.eAdEnd,this._mungeArgs(arguments));},_onAdError:function()
{this.eAdError.dispatch.apply(this.eAdError,this._mungeArgs(arguments));}});var _mapping={};var _appConfig={};var _params={};var _containerInfo={};var _configInfo={omniture:{},share:{},embed:{}};var _trackingPolicy={ads:{attr:{type:"NONE"}}};}(window));
