STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228125
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/27893536?noj=FRM27893536-12DC" width="1" height="1"></div>

ova2013.swf

This is the info page for
Flash #152782

(Click the ID number above for more basic data on this flash file.)


ActionScript [AS3]
Section 1
//CampaignKey (com.google.analytics.campaign.CampaignKey) package com.google.analytics.campaign { public class CampaignKey { public var UCCN:String;// = "utm_campaign" public var UCCT:String;// = "utm_content" public var UCID:String;// = "utm_id" public var UCMD:String;// = "utm_medium" public var UCNO:String;// = "utm_nooverride" public var UCSR:String;// = "utm_source" public var UCTR:String;// = "utm_term" public var UGCLID:String;// = "gclid" } }//package com.google.analytics.campaign
Section 2
//BrowserInfo (com.google.analytics.core.BrowserInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.utils.*; import core.*; public class BrowserInfo { private var _config:Configuration; private var _info:Environment; public function BrowserInfo(_arg1:Configuration, _arg2:Environment){ this._config = _arg1; this._info = _arg2; } public function get utmcs():String{ return (this._info.languageEncoding); } public function get utmsr():String{ return (((this._info.screenWidth + "x") + this._info.screenHeight)); } public function get utmsc():String{ return ((this._info.screenColorDepth + "-bit")); } public function get utmul():String{ return (this._info.language.toLowerCase()); } public function get utmje():String{ return ("0"); } public function get utmfl():String{ var _local1:version; if (this._config.detectFlash){ _local1 = this._info.flashVersion; return (((((_local1.major + ".") + _local1.minor) + " r") + _local1.build)); }; return ("-"); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.utmcs = this.utmcs; _local1.utmsr = this.utmsr; _local1.utmsc = this.utmsc; _local1.utmul = this.utmul; _local1.utmje = this.utmje; _local1.utmfl = this.utmfl; return (_local1); } public function toURLString():String{ var _local1:Variables = this.toVariables(); return (_local1.toString()); } } }//package com.google.analytics.core
Section 3
//Buffer (com.google.analytics.core.Buffer) package com.google.analytics.core { import flash.events.*; import flash.net.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.data.*; public dynamic class Buffer { private var _config:Configuration; private var _debug:DebugConfiguration; private var _SO:SharedObject; private var _OBJ:Object; private var _data:Object; private var _volatile:Boolean; private var _utma:UTMA; private var _utmb:UTMB; private var _utmc:UTMC; private var _utmk:UTMK; private var _utmx:UTMX; private var _utmv:UTMV; private var _utmz:UTMZ; public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){ var _local5:String; super(); this._config = _arg1; this._debug = _arg2; this._data = _arg4; this._volatile = _arg3; if (this._volatile){ this._OBJ = new Object(); if (this._data){ for (_local5 in this._data) { this._OBJ[_local5] = this._data[_local5]; }; }; }; } private function _onFlushStatus(_arg1:NetStatusEvent):void{ this._debug.info("User closed permission dialog..."); switch (_arg1.info.code){ case "SharedObject.Flush.Success": this._debug.info("User granted permission -- value saved."); break; case "SharedObject.Flush.Failed": this._debug.info("User denied permission -- value not saved."); break; }; this._SO.removeEventListener(NetStatusEvent.NET_STATUS, this._onFlushStatus); } private function _clearUTMA():void{ this._utma = null; if (!this.isVolatile()){ if (this._SO != null){ this._SO.data.utma = null; delete this._SO.data.utma; }; }; } private function _clearUTMB():void{ this._utmb = null; if (!this.isVolatile()){ if (this._SO != null){ this._SO.data.utmb = null; delete this._SO.data.utmb; }; }; } private function _clearUTMC():void{ this._utmc = null; } private function _clearUTMV():void{ this._utmv = null; if (!this.isVolatile()){ if (this._SO != null){ this._SO.data.utmv = null; delete this._SO.data.utmv; }; }; } private function _clearUTMZ():void{ this._utmz = null; if (!this.isVolatile()){ if (this._SO != null){ this._SO.data.utmz = null; delete this._SO.data.utmz; }; }; } private function _createUMTA():void{ this._utma = new UTMA(); this._utma.proxy = this; } private function _createUMTB():void{ this._utmb = new UTMB(); this._utmb.proxy = this; } private function _createUMTC():void{ this._utmc = new UTMC(); } private function _createUMTK():void{ this._utmk = new UTMK(); this._utmk.proxy = this; } private function _createUMTX():void{ this._utmx = new UTMX(); this._utmx.proxy = this; } private function _createUMTV():void{ this._utmv = new UTMV(); this._utmv.proxy = this; } private function _createUMTZ():void{ this._utmz = new UTMZ(); this._utmz.proxy = this; } public function createSO():void{ var saveSO:Boolean; UTMZ.defaultTimespan = this._config.conversionTimeout; UTMB.defaultTimespan = this._config.sessionTimeout; if (!this._volatile){ try { this._SO = SharedObject.getLocal(this._config.cookieName, this._config.cookiePath); } catch(e:Error) { if (_debug.active){ _debug.warning(((("Shared Object " + _config.cookieName) + " failed to be set\nreason: ") + e.message)); }; }; saveSO = false; if (this._SO.data.utma){ if (!this.hasUTMA()){ this._createUMTA(); }; this._utma.fromSharedObject(this._SO.data.utma); if (this._debug.verbose){ this._debug.info(("found: " + this._utma.toString(true)), VisualDebugMode.geek); }; if (this._utma.isExpired()){ if (this._debug.verbose){ this._debug.warning("UTMA has expired", VisualDebugMode.advanced); }; this._clearUTMA(); saveSO = true; }; }; if (this._SO.data.utmb){ if (!this.hasUTMB()){ this._createUMTB(); }; this._utmb.fromSharedObject(this._SO.data.utmb); if (this._debug.verbose){ this._debug.info(("found: " + this._utmb.toString(true)), VisualDebugMode.geek); }; if (this._utmb.isExpired()){ if (this._debug.verbose){ this._debug.warning("UTMB has expired", VisualDebugMode.advanced); }; this._clearUTMB(); saveSO = true; }; }; if (this._SO.data.utmc){ delete this._SO.data.utmc; saveSO = true; }; if (this._SO.data.utmk){ if (!this.hasUTMK()){ this._createUMTK(); }; this._utmk.fromSharedObject(this._SO.data.utmk); if (this._debug.verbose){ this._debug.info(("found: " + this._utmk.toString()), VisualDebugMode.geek); }; }; if (!this.hasUTMX()){ this._createUMTX(); }; if (this._SO.data.utmv){ if (!this.hasUTMV()){ this._createUMTV(); }; this._utmv.fromSharedObject(this._SO.data.utmv); if (this._debug.verbose){ this._debug.info(("found: " + this._utmv.toString(true)), VisualDebugMode.geek); }; if (this._utmv.isExpired()){ if (this._debug.verbose){ this._debug.warning("UTMV has expired", VisualDebugMode.advanced); }; this._clearUTMV(); saveSO = true; }; }; if (this._SO.data.utmz){ if (!this.hasUTMZ()){ this._createUMTZ(); }; this._utmz.fromSharedObject(this._SO.data.utmz); if (this._debug.verbose){ this._debug.info(("found: " + this._utmz.toString(true)), VisualDebugMode.geek); }; if (this._utmz.isExpired()){ if (this._debug.verbose){ this._debug.warning("UTMZ has expired", VisualDebugMode.advanced); }; this._clearUTMZ(); saveSO = true; }; }; if (saveSO){ this.save(); }; }; } public function get utma():UTMA{ if (!this.hasUTMA()){ this._createUMTA(); }; return (this._utma); } public function get utmb():UTMB{ if (!this.hasUTMB()){ this._createUMTB(); }; return (this._utmb); } public function get utmc():UTMC{ if (!this.hasUTMC()){ this._createUMTC(); }; return (this._utmc); } public function get utmk():UTMK{ if (!this.hasUTMK()){ this._createUMTK(); }; return (this._utmk); } public function get utmx():UTMX{ if (!this.hasUTMX()){ this._createUMTX(); }; return (this._utmx); } public function get utmv():UTMV{ if (!this.hasUTMV()){ this._createUMTV(); }; return (this._utmv); } public function get utmz():UTMZ{ if (!this.hasUTMZ()){ this._createUMTZ(); }; return (this._utmz); } public function hasUTMA():Boolean{ if (this._utma){ return (true); }; return (false); } public function hasUTMB():Boolean{ if (this._utmb){ return (true); }; return (false); } public function hasUTMC():Boolean{ if (this._utmc){ return (true); }; return (false); } public function hasUTMK():Boolean{ if (this._utmk){ return (true); }; return (false); } public function hasUTMV():Boolean{ if (this._utmv){ return (true); }; return (false); } public function hasUTMX():Boolean{ if (this._utmx){ return (true); }; return (false); } public function hasUTMZ():Boolean{ if (this._utmz){ return (true); }; return (false); } public function update(_arg1:String, _arg2):void{ if (this.isVolatile()){ this._OBJ[_arg1] = _arg2; } else { this._SO.data[_arg1] = _arg2; }; } public function clearCookies():void{ this.utma.reset(); this.utmb.reset(); this.utmc.reset(); this.utmz.reset(); this.utmv.reset(); this.utmk.reset(); } public function generateCookiesHash():Number{ var _local1 = ""; _local1 = (_local1 + this.utma.valueOf()); _local1 = (_local1 + this.utmb.valueOf()); _local1 = (_local1 + this.utmc.valueOf()); _local1 = (_local1 + this.utmx.valueOf()); _local1 = (_local1 + this.utmz.valueOf()); _local1 = (_local1 + this.utmv.valueOf()); return (generateHash(_local1)); } public function toLinkerParams():String{ var _local1 = ""; _local1 = (_local1 + this.utma.toURLString()); _local1 = (_local1 + ("&" + this.utmb.toURLString())); _local1 = (_local1 + ("&" + this.utmc.toURLString())); _local1 = (_local1 + ("&" + this.utmx.toURLString())); _local1 = (_local1 + ("&" + this.utmz.toURLString())); _local1 = (_local1 + ("&" + this.utmv.toURLString())); _local1 = (_local1 + ("&__utmk=" + this.generateCookiesHash())); return (_local1); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ var _local3:String = this.toLinkerParams(); var _local4:String = _arg1; var _local5:Array = _arg1.split("#"); if (_local3){ if (_arg2){ if (1 >= _local5.length){ _local4 = (_local4 + ("#" + _local3)); } else { _local4 = (_local4 + ("&" + _local3)); }; } else { if (1 >= _local5.length){ if (_arg1.indexOf("?") > -1){ _local4 = (_local4 + "&"); } else { _local4 = (_local4 + "?"); }; _local4 = (_local4 + _local3); } else { _local4 = _local5[0]; if (_arg1.indexOf("?") > -1){ _local4 = (_local4 + "&"); } else { _local4 = (_local4 + "?"); }; _local4 = (_local4 + ((_local3 + "#") + _local5[1])); }; }; }; return (_local4); } public function isVolatile():Boolean{ return (this._volatile); } public function isGenuine():Boolean{ if (!this.hasUTMK()){ return (true); }; return ((this.utmk.hash == this.generateCookiesHash())); } public function updateUTMA(_arg1:Number):void{ if (this._debug.verbose){ this._debug.info((("updateUTMA( " + _arg1) + " )"), VisualDebugMode.advanced); }; if (!this.utma.isEmpty()){ if (isNaN(this.utma.sessionCount)){ this.utma.sessionCount = 1; } else { this.utma.sessionCount = (this.utma.sessionCount + 1); }; this.utma.lastTime = this.utma.currentTime; this.utma.currentTime = _arg1; }; } public function resetCurrentSession():void{ this._clearUTMB(); this._clearUTMC(); this.save(); } public function save():void{ var flushStatus:String; if (!this.isVolatile()){ flushStatus = null; try { flushStatus = this._SO.flush(); } catch(e:Error) { _debug.warning("Error...Could not write SharedObject to disk"); }; switch (flushStatus){ case SharedObjectFlushStatus.PENDING: this._debug.info("Requesting permission to save object..."); this._SO.addEventListener(NetStatusEvent.NET_STATUS, this._onFlushStatus); break; case SharedObjectFlushStatus.FLUSHED: this._debug.info("Value flushed to disk."); break; }; }; } } }//package com.google.analytics.core
Section 4
//DocumentInfo (com.google.analytics.core.DocumentInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.utils.*; import com.google.analytics.external.*; public class DocumentInfo { private var _config:Configuration; private var _info:Environment; private var _adSense:AdSenseGlobals; private var _pageURL:String; private var _utmr:String; public function DocumentInfo(_arg1:Configuration, _arg2:Environment, _arg3:String, _arg4:String=null, _arg5:AdSenseGlobals=null){ this._config = _arg1; this._info = _arg2; this._utmr = _arg3; this._pageURL = _arg4; this._adSense = _arg5; } private function _generateHitId():Number{ var _local1:Number; if (((this._adSense.hid) && (!((this._adSense.hid == ""))))){ _local1 = Number(this._adSense.hid); } else { _local1 = Math.round((Math.random() * 2147483647)); this._adSense.hid = String(_local1); }; return (_local1); } private function _renderPageURL(_arg1:String=""):String{ var _local2:String = this._info.locationPath; var _local3:String = this._info.locationSearch; if (((!(_arg1)) || ((_arg1 == "")))){ _arg1 = (_local2 + unescape(_local3)); if (_arg1 == ""){ _arg1 = "/"; }; }; return (_arg1); } public function get utmdt():String{ return (this._info.documentTitle); } public function get utmhid():String{ return (String(this._generateHitId())); } public function get utmr():String{ if (!this._utmr){ return ("-"); }; return (this._utmr); } public function get utmp():String{ return (this._renderPageURL(this._pageURL)); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (((this._config.detectTitle) && (!((this.utmdt == ""))))){ _local1.utmdt = this.utmdt; }; _local1.utmhid = this.utmhid; _local1.utmr = this.utmr; _local1.utmp = this.utmp; return (_local1); } public function toURLString():String{ var _local1:Variables = this.toVariables(); return (_local1.toString()); } } }//package com.google.analytics.core
Section 5
//Domain (com.google.analytics.core.Domain) package com.google.analytics.core { import com.google.analytics.debug.*; public class Domain { private var _mode:DomainNameMode; private var _name:String; private var _debug:DebugConfiguration; public function Domain(_arg1:DomainNameMode=null, _arg2:String="", _arg3:DebugConfiguration=null){ this._debug = _arg3; if (_arg1 == null){ _arg1 = DomainNameMode.auto; }; this._mode = _arg1; if (_arg1 == DomainNameMode.custom){ this.name = _arg2; } else { this._name = _arg2; }; } public function get mode():DomainNameMode{ return (this._mode); } public function set mode(_arg1:DomainNameMode):void{ this._mode = _arg1; if (this._mode == DomainNameMode.none){ this._name = ""; }; } public function get name():String{ return (this._name); } public function set name(_arg1:String):void{ if (((!((_arg1.charAt(0) == "."))) && (this._debug))){ this._debug.warning(("missing leading period \".\", cookie will only be accessible on " + _arg1), VisualDebugMode.geek); }; this._name = _arg1; } } }//package com.google.analytics.core
Section 6
//DomainNameMode (com.google.analytics.core.DomainNameMode) package com.google.analytics.core { public class DomainNameMode { private var _value:int; private var _name:String; public static const none:DomainNameMode = new DomainNameMode(0, "none"); ; public static const auto:DomainNameMode = new DomainNameMode(1, "auto"); ; public static const custom:DomainNameMode = new DomainNameMode(2, "custom"); ; public function DomainNameMode(_arg1:int=0, _arg2:String=""){ this._value = _arg1; this._name = _arg2; } public function valueOf():int{ return (this._value); } public function toString():String{ return (this._name); } } }//package com.google.analytics.core
Section 7
//EventInfo (com.google.analytics.core.EventInfo) package com.google.analytics.core { import com.google.analytics.utils.*; import com.google.analytics.data.*; public class EventInfo { private var _isEventHit:Boolean; private var _x10:X10; private var _ext10:X10; public function EventInfo(_arg1:Boolean, _arg2:X10, _arg3:X10=null){ this._isEventHit = _arg1; this._x10 = _arg2; this._ext10 = _arg3; } public function get utmt():String{ return ("event"); } public function get utme():String{ return (this._x10.renderMergedUrlString(this._ext10)); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (this._isEventHit){ _local1.utmt = this.utmt; }; _local1.utme = this.utme; return (_local1); } public function toURLString():String{ var _local1:Variables = this.toVariables(); return (_local1.toString()); } } }//package com.google.analytics.core
Section 8
//EventTracker (com.google.analytics.core.EventTracker) package com.google.analytics.core { import com.google.analytics.v4.*; public class EventTracker { private var _parent:GoogleAnalyticsAPI; public var name:String; public function EventTracker(_arg1:String, _arg2:GoogleAnalyticsAPI){ this.name = _arg1; this._parent = _arg2; } public function trackEvent(_arg1:String, _arg2:String=null, _arg3:Number=NaN):Boolean{ return (this._parent.trackEvent(this.name, _arg1, _arg2, _arg3)); } } }//package com.google.analytics.core
Section 9
//ga_internal (com.google.analytics.core.ga_internal) package com.google.analytics.core { public namespace ga_internal; }//package com.google.analytics.core
Section 10
//generate32bitRandom (com.google.analytics.core.generate32bitRandom) package com.google.analytics.core { public function generate32bitRandom():int{ return (Math.round((Math.random() * 2147483647))); } }//package com.google.analytics.core
Section 11
//generateHash (com.google.analytics.core.generateHash) package com.google.analytics.core { public function generateHash(_arg1:String):int{ var _local4:int; var _local5:int; var _local2 = 1; var _local3:int; if (((!((_arg1 == null))) && (!((_arg1 == ""))))){ _local2 = 0; _local4 = (_arg1.length - 1); while (_local4 >= 0) { _local5 = _arg1.charCodeAt(_local4); _local2 = ((((_local2 << 6) & 268435455) + _local5) + (_local5 << 14)); _local3 = (_local2 & 266338304); if (_local3 != 0){ _local2 = (_local2 ^ (_local3 >> 21)); }; _local4--; }; }; return (_local2); } }//package com.google.analytics.core
Section 12
//GIFRequest (com.google.analytics.core.GIFRequest) package com.google.analytics.core { import flash.display.*; import flash.events.*; import flash.net.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import flash.system.*; public class GIFRequest { private var _config:Configuration; private var _debug:DebugConfiguration; private var _buffer:Buffer; private var _info:Environment; private var _utmac:String; private var _lastRequest:URLRequest; private var _count:int; private var _alertcount:int; private var _requests:Array; private static const MAX_REQUEST_LENGTH:Number = 0x0800; public function GIFRequest(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Environment){ this._config = _arg1; this._debug = _arg2; this._buffer = _arg3; this._info = _arg4; this._count = 0; this._alertcount = 0; this._requests = []; } public function get utmac():String{ return (this._utmac); } public function get utmwv():String{ return (this._config.version); } public function get utmn():String{ return ((generate32bitRandom() as String)); } public function get utmhn():String{ return (this._info.domainName); } public function get utmsp():String{ return (((this._config.sampleRate * 100) as String)); } public function get utmcc():String{ var _local1:Array = []; if (this._buffer.hasUTMA()){ _local1.push((this._buffer.utma.toURLString() + ";")); }; if (this._buffer.hasUTMZ()){ _local1.push((this._buffer.utmz.toURLString() + ";")); }; if (this._buffer.hasUTMV()){ _local1.push((this._buffer.utmv.toURLString() + ";")); }; return (_local1.join("+")); } public function updateToken():void{ var _local2:Number; var _local1:Number = new Date().getTime(); _local2 = ((_local1 - this._buffer.utmb.lastTime) * (this._config.tokenRate / 1000)); if (this._debug.verbose){ this._debug.info(("tokenDelta: " + _local2), VisualDebugMode.geek); }; if (_local2 >= 1){ this._buffer.utmb.token = Math.min(Math.floor((this._buffer.utmb.token + _local2)), this._config.bucketCapacity); this._buffer.utmb.lastTime = _local1; if (this._debug.verbose){ this._debug.info(this._buffer.utmb.toString(), VisualDebugMode.geek); }; }; } private function _debugSend(_arg1:URLRequest):void{ var _local3:String; var _local2 = ""; switch (this._debug.mode){ case VisualDebugMode.geek: _local2 = ((("Gif Request #" + this._alertcount) + ":\n") + _arg1.url); break; case VisualDebugMode.advanced: _local3 = _arg1.url; if (_local3.indexOf("?") > -1){ _local3 = _local3.split("?")[0]; }; _local3 = this._shortenURL(_local3); _local2 = (((("Send Gif Request #" + this._alertcount) + ":\n") + _local3) + " ?"); break; case VisualDebugMode.basic: default: _local2 = (((("Send " + this._config.serverMode.toString()) + " Gif Request #") + this._alertcount) + " ?"); }; this._debug.alertGifRequest(_local2, _arg1, this); this._alertcount++; } private function _shortenURL(_arg1:String):String{ var _local2:Array; if (_arg1.length > 60){ _local2 = _arg1.split("/"); while (_arg1.length > 60) { _local2.shift(); _arg1 = ("../" + _local2.join("/")); }; }; return (_arg1); } public function onSecurityError(_arg1:SecurityErrorEvent):void{ if (this._debug.GIFRequests){ this._debug.failure(_arg1.text); }; } public function onIOError(_arg1:IOErrorEvent):void{ var _local2:String = this._lastRequest.url; var _local3:String = String((this._requests.length - 1)); var _local4 = (("Gif Request #" + _local3) + " failed"); if (this._debug.GIFRequests){ if (!this._debug.verbose){ if (_local2.indexOf("?") > -1){ _local2 = _local2.split("?")[0]; }; _local2 = this._shortenURL(_local2); }; if (int(this._debug.mode) > int(VisualDebugMode.basic)){ _local4 = (_local4 + ((" \"" + _local2) + "\" does not exists or is unreachable")); }; this._debug.failure(_local4); } else { this._debug.warning(_local4); }; this._removeListeners(_arg1.target); } public function onComplete(_arg1:Event):void{ var _local2:String = _arg1.target.loader.name; this._requests[_local2].complete(); var _local3 = (("Gif Request #" + _local2) + " sent"); var _local4:String = this._requests[_local2].request.url; if (this._debug.GIFRequests){ if (!this._debug.verbose){ if (_local4.indexOf("?") > -1){ _local4 = _local4.split("?")[0]; }; _local4 = this._shortenURL(_local4); }; if (int(this._debug.mode) > int(VisualDebugMode.basic)){ _local3 = (_local3 + ((" to \"" + _local4) + "\"")); }; this._debug.success(_local3); } else { this._debug.info(_local3); }; this._removeListeners(_arg1.target); } private function _removeListeners(_arg1:Object):void{ _arg1.removeEventListener(IOErrorEvent.IO_ERROR, this.onIOError); _arg1.removeEventListener(Event.COMPLETE, this.onComplete); } public function sendRequest(_arg1:URLRequest):void{ var request = _arg1; if (request.url.length > MAX_REQUEST_LENGTH){ this._debug.failure("No request sent. URI length too long."); return; }; var loader:Loader = new Loader(); loader.name = String(this._count++); var context:LoaderContext = new LoaderContext(false); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, this.onIOError); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.onComplete); this._lastRequest = request; this._requests[loader.name] = new RequestObject(request); try { loader.load(request, context); } catch(e:Error) { _debug.failure("\"Loader.load()\" could not instanciate Gif Request"); }; } public function send(_arg1:String, _arg2:Variables=null, _arg3:Boolean=false, _arg4:Boolean=false):void{ var _local5:String; var _local6:URLRequest; var _local7:URLRequest; this._utmac = _arg1; if (!_arg2){ _arg2 = new Variables(); }; _arg2.URIencode = false; _arg2.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"]; _arg2.post = ["utmcc"]; if (this._debug.verbose){ this._debug.info(((("tracking: " + this._buffer.utmb.trackCount) + "/") + this._config.trackingLimitPerSession), VisualDebugMode.geek); }; if ((((this._buffer.utmb.trackCount < this._config.trackingLimitPerSession)) || (_arg3))){ if (_arg4){ this.updateToken(); }; if (((((_arg3) || (!(_arg4)))) || ((this._buffer.utmb.token >= 1)))){ if (((!(_arg3)) && (_arg4))){ this._buffer.utmb.token = (this._buffer.utmb.token - 1); }; this._buffer.utmb.trackCount = (this._buffer.utmb.trackCount + 1); if (this._debug.verbose){ this._debug.info(this._buffer.utmb.toString(), VisualDebugMode.geek); }; _arg2.utmwv = this.utmwv; _arg2.utmn = this.utmn; if (this._info.domainName != ""){ _arg2.utmhn = this._info.domainName; }; if (this._config.sampleRate < 1){ _arg2.utmsp = (this._config.sampleRate * 100); }; if ((((this._config.serverMode == ServerOperationMode.local)) || ((this._config.serverMode == ServerOperationMode.both)))){ _local5 = this._info.locationSWFPath; if (_local5.lastIndexOf("/") > 0){ _local5 = _local5.substring(0, _local5.lastIndexOf("/")); }; _local6 = new URLRequest(); if (this._config.localGIFpath.indexOf("http") == 0){ _local6.url = this._config.localGIFpath; } else { _local6.url = (_local5 + this._config.localGIFpath); }; _local6.url = (_local6.url + ("?" + _arg2.toString())); if (((this._debug.active) && (this._debug.GIFRequests))){ this._debugSend(_local6); } else { this.sendRequest(_local6); }; }; if ((((this._config.serverMode == ServerOperationMode.remote)) || ((this._config.serverMode == ServerOperationMode.both)))){ _local7 = new URLRequest(); if (this._info.protocol == "https"){ _local7.url = this._config.secureRemoteGIFpath; } else { if (this._info.protocol == "http"){ _local7.url = this._config.remoteGIFpath; } else { _local7.url = this._config.remoteGIFpath; }; }; _arg2.utmac = this.utmac; _arg2.utmcc = encodeURIComponent(this.utmcc); _local7.url = (_local7.url + ("?" + _arg2.toString())); if (((this._debug.active) && (this._debug.GIFRequests))){ this._debugSend(_local7); } else { this.sendRequest(_local7); }; }; }; }; } } }//package com.google.analytics.core
Section 13
//IdleTimer (com.google.analytics.core.IdleTimer) package com.google.analytics.core { import flash.display.*; import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.utils.*; public class IdleTimer { private var _loop:Timer; private var _session:Timer; private var _debug:DebugConfiguration; private var _stage:Stage; private var _buffer:Buffer; private var _lastMove:int; private var _inactivity:Number; public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){ var _local5:Number = _arg1.idleLoop; var _local6:Number = _arg1.idleTimeout; var _local7:Number = _arg1.sessionTimeout; this._loop = new Timer((_local5 * 1000)); this._session = new Timer((_local7 * 1000), 1); this._debug = _arg2; this._stage = _arg3.stage; this._buffer = _arg4; this._lastMove = getTimer(); this._inactivity = (_local6 * 1000); this._loop.addEventListener(TimerEvent.TIMER, this.checkForIdle); this._session.addEventListener(TimerEvent.TIMER_COMPLETE, this.endSession); this._stage.addEventListener(MouseEvent.MOUSE_MOVE, this.onMouseMove); this._debug.info(((((("delay: " + _local5) + "sec , inactivity: ") + _local6) + "sec, sessionTimeout: ") + _local7), VisualDebugMode.geek); this._loop.start(); } private function onMouseMove(_arg1:MouseEvent):void{ this._lastMove = getTimer(); if (this._session.running){ this._debug.info("session timer reset", VisualDebugMode.geek); this._session.reset(); }; } public function checkForIdle(_arg1:TimerEvent):void{ var _local2:int = getTimer(); if ((_local2 - this._lastMove) >= this._inactivity){ if (!this._session.running){ this._debug.info("session timer start", VisualDebugMode.geek); this._session.start(); }; }; } public function endSession(_arg1:TimerEvent):void{ this._session.removeEventListener(TimerEvent.TIMER_COMPLETE, this.endSession); this._debug.info("session timer end session", VisualDebugMode.geek); this._session.reset(); this._buffer.resetCurrentSession(); this._debug.info(this._buffer.utmb.toString(), VisualDebugMode.geek); this._debug.info(this._buffer.utmc.toString(), VisualDebugMode.geek); this._session.addEventListener(TimerEvent.TIMER_COMPLETE, this.endSession); } } }//package com.google.analytics.core
Section 14
//Organic (com.google.analytics.core.Organic) package com.google.analytics.core { import com.google.analytics.utils.*; public class Organic { private var _sources:Array; private var _sourcesCache:Array; private var _sourcesEngine:Array; private var _ignoredReferrals:Array; private var _ignoredReferralsCache:Object; private var _ignoredKeywords:Array; private var _ignoredKeywordsCache:Object; public static var throwErrors:Boolean = false; public function Organic(){ this._sources = []; this._sourcesCache = []; this._sourcesEngine = []; this._ignoredReferrals = []; this._ignoredReferralsCache = {}; this._ignoredKeywords = []; this._ignoredKeywordsCache = {}; } public function get count():int{ return (this._sources.length); } public function get sources():Array{ return (this._sources); } public function get ignoredReferralsCount():int{ return (this._ignoredReferrals.length); } public function get ignoredKeywordsCount():int{ return (this._ignoredKeywords.length); } public function addSource(_arg1:String, _arg2:String):void{ var _local3:OrganicReferrer = new OrganicReferrer(_arg1, _arg2); if (this._sourcesCache[_local3.toString()] == undefined){ this._sources.push(_local3); this._sourcesCache[_local3.toString()] = (this._sources.length - 1); if (this._sourcesEngine[_local3.engine] == undefined){ this._sourcesEngine[_local3.engine] = [(this._sources.length - 1)]; } else { this._sourcesEngine[_local3.engine].push((this._sources.length - 1)); }; } else { if (throwErrors){ throw (new Error((_local3.toString() + " already exists, we don't add it."))); }; }; } public function addIgnoredReferral(_arg1:String):void{ if (this._ignoredReferralsCache[_arg1] == undefined){ this._ignoredReferrals.push(_arg1); this._ignoredReferralsCache[_arg1] = (this._ignoredReferrals.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function addIgnoredKeyword(_arg1:String):void{ if (this._ignoredKeywordsCache[_arg1] == undefined){ this._ignoredKeywords.push(_arg1); this._ignoredKeywordsCache[_arg1] = (this._ignoredKeywords.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function clear():void{ this.clearEngines(); this.clearIgnoredReferrals(); this.clearIgnoredKeywords(); } public function clearEngines():void{ this._sources = []; this._sourcesCache = []; this._sourcesEngine = []; } public function clearIgnoredReferrals():void{ this._ignoredReferrals = []; this._ignoredReferralsCache = {}; } public function clearIgnoredKeywords():void{ this._ignoredKeywords = []; this._ignoredKeywordsCache = {}; } public function getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{ var _local3:String = _arg1.keyword; return (getKeywordValueFromPath(_local3, _arg2)); } public function getReferrerByName(_arg1:String):OrganicReferrer{ var _local2:int; if (this.match(_arg1)){ _local2 = this._sourcesEngine[_arg1][0]; return (this._sources[_local2]); }; return (null); } public function isIgnoredReferral(_arg1:String):Boolean{ if (this._ignoredReferralsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function isIgnoredKeyword(_arg1:String):Boolean{ if (this._ignoredKeywordsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function match(_arg1:String):Boolean{ if (_arg1 == ""){ return (false); }; _arg1 = _arg1.toLowerCase(); if (this._sourcesEngine[_arg1] != undefined){ return (true); }; return (false); } public static function getKeywordValueFromPath(_arg1:String, _arg2:String):String{ var _local3:String; var _local4:Variables; if (_arg2.indexOf((_arg1 + "=")) > -1){ if (_arg2.charAt(0) == "?"){ _arg2 = _arg2.substr(1); }; _arg2 = _arg2.split("+").join("%20"); _local4 = new Variables(_arg2); _local3 = _local4[_arg1]; }; return (_local3); } } }//package com.google.analytics.core
Section 15
//OrganicReferrer (com.google.analytics.core.OrganicReferrer) package com.google.analytics.core { public class OrganicReferrer { private var _engine:String; private var _keyword:String; public function OrganicReferrer(_arg1:String, _arg2:String){ this.engine = _arg1; this.keyword = _arg2; } public function get engine():String{ return (this._engine); } public function set engine(_arg1:String):void{ this._engine = _arg1.toLowerCase(); } public function get keyword():String{ return (this._keyword); } public function set keyword(_arg1:String):void{ this._keyword = _arg1.toLowerCase(); } public function toString():String{ return (((this.engine + "?") + this.keyword)); } } }//package com.google.analytics.core
Section 16
//RequestObject (com.google.analytics.core.RequestObject) package com.google.analytics.core { import flash.net.*; import flash.utils.*; public class RequestObject { public var start:int; public var end:int; public var request:URLRequest; public function RequestObject(_arg1:URLRequest){ this.start = getTimer(); this.request = _arg1; } public function get duration():int{ if (!this.hasCompleted()){ return (0); }; return ((this.end - this.start)); } public function complete():void{ this.end = getTimer(); } public function hasCompleted():Boolean{ return ((this.end > 0)); } public function toString():String{ var _local1:Array = []; _local1.push((("duration: " + this.duration) + "ms")); _local1.push(("url: " + this.request.url)); return ((("{ " + _local1.join(", ")) + " }")); } } }//package com.google.analytics.core
Section 17
//ServerOperationMode (com.google.analytics.core.ServerOperationMode) package com.google.analytics.core { public class ServerOperationMode { private var _name:String; private var _value:int; public static const local:ServerOperationMode = new ServerOperationMode(0, "local"); ; public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote"); ; public static const both:ServerOperationMode = new ServerOperationMode(2, "both"); ; public function ServerOperationMode(_arg1:int=0, _arg2:String=""){ this._value = _arg1; this._name = _arg2; } public function toString():String{ return (this._name); } public function valueOf():int{ return (this._value); } } }//package com.google.analytics.core
Section 18
//TrackerCache (com.google.analytics.core.TrackerCache) package com.google.analytics.core { import com.google.analytics.v4.*; import flash.errors.*; public class TrackerCache implements GoogleAnalyticsAPI { private var _ar:Array; public var tracker:GoogleAnalyticsAPI; public static var CACHE_THROW_ERROR:Boolean; public function TrackerCache(_arg1:GoogleAnalyticsAPI=null){ this.tracker = _arg1; this._ar = []; } public function clear():void{ this._ar = []; } public function element(){ return (this._ar[0]); } public function enqueue(_arg1:String, ... _args):Boolean{ if (_arg1 == null){ return (false); }; this._ar.push({name:_arg1, args:_args}); return (true); } public function flush():void{ var _local1:Object; var _local2:String; var _local3:Array; var _local4:int; var _local5:int; if (this.tracker == null){ return; }; if (this.size() > 0){ _local4 = this._ar.length; while (_local5 < _local4) { _local1 = this._ar.shift(); _local2 = (_local1.name as String); _local3 = (_local1.args as Array); if (((!((_local2 == null))) && ((_local2 in this.tracker)))){ (this.tracker[_local2] as Function).apply(this.tracker, _local3); }; _local5++; }; }; } public function isEmpty():Boolean{ return ((this._ar.length == 0)); } public function size():uint{ return (this._ar.length); } public function addIgnoredOrganic(_arg1:String):void{ this.enqueue("addIgnoredOrganic", _arg1); } public function addIgnoredRef(_arg1:String):void{ this.enqueue("addIgnoredRef", _arg1); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ this.enqueue("addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function addOrganic(_arg1:String, _arg2:String):void{ this.enqueue("addOrganic", _arg1, _arg2); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment.")); }; } public function clearIgnoredOrganic():void{ this.enqueue("clearIgnoredOrganic"); } public function clearIgnoredRef():void{ this.enqueue("clearIgnoredRef"); } public function clearOrganic():void{ this.enqueue("clearOrganic"); } public function createEventTracker(_arg1:String):EventTracker{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment.")); }; return (null); } public function cookiePathCopy(_arg1:String):void{ this.enqueue("cookiePathCopy", _arg1); } public function getAccount():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment.")); }; return (""); } public function getClientInfo():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment.")); }; return (false); } public function getDetectFlash():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment.")); }; return (false); } public function getDetectTitle():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment.")); }; return (false); } public function getLocalGifPath():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment.")); }; return (""); } public function getServiceMode():ServerOperationMode{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment.")); }; return (null); } public function getVersion():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment.")); }; return (""); } public function resetSession():void{ this.enqueue("resetSession"); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLinkerUrl' method for the moment.")); }; return (""); } public function link(_arg1:String, _arg2:Boolean=false):void{ this.enqueue("link", _arg1, _arg2); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ this.enqueue("linkByPost", _arg1, _arg2); } public function setAllowAnchor(_arg1:Boolean):void{ this.enqueue("setAllowAnchor", _arg1); } public function setAllowHash(_arg1:Boolean):void{ this.enqueue("setAllowHash", _arg1); } public function setAllowLinker(_arg1:Boolean):void{ this.enqueue("setAllowLinker", _arg1); } public function setCampContentKey(_arg1:String):void{ this.enqueue("setCampContentKey", _arg1); } public function setCampMediumKey(_arg1:String):void{ this.enqueue("setCampMediumKey", _arg1); } public function setCampNameKey(_arg1:String):void{ this.enqueue("setCampNameKey", _arg1); } public function setCampNOKey(_arg1:String):void{ this.enqueue("setCampNOKey", _arg1); } public function setCampSourceKey(_arg1:String):void{ this.enqueue("setCampSourceKey", _arg1); } public function setCampTermKey(_arg1:String):void{ this.enqueue("setCampTermKey", _arg1); } public function setCampaignTrack(_arg1:Boolean):void{ this.enqueue("setCampaignTrack", _arg1); } public function setClientInfo(_arg1:Boolean):void{ this.enqueue("setClientInfo", _arg1); } public function setCookieTimeout(_arg1:int):void{ this.enqueue("setCookieTimeout", _arg1); } public function setCookiePath(_arg1:String):void{ this.enqueue("setCookiePath", _arg1); } public function setDetectFlash(_arg1:Boolean):void{ this.enqueue("setDetectFlash", _arg1); } public function setDetectTitle(_arg1:Boolean):void{ this.enqueue("setDetectTitle", _arg1); } public function setDomainName(_arg1:String):void{ this.enqueue("setDomainName", _arg1); } public function setLocalGifPath(_arg1:String):void{ this.enqueue("setLocalGifPath", _arg1); } public function setLocalRemoteServerMode():void{ this.enqueue("setLocalRemoteServerMode"); } public function setLocalServerMode():void{ this.enqueue("setLocalServerMode"); } public function setRemoteServerMode():void{ this.enqueue("setRemoteServerMode"); } public function setSampleRate(_arg1:Number):void{ this.enqueue("setSampleRate", _arg1); } public function setSessionTimeout(_arg1:int):void{ this.enqueue("setSessionTimeout", _arg1); } public function setVar(_arg1:String):void{ this.enqueue("setVar", _arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ this.enqueue("trackEvent", _arg1, _arg2, _arg3, _arg4); return (true); } public function trackPageview(_arg1:String=""):void{ this.enqueue("trackPageview", _arg1); } public function trackTrans():void{ this.enqueue("trackTrans"); } } }//package com.google.analytics.core
Section 19
//TrackerMode (com.google.analytics.core.TrackerMode) package com.google.analytics.core { public class TrackerMode { public static const AS3:String = "AS3"; public static const BRIDGE:String = "Bridge"; } }//package com.google.analytics.core
Section 20
//validateAccount (com.google.analytics.core.validateAccount) package com.google.analytics.core { public function validateAccount(_arg1:String):Boolean{ var _local2:RegExp = /^UA-[0-9]*-[0-9]*$/; return (_local2.test(_arg1)); } }//package com.google.analytics.core
Section 21
//Cookie (com.google.analytics.data.Cookie) package com.google.analytics.data { public interface Cookie { function get creation():Date; function set creation(_arg1:Date):void; function get expiration():Date; function set expiration(_arg1:Date):void; function isExpired():Boolean; function toURLString():String; function fromSharedObject(_arg1:Object):void; function toSharedObject():Object; } }//package com.google.analytics.data
Section 22
//UTMA (com.google.analytics.data.UTMA) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMA extends UTMCookie { private var _domainHash:Number; private var _sessionId:Number; private var _firstTime:Number; private var _lastTime:Number; private var _currentTime:Number; private var _sessionCount:Number; public function UTMA(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:Number=NaN){ super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.sessionId = _arg2; this.firstTime = _arg3; this.lastTime = _arg4; this.currentTime = _arg5; this.sessionCount = _arg6; } public function get domainHash():Number{ return (this._domainHash); } public function set domainHash(_arg1:Number):void{ this._domainHash = _arg1; update(); } public function get sessionId():Number{ return (this._sessionId); } public function set sessionId(_arg1:Number):void{ this._sessionId = _arg1; update(); } public function get firstTime():Number{ return (this._firstTime); } public function set firstTime(_arg1:Number):void{ this._firstTime = _arg1; update(); } public function get lastTime():Number{ return (this._lastTime); } public function set lastTime(_arg1:Number):void{ this._lastTime = _arg1; update(); } public function get currentTime():Number{ return (this._currentTime); } public function set currentTime(_arg1:Number):void{ this._currentTime = _arg1; update(); } public function get sessionCount():Number{ return (this._sessionCount); } public function set sessionCount(_arg1:Number):void{ this._sessionCount = _arg1; update(); } } }//package com.google.analytics.data
Section 23
//UTMB (com.google.analytics.data.UTMB) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMB extends UTMCookie { private var _domainHash:Number; private var _trackCount:Number; private var _token:Number; private var _lastTime:Number; public static var defaultTimespan:Number = Timespan.thirtyminutes; public function UTMB(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN){ super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.trackCount = _arg2; this.token = _arg3; this.lastTime = _arg4; } public function get domainHash():Number{ return (this._domainHash); } public function set domainHash(_arg1:Number):void{ this._domainHash = _arg1; update(); } public function get trackCount():Number{ return (this._trackCount); } public function set trackCount(_arg1:Number):void{ this._trackCount = _arg1; update(); } public function get token():Number{ return (this._token); } public function set token(_arg1:Number):void{ this._token = _arg1; update(); } public function get lastTime():Number{ return (this._lastTime); } public function set lastTime(_arg1:Number):void{ this._lastTime = _arg1; update(); } } }//package com.google.analytics.data
Section 24
//UTMC (com.google.analytics.data.UTMC) package com.google.analytics.data { public class UTMC extends UTMCookie { private var _domainHash:Number; public function UTMC(_arg1:Number=NaN){ super("utmc", "__utmc", ["domainHash"]); this.domainHash = _arg1; } public function get domainHash():Number{ return (this._domainHash); } public function set domainHash(_arg1:Number):void{ this._domainHash = _arg1; update(); } } }//package com.google.analytics.data
Section 25
//UTMCookie (com.google.analytics.data.UTMCookie) package com.google.analytics.data { import com.google.analytics.core.*; public class UTMCookie implements Cookie { private var _creation:Date; private var _expiration:Date; private var _timespan:Number; protected var name:String; protected var inURL:String; protected var fields:Array; public var proxy:Buffer; public function UTMCookie(_arg1:String, _arg2:String, _arg3:Array, _arg4:Number=0){ this.name = _arg1; this.inURL = _arg2; this.fields = _arg3; this._timestamp(_arg4); } private function _timestamp(_arg1:Number):void{ this.creation = new Date(); this._timespan = _arg1; if (_arg1 > 0){ this.expiration = new Date((this.creation.valueOf() + _arg1)); }; } protected function update():void{ this.resetTimestamp(); if (this.proxy){ this.proxy.update(this.name, this.toSharedObject()); }; } public function get creation():Date{ return (this._creation); } public function set creation(_arg1:Date):void{ this._creation = _arg1; } public function get expiration():Date{ if (this._expiration){ return (this._expiration); }; return (new Date((new Date().valueOf() + 1000))); } public function set expiration(_arg1:Date):void{ this._expiration = _arg1; } public function fromSharedObject(_arg1:Object):void{ var _local2:String; var _local3:int = this.fields.length; var _local4:int; while (_local4 < _local3) { _local2 = this.fields[_local4]; if (_arg1[_local2]){ this[_local2] = _arg1[_local2]; }; _local4++; }; if (_arg1.creation){ this.creation = _arg1.creation; }; if (_arg1.expiration){ this.expiration = _arg1.expiration; }; } public function isEmpty():Boolean{ var _local2:String; var _local1:int; var _local3:int; while (_local3 < this.fields.length) { _local2 = this.fields[_local3]; if ((((this[_local2] is Number)) && (isNaN(this[_local2])))){ _local1++; } else { if ((((this[_local2] is String)) && ((this[_local2] == "")))){ _local1++; }; }; _local3++; }; if (_local1 == this.fields.length){ return (true); }; return (false); } public function isExpired():Boolean{ var _local1:Date = new Date(); var _local2:Number = (this.expiration.valueOf() - _local1.valueOf()); if (_local2 <= 0){ return (true); }; return (false); } public function reset():void{ var _local1:String; var _local2:int; while (_local2 < this.fields.length) { _local1 = this.fields[_local2]; if ((this[_local1] is Number)){ this[_local1] = NaN; } else { if ((this[_local1] is String)){ this[_local1] = ""; }; }; _local2++; }; this.resetTimestamp(); this.update(); } public function resetTimestamp(_arg1:Number=NaN):void{ if (!isNaN(_arg1)){ this._timespan = _arg1; }; this._creation = null; this._expiration = null; this._timestamp(this._timespan); } public function toURLString():String{ return (((this.inURL + "=") + this.valueOf())); } public function toSharedObject():Object{ var _local2:String; var _local3:*; var _local1:Object = {}; var _local4:int; for (;_local4 < this.fields.length;_local4++) { _local2 = this.fields[_local4]; _local3 = this[_local2]; if ((_local3 is String)){ _local1[_local2] = _local3; } else { if (_local3 == 0){ _local1[_local2] = _local3; } else { if (isNaN(_local3)){ continue; } else { _local1[_local2] = _local3; }; }; }; }; _local1.creation = this.creation; _local1.expiration = this.expiration; return (_local1); } public function toString(_arg1:Boolean=false):String{ var _local3:String; var _local4:*; var _local2:Array = []; var _local5:int = this.fields.length; var _local6:int; for (;_local6 < _local5;_local6++) { _local3 = this.fields[_local6]; _local4 = this[_local3]; if ((_local4 is String)){ _local2.push((((_local3 + ": \"") + _local4) + "\"")); } else { if (_local4 == 0){ _local2.push(((_local3 + ": ") + _local4)); } else { if (isNaN(_local4)){ continue; } else { _local2.push(((_local3 + ": ") + _local4)); }; }; }; }; var _local7 = (((this.name.toUpperCase() + " {") + _local2.join(", ")) + "}"); if (_arg1){ _local7 = (_local7 + (((" creation:" + this.creation) + ", expiration:") + this.expiration)); }; return (_local7); } public function valueOf():String{ var _local2:String; var _local3:*; var _local4:Array; var _local1:Array = []; var _local5 = ""; var _local6:int; while (_local6 < this.fields.length) { _local2 = this.fields[_local6]; _local3 = this[_local2]; if ((_local3 is String)){ if (_local3 == ""){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; } else { if ((_local3 is Number)){ if (_local3 == 0){ _local1.push(_local3); } else { if (isNaN(_local3)){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; }; }; }; _local6++; }; if (this.isEmpty()){ return ("-"); }; return (("" + _local1.join("."))); } } }//package com.google.analytics.data
Section 26
//UTMK (com.google.analytics.data.UTMK) package com.google.analytics.data { public class UTMK extends UTMCookie { private var _hash:Number; public function UTMK(_arg1:Number=NaN){ super("utmk", "__utmk", ["hash"]); this.hash = _arg1; } public function get hash():Number{ return (this._hash); } public function set hash(_arg1:Number):void{ this._hash = _arg1; update(); } } }//package com.google.analytics.data
Section 27
//UTMV (com.google.analytics.data.UTMV) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMV extends UTMCookie { private var _domainHash:Number; private var _value:String; public function UTMV(_arg1:Number=NaN, _arg2:String=""){ super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.value = _arg2; } public function get domainHash():Number{ return (this._domainHash); } public function set domainHash(_arg1:Number):void{ this._domainHash = _arg1; update(); } public function get value():String{ return (this._value); } public function set value(_arg1:String):void{ this._value = _arg1; update(); } } }//package com.google.analytics.data
Section 28
//UTMX (com.google.analytics.data.UTMX) package com.google.analytics.data { public class UTMX extends UTMCookie { private var _value:String; public function UTMX(){ super("utmx", "__utmx", ["value"], 0); this._value = "-"; } public function get value():String{ return (this._value); } public function set value(_arg1:String):void{ this._value = _arg1; } } }//package com.google.analytics.data
Section 29
//UTMZ (com.google.analytics.data.UTMZ) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMZ extends UTMCookie { private var _domainHash:Number; private var _campaignCreation:Number; private var _campaignSessions:Number; private var _responseCount:Number; private var _campaignTracking:String; public static var defaultTimespan:Number = Timespan.sixmonths; public function UTMZ(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:String=""){ super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.campaignCreation = _arg2; this.campaignSessions = _arg3; this.responseCount = _arg4; this.campaignTracking = _arg5; } public function get domainHash():Number{ return (this._domainHash); } public function set domainHash(_arg1:Number):void{ this._domainHash = _arg1; update(); } public function get campaignCreation():Number{ return (this._campaignCreation); } public function set campaignCreation(_arg1:Number):void{ this._campaignCreation = _arg1; update(); } public function get campaignSessions():Number{ return (this._campaignSessions); } public function set campaignSessions(_arg1:Number):void{ this._campaignSessions = _arg1; update(); } public function get responseCount():Number{ return (this._responseCount); } public function set responseCount(_arg1:Number):void{ this._responseCount = _arg1; update(); } public function get campaignTracking():String{ return (this._campaignTracking); } public function set campaignTracking(_arg1:String):void{ this._campaignTracking = _arg1; update(); } } }//package com.google.analytics.data
Section 30
//X10 (com.google.analytics.data.X10) package com.google.analytics.data { public class X10 { private var _projectData:Object; private var _key:String;// = "k" private var _value:String;// = "v" private var _set:Array; private var _delimBegin:String;// = "(" private var _delimEnd:String;// = ")" private var _delimSet:String;// = "*" private var _delimNumValue:String;// = "!" private var _escapeChar:String;// = "'" private var _escapeCharMap:Object; private var _minimum:int; private var _hasData:int; public function X10(){ this._set = [this._key, this._value]; super(); this._projectData = {}; this._escapeCharMap = {}; this._escapeCharMap[this._escapeChar] = "'0"; this._escapeCharMap[this._delimEnd] = "'1"; this._escapeCharMap[this._delimSet] = "'2"; this._escapeCharMap[this._delimNumValue] = "'3"; this._minimum = 1; } private function _setInternal(_arg1:Number, _arg2:String, _arg3:Number, _arg4:String):void{ if (!this.hasProject(_arg1)){ this._projectData[_arg1] = {}; }; if (this._projectData[_arg1][_arg2] == undefined){ this._projectData[_arg1][_arg2] = []; }; this._projectData[_arg1][_arg2][_arg3] = _arg4; this._hasData = (this._hasData + 1); } private function _getInternal(_arg1:Number, _arg2:String, _arg3:Number):Object{ if (((this.hasProject(_arg1)) && (!((this._projectData[_arg1][_arg2] == undefined))))){ return (this._projectData[_arg1][_arg2][_arg3]); }; return (undefined); } private function _clearInternal(_arg1:Number, _arg2:String):void{ var _local3:Boolean; var _local4:int; var _local5:int; if (((this.hasProject(_arg1)) && (!((this._projectData[_arg1][_arg2] == undefined))))){ this._projectData[_arg1][_arg2] = undefined; _local3 = true; _local5 = this._set.length; _local4 = 0; while (_local4 < _local5) { if (this._projectData[_arg1][this._set[_local4]] != undefined){ _local3 = false; break; }; _local4++; }; if (_local3){ this._projectData[_arg1] = undefined; this._hasData = (this._hasData - 1); }; }; } private function _escapeExtensibleValue(_arg1:String):String{ var _local3:int; var _local4:String; var _local5:String; var _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1.charAt(_local3); _local5 = this._escapeCharMap[_local4]; if (_local5){ _local2 = (_local2 + _local5); } else { _local2 = (_local2 + _local4); }; _local3++; }; return (_local2); } private function _renderDataType(_arg1:Array):String{ var _local3:String; var _local4:int; var _local2:Array = []; _local4 = 0; while (_local4 < _arg1.length) { if (_arg1[_local4] != undefined){ _local3 = ""; if (((!((_local4 == this._minimum))) && ((_arg1[(_local4 - 1)] == undefined)))){ _local3 = (_local3 + _local4.toString()); _local3 = (_local3 + this._delimNumValue); }; _local3 = (_local3 + this._escapeExtensibleValue(_arg1[_local4])); _local2.push(_local3); }; _local4++; }; return (((this._delimBegin + _local2.join(this._delimSet)) + this._delimEnd)); } private function _renderProject(_arg1:Object):String{ var _local4:int; var _local5:Array; var _local2 = ""; var _local3:Boolean; var _local6:int = this._set.length; _local4 = 0; while (_local4 < _local6) { _local5 = _arg1[this._set[_local4]]; if (_local5){ if (_local3){ _local2 = (_local2 + this._set[_local4]); }; _local2 = (_local2 + this._renderDataType(_local5)); _local3 = false; } else { _local3 = true; }; _local4++; }; return (_local2); } public function hasProject(_arg1:Number):Boolean{ return (this._projectData[_arg1]); } public function hasData():Boolean{ return ((this._hasData > 0)); } public function setKey(_arg1:Number, _arg2:Number, _arg3:String):Boolean{ this._setInternal(_arg1, this._key, _arg2, _arg3); return (true); } public function getKey(_arg1:Number, _arg2:Number):String{ return ((this._getInternal(_arg1, this._key, _arg2) as String)); } public function clearKey(_arg1:Number):void{ this._clearInternal(_arg1, this._key); } public function setValue(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if (((((!((Math.round(_arg3) == _arg3))) || (isNaN(_arg3)))) || ((_arg3 == Infinity)))){ return (false); }; this._setInternal(_arg1, this._value, _arg2, _arg3.toString()); return (true); } public function getValue(_arg1:Number, _arg2:Number){ var _local3:* = this._getInternal(_arg1, this._value, _arg2); if (_local3 == null){ return (null); }; return (Number(_local3)); } public function clearValue(_arg1:Number):void{ this._clearInternal(_arg1, this._value); } public function renderUrlString():String{ var _local2:String; var _local1:Array = []; for (_local2 in this._projectData) { if (this.hasProject(Number(_local2))){ _local1.push((_local2 + this._renderProject(this._projectData[_local2]))); }; }; return (_local1.join("")); } public function renderMergedUrlString(_arg1:X10=null):String{ var _local3:String; if (!_arg1){ return (this.renderUrlString()); }; var _local2:Array = [_arg1.renderUrlString()]; for (_local3 in this._projectData) { if (((this.hasProject(Number(_local3))) && (!(_arg1.hasProject(Number(_local3)))))){ _local2.push((_local3 + this._renderProject(this._projectData[_local3]))); }; }; return (_local2.join("")); } } }//package com.google.analytics.data
Section 31
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration) package com.google.analytics.debug { import flash.net.*; import com.google.analytics.core.*; import flash.utils.*; public class DebugConfiguration { private var _active:Boolean;// = false private var _verbose:Boolean;// = false private var _visualInitialized:Boolean;// = false private var _mode:VisualDebugMode; public var traceOutput:Boolean;// = false public var javascript:Boolean;// = false public var GIFRequests:Boolean;// = false public var showInfos:Boolean;// = true public var infoTimeout:Number;// = 1000 public var showWarnings:Boolean;// = true public var warningTimeout:Number;// = 1500 public var minimizedOnStart:Boolean;// = false public var showHideKey:Number;// = 32 public var destroyKey:Number;// = 8 public function DebugConfiguration(){ this._mode = VisualDebugMode.basic; super(); } private function _initializeVisual():void{ } private function _destroyVisual():void{ } public function get mode(){ return (this._mode); } public function set mode(_arg1):void{ if ((_arg1 is String)){ switch (_arg1){ case "geek": _arg1 = VisualDebugMode.geek; break; case "advanced": _arg1 = VisualDebugMode.advanced; break; case "basic": default: _arg1 = VisualDebugMode.basic; }; }; this._mode = _arg1; } protected function trace(_arg1:String):void{ var _local7:Array; var _local8:int; var _local2:Array = []; var _local3 = ""; var _local4 = ""; if (this.mode == VisualDebugMode.geek){ _local3 = (getTimer() + " - "); _local4 = (new Array(_local3.length).join(" ") + " "); }; if (_arg1.indexOf("\n") > -1){ _local7 = _arg1.split("\n"); _local8 = 0; while (_local8 < _local7.length) { if (_local7[_local8] == ""){ } else { if (_local8 == 0){ _local2.push((_local3 + _local7[_local8])); } else { _local2.push((_local4 + _local7[_local8])); }; }; _local8++; }; } else { _local2.push((_local3 + _arg1)); }; var _local5:int = _local2.length; var _local6:int; while (_local6 < _local5) { trace(_local2[_local6]); _local6++; }; } public function get active():Boolean{ return (this._active); } public function set active(_arg1:Boolean):void{ this._active = _arg1; if (this._active){ this._initializeVisual(); } else { this._destroyVisual(); }; } public function get verbose():Boolean{ return (this._verbose); } public function set verbose(_arg1:Boolean):void{ this._verbose = _arg1; } private function _filter(_arg1:VisualDebugMode=null):Boolean{ return (((_arg1) && ((int(_arg1) >= int(this.mode))))); } public function info(_arg1:String, _arg2:VisualDebugMode=null):void{ if (this._filter(_arg2)){ return; }; if (this.traceOutput){ this.trace(_arg1); }; } public function warning(_arg1:String, _arg2:VisualDebugMode=null):void{ if (this._filter(_arg2)){ return; }; if (this.traceOutput){ this.trace((("## " + _arg1) + " ##")); }; } public function alert(_arg1:String):void{ if (this.traceOutput){ this.trace((("!! " + _arg1) + " !!")); }; } public function failure(_arg1:String):void{ if (this.traceOutput){ this.trace((("[-] " + _arg1) + " !!")); }; } public function success(_arg1:String):void{ if (this.traceOutput){ this.trace((("[+] " + _arg1) + " !!")); }; } public function alertGifRequest(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ if (this.traceOutput){ this.trace(((">> " + _arg1) + " <<")); }; } } }//package com.google.analytics.debug
Section 32
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode) package com.google.analytics.debug { public class VisualDebugMode { private var _name:String; private var _value:int; public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic"); ; public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced"); ; public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek"); ; public function VisualDebugMode(_arg1:int=0, _arg2:String=""){ this._value = _arg1; this._name = _arg2; } public function toString():String{ return (this._name); } public function valueOf():int{ return (this._value); } } }//package com.google.analytics.debug
Section 33
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent) package com.google.analytics.events { import flash.events.*; import com.google.analytics.*; public class AnalyticsEvent extends Event { public var tracker:AnalyticsTracker; public static const READY:String = "ready"; public function AnalyticsEvent(_arg1:String, _arg2:AnalyticsTracker, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.tracker = _arg2; } override public function clone():Event{ return (new AnalyticsEvent(type, this.tracker, bubbles, cancelable)); } } }//package com.google.analytics.events
Section 34
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals) package com.google.analytics.external { import com.google.analytics.debug.*; public class AdSenseGlobals extends JavascriptProxy { private var _gaGlobalVerified:Boolean;// = false public static var gaGlobal_js:XML = <script> <![CDATA[ function() { try { gaGlobal } catch(e) { gaGlobal = {} ; } } ]]> </script> ; public function AdSenseGlobals(_arg1:DebugConfiguration){ super(_arg1); } private function _verify():void{ if (!this._gaGlobalVerified){ executeBlock(gaGlobal_js); this._gaGlobalVerified = true; }; } public function get gaGlobal():Object{ if (!isAvailable()){ return (null); }; this._verify(); return (getProperty("gaGlobal")); } public function get dh():String{ if (!isAvailable()){ return (null); }; this._verify(); return (getProperty("gaGlobal.dh")); } public function get hid():String{ if (!isAvailable()){ return (null); }; this._verify(); return (getProperty("gaGlobal.hid")); } public function set hid(_arg1:String):void{ if (!isAvailable()){ return; }; this._verify(); setProperty("gaGlobal.hid", _arg1); } public function get sid():String{ if (!isAvailable()){ return (null); }; this._verify(); return (getProperty("gaGlobal.sid")); } public function set sid(_arg1:String):void{ if (!isAvailable()){ return; }; this._verify(); setProperty("gaGlobal.sid", _arg1); } public function get vid():String{ if (!isAvailable()){ return (null); }; this._verify(); return (getProperty("gaGlobal.vid")); } public function set vid(_arg1:String):void{ if (!isAvailable()){ return; }; this._verify(); setProperty("gaGlobal.vid", _arg1); } } }//package com.google.analytics.external
Section 35
//HTMLDOM (com.google.analytics.external.HTMLDOM) package com.google.analytics.external { import com.google.analytics.debug.*; public class HTMLDOM extends JavascriptProxy { private var _host:String; private var _language:String; private var _characterSet:String; private var _colorDepth:String; private var _location:String; private var _pathname:String; private var _protocol:String; private var _search:String; private var _referrer:String; private var _title:String; public static var cache_properties_js:XML = <script> <![CDATA[ function() { var obj = {}; obj.host = document.location.host; obj.language = navigator.language ? navigator.language : navigator.browserLanguage; obj.characterSet = document.characterSet ? document.characterSet : document.charset; obj.colorDepth = window.screen.colorDepth; obj.location = document.location.toString(); obj.pathname = document.location.pathname; obj.protocol = document.location.protocol; obj.search = document.location.search; obj.referrer = document.referrer; obj.title = document.title; return obj; } ]]> </script> ; public function HTMLDOM(_arg1:DebugConfiguration){ super(_arg1); } public function cacheProperties():void{ if (!isAvailable()){ return; }; var _local1:Object = call(cache_properties_js); if (_local1){ this._host = _local1.host; this._language = _local1.language; this._characterSet = _local1.characterSet; this._colorDepth = _local1.colorDepth; this._location = _local1.location; this._pathname = _local1.pathname; this._protocol = _local1.protocol; this._search = _local1.search; this._referrer = _local1.referrer; this._title = _local1.title; }; } public function get host():String{ if (this._host){ return (this._host); }; if (!isAvailable()){ return (null); }; this._host = getProperty("document.location.host"); return (this._host); } public function get language():String{ if (this._language){ return (this._language); }; if (!isAvailable()){ return (null); }; var _local1:String = getProperty("navigator.language"); if (_local1 == null){ _local1 = getProperty("navigator.browserLanguage"); }; this._language = _local1; return (this._language); } public function get characterSet():String{ if (this._characterSet){ return (this._characterSet); }; if (!isAvailable()){ return (null); }; var _local1:String = getProperty("document.characterSet"); if (_local1 == null){ _local1 = getProperty("document.charset"); }; this._characterSet = _local1; return (this._characterSet); } public function get colorDepth():String{ if (this._colorDepth){ return (this._colorDepth); }; if (!isAvailable()){ return (null); }; this._colorDepth = getProperty("window.screen.colorDepth"); return (this._colorDepth); } public function get location():String{ if (this._location){ return (this._location); }; if (!isAvailable()){ return (null); }; this._location = getPropertyString("document.location"); return (this._location); } public function get pathname():String{ if (this._pathname){ return (this._pathname); }; if (!isAvailable()){ return (null); }; this._pathname = getProperty("document.location.pathname"); return (this._pathname); } public function get protocol():String{ if (this._protocol){ return (this._protocol); }; if (!isAvailable()){ return (null); }; this._protocol = getProperty("document.location.protocol"); return (this._protocol); } public function get search():String{ if (this._search){ return (this._search); }; if (!isAvailable()){ return (null); }; this._search = getProperty("document.location.search"); return (this._search); } public function get referrer():String{ if (this._referrer){ return (this._referrer); }; if (!isAvailable()){ return (null); }; this._referrer = getProperty("document.referrer"); return (this._referrer); } public function get title():String{ if (this._title){ return (this._title); }; if (!isAvailable()){ return (null); }; this._title = getProperty("document.title"); return (this._title); } } }//package com.google.analytics.external
Section 36
//JavascriptProxy (com.google.analytics.external.JavascriptProxy) package com.google.analytics.external { import com.google.analytics.debug.*; import flash.system.*; import flash.external.*; public class JavascriptProxy { private var _debug:DebugConfiguration; private var _notAvailableWarning:Boolean;// = true public static var hasProperty_js:XML = <script> <![CDATA[ function( path ) { var paths; if( path.indexOf(".") > 0 ) { paths = path.split("."); } else { paths = [path]; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } if( target ) { return true; } else { return false; } } ]]> </script> ; public static var setProperty_js:XML = <script> <![CDATA[ function( path , value ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } target[ prop ] = value ; } ]]> </script> ; public static var setPropertyRef_js:XML = <script> <![CDATA[ function( path , target ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } alert( "paths:"+paths.length+", prop:"+prop ); var targets; var name; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } alert( "targets:"+targets.length+", name:"+name ); var root = window; var len = paths.length; for( var i = 0 ; i < len ; i++ ) { root = root[ paths[i] ] ; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } root[ prop ] = ref[name] ; } ]]> </script> ; public function JavascriptProxy(_arg1:DebugConfiguration){ this._debug = _arg1; } public function call(_arg1:String, ... _args){ var output:String; var functionName = _arg1; var args = _args; if (this.isAvailable()){ try { if (((this._debug.javascript) && (this._debug.verbose))){ output = ""; output = ("Flash->JS: " + functionName); output = (output + "( "); if (args.length > 0){ output = (output + args.join(",")); }; output = (output + " )"); this._debug.info(output); }; args.unshift(functionName); return (ExternalInterface.call.apply(ExternalInterface, args)); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; return (null); } public function executeBlock(_arg1:String):void{ var data = _arg1; if (this.isAvailable()){ try { ExternalInterface.call(data); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; } public function getProperty(_arg1:String){ return (this.call((_arg1 + ".valueOf"))); } public function getPropertyString(_arg1:String):String{ return (this.call((_arg1 + ".toString"))); } public function hasProperty(_arg1:String):Boolean{ return (this.call(hasProperty_js, _arg1)); } public function isAvailable():Boolean{ var _local1:Boolean = ExternalInterface.available; if (((_local1) && ((Capabilities.playerType == "External")))){ _local1 = false; }; if (((((!(_local1)) && (this._debug.javascript))) && (this._notAvailableWarning))){ this._debug.warning("ExternalInterface is not available."); this._notAvailableWarning = false; }; return (_local1); } public function setProperty(_arg1:String, _arg2):void{ this.call(setProperty_js, _arg1, _arg2); } public function setPropertyByReference(_arg1:String, _arg2:String):void{ this.call(setPropertyRef_js, _arg1, _arg2); } } }//package com.google.analytics.external
Section 37
//Environment (com.google.analytics.utils.Environment) package com.google.analytics.utils { import com.google.analytics.debug.*; import com.google.analytics.external.*; import core.*; import core.strings.*; import flash.system.*; public class Environment { private var _debug:DebugConfiguration; private var _dom:HTMLDOM; private var _protocol:String; private var _appName:String; private var _appVersion:version; private var _userAgent:String; private var _url:String; public function Environment(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:DebugConfiguration=null, _arg5:HTMLDOM=null){ var _local6:version; super(); if (_arg2 == ""){ if (this.isAIR()){ _arg2 = "AIR"; } else { _arg2 = "Flash"; }; }; if (_arg3 == ""){ _local6 = this.flashVersion; } else { _local6 = getVersionFromString(_arg3); }; this._url = _arg1; this._appName = _arg2; this._appVersion = _local6; this._debug = _arg4; this._dom = _arg5; } private function _findProtocol():void{ var _local1:uri; this._protocol = ""; if (this._url != ""){ _local1 = new uri(this._url); this._protocol = _local1.scheme; }; } public function get appName():String{ return (this._appName); } public function set appName(_arg1:String):void{ this._appName = _arg1; this._defineUserAgent(); } public function get appVersion():version{ return (this._appVersion); } public function set appVersion(_arg1:version):void{ this._appVersion = _arg1; this._defineUserAgent(); } function set url(_arg1:String):void{ this._url = _arg1; } public function get locationSWFPath():String{ return (this._url); } public function get referrer():String{ var _local1:String = this._dom.referrer; if (_local1){ return (_local1); }; if (this.protocol == "file"){ return ("localhost"); }; return (""); } public function get documentTitle():String{ var _local1:String = this._dom.title; if (_local1){ return (_local1); }; return (""); } public function get domainName():String{ var _local1:uri; if ((((this.protocol == "http")) || ((this.protocol == "https")))){ _local1 = new uri(this._url.toLowerCase()); return (_local1.host); }; if (this.protocol == "file"){ return ("localhost"); }; return (""); } public function isAIR():Boolean{ return ((Security.sandboxType == "application")); } public function isInHTML():Boolean{ return ((Capabilities.playerType == "PlugIn")); } public function get locationPath():String{ var _local1:String = this._dom.pathname; if (_local1){ return (_local1); }; return (""); } public function get locationSearch():String{ var _local1:String = this._dom.search; if (_local1){ return (_local1); }; return (""); } public function get flashVersion():version{ var _local1:version = getVersionFromString(Capabilities.version.split(" ")[1], ","); return (_local1); } public function get language():String{ var _local1:String = this._dom.language; var _local2:String = Capabilities.language; if (_local1){ if ((((_local1.length > _local2.length)) && ((_local1.substr(0, _local2.length) == _local2)))){ _local2 = _local1; }; }; return (_local2); } public function get languageEncoding():String{ var _local1:String; if (System.useCodePage){ _local1 = this._dom.characterSet; if (_local1){ return (_local1); }; return ("-"); }; return ("UTF-8"); } public function get operatingSystem():String{ return (Capabilities.os); } public function get playerType():String{ return (Capabilities.playerType); } public function get platform():String{ var _local1:String = Capabilities.manufacturer; return (_local1.split("Adobe ")[1]); } public function get protocol():String{ if (!this._protocol){ this._findProtocol(); }; return (this._protocol); } public function get screenHeight():Number{ return (Capabilities.screenResolutionY); } public function get screenWidth():Number{ return (Capabilities.screenResolutionX); } public function get screenColorDepth():String{ var _local1:String; switch (Capabilities.screenColor){ case "bw": _local1 = "1"; break; case "gray": _local1 = "2"; break; case "color": default: _local1 = "24"; }; var _local2:String = this._dom.colorDepth; if (_local2){ _local1 = _local2; }; return (_local1); } private function _defineUserAgent():void{ this._userAgent = userAgent(((this.appName + "/") + this.appVersion.toString(4))); } public function get userAgent():String{ if (!this._userAgent){ this._defineUserAgent(); }; return (this._userAgent); } public function set userAgent(_arg1:String):void{ this._userAgent = _arg1; } } }//package com.google.analytics.utils
Section 38
//getDomainFromHost (com.google.analytics.utils.getDomainFromHost) package com.google.analytics.utils { public function getDomainFromHost(_arg1:String):String{ var _local2:Array; if (((!((_arg1 == ""))) && ((_arg1.indexOf(".") > -1)))){ _local2 = _arg1.split("."); switch (_local2.length){ case 2: return (_arg1); case 3: if (_local2[1] == "co"){ return (_arg1); }; _local2.shift(); return (_local2.join(".")); case 4: _local2.shift(); return (_local2.join(".")); }; }; return (""); } }//package com.google.analytics.utils
Section 39
//getSubDomainFromHost (com.google.analytics.utils.getSubDomainFromHost) package com.google.analytics.utils { public function getSubDomainFromHost(_arg1:String):String{ var _local2:String = getDomainFromHost(_arg1); if (((!((_local2 == ""))) && (!((_local2 == _arg1))))){ return (_arg1.split(("." + _local2)).join("")); }; return (""); } }//package com.google.analytics.utils
Section 40
//getVersionFromString (com.google.analytics.utils.getVersionFromString) package com.google.analytics.utils { import core.*; public function getVersionFromString(_arg1:String, _arg2:String="."):version{ var _local4:Array; var _local3:version = new version(); if ((((_arg1 == "")) || ((_arg1 == null)))){ return (_local3); }; if (_arg1.indexOf(_arg2) > -1){ _local4 = _arg1.split(_arg2); _local3.major = parseInt(_local4[0]); _local3.minor = parseInt(_local4[1]); _local3.build = parseInt(_local4[2]); _local3.revision = parseInt(_local4[3]); } else { _local3.major = parseInt(_arg1); }; return (_local3); } }//package com.google.analytics.utils
Section 41
//Timespan (com.google.analytics.utils.Timespan) package com.google.analytics.utils { public class Timespan { public static var twoyears:Number = 63072000; public static var sixmonths:Number = 15768000; public static var thirtyminutes:Number = 1800; } }//package com.google.analytics.utils
Section 42
//Variables (com.google.analytics.utils.Variables) package com.google.analytics.utils { import flash.net.*; public dynamic class Variables { public var URIencode:Boolean; public var pre:Array; public var post:Array; public var sort:Boolean;// = true public function Variables(_arg1:String=null, _arg2:Array=null, _arg3:Array=null){ this.pre = []; this.post = []; super(); if (_arg1){ this.decode(_arg1); }; if (_arg2){ this.pre = _arg2; }; if (_arg3){ this.post = _arg3; }; } private function _join(_arg1:Variables):void{ var _local2:String; if (!_arg1){ return; }; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } public function decode(_arg1:String):void{ var _local2:Array; var _local3:String; var _local4:String; var _local5:String; var _local6:Array; if (_arg1 == ""){ return; }; if (_arg1.charAt(0) == "?"){ _arg1 = _arg1.substr(1, _arg1.length); }; if (_arg1.indexOf("&") > -1){ _local2 = _arg1.split("&"); } else { _local2 = [_arg1]; }; var _local7:int; while (_local7 < _local2.length) { _local3 = _local2[_local7]; if (_local3.indexOf("=") > -1){ _local6 = _local3.split("="); _local4 = _local6[0]; _local5 = decodeURI(_local6[1]); this[_local4] = _local5; }; _local7++; }; } public function join(... _args):void{ var _local2:int = _args.length; var _local3:int; while (_local3 < _local2) { if (!(_args[_local3] is Variables)){ } else { this._join(_args[_local3]); }; _local3++; }; } public function toString():String{ var _local2:String; var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:String; var _local8:String; var _local1:Array = []; for (_local3 in this) { _local2 = this[_local3]; if (this.URIencode){ _local2 = encodeURI(_local2); }; _local1.push(((_local3 + "=") + _local2)); }; if (this.sort){ _local1.sort(); }; if (this.pre.length > 0){ this.pre.reverse(); _local5 = 0; while (_local5 < this.pre.length) { _local7 = this.pre[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local7) == 0){ _local1.unshift(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; this.pre.reverse(); }; if (this.post.length > 0){ _local5 = 0; while (_local5 < this.post.length) { _local8 = this.post[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local8) == 0){ _local1.push(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; }; return (_local1.join("&")); } public function toURLVariables():URLVariables{ var _local2:String; var _local1:URLVariables = new URLVariables(); for (_local2 in this) { _local1[_local2] = this[_local2]; }; return (_local1); } } }//package com.google.analytics.utils
Section 43
//Configuration (com.google.analytics.v4.Configuration) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.campaign.*; public class Configuration { private var _debug:DebugConfiguration; private var _version:String;// = "4.3as" private var _sampleRate:Number;// = 1 private var _trackingLimitPerSession:int;// = 500 private var _domain:Domain; private var _organic:Organic; public var googleCsePath:String;// = "cse" public var googleSearchParam:String;// = "q" public var google:String;// = "google" private var _cookieName:String;// = "analytics" public var allowDomainHash:Boolean;// = true public var allowAnchor:Boolean;// = false public var allowLinker:Boolean;// = false public var hasSiteOverlay:Boolean;// = false public var tokenRate:Number;// = 0.2 public var conversionTimeout:Number; public var sessionTimeout:Number; public var idleLoop:Number;// = 30 public var idleTimeout:Number;// = 60 public var maxOutboundLinkExamined:Number;// = 1000 public var tokenCliff:int;// = 10 public var bucketCapacity:Number;// = 10 public var detectClientInfo:Boolean;// = true public var detectFlash:Boolean;// = true public var detectTitle:Boolean;// = true public var campaignKey:CampaignKey; public var campaignTracking:Boolean;// = true public var isTrackOutboundSubdomains:Boolean;// = false public var serverMode:ServerOperationMode; public var localGIFpath:String;// = "/__utm.gif" public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif" public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif" public var cookiePath:String;// = "/" public var transactionFieldDelim:String;// = "|" public var domainName:String;// = "" public var allowLocalTracking:Boolean;// = true public function Configuration(_arg1:DebugConfiguration=null){ this._organic = new Organic(); this.conversionTimeout = Timespan.sixmonths; this.sessionTimeout = Timespan.thirtyminutes; this.campaignKey = new CampaignKey(); this.serverMode = ServerOperationMode.remote; super(); this._debug = _arg1; this._domain = new Domain(DomainNameMode.auto, "", this._debug); this.serverMode = ServerOperationMode.remote; this._initOrganicSources(); } private function _initOrganicSources():void{ this.addOrganicSource(this.google, this.googleSearchParam); this.addOrganicSource("yahoo", "p"); this.addOrganicSource("msn", "q"); this.addOrganicSource("aol", "query"); this.addOrganicSource("aol", "encquery"); this.addOrganicSource("lycos", "query"); this.addOrganicSource("ask", "q"); this.addOrganicSource("altavista", "q"); this.addOrganicSource("netscape", "query"); this.addOrganicSource("cnn", "query"); this.addOrganicSource("looksmart", "qt"); this.addOrganicSource("about", "terms"); this.addOrganicSource("mamma", "query"); this.addOrganicSource("alltheweb", "q"); this.addOrganicSource("gigablast", "q"); this.addOrganicSource("voila", "rdata"); this.addOrganicSource("virgilio", "qs"); this.addOrganicSource("live", "q"); this.addOrganicSource("baidu", "wd"); this.addOrganicSource("alice", "qs"); this.addOrganicSource("yandex", "text"); this.addOrganicSource("najdi", "q"); this.addOrganicSource("aol", "q"); this.addOrganicSource("club-internet", "q"); this.addOrganicSource("mama", "query"); this.addOrganicSource("seznam", "q"); this.addOrganicSource("search", "q"); this.addOrganicSource("wp", "szukaj"); this.addOrganicSource("onet", "qt"); this.addOrganicSource("netsprint", "q"); this.addOrganicSource("google.interia", "q"); this.addOrganicSource("szukacz", "q"); this.addOrganicSource("yam", "k"); this.addOrganicSource("pchome", "q"); this.addOrganicSource("kvasir", "searchExpr"); this.addOrganicSource("sesam", "q"); this.addOrganicSource("ozu", "q"); this.addOrganicSource("terra", "query"); this.addOrganicSource("nostrum", "query"); this.addOrganicSource("mynet", "q"); this.addOrganicSource("ekolay", "q"); this.addOrganicSource("search.ilse", "search_for"); } public function get cookieName():String{ return (this._cookieName); } public function get version():String{ return (this._version); } public function get domain():Domain{ return (this._domain); } public function get organic():Organic{ return (this._organic); } public function get sampleRate():Number{ return (this._sampleRate); } public function set sampleRate(_arg1:Number):void{ if (_arg1 <= 0){ _arg1 = 0.1; }; if (_arg1 > 1){ _arg1 = 1; }; _arg1 = Number(_arg1.toFixed(2)); this._sampleRate = _arg1; } public function get trackingLimitPerSession():int{ return (this._trackingLimitPerSession); } public function addOrganicSource(_arg1:String, _arg2:String):void{ var engine = _arg1; var keyword = _arg2; try { this._organic.addSource(engine, keyword); } catch(e:Error) { if (((_debug) && (_debug.active))){ _debug.warning(e.message); }; }; } } }//package com.google.analytics.v4
Section 44
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI) package com.google.analytics.v4 { import com.google.analytics.core.*; public interface GoogleAnalyticsAPI { function getAccount():String; function getVersion():String; function resetSession():void; function setSampleRate(_arg1:Number):void; function setSessionTimeout(_arg1:int):void; function setVar(_arg1:String):void; function trackPageview(_arg1:String=""):void; function setAllowAnchor(_arg1:Boolean):void; function setCampContentKey(_arg1:String):void; function setCampMediumKey(_arg1:String):void; function setCampNameKey(_arg1:String):void; function setCampNOKey(_arg1:String):void; function setCampSourceKey(_arg1:String):void; function setCampTermKey(_arg1:String):void; function setCampaignTrack(_arg1:Boolean):void; function setCookieTimeout(_arg1:int):void; function cookiePathCopy(_arg1:String):void; function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String; function link(_arg1:String, _arg2:Boolean=false):void; function linkByPost(_arg1:Object, _arg2:Boolean=false):void; function setAllowHash(_arg1:Boolean):void; function setAllowLinker(_arg1:Boolean):void; function setCookiePath(_arg1:String):void; function setDomainName(_arg1:String):void; function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void; function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void; function trackTrans():void; function createEventTracker(_arg1:String):EventTracker; function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean; function addIgnoredOrganic(_arg1:String):void; function addIgnoredRef(_arg1:String):void; function addOrganic(_arg1:String, _arg2:String):void; function clearIgnoredOrganic():void; function clearIgnoredRef():void; function clearOrganic():void; function getClientInfo():Boolean; function getDetectFlash():Boolean; function getDetectTitle():Boolean; function setClientInfo(_arg1:Boolean):void; function setDetectFlash(_arg1:Boolean):void; function setDetectTitle(_arg1:Boolean):void; function getLocalGifPath():String; function getServiceMode():ServerOperationMode; function setLocalGifPath(_arg1:String):void; function setLocalRemoteServerMode():void; function setLocalServerMode():void; function setRemoteServerMode():void; } }//package com.google.analytics.v4
Section 45
//Tracker (com.google.analytics.v4.Tracker) package com.google.analytics.v4 { import flash.net.*; import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.external.*; import com.google.analytics.data.*; import core.*; public class Tracker implements GoogleAnalyticsAPI { private const EVENT_TRACKER_PROJECT_ID:int = 5; private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1; private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2; private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3; private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1; private var _account:String; private var _domainHash:Number; private var _formatedReferrer:String; private var _timeStamp:Number; private var _hasInitData:Boolean;// = false private var _isNewVisitor:Boolean;// = false private var _noSessionInformation:Boolean;// = false private var _config:Configuration; private var _debug:DebugConfiguration; private var _info:Environment; private var _buffer:Buffer; private var _gifRequest:GIFRequest; private var _adSense:AdSenseGlobals; private var _browserInfo:BrowserInfo; private var _eventTracker:X10; private var _x10Module:X10; public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals, _arg8){ var _local9:String; super(); this._account = _arg1; this._config = _arg2; this._debug = _arg3; this._info = _arg4; this._buffer = _arg5; this._gifRequest = _arg6; this._adSense = _arg7; if (!validateAccount(_arg1)){ _local9 = (("Account \"" + _arg1) + "\" is not valid."); this._debug.warning(_local9); throw (new Error(_local9)); }; } private function _initData():void{ var _local1:String; if (!this._hasInitData){ this._updateDomainName(); this._domainHash = this._getDomainHash(); this._timeStamp = Math.round((new Date().getTime() / 1000)); if (this._debug.verbose){ _local1 = ""; _local1 = (_local1 + "_initData 0"); _local1 = (_local1 + ("\ndomain name: " + this._config.domainName)); _local1 = (_local1 + ("\ndomain hash: " + this._domainHash)); _local1 = (_local1 + (((("\ntimestamp: " + this._timeStamp) + " (") + new Date((this._timeStamp * 1000))) + ")")); this._debug.info(_local1, VisualDebugMode.geek); }; }; if (this._doTracking()){ this._handleCookie(); }; if (!this._hasInitData){ if (this._doTracking()){ this._formatedReferrer = this._formatReferrer(); this._browserInfo = new BrowserInfo(this._config, this._info); this._debug.info(("browserInfo: " + this._browserInfo.toURLString()), VisualDebugMode.advanced); }; this._x10Module = new X10(); this._eventTracker = new X10(); this._hasInitData = true; }; if (this._config.hasSiteOverlay){ this._debug.warning("Site Overlay is not supported"); }; if (this._debug.verbose){ }; } private function _handleCookie():void{ var _local1:String; var _local2:String; var _local3:Array; var _local4:String; if (this._config.allowLinker){ }; this._buffer.createSO(); if (((this._buffer.hasUTMA()) && (!(this._buffer.utma.isEmpty())))){ if (((!(this._buffer.hasUTMB())) || (!(this._buffer.hasUTMC())))){ this._buffer.updateUTMA(this._timeStamp); this._noSessionInformation = true; }; if (this._debug.verbose){ this._debug.info(("from cookie " + this._buffer.utma.toString()), VisualDebugMode.geek); }; } else { this._debug.info("create a new utma", VisualDebugMode.advanced); this._buffer.utma.domainHash = this._domainHash; this._buffer.utma.sessionId = this._getUniqueSessionId(); this._buffer.utma.firstTime = this._timeStamp; this._buffer.utma.lastTime = this._timeStamp; this._buffer.utma.currentTime = this._timeStamp; this._buffer.utma.sessionCount = 1; if (this._debug.verbose){ this._debug.info(this._buffer.utma.toString(), VisualDebugMode.geek); }; this._noSessionInformation = true; this._isNewVisitor = true; }; if (((this._adSense.gaGlobal) && ((this._adSense.dh == String(this._domainHash))))){ if (this._adSense.sid){ this._buffer.utma.currentTime = Number(this._adSense.sid); if (this._debug.verbose){ _local1 = ""; _local1 = (_local1 + "AdSense sid found\n"); _local1 = (_local1 + (((("Override currentTime(" + this._buffer.utma.currentTime) + ") from AdSense sid(") + Number(this._adSense.sid)) + ")")); this._debug.info(_local1, VisualDebugMode.geek); }; }; if (this._isNewVisitor){ if (this._adSense.sid){ this._buffer.utma.lastTime = Number(this._adSense.sid); if (this._debug.verbose){ _local2 = ""; _local2 = (_local2 + "AdSense sid found (new visitor)\n"); _local2 = (_local2 + (((("Override lastTime(" + this._buffer.utma.lastTime) + ") from AdSense sid(") + Number(this._adSense.sid)) + ")")); this._debug.info(_local2, VisualDebugMode.geek); }; }; if (this._adSense.vid){ _local3 = this._adSense.vid.split("."); this._buffer.utma.sessionId = Number(_local3[0]); this._buffer.utma.firstTime = Number(_local3[1]); if (this._debug.verbose){ _local4 = ""; _local4 = (_local4 + "AdSense vid found (new visitor)\n"); _local4 = (_local4 + (((("Override sessionId(" + this._buffer.utma.sessionId) + ") from AdSense vid(") + Number(_local3[0])) + ")\n")); _local4 = (_local4 + (((("Override firstTime(" + this._buffer.utma.firstTime) + ") from AdSense vid(") + Number(_local3[1])) + ")")); this._debug.info(_local4, VisualDebugMode.geek); }; }; if (this._debug.verbose){ this._debug.info(("AdSense modified : " + this._buffer.utma.toString()), VisualDebugMode.geek); }; }; }; this._buffer.utmb.domainHash = this._domainHash; if (isNaN(this._buffer.utmb.trackCount)){ this._buffer.utmb.trackCount = 0; }; if (isNaN(this._buffer.utmb.token)){ this._buffer.utmb.token = this._config.tokenCliff; }; if (isNaN(this._buffer.utmb.lastTime)){ this._buffer.utmb.lastTime = this._buffer.utma.currentTime; }; this._buffer.utmc.domainHash = this._domainHash; if (this._debug.verbose){ this._debug.info(this._buffer.utmb.toString(), VisualDebugMode.advanced); this._debug.info(this._buffer.utmc.toString(), VisualDebugMode.advanced); }; } private function _isNotGoogleSearch():Boolean{ var _local1:String = this._config.domainName; var _local2 = (_local1.indexOf("www.google.") < 0); var _local3 = (_local1.indexOf(".google.") < 0); var _local4 = (_local1.indexOf("google.") < 0); var _local5 = (_local1.indexOf("google.org") > -1); return (((((((((_local2) || (_local3))) || (_local4))) || (!((this._config.cookiePath == "/"))))) || (_local5))); } private function _doTracking():Boolean{ if (((((!((this._info.protocol == "file"))) && (!((this._info.protocol == ""))))) && (this._isNotGoogleSearch()))){ return (true); }; if (this._config.allowLocalTracking){ return (true); }; return (false); } private function _updateDomainName():void{ var _local1:String; if (this._config.domain.mode == DomainNameMode.auto){ _local1 = this._info.domainName; if (_local1.substring(0, 4) == "www."){ _local1 = _local1.substring(4); }; this._config.domain.name = _local1; }; this._config.domainName = this._config.domain.name.toLowerCase(); this._debug.info(("domain name: " + this._config.domainName), VisualDebugMode.advanced); } private function _formatReferrer():String{ var _local2:String; var _local3:uri; var _local4:uri; var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local1:String = this._info.referrer; if ((((_local1 == "")) || ((_local1 == "localhost")))){ _local1 = "-"; } else { _local2 = this._info.domainName; _local3 = new uri(_local1); _local4 = new uri(("http://" + _local2)); if (_local3.host == _local2){ return ("-"); }; _local5 = getDomainFromHost(_local3.host); _local6 = getSubDomainFromHost(_local3.host); _local7 = getDomainFromHost(_local4.host); _local8 = getSubDomainFromHost(_local4.host); if (_local7 == _local5){ if (_local8 != _local6){ _local1 = "0"; }; }; if ((((_local1.charAt(0) == "[")) && ((_local1.charAt((_local1.length - 1)) == "]")))){ _local1 = "-"; }; }; this._debug.info(("formated referrer: " + _local1), VisualDebugMode.advanced); return (_local1); } private function _generateUserDataHash():Number{ var _local1 = ""; _local1 = (_local1 + this._info.appName); _local1 = (_local1 + this._info.appVersion); _local1 = (_local1 + this._info.language); _local1 = (_local1 + this._info.platform); _local1 = (_local1 + this._info.userAgent); _local1 = (_local1 + (((this._info.screenWidth + "x") + this._info.screenHeight) + this._info.screenColorDepth)); _local1 = (_local1 + this._info.referrer); return (generateHash(_local1)); } private function _getUniqueSessionId():Number{ var _local1:Number = ((generate32bitRandom() ^ this._generateUserDataHash()) * 2147483647); this._debug.info(("Session ID: " + _local1), VisualDebugMode.geek); return (_local1); } private function _getDomainHash():Number{ if (((((!(this._config.domainName)) || ((this._config.domainName == "")))) || ((this._config.domain.mode == DomainNameMode.none)))){ this._config.domainName = ""; return (1); }; this._updateDomainName(); if (this._config.allowDomainHash){ return (generateHash(this._config.domainName)); }; return (1); } private function _visitCode():Number{ if (this._debug.verbose){ this._debug.info(("visitCode: " + this._buffer.utma.sessionId), VisualDebugMode.geek); }; return (this._buffer.utma.sessionId); } private function _takeSample():Boolean{ if (this._debug.verbose){ this._debug.info((((("takeSample: (" + (this._visitCode() % 10000)) + ") < (") + (this._config.sampleRate * 10000)) + ")"), VisualDebugMode.geek); }; return (((this._visitCode() % 10000) < (this._config.sampleRate * 10000))); } public function getAccount():String{ this._debug.info("getAccount()"); return (this._account); } public function getVersion():String{ this._debug.info("getVersion()"); return (this._config.version); } public function resetSession():void{ this._debug.info("resetSession()"); this._buffer.resetCurrentSession(); } public function setSampleRate(_arg1:Number):void{ if (_arg1 < 0){ this._debug.warning("sample rate can not be negative, ignoring value."); } else { this._config.sampleRate = _arg1; }; this._debug.info((("setSampleRate( " + this._config.sampleRate) + " )")); } public function setSessionTimeout(_arg1:int):void{ this._config.sessionTimeout = _arg1; this._debug.info((("setSessionTimeout( " + this._config.sessionTimeout) + " )")); } public function setVar(_arg1:String):void{ var _local2:Variables; if (((!((_arg1 == ""))) && (this._isNotGoogleSearch()))){ this._initData(); this._buffer.utmv.domainHash = this._domainHash; this._buffer.utmv.value = encodeURI(_arg1); if (this._debug.verbose){ this._debug.info(this._buffer.utmv.toString(), VisualDebugMode.geek); }; this._debug.info((("setVar( " + _arg1) + " )")); if (this._takeSample()){ _local2 = new Variables(); _local2.utmt = "var"; this._gifRequest.send(this._account, _local2); }; } else { this._debug.warning((("setVar \"" + _arg1) + "\" is ignored")); }; } public function trackPageview(_arg1:String=""):void{ this._debug.info((("trackPageview( " + _arg1) + " )")); if (this._doTracking()){ this._initData(); this._trackMetrics(_arg1); this._noSessionInformation = false; } else { this._debug.warning((("trackPageview( " + _arg1) + " ) failed")); }; } private function _renderMetricsSearchVariables(_arg1:String=""):Variables{ var _local4:Variables; var _local2:Variables = new Variables(); _local2.URIencode = true; var _local3:DocumentInfo = new DocumentInfo(this._config, this._info, this._formatedReferrer, _arg1, this._adSense); this._debug.info(("docInfo: " + _local3.toURLString()), VisualDebugMode.geek); if (this._config.campaignTracking){ }; var _local5:Variables = this._browserInfo.toVariables(); _local2.join(_local3.toVariables(), _local5, _local4); return (_local2); } private function _trackMetrics(_arg1:String=""):void{ var _local2:Variables; var _local3:Variables; var _local4:Variables; var _local5:EventInfo; if (this._takeSample()){ _local2 = new Variables(); _local2.URIencode = true; if (((this._x10Module) && (this._x10Module.hasData()))){ _local5 = new EventInfo(false, this._x10Module); _local3 = _local5.toVariables(); }; _local4 = this._renderMetricsSearchVariables(_arg1); _local2.join(_local3, _local4); this._gifRequest.send(this._account, _local2); }; } public function setAllowAnchor(_arg1:Boolean):void{ } public function setCampContentKey(_arg1:String):void{ } public function setCampMediumKey(_arg1:String):void{ } public function setCampNameKey(_arg1:String):void{ } public function setCampNOKey(_arg1:String):void{ } public function setCampSourceKey(_arg1:String):void{ } public function setCampTermKey(_arg1:String):void{ } public function setCampaignTrack(_arg1:Boolean):void{ } public function setCookieTimeout(_arg1:int):void{ } public function cookiePathCopy(_arg1:String):void{ this._debug.warning((("cookiePathCopy( " + _arg1) + " ) not implemented")); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ this._initData(); this._debug.info((((("getLinkerUrl( " + _arg1) + ", ") + _arg2.toString()) + " )")); return (this._buffer.getLinkerUrl(_arg1, _arg2)); } public function link(_arg1:String, _arg2:Boolean=false):void{ var targetUrl = _arg1; var useHash = _arg2; this._initData(); var out:String = this._buffer.getLinkerUrl(targetUrl, useHash); var request:URLRequest = new URLRequest(out); this._debug.info((("link( " + [targetUrl, useHash].join(",")) + " )")); try { navigateToURL(request, "_top"); } catch(e:Error) { _debug.warning(("An error occured in link() msg: " + e.message)); }; } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ this._debug.warning("linkByPost not implemented in AS3 mode"); } public function setAllowHash(_arg1:Boolean):void{ this._config.allowDomainHash = _arg1; this._debug.info((("setAllowHash( " + this._config.allowDomainHash) + " )")); } public function setAllowLinker(_arg1:Boolean):void{ this._config.allowLinker = _arg1; this._debug.info((("setAllowLinker( " + this._config.allowLinker) + " )")); } public function setCookiePath(_arg1:String):void{ this._config.cookiePath = _arg1; this._debug.info((("setCookiePath( " + this._config.cookiePath) + " )")); } public function setDomainName(_arg1:String):void{ if (_arg1 == "auto"){ this._config.domain.mode = DomainNameMode.auto; } else { if (_arg1 == "none"){ this._config.domain.mode = DomainNameMode.none; } else { this._config.domain.mode = DomainNameMode.custom; this._config.domain.name = _arg1; }; }; this._updateDomainName(); this._debug.info((("setDomainName( " + this._config.domainName) + " )")); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ } public function trackTrans():void{ } private function _sendXEvent(_arg1:X10=null):void{ var _local2:Variables; var _local3:EventInfo; var _local4:Variables; var _local5:Variables; if (this._takeSample()){ _local2 = new Variables(); _local2.URIencode = true; _local3 = new EventInfo(true, this._x10Module, _arg1); _local4 = _local3.toVariables(); _local5 = this._renderMetricsSearchVariables(); _local2.join(_local4, _local5); this._gifRequest.send(this._account, _local2, false, true); }; } public function createEventTracker(_arg1:String):EventTracker{ this._debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ return (false); } public function addIgnoredOrganic(_arg1:String):void{ this._debug.info((("addIgnoredOrganic( " + _arg1) + " )")); this._config.organic.addIgnoredKeyword(_arg1); } public function addIgnoredRef(_arg1:String):void{ this._debug.info((("addIgnoredRef( " + _arg1) + " )")); this._config.organic.addIgnoredReferral(_arg1); } public function addOrganic(_arg1:String, _arg2:String):void{ this._debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); this._config.organic.addSource(_arg1, _arg2); } public function clearIgnoredOrganic():void{ this._debug.info("clearIgnoredOrganic()"); this._config.organic.clearIgnoredKeywords(); } public function clearIgnoredRef():void{ this._debug.info("clearIgnoredRef()"); this._config.organic.clearIgnoredReferrals(); } public function clearOrganic():void{ this._debug.info("clearOrganic()"); this._config.organic.clearEngines(); } public function getClientInfo():Boolean{ this._debug.info("getClientInfo()"); return (this._config.detectClientInfo); } public function getDetectFlash():Boolean{ this._debug.info("getDetectFlash()"); return (this._config.detectFlash); } public function getDetectTitle():Boolean{ this._debug.info("getDetectTitle()"); return (this._config.detectTitle); } public function setClientInfo(_arg1:Boolean):void{ this._config.detectClientInfo = _arg1; this._debug.info((("setClientInfo( " + this._config.detectClientInfo) + " )")); } public function setDetectFlash(_arg1:Boolean):void{ this._config.detectFlash = _arg1; this._debug.info((("setDetectFlash( " + this._config.detectFlash) + " )")); } public function setDetectTitle(_arg1:Boolean):void{ this._config.detectTitle = _arg1; this._debug.info((("setDetectTitle( " + this._config.detectTitle) + " )")); } public function getLocalGifPath():String{ this._debug.info("getLocalGifPath()"); return (this._config.localGIFpath); } public function getServiceMode():ServerOperationMode{ this._debug.info("getServiceMode()"); return (this._config.serverMode); } public function setLocalGifPath(_arg1:String):void{ this._config.localGIFpath = _arg1; this._debug.info((("setLocalGifPath( " + this._config.localGIFpath) + " )")); } public function setLocalRemoteServerMode():void{ this._config.serverMode = ServerOperationMode.both; this._debug.info("setLocalRemoteServerMode()"); } public function setLocalServerMode():void{ this._config.serverMode = ServerOperationMode.local; this._debug.info("setLocalServerMode()"); } public function setRemoteServerMode():void{ this._config.serverMode = ServerOperationMode.remote; this._debug.info("setRemoteServerMode()"); } } }//package com.google.analytics.v4
Section 46
//AnalyticsTracker (com.google.analytics.AnalyticsTracker) package com.google.analytics { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher { function get account():String; function set account(_arg1:String):void; function get config():Configuration; function set config(_arg1:Configuration):void; function get debug():DebugConfiguration; function set debug(_arg1:DebugConfiguration):void; function get mode():String; function set mode(_arg1:String):void; function get visualDebug():Boolean; function set visualDebug(_arg1:Boolean):void; function isReady():Boolean; } }//package com.google.analytics
Section 47
//API (com.google.analytics.API) package com.google.analytics { import core.*; public class API { public static var version:version = new version(); version.major = 1; version.minor = 1; version.build = 0; version.revision = "$Rev: 452 $ ".split(" ")[1]; } }//package com.google.analytics
Section 48
//GATracker (com.google.analytics.GATracker) package com.google.analytics { import flash.display.*; import flash.events.*; import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.external.*; import core.*; import com.google.analytics.events.*; public class GATracker implements AnalyticsTracker { private var _ready:Boolean;// = false private var _display:DisplayObject; private var _eventDispatcher:EventDispatcher; private var _tracker:GoogleAnalyticsAPI; private var _config:Configuration; private var _debug:DebugConfiguration; private var _env:Environment; private var _buffer:Buffer; private var _gifRequest:GIFRequest; private var _jsproxy:JavascriptProxy; private var _dom:HTMLDOM; private var _adSense:AdSenseGlobals; private var _idleTimer:IdleTimer; private var _account:String; private var _mode:String; private var _visualDebug:Boolean; public static var autobuild:Boolean = true; public static var version:version = API.version; public function GATracker(_arg1:DisplayObject, _arg2:String, _arg3:String="AS3", _arg4:Boolean=false, _arg5:Configuration=null, _arg6:DebugConfiguration=null){ this._display = _arg1; this._eventDispatcher = new EventDispatcher(this); this._tracker = new TrackerCache(); this.account = _arg2; this.mode = _arg3; this.visualDebug = _arg4; if (!_arg6){ this.debug = new DebugConfiguration(); }; if (!_arg5){ this.config = new Configuration(_arg6); } else { this.config = _arg5; }; if (autobuild){ this._factory(); }; } private function _factory():void{ var _local1:GoogleAnalyticsAPI; this._jsproxy = new JavascriptProxy(this.debug); var _local2:TrackerCache = (this._tracker as TrackerCache); switch (this.mode){ case TrackerMode.AS3: default: _local1 = this._trackerFactory(); }; if (!_local2.isEmpty()){ _local2.tracker = _local1; _local2.flush(); }; this._tracker = _local1; this._ready = true; this.dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this)); } private function _trackerFactory():GoogleAnalyticsAPI{ this.debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + this.account)); this._adSense = new AdSenseGlobals(this.debug); this._dom = new HTMLDOM(this.debug); this._dom.cacheProperties(); this._env = new Environment("", "", "", this.debug, this._dom); this._buffer = new Buffer(this.config, this.debug, false); this._gifRequest = new GIFRequest(this.config, this.debug, this._buffer, this._env); this._idleTimer = new IdleTimer(this.config, this.debug, this._display, this._buffer); this._env.url = this._display.stage.loaderInfo.url; return (new Tracker(this.account, this.config, this.debug, this._env, this._buffer, this._gifRequest, this._adSense, null)); } public function get account():String{ return (this._account); } public function set account(_arg1:String):void{ this._account = _arg1; } public function get config():Configuration{ return (this._config); } public function set config(_arg1:Configuration):void{ this._config = _arg1; } public function get debug():DebugConfiguration{ return (this._debug); } public function set debug(_arg1:DebugConfiguration):void{ this._debug = _arg1; } public function isReady():Boolean{ return (this._ready); } public function get mode():String{ return (this._mode); } public function set mode(_arg1:String):void{ this._mode = _arg1; } public function get visualDebug():Boolean{ return (this._visualDebug); } public function set visualDebug(_arg1:Boolean):void{ this._visualDebug = _arg1; } public function build():void{ if (!this.isReady()){ this._factory(); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ this._eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function dispatchEvent(_arg1:Event):Boolean{ return (this._eventDispatcher.dispatchEvent(_arg1)); } public function hasEventListener(_arg1:String):Boolean{ return (this._eventDispatcher.hasEventListener(_arg1)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ this._eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function willTrigger(_arg1:String):Boolean{ return (this._eventDispatcher.willTrigger(_arg1)); } public function getAccount():String{ return (this._tracker.getAccount()); } public function getVersion():String{ return (this._tracker.getVersion()); } public function resetSession():void{ this._tracker.resetSession(); } public function setSampleRate(_arg1:Number):void{ this._tracker.setSampleRate(_arg1); } public function setSessionTimeout(_arg1:int):void{ this._tracker.setSessionTimeout(_arg1); } public function setVar(_arg1:String):void{ this._tracker.setVar(_arg1); } public function trackPageview(_arg1:String=""):void{ this._tracker.trackPageview(_arg1); } public function setAllowAnchor(_arg1:Boolean):void{ this._tracker.setAllowAnchor(_arg1); } public function setCampContentKey(_arg1:String):void{ this._tracker.setCampContentKey(_arg1); } public function setCampMediumKey(_arg1:String):void{ this._tracker.setCampMediumKey(_arg1); } public function setCampNameKey(_arg1:String):void{ this._tracker.setCampNameKey(_arg1); } public function setCampNOKey(_arg1:String):void{ this._tracker.setCampNOKey(_arg1); } public function setCampSourceKey(_arg1:String):void{ this._tracker.setCampSourceKey(_arg1); } public function setCampTermKey(_arg1:String):void{ this._tracker.setCampTermKey(_arg1); } public function setCampaignTrack(_arg1:Boolean):void{ this._tracker.setCampaignTrack(_arg1); } public function setCookieTimeout(_arg1:int):void{ this._tracker.setCookieTimeout(_arg1); } public function cookiePathCopy(_arg1:String):void{ this._tracker.cookiePathCopy(_arg1); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ return (this._tracker.getLinkerUrl(_arg1, _arg2)); } public function link(_arg1:String, _arg2:Boolean=false):void{ this._tracker.link(_arg1, _arg2); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ this._tracker.linkByPost(_arg1, _arg2); } public function setAllowHash(_arg1:Boolean):void{ this._tracker.setAllowHash(_arg1); } public function setAllowLinker(_arg1:Boolean):void{ this._tracker.setAllowLinker(_arg1); } public function setCookiePath(_arg1:String):void{ this._tracker.setCookiePath(_arg1); } public function setDomainName(_arg1:String):void{ this._tracker.setDomainName(_arg1); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ this._tracker.addItem(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ this._tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function trackTrans():void{ this._tracker.trackTrans(); } public function createEventTracker(_arg1:String):EventTracker{ return (this._tracker.createEventTracker(_arg1)); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ return (this._tracker.trackEvent(_arg1, _arg2, _arg3, _arg4)); } public function addIgnoredOrganic(_arg1:String):void{ this._tracker.addIgnoredOrganic(_arg1); } public function addIgnoredRef(_arg1:String):void{ this._tracker.addIgnoredRef(_arg1); } public function addOrganic(_arg1:String, _arg2:String):void{ this._tracker.addOrganic(_arg1, _arg2); } public function clearIgnoredOrganic():void{ this._tracker.clearIgnoredOrganic(); } public function clearIgnoredRef():void{ this._tracker.clearIgnoredRef(); } public function clearOrganic():void{ this._tracker.clearOrganic(); } public function getClientInfo():Boolean{ return (this._tracker.getClientInfo()); } public function getDetectFlash():Boolean{ return (this._tracker.getDetectFlash()); } public function getDetectTitle():Boolean{ return (this._tracker.getDetectTitle()); } public function setClientInfo(_arg1:Boolean):void{ this._tracker.setClientInfo(_arg1); } public function setDetectFlash(_arg1:Boolean):void{ this._tracker.setDetectFlash(_arg1); } public function setDetectTitle(_arg1:Boolean):void{ this._tracker.setDetectTitle(_arg1); } public function getLocalGifPath():String{ return (this._tracker.getLocalGifPath()); } public function getServiceMode():ServerOperationMode{ return (this._tracker.getServiceMode()); } public function setLocalGifPath(_arg1:String):void{ this._tracker.setLocalGifPath(_arg1); } public function setLocalRemoteServerMode():void{ this._tracker.setLocalRemoteServerMode(); } public function setLocalServerMode():void{ this._tracker.setLocalServerMode(); } public function setRemoteServerMode():void{ this._tracker.setRemoteServerMode(); } } var _local1:* = ServerOperationMode; return (_local1); }//package com.google.analytics
Section 49
//userAgent (core.strings.userAgent) package core.strings { public const userAgent:Function; this.userAgent = function (_arg1:String="", _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false):String{ var _local13:Class; var _local14:String; var _local15:String; var _local5 = (Security.sandboxType == "application"); if (((_local5) && (_arg4))){ _local13 = (ApplicationDomain.currentDomain.getDefinition("flash.net.URLRequestDefaults") as Class); if (((_local13) && (("userAgent" in _local13)))){ return (_local13["userAgent"]); }; }; var _local6:String = (_arg4) ? "Mozilla/5.0" : ("Tamarin/" + System.vmVersion); var _local7:String = (_local5) ? "AdobeAIR" : "AdobeFlashPlayer"; var _local8:String = Capabilities.version.split(" ")[1].split(",").join("."); var _local9:Array = []; var _local10:String = Capabilities.manufacturer.split("Adobe ")[1]; var _local11:String = Capabilities.playerType; _local9.push(_local10, _local11); if (!_arg3){ _local14 = Capabilities.os; _local15 = (_local5) ? Capabilities["languages"] : Capabilities.language; _local9.push(_local14, _local15); }; if (Capabilities.isDebugger){ _local9.push("DEBUG"); }; var _local12 = ""; _local12 = (_local12 + _local6); _local12 = (_local12 + ((" (" + _local9.join("; ")) + ")")); if (((!(_arg2)) || ((_arg1 == "")))){ _local12 = (_local12 + (((" " + _local7) + "/") + _local8)); }; if (_arg1 != ""){ _local12 = (_local12 + (" " + _arg1)); }; return (_local12); }; }//package core.strings
Section 50
//uri (core.uri) package core { public class uri { private var _source:String;// = "" private var _scheme:String;// = "" private var _host:String;// = "" private var _username:String;// = "" private var _password:String;// = "" private var _port:int;// = -1 private var _path:String;// = "" private var _query:String;// = "" private var _fragment:String;// = "" private var _r:RegExp; public function uri(_arg1:String){ this._r = /\\/g; super(); this._source = _arg1; this._parse(_arg1); } private function _parseUnixAbsoluteFilePath(_arg1:String):void{ this.scheme = "file"; this._port = -1; this._fragment = ""; this._query = ""; this._host = ""; this._path = ""; if (_arg1.substr(0, 2) == "//"){ while (_arg1.charAt(0) == "/") { _arg1 = _arg1.substr(1); }; this._path = ("/" + _arg1); }; if (!this._path){ this._path = _arg1; }; } private function _parseWindowsAbsoluteFilePath(_arg1:String):void{ if ((((((_arg1.length > 2)) && (!((_arg1.charAt(2) == "\\"))))) && (!((_arg1.charAt(2) == "/"))))){ return; }; this.scheme = "file"; this._port = -1; this._fragment = ""; this._query = ""; this._host = ""; this._path = ("/" + _arg1.replace(this._r, "/")); } private function _parseWindowsUNC(_arg1:String):void{ this.scheme = "file"; this._port = -1; this._fragment = ""; this._query = ""; while (_arg1.charAt(0) == "\\") { _arg1 = _arg1.substr(1); }; var _local2:int = _arg1.indexOf("\\"); if (_local2 > 0){ this._path = _arg1.substring(_local2); this._host = _arg1.substring(0, _local2); } else { this._host = _arg1; this._path = ""; }; this._path = this._path.replace(this._r, "/"); } private function _parse(_arg1:String):void{ var _local5:String; var _local6:String; var _local7:String; var _local8:String; var _local9:int; var _local10:String; var _local11:Boolean; var _local2:int = _arg1.indexOf(":"); if (_local2 < 0){ if (_arg1.charAt(0) == "/"){ this._parseUnixAbsoluteFilePath(_arg1); } else { if (_arg1.substr(0, 2) == "\\\\"){ this._parseWindowsUNC(_arg1); }; }; return; } else { if (_local2 == 1){ this._parseWindowsAbsoluteFilePath(_arg1); return; }; }; var _local3:RegExp = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)([?]([^#]*))?(#(.*))?", null); var _local4:Object = _local3.exec(_arg1); if (((_local4[1]) && (_local4[2]))){ this.scheme = _local4[2]; }; if (_local4[3]){ _local5 = _local4[4]; _local6 = ""; if (_local5.indexOf("@") > -1){ _local7 = _local5.split("@")[0]; _local6 = _local5.split("@")[1]; if (_local7.indexOf(":") != -1){ this._username = _local7.split(":")[0]; this._password = _local7.split(":")[1]; } else { this._username = _local7; }; } else { _local6 = _local5; }; if (_local6.indexOf(":") > -1){ _local8 = _local6.split(":")[1]; _local11 = true; _local9 = 0; while (_local9 < _local8.length) { _local10 = _local8.charAt(_local9); if (!((("0" <= _local10)) && ((_local10 <= "9")))){ _local11 = false; }; _local9++; }; if (_local11){ _local6 = _local6.split(":")[0]; if (((_local8) && ((_local8.length > 0)))){ this.port = parseInt(_local8); }; }; }; this.host = _local6; }; if (_local4[5]){ this.path = _local4[5]; }; if (_local4[6]){ this._query = _local4[7]; }; if (_local4[8]){ this._fragment = _local4[9]; }; } public function get authority():String{ var _local1 = ""; if (this.userinfo){ _local1 = (_local1 + (this.userinfo + "@")); }; _local1 = (_local1 + this.host); if (((!((this.host == ""))) && ((this.port > -1)))){ _local1 = (_local1 + (":" + this.port)); }; return (_local1); } public function get fragment():String{ return (this._fragment); } public function set fragment(_arg1:String):void{ this._fragment = _arg1; } public function get host():String{ return (this._host); } public function set host(_arg1:String):void{ this._host = _arg1; } public function get path():String{ return (this._path); } public function set path(_arg1:String):void{ this._path = _arg1; } public function get port():int{ return (this._port); } public function set port(_arg1:int):void{ this._port = _arg1; } public function get scheme():String{ return (this._scheme); } public function set scheme(_arg1:String):void{ this._scheme = _arg1; } public function get source():String{ return (this._source); } public function get userinfo():String{ if (!this._username){ return (""); }; var _local1 = ""; _local1 = (_local1 + this._username); _local1 = (_local1 + (":" + this._password)); return (_local1); } public function get query():String{ return (this._query); } public function set query(_arg1:String):void{ this._query = _arg1; } public function toString():String{ var _local1 = ""; if (this.scheme){ _local1 = (_local1 + (this.scheme + ":")); }; if (this.authority){ _local1 = (_local1 + ("//" + this.authority)); }; if ((((this.authority == "")) && ((this.scheme == "file")))){ _local1 = (_local1 + "//"); }; _local1 = (_local1 + this.path); if (this.query){ _local1 = (_local1 + ("?" + this.query)); }; if (this.fragment){ _local1 = (_local1 + ("#" + this.fragment)); }; return (_local1); } public function valueOf():String{ return (this.toString()); } } }//package core
Section 51
//version (core.version) package core { public class version { private var _value:Number;// = 0 public function version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){ this._value = ((((_arg1 << 28) | (_arg2 << 24)) | (_arg3 << 16)) | _arg4); } public function get build():uint{ return (((this._value & 0xFF0000) >>> 16)); } public function set build(_arg1:uint):void{ this._value = ((this._value & 4278255615) | (_arg1 << 16)); } public function get major():uint{ return ((this._value >>> 28)); } public function set major(_arg1:uint):void{ this._value = ((this._value & 268435455) | (_arg1 << 28)); } public function get minor():uint{ return (((this._value & 251658240) >>> 24)); } public function set minor(_arg1:uint):void{ this._value = ((this._value & 4043309055) | (_arg1 << 24)); } public function get revision():uint{ return ((this._value & 0xFFFF)); } public function set revision(_arg1:uint):void{ this._value = ((this._value & 4294901760) | _arg1); } public function toString(_arg1:int=0, _arg2:String="."):String{ var _local4:int; var _local5:int; var _local3:Array = [this.major, this.minor, this.build, this.revision]; if ((((_arg1 > 0)) && ((_arg1 < 5)))){ _local3 = _local3.slice(0, _arg1); } else { _local5 = _local3.length; _local4 = (_local5 - 1); while (_local4 > 0) { if (_local3[_local4] == 0){ _local3.pop(); } else { break; }; _local4--; }; }; return (_local3.join(_arg2)); } public function valueOf():Number{ return (this._value); } } }//package core
Section 52
//ByteArrayAsset (mx.core.ByteArrayAsset) package mx.core { import flash.utils.*; public class ByteArrayAsset extends ByteArray implements IFlexAsset { mx_internal static const VERSION:String = "3.3.0.4852"; } }//package mx.core
Section 53
//IFlexAsset (mx.core.IFlexAsset) package mx.core { public interface IFlexAsset { } }//package mx.core
Section 54
//mx_internal (mx.core.mx_internal) package mx.core { public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal"; }//package mx.core
Section 55
//Debuggable (org.openvideoads.base.Debuggable) package org.openvideoads.base { import org.openvideoads.util.*; import flash.utils.*; import flash.external.*; public class Debuggable { protected var _uid:String;// = null public static var DEBUG_VAST_TEMPLATE:int = 2; protected static var _level:int = 0; public static var DEBUG_REGION_FORMATION:int = 16; public static var DEBUG_TRACKING_EVENTS:int = 524288; public static var DEBUG_VPAID:int = 0x0800; public static var DEBUG_CUEPOINT_FORMATION:int = 32; public static var DEBUG_CONTENT_ERRORS:int = 0x0800; public static var DEBUG_DATA_ERROR:int = 0x0100; public static var DEBUG_MOUSE_EVENTS:int = 0x1000; public static var DEBUG_ALWAYS:int = -1; public static var DEBUG_TRACKING_TABLE:int = 65536; public static var DEBUG_NONE:int = 0; public static var DEBUG_HTTP_CALLS:int = 0x0200; protected static var _activeDebuggers:String = "firebug"; public static var DEBUG_CONFIG:int = 64; public static var DEBUG_CLICKTHROUGH_EVENTS:int = 128; public static var DEBUG_CUEPOINT_EVENTS:int = 4; public static var DEBUG_FATAL:int = 0x0400; public static var DEBUG_SEGMENT_FORMATION:int = 8; public static var DEBUG_ANALYTICS:int = 262144; public static var DEBUG_PLAYLIST:int = 0x2000; public static var DEBUG_DISPLAY_EVENTS:int = 131072; public static var DEBUG_API:int = 0x8000; public static var _instance:Debuggable; public static var DEBUG_ALL:int = 1; public static var DEBUG_JAVASCRIPT:int = 0x4000; public function Debuggable(){ _uid = ObjectUtils.createUID(); } public function doTrace(_arg1:Object, _arg2:int=1):void{ var o = _arg1; var level = _arg2; if (printing(level)){ try { ExternalInterface.call("console.log", o); } catch(e:Error) { }; }; } public function toJSObject():Object{ return (new Object()); } public function configure(_arg1:Object):void{ if (((!((_arg1 == null))) && (((_arg1 is String) == false)))){ if (_arg1.levels != undefined){ setLevelFromString(_arg1.levels); }; if (_arg1.debugger != undefined){ activeDebuggers = _arg1.debugger; }; }; } public function set level(_arg1:int):void{ _level = _arg1; doLog(("Debug level has been set to " + _level)); } public function printStackTrace(_arg1:int=1):void{ var _local2:Error = new Error(); doLog(_local2.getStackTrace(), _arg1); } private function getClassName():String{ var _local1:Array = getQualifiedClassName(this).split("::"); if (((!((_local1 == null))) && ((_local1.length == 2)))){ return (_local1[1]); }; return (""); } public function get uid():String{ return (_uid); } public function printing(_arg1:int=1):Boolean{ return ((((_arg1 == Debuggable.DEBUG_ALWAYS)) || (((!((_level == Debuggable.DEBUG_NONE))) && ((((((_level == Debuggable.DEBUG_ALL)) || ((_arg1 == Debuggable.DEBUG_ALL)))) || ((_level & _arg1)))))))); } public function set activeDebuggers(_arg1:String):void{ _activeDebuggers = _arg1; doLog(("Active debuggers have been set to " + _activeDebuggers)); } public function doLog(_arg1:String, _arg2:int=1):void{ var data = _arg1; var level = _arg2; if (printing(level)){ try { ExternalInterface.call("console.log", ((((new Date().toTimeString() + " ") + getClassName()) + ": ") + data)); } catch(e:Error) { }; }; } protected function usingFirebug():Boolean{ return ((_activeDebuggers.toUpperCase().indexOf("FIREBUG") > -1)); } public function setLevelFromString(_arg1:String):void{ var _local2:Array; var _local3:int; var _local4:int; if (setLevelFromString != null){ _local2 = _arg1.split(/,/); if (_local2.length > 0){ _local3 = 0; _local4 = 0; while (_local4 < _local2.length) { switch (StringUtils.trim(_local2[_local4]).toUpperCase()){ case "NONE": _local3 = (_local3 | DEBUG_NONE); break; case "ALL": _local3 = (_local3 | DEBUG_ALL); break; case "VAST_TEMPLATE": _local3 = (_local3 | DEBUG_VAST_TEMPLATE); break; case "CUEPOINT_EVENTS": _local3 = (_local3 | DEBUG_CUEPOINT_EVENTS); break; case "SEGMENT_FORMATION": _local3 = (_local3 | DEBUG_SEGMENT_FORMATION); break; case "REGION_FORMATION": _local3 = (_local3 | DEBUG_REGION_FORMATION); break; case "CUEPOINT_FORMATION": _local3 = (_local3 | DEBUG_CUEPOINT_FORMATION); break; case "CONFIG": _local3 = (_local3 | DEBUG_CONFIG); break; case "CLICKTHROUGH_EVENTS": _local3 = (_local3 | DEBUG_CLICKTHROUGH_EVENTS); break; case "DATA_ERROR": _local3 = (_local3 | DEBUG_DATA_ERROR); break; case "HTTP_CALLS": _local3 = (_local3 | DEBUG_HTTP_CALLS); break; case "FATAL": _local3 = (_local3 | DEBUG_FATAL); break; case "VPAID": _local3 = (_local3 | DEBUG_VPAID); break; case "MOUSE_EVENTS": _local3 = (_local3 | DEBUG_MOUSE_EVENTS); break; case "PLAYLIST": _local3 = (_local3 | DEBUG_PLAYLIST); break; case "JAVASCRIPT": _local3 = (_local3 | DEBUG_JAVASCRIPT); break; case "API": _local3 = (_local3 | DEBUG_API); break; case "TRACKING_TABLE": _local3 = (_local3 | DEBUG_TRACKING_TABLE); break; case "DISPLAY_EVENTS": _local3 = (_local3 | DEBUG_DISPLAY_EVENTS); break; case "ANALYTICS": _local3 = (_local3 | DEBUG_ANALYTICS); break; case "TRACKING_EVENTS": _local3 = (_local3 | DEBUG_TRACKING_EVENTS); break; }; _local4++; }; level = _local3; }; }; } public static function getInstance():Debuggable{ if (_instance == null){ _instance = new (Debuggable); }; return (_instance); } public static function dumpObject(_arg1:Object):void{ var _local3:XML; Debuggable.getInstance().doLog("Properties:\n------------------", Debuggable.DEBUG_ALWAYS); var _local2:XML = describeType(_arg1); for each (_local3 in _local2.accessor) { Debuggable.getInstance().doLog(((_local3.@name + " : ") + _local3.@type), Debuggable.DEBUG_ALWAYS); }; } } }//package org.openvideoads.base
Section 56
//EventController (org.openvideoads.base.EventController) package org.openvideoads.base { import flash.events.*; public class EventController extends Debuggable { protected var _eventDispatcher:EventDispatcher; public function EventController(){ _eventDispatcher = new EventDispatcher(); super(); } public function dispatchEvent(_arg1:Event):void{ _eventDispatcher.dispatchEvent(_arg1); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } } }//package org.openvideoads.base
Section 57
//TimedLoaderEvent (org.openvideoads.events.TimedLoaderEvent) package org.openvideoads.events { import flash.events.*; public class TimedLoaderEvent extends Event { public static const TIMED_OUT:String = "timed-out"; public function TimedLoaderEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return (new TimedLoaderEvent(type, bubbles, cancelable)); } } }//package org.openvideoads.events
Section 58
//HoldingClip (org.openvideoads.plugin.flowplayer.streamer.clip.HoldingClip) package org.openvideoads.plugin.flowplayer.streamer.clip { import org.flowplayer.model.*; public class HoldingClip extends ScheduledClip { public function HoldingClip(_arg1=null){ if (((!((_arg1 == null))) && ((_arg1 is Clip)))){ this.metaData = _arg1.metaData; this.provider = _arg1.provider; this.baseUrl = _arg1.baseUrl; this.customProperties = _arg1.customProperties; this.accelerated = _arg1.accelerated; this.autoBuffering = _arg1.autoBuffering; this.bufferLength = _arg1.bufferLength; this.fadeInSpeed = _arg1.fadeInSpeed; this.fadeOutSpeed = _arg1.fadeOutSpeed; this.image = _arg1.image; this.linkUrl = _arg1.linkUrl; this.linkWindow = _arg1.linkWindow; this.live = _arg1.live; this.position = _arg1.position; this.scaling = _arg1.scaling; this.seekableOnBegin = _arg1.seekableOnBegin; this.setUrlResolvers(_arg1.urlResolvers); this.url = _arg1.url; this.autoPlay = _arg1.autoPlay; } else { if ((_arg1 is Object)){ this.url = _arg1.url; this.scaling = _arg1.scaling; this.autoPlay = _arg1.autoPlay; }; }; duration = 0; } } }//package org.openvideoads.plugin.flowplayer.streamer.clip
Section 59
//PlaylistConstructor (org.openvideoads.plugin.flowplayer.streamer.clip.PlaylistConstructor) package org.openvideoads.plugin.flowplayer.streamer.clip { import org.flowplayer.model.*; import org.openvideoads.base.*; import org.flowplayer.util.*; public class PlaylistConstructor { protected function doLog(_arg1:String, _arg2:int):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } private static function addChildClips(_arg1:Clip, _arg2:Array):void{ var _local4:Object; var _local3:int; for (;_local3 < _arg2.length;_local3++) { _local4 = _arg2[_local3]; if (_local4.hasOwnProperty("position") == false){ if (_local3 == 0){ _local4["position"] = 0; } else { if (_local3 == (_arg2.length - 1)){ _local4["position"] = -1; } else { continue; }; }; }; }; } public static function createClip(_arg1:Object, _arg2:Object=null, _arg3:Boolean=false):Clip{ var _local4:String; var _local5:String; var _local6:String; var _local7:Clip; var _local8:String; var _local9:Number; if (_arg1 != null){ if ((_arg1 is String)){ _arg1 = {url:_arg1}; }; if (_arg2 != null){ for (_local8 in _arg2) { if ((((_arg1.hasOwnProperty(_local8) == false)) && (!((_local8 == "playlist"))))){ _arg1[_local8] = _arg2[_local8]; }; }; }; _local4 = _arg1.url; _local5 = _arg1.baseUrl; _local6 = _local4; if (URLUtil.isCompleteURLWithProtocol(_local4)){ _local9 = _local4.lastIndexOf("/"); _local5 = _local4.substring(0, _local9); _local6 = _local4.substring((_local9 + 1)); }; _local7 = Clip.create(_arg1, _local6, _local5); (new PropertyBinder(_local7, "customProperties").copyProperties(_arg1) as Clip); if (((_arg3) || (_arg1.hasOwnProperty("position")))){ return (_local7); }; if (_arg1.hasOwnProperty("playlist")){ addChildClips(_local7, _arg1["playlist"]); } else { if (((_arg2) && (_arg2.hasOwnProperty("playlist")))){ addChildClips(_local7, _arg2["playlist"]); }; }; return (_local7); }; return (null); } public static function create(_arg1:Array, _arg2:Object):Array{ var _local5:Object; var _local3:Array = new Array(); var _local4:int; while (_local4 < _arg1.length) { _local5 = _arg1[_local4]; if ((_local5 is String)){ _local5 = {url:_local5}; }; _local3.push(createClip(_local5, _arg2)); _local4++; }; return (_local3); } } }//package org.openvideoads.plugin.flowplayer.streamer.clip
Section 60
//ScheduledClip (org.openvideoads.plugin.flowplayer.streamer.clip.ScheduledClip) package org.openvideoads.plugin.flowplayer.streamer.clip { import org.flowplayer.model.*; public class ScheduledClip extends Clip { protected var _originalDuration:int;// = 0 protected var _key:int;// = -1 protected var _marked:Boolean;// = false protected var _isOverlayLinear:Boolean;// = false public function get originalDuration():int{ return (_originalDuration); } public function get key():int{ return (_key); } public function set originalDuration(_arg1:int):void{ _originalDuration = _arg1; } public function get isOverlayLinear():Boolean{ return (_isOverlayLinear); } public function set marked(_arg1:Boolean):void{ _marked = _arg1; } public function get marked():Boolean{ return (_marked); } public function set isOverlayLinear(_arg1:Boolean):void{ _isOverlayLinear = _arg1; } public function set key(_arg1:int):void{ _key = _arg1; } } }//package org.openvideoads.plugin.flowplayer.streamer.clip
Section 61
//StaticPlayerConfig (org.openvideoads.plugin.flowplayer.streamer.config.StaticPlayerConfig) package org.openvideoads.plugin.flowplayer.streamer.config { import org.flowplayer.model.*; import org.openvideoads.base.*; public class StaticPlayerConfig extends Debuggable { public static function setClipConfig(_arg1:Clip, _arg2:Object):void{ if (_arg2.accelerated != undefined){ _arg1.accelerated = _arg2.accelerated; Debuggable.getInstance().doLog(("Custom Clip Config: Setting accelerated to " + _arg2.accelerated), Debuggable.DEBUG_CONFIG); }; if (_arg2.autoBuffering != undefined){ _arg1.autoBuffering = _arg2.autoBuffering; Debuggable.getInstance().doLog(("Custom Clip Config: Setting autoBuffering to " + _arg2.autoBuffering), Debuggable.DEBUG_CONFIG); }; if (_arg2.bufferLength != undefined){ _arg1.bufferLength = _arg2.bufferLength; Debuggable.getInstance().doLog(("Custom Clip Config: Setting bufferLength to " + _arg2.bufferLength), Debuggable.DEBUG_CONFIG); }; if (_arg2.fadeInSpeed != undefined){ _arg1.fadeInSpeed = _arg2.fadeInSpeed; Debuggable.getInstance().doLog(("Custom Clip Config: Setting fadeInSpeed to " + _arg2.fadeInSpeed), Debuggable.DEBUG_CONFIG); }; if (_arg2.fadeOutSpeed != undefined){ _arg1.fadeOutSpeed = _arg2.fadeOutSpeed; Debuggable.getInstance().doLog(("Custom Clip Config: Setting fadeOutSpeed to " + _arg2.fadeOutSpeed), Debuggable.DEBUG_CONFIG); }; if (_arg2.metaData != undefined){ _arg1.metaData = _arg2.metaData; Debuggable.getInstance().doLog(("Custom Clip Config: Setting metaData to " + _arg2.metaData), Debuggable.DEBUG_CONFIG); }; if (_arg2.scaling != undefined){ _arg1.scaling = ((_arg2.scaling is String)) ? MediaSize.forName(_arg2.scaling) : _arg2.scaling; Debuggable.getInstance().doLog(("Custom Clip Config: Setting scaling to " + _arg2.scaling), Debuggable.DEBUG_CONFIG); }; if (_arg2.seekableOnBegin != undefined){ _arg1.seekableOnBegin = _arg2.seekableOnBegin; Debuggable.getInstance().doLog(("Custom Clip Config: Setting seekableOnBegin to " + _arg2.seekableOnBegin), Debuggable.DEBUG_CONFIG); }; if (_arg2.autoPlay != undefined){ _arg1.autoPlay = _arg2.autoPlay; Debuggable.getInstance().doLog(("Custom Clip Config: Setting autoPlay to " + _arg2.autoPlay), Debuggable.DEBUG_CONFIG); }; if (_arg2.type != undefined){ _arg1.type = _arg2.type; Debuggable.getInstance().doLog(("Custom Clip Config: Setting type to " + _arg2.type), Debuggable.DEBUG_CONFIG); }; if (_arg2.customProperties != undefined){ _arg1.customProperties = _arg2.customProperties; Debuggable.getInstance().doLog(("Custom Clip Config: Setting custom properties to " + _arg2.customProperties), Debuggable.DEBUG_CONFIG); }; if (_arg2.image != undefined){ _arg1.image = _arg2.image; Debuggable.getInstance().doLog(("Custom Clip Config: Setting image to " + _arg2.image), Debuggable.DEBUG_CONFIG); }; if (_arg2.linkUrl != undefined){ _arg1.linkUrl = _arg2.linkUrl; Debuggable.getInstance().doLog(("Custom Clip Config: Setting linkUrl to " + _arg2.linkUrl), Debuggable.DEBUG_CONFIG); }; if (_arg2.linkWindow != undefined){ _arg1.linkWindow = _arg2.linkWindow; Debuggable.getInstance().doLog(("Custom Clip Config: Setting linkWindow to " + _arg2.linkWindow), Debuggable.DEBUG_CONFIG); }; if (_arg2.live != undefined){ _arg1.live = _arg2.live; Debuggable.getInstance().doLog(("Custom Clip Config: Setting live to " + _arg2.live), Debuggable.DEBUG_CONFIG); }; if (_arg2.position != undefined){ _arg1.position = _arg2.position; Debuggable.getInstance().doLog(("Custom Clip Config: Setting position to " + _arg2.position), Debuggable.DEBUG_CONFIG); }; if (_arg2.subscribe != undefined){ _arg1.setCustomProperty("rtmpSubscribe", _arg2.subscribe); Debuggable.getInstance().doLog(("Custom Clip Config: Setting subscribe to " + _arg2.subscribe), Debuggable.DEBUG_CONFIG); }; } } }//package org.openvideoads.plugin.flowplayer.streamer.config
Section 62
//OpenAdStreamer (org.openvideoads.plugin.flowplayer.streamer.OpenAdStreamer) package org.openvideoads.plugin.flowplayer.streamer { import org.flowplayer.model.*; import org.flowplayer.view.*; import org.openvideoads.vast.config.*; import org.openvideoads.vast.events.*; import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.tracking.*; import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.vast.server.events.*; import flash.display.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.vast.playlist.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vpaid.*; import org.openvideoads.vast.config.groupings.analytics.google.*; import org.openvideoads.vast.config.groupings.analytics.*; import org.openvideoads.plugin.flowplayer.streamer.clip.*; import org.openvideoads.plugin.flowplayer.streamer.config.*; import flash.system.*; import org.flowplayer.util.*; import com.adobe.serialization.json.*; public class OpenAdStreamer extends AbstractSprite implements Plugin, ConfigLoadListener { protected var _player:Flowplayer; protected var _prependedClipCount:int;// = 0 protected var _model:PluginModel; protected var _removeFirstImageClipBeforeLoading:Boolean;// = false protected var _config:Config; protected var _associatedPrerollClipIndex:int;// = -1 protected var _lastOnBeforeBeginEvent:Object;// = null protected var _autoHidingControlBar:Boolean;// = false protected var _originalPlaylistClips:Array;// = null protected var _vastController:VASTController; protected var _playlist:Playlist; protected var _activeShowClip:Clip;// = null protected var _playerControlEventHandlersSetup:Boolean;// = false protected var _defaultControlbarVisibilityState:Boolean;// = true protected var _delayedInitialisation:Boolean;// = false protected var _timeBeforeSeek:Number;// = -1 protected var _clipList:Array; protected var _playingVPAIDLinear:Boolean;// = false protected var _controlBarVisible:Boolean;// = true protected var _wasZeroVolume:Boolean;// = false protected var _instreamMidRollScheduled:Boolean;// = true protected var _loadEventHasBeenDispatched:Boolean;// = false protected var _activeStreamIndex:int;// = -1 protected var _forcedAdLoadOnInitialisation:Boolean;// = false protected var _playerPlayOnceEventHandlersSetup:Boolean;// = false protected static const DEFAULT_CONTROLBAR_HEIGHT:int = 29; public static const OVA_VERSION:String = "v1.1.0 Final (build 7)"; protected static const OVA_FP_DEFAULT_GA_ACCOUNT_ID:String = "UA-4011032-6"; protected static const CONTROLS_PLUGIN_NAME:String = "controls"; protected static var STREAMING_PROVIDERS:Object = {rtmp:"flowplayer.rtmp-3.1.2.swf"}; public function OpenAdStreamer(){ _clipList = new Array(); super(); Security.allowDomain("*"); } public function onConfig(_arg1:PluginModel):void{ _model = _arg1; if (_model.config != null){ if (_model.config.debug == undefined){ _model.config.debug = {levels:"fatal,config,vast_template"}; }; if (_model.config.vast != undefined){ _model.config.ads = {companions:{restore:false, regions:[{id:"companion-250x300", width:300, height:250}]}, schedule:[{position:"pre-roll", server:{type:"inject", tag:_model.config.vast}}]}; }; if (((_model.config.hasOwnProperty("tag")) && ((_model.config.hasOwnProperty("ads") == false)))){ _model.config.ads = {companions:{restore:false, regions:[{id:"companion-250x300", width:300, height:250}]}, schedule:[{position:"pre-roll", tag:_model.config.tag}]}; _model.config.tag = null; }; Debuggable.getInstance().configure(_model.config.debug); doLog((("Initialising OVA for Flowplayer - " + OVA_VERSION) + " [Debug Version]"), Debuggable.DEBUG_CONFIG); doTrace(_model.config, Debuggable.DEBUG_ALL); } else { Debuggable.getInstance().configure({levels:"fatal,config,vast_template"}); doLog((("Initialising OVA for Flowplayer - " + OVA_VERSION) + " [Debug Version]"), Debuggable.DEBUG_CONFIG); doLog("No OVA configuration data has been provided", Debuggable.DEBUG_CONFIG); }; } public function skipAd(){ if (_vastController != null){ doLog("API call to skip the ad", Debuggable.DEBUG_API); onLinearAdSkipped(null); }; return (false); } protected function insertLinearAdAsClip(_arg1:AdSlot, _arg2:int=-1, _arg3:Boolean=false):Boolean{ var _local4:ScheduledClip; var _local5:int; var _local6:Array; var _local7:int; if (_arg1 != null){ _local4 = new ScheduledClip(); _local5 = ((_arg2)<0) ? _player.playlist.currentIndex : _arg2; if (_arg1.isMidRoll()){ if (_arg1.isInteractive()){ } else { if (setupClipFromStream(_arg1, _arg1.index, _local4) != null){ _player.playInstream(_local4); return (true); }; }; } else { if (setupClipFromStream(_arg1, _arg1.index, _local4) != null){ if (((_arg3) && ((_vastController.autoPlay() == false)))){ _local4.autoPlay = false; }; _local6 = new Array(); _local7 = 0; while (_local7 < _player.playlist.clips.length) { if (_local7 == _local5){ doLog((("Have replaced the clip at index " + _local5) + " with the newly loaded on-demand ad clip"), Debuggable.DEBUG_PLAYLIST); _local6.push(_local4); } else { _local6.push(_player.playlist.clips[_local7]); }; _local7++; }; _player.stop(); _player.playlist.replaceClips2(_local6); _player.playlist.toIndex(_local5); if (_arg3 == false){ startPlayback(); }; return (true); }; }; }; return (false); } public function onLinearAdSkipped(_arg1:LinearAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: Event received that linear ad has been skipped - forcing player to skip to next track", Debuggable.DEBUG_DISPLAY_EVENTS); if (activeClipIsVPAIDLinearAd()){ doLog("Closing the active VPAID ad before moving onto the next clip in the playlist", Debuggable.DEBUG_PLAYLIST); _vastController.closeActiveVPAIDAds(); } else { if (_player.playlist.current.isInStream){ _player.playlist.current.duration = 1; } else { if (_player.playlist.hasNext()){ moveToNextClip(); } else { resetPlayback(); }; }; }; } protected function restoreControlBarPostVPAIDLinear():void{ enableControlBarWidgets(); } protected function playerPlaying():Boolean{ return ((_player.state == State.PLAYING)); } public function getActiveAdDescriptor(){ var _local1:Stream; if (_vastController != null){ if (activeStreamIsLinearAd()){ _local1 = this.getActiveStream(); if (_local1 != null){ if ((_local1 is AdSlot)){ if (AdSlot(_local1).hasVideoAd()){ return (AdSlot(_local1).videoAd.toJSObject()); }; }; }; }; }; return (null); } protected function actionPlayerPostTemplateLoad():void{ _forcedAdLoadOnInitialisation = false; if (_loadEventHasBeenDispatched == false){ informPlayerOVAPluginLoaded(); } else { startPlayback(); }; } protected function getClipNameFromStream(_arg1:Stream):String{ if (_arg1.playerConfig.isOriginallyPlaylistClip == true){ return (_arg1.streamName); }; if (_arg1.isRTMP()){ return (_arg1.streamName); }; return (_arg1.url); } protected function initialiseControllersAndHandlers():void{ initialiseVASTController(); registerPlayOnceHandlers(); } protected function registerPlayOnceHandlers():void{ if (_playerPlayOnceEventHandlersSetup == false){ _player.playlist.onBegin(function (_arg1:ClipEvent):void{ var _local3:ScheduledClip; doLog(((("onBegin() event fired for clip @ index " + _player.playlist.currentIndex) + " - ") + _player.currentClip.url), Debuggable.DEBUG_PLAYLIST); var _local2:Stream = _vastController.streamSequence.streamAt(getActiveStreamIndex()); _vastController.resetAllAdTrackingPointsAssociatedWithStream(getActiveStreamIndex()); _vastController.resetAllTrackingPointsAssociatedWithStream(getActiveStreamIndex()); if ((_local2 is AdSlot)){ if (_vastController.playOnce){ _local3 = (_player.currentClip as ScheduledClip); if (_local3.marked){ if (AdSlot(_local2).isMidRoll() == false){ doLog((("Skipping ad clip at schedule index " + getActiveStreamIndex()) + " as it's already been played"), Debuggable.DEBUG_PLAYLIST); moveToNextClip(); } else { doLog("It's a mid-roll - playing it because 'playOnce' won't work with mid-rolls", Debuggable.DEBUG_PLAYLIST); }; }; } else { onToggleSeekerBar(new SeekerBarEvent(SeekerBarEvent.TOGGLE, false)); }; } else { onToggleSeekerBar(new SeekerBarEvent(SeekerBarEvent.TOGGLE, true)); doLog((("Not assessing marked (playOnce) state on clip at playlist index " + _player.playlist.currentIndex) + " - it's not a Ad clip"), Debuggable.DEBUG_PLAYLIST); }; }); _player.playlist.onFinish(function (_arg1:ClipEvent):void{ var _local3:ScheduledClip; if ((_player.currentClip is HoldingClip)){ doLog("onFinish event received for a holding clip - ignoring the event", Debuggable.DEBUG_PLAYLIST); return; }; doLog(((("onFinish() event fired for clip @ index " + _player.playlist.currentIndex) + " - ") + _player.currentClip.url), Debuggable.DEBUG_PLAYLIST); _vastController.closeActiveOverlaysAndCompanions(); _vastController.disableVisualLinearAdClickThroughCue(); _vastController.closeActiveAdNotice(); var _local2:Stream = _vastController.streamSequence.streamAt(getActiveStreamIndex()); if ((_local2 is AdSlot)){ _local3 = (_player.currentClip as ScheduledClip); _local3.marked = true; doLog((("Marking the current clip (schedule index " + getActiveStreamIndex()) + ") - it's an ad that has been played once"), Debuggable.DEBUG_PLAYLIST); if (_vastController.playOnce){ if (_player.currentClip.isInStream){ }; }; } else { doLog((("Not setting marked state on clip at playlist index " + _player.playlist.currentIndex) + " - it's not a scheduled ad slot"), Debuggable.DEBUG_PLAYLIST); }; }); _playerPlayOnceEventHandlersSetup = true; }; } protected function getPlayerReportedControlBarHeight(_arg1:DisplayObject=null):Number{ var _local2:DisplayObject; var _local3:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (_arg1 == null){ if (_local3 != null){ _local2 = _local3.getDisplayObject(); }; } else { _local2 = _arg1; }; if (_local2 != null){ if (_local2.height == 0){ doLog("Control bar height is being reported by Flowplayer as 0 so OVA will recommend a default height of 26", Debuggable.DEBUG_CONFIG); return (26); }; doLog(("Flowplayer reports the control bar height as " + _local2.height), Debuggable.DEBUG_CONFIG); return (_local2.height); }; return (0); } protected function onVPAIDLinearAdTimeChange(_arg1:VPAIDAdDisplayEvent):void{ doLog(("PLUGIN NOTIFICATION: VPAID Linear Ad time change - time == " + ((_arg1)!=null) ? _arg1.data : "'not provided'"), Debuggable.DEBUG_VPAID); } protected function onUnmuteEvent(_arg1:PlayerEvent):void{ var _local2:IVPAID; if (_vastController != null){ _vastController.playerVolume = getPlayerVolume(); if (_vastController.isVPAIDAdPlaying()){ _local2 = _vastController.getActiveVPAIDAd(); if (_local2 != null){ _local2.adVolume = getPlayerVolume(); }; } else { _vastController.onPlayerUnmute(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; }; } public function enableAds(){ doLog("not implemented", Debuggable.DEBUG_API); return (false); } protected function getPlayerWidth():Number{ return (width); } protected function pausePlayback():void{ doLog(("Player: Pausing playback of clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); _player.pause(); } public function resume(){ if (_vastController != null){ if (activeClipIsVPAIDLinearAd()){ doLog("Resuming VPAID ad", Debuggable.DEBUG_API); _vastController.overlayController.getActiveVPAIDAd().resumeAd(); return (true); }; if (activeStreamIsLinearAd()){ doLog("Resuming Linear ad", Debuggable.DEBUG_API); _player.resume(); return (true); }; if (activeStreamIsShowStream()){ doLog("Resuming show stream", Debuggable.DEBUG_API); _player.resume(); return (true); }; }; return (false); } protected function onVPAIDLinearAdStart(_arg1:VPAIDAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: VPAID Linear Ad started", Debuggable.DEBUG_VPAID); _playingVPAIDLinear = true; disableControlBarWidgets(true); } protected function activeStreamIsLinearAd():Boolean{ var _local1:Stream; if (_vastController != null){ if (_vastController.streamSequence != null){ _local1 = _vastController.streamSequence.streamAt(getActiveStreamIndex()); if (_local1 != null){ if ((_local1 is AdSlot)){ return (AdSlot(_local1).isLinear()); }; }; }; }; return (false); } protected function clipIsSplashImage(_arg1:String):Boolean{ var _local2:RegExp; if (_arg1 != null){ _local2 = new RegExp(".jpg|.png|.gif|.JPG|.PNG|.GIF"); return (!((_arg1.match(_local2) == null))); }; return (false); } protected function playInstreamAd(_arg1:AdSlot, _arg2:Boolean=true):void{ var _local3:ScheduledClip; var _local4:TrackingTable; var _local5:int; var _local6:TrackingPoint; if (_arg1 != null){ _local3 = new ScheduledClip(); _local3.type = ClipType.fromMimeType(_arg1.mimeType); _local3.start = 0; _local3.originalDuration = _arg1.getAttachedLinearAdDurationAsInt(); _local3.duration = _local3.originalDuration; _local3.setCustomProperty("metaData", _arg1.metaData); if (_arg1.isRTMP()){ _local3.url = _arg1.streamName; _local3.setCustomProperty("netConnectionUrl", _arg1.baseURL); _local3.provider = _vastController.getProvider("rtmp"); } else { _local3.url = _arg1.url; _local3.provider = _vastController.getProvider("http"); }; StaticPlayerConfig.setClipConfig(_local3, _arg1.playerConfig); if (_arg2){ _local3.key = _arg1.key; _local3.isOverlayLinear = true; _local3.onCuepoint(processOverlayVideoAdCuepoint); } else { _local3.key = _arg1.index; _local3.onCuepoint(processCuepoint); }; _local4 = _arg1.getTrackingTable(); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4.pointAt(_local5); if (_arg2){ if (((_local6.isLinear()) && (_local6.isForLinearChild))){ _local3.addCuepoint(new Cuepoint(_local6.milliseconds, ((_local6.label + ":") + _arg1.key))); doLog(((((("Flowplayer CUEPOINT set for attached linear ad at " + _local6.milliseconds) + " with label ") + _local6.label) + ":") + _arg1.key), Debuggable.DEBUG_CUEPOINT_FORMATION); }; } else { if (_local6.isLinear()){ _local3.addCuepoint(new Cuepoint(_local6.milliseconds, ((_local6.label + ":") + _arg1.index))); doLog(((((("Flowplayer CUEPOINT set for attached linear ad at " + _local6.milliseconds) + " with label ") + _local6.label) + ":") + _arg1.index), Debuggable.DEBUG_CUEPOINT_FORMATION); }; }; _local5++; }; _player.playInstream(_local3); }; } protected function stopPlayback():void{ doLog(("Player: Stopping playback of clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); _player.stop(); } protected function moveFromVPAIDLinearToNextPlaylistItem():void{ restoreControlBarPostVPAIDLinear(); if (_player.playlist.hasNext()){ doLog("moveFromVPAIDLinearToNextPlaylistItem() called - triggering move to next clip", Debuggable.DEBUG_PLAYLIST); moveToNextClip(); if (getPlayerVersion() >= 3208){ startPlayback(); }; } else { doLog("moveFromVPAIDLinearToNextPlaylistItem() - end of playlist - forcing player.stop() and resetting to index 0 because last clip is a VPAID Ad", Debuggable.DEBUG_PLAYLIST); _vastController.closeActiveVPAIDAds(); resetPlayback(); }; } protected function processOverlayVideoAdCuepoint(_arg1:ClipEvent):void{ var _local2:Cuepoint = (_arg1.info as Cuepoint); var _local3:int = parseInt(_local2.callbackId.substr(3)); var _local4:String = _local2.callbackId.substr(0, 2); doLog(((("Overlay cuepoint triggered " + _arg1.toString()) + " - id: ") + _local2.callbackId), Debuggable.DEBUG_CUEPOINT_EVENTS); _vastController.processOverlayLinearVideoAdTimeEvent(_local3, new TimeEvent(_arg1.info.time, 0, _local4)); } protected function modifyTrackingCuepoints(_arg1:Clip, _arg2:TrackingTable, _arg3:int):void{ var _local5:Array; var _local6:int; var _local7:int; var _local8:TrackingPoint; var _local9:int; var _local10:Cuepoint; var _local11:Cuepoint; var _local4:Array = _arg1.cuepoints; if (_arg1.cuepoints != null){ if (_arg1.cuepoints.length > 0){ _local5 = _arg1.cuepoints; if (_local5 != null){ _arg1.removeCuepoints(); _local6 = 0; while (_local6 < _arg2.length) { _local8 = _arg2.pointAt(_local6); if (_local8.isLinear()){ _local9 = 0; while (_local9 < _local5.length) { if ((_local5[_local9] is Array)){ _local10 = _local5[_local9][0]; } else { _local10 = _local5[_local9]; }; if (_local10 != null){ if (_local10.callbackId != null){ if (_local10.callbackId.substr(0, 2) == _local8.label){ _local5.splice(_local9, 1); } else { _local9++; }; }; }; }; _arg1.addCuepoint(new Cuepoint(_local8.milliseconds, ((_local8.label + ":") + _arg3))); doLog(((((("Flowplayer Linear CUEPOINT set at " + _local8.milliseconds) + " with label ") + _local8.label) + ":") + _arg3), Debuggable.DEBUG_CUEPOINT_FORMATION); }; _local6++; }; _local7 = 0; while (_local7 < _local5.length) { if ((_local5[_local7] is Array)){ _local11 = _local5[_local7][0]; } else { _local11 = _local5[_local7]; }; if (_local11 != null){ _arg1.addCuepoint(_local11); doLog(((("Flowplayer Linear CUEPOINT reset at " + _local11.time) + " with label ") + _local11.callbackId), Debuggable.DEBUG_CUEPOINT_FORMATION); }; _local7++; }; }; } else { setupTrackingCuepoints(_arg1, _arg2, _arg3); }; } else { setupTrackingCuepoints(_arg1, _arg2, _arg3); }; } protected function getDisplayMode():String{ if (_player != null){ if (_player.isFullscreen()){ return (DisplayProperties.DISPLAY_FULLSCREEN); }; }; return (DisplayProperties.DISPLAY_NORMAL); } protected function disableControlBarWidgets(_arg1:Boolean):void{ var _local3:DisplayObject; var _local2:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (_local2 != null){ _local3 = _local2.getDisplayObject(); if (_local3 != null){ if (_local3["enable"] != undefined){ if (_arg1){ doLog("VPAID ad - disabling all control bar widgets", Debuggable.DEBUG_DISPLAY_EVENTS); Object(_local3).enable({scrubber:false, playlist:false, volume:false, stop:false, play:false, fullscreen:false, mute:false}); } else { Object(_local3).enable({scrubber:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.TIME, false), playlist:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.PLAYLIST, false), volume:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.VOLUME, false), stop:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.STOP, false), play:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.PLAY, false), fullscreen:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.FULLSCREEN, false), mute:_vastController.controlEnabledStateForLinearAdType(ControlsSpecification.MUTE, false)}); }; } else { doLog("Cannot disable control bar - 'enabled' method is undefined", Debuggable.DEBUG_DISPLAY_EVENTS); }; }; doLog("Cannot disable the control bar - unable to get a handle to the display object", Debuggable.DEBUG_DISPLAY_EVENTS); } else { doLog("Cannot disable the control bar - unable to get a handle to the controls plugin model", Debuggable.DEBUG_DISPLAY_EVENTS); }; } protected function setActiveVPAIDAdVolume(_arg1:Number):void{ var _local2:IVPAID = _vastController.getActiveVPAIDAd(); if (_local2 != null){ _local2.adVolume = (_arg1 / 100); _vastController.playerVolume = (_arg1 / 100); }; } public function getStreamSequence(){ return (_vastController.streamSequence.toJSObject()); } protected function saveOriginalPlaylist():void{ doLog((("Saving the original player playlist - " + _player.playlist.length) + " clips"), Debuggable.DEBUG_PLAYLIST); _originalPlaylistClips = new Array(); var _local1:int; while (_local1 < _player.playlist.clips.length) { _originalPlaylistClips.push(_player.playlist.getClip(_local1)); _local1++; }; } protected function restorePlaylistAfterSchedulingProcess():void{ if (_clipList.length > 0){ doLog("Loading the scheduled clip list after the scheduling process", Debuggable.DEBUG_PLAYLIST); loadScheduledClipList(); } else { if ((((_clipList.length == 0)) && (!((_originalPlaylistClips == null))))){ doLog("Restoring the original playlist after the scheduling process - no scheduled clip list available", Debuggable.DEBUG_PLAYLIST); restoreOriginalPlaylist(); } else { doLog("Leaving the current playlist untouched after the scheduling process - probably not good", Debuggable.DEBUG_PLAYLIST); }; }; checkAutoPlaySettings(); actionPlayerPostTemplateLoad(); } protected function getOVAPluginVersion():String{ return (("OVA for Flowplayer - " + OVA_VERSION)); } protected function onTemplateLoadTimeout(_arg1:TemplateEvent):void{ doLog(("PLUGIN NOTIFICATION: TIMEOUT loading VAST template - " + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); restorePlaylistAfterSchedulingProcess(); } protected function onBeforeSeekEvent(_arg1:ClipEvent):void{ if (_timeBeforeSeek < 0){ _timeBeforeSeek = _player.playlist.current.getNetStream().time; }; } public function onDisplayCompanionAd(_arg1:CompanionAdDisplayEvent):void{ doLog((((("PLUGIN NOTIFICATION: Event received to display companion ad (" + _arg1.companionAd.width) + "X") + _arg1.companionAd.height) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } protected function onPlayEventWithDeferredInitialisation(_arg1:ClipEvent):void{ if (_delayedInitialisation){ if (_player.playlist.clips.length > 0){ if (!clipIsSplashImage(_player.playlist.clips[_player.playlist.currentIndex])){ doLog("Triggering deferred initialisation of the VASTController...", Debuggable.DEBUG_CONFIG); _delayedInitialisation = false; initialiseControllersAndHandlers(); }; }; }; } protected function onAdCallStarted(_arg1:AdTagEvent):void{ doLog("PLUGIN NOTIFICATION: Ad Tag call started", Debuggable.DEBUG_VAST_TEMPLATE); if ((((_arg1.calledOnDemand() == false)) || (((_arg1.calledOnDemand()) && (_arg1.includesLinearAds()))))){ showOVABusy(); }; } public function onOVAConfigLoaded():void{ if (_vastController.config.adsConfig.vpaidConfig.hasLinearRegionSpecified() == false){ if (controlBarIsHidden() == false){ if (_vastController.config.playerConfig.shouldHideControlsOnLinearPlayback(true)){ _vastController.config.adsConfig.vpaidConfig.linearRegion = VPAIDConfig.RESERVED_FULLSCREEN_BLACK_WITH_CB_HEIGHT; } else { _vastController.config.adsConfig.vpaidConfig.linearRegion = VPAIDConfig.RESERVED_FULLSCREEN_TRANSPARENT_BOTTOM_MARGIN_ADJUSTED; }; } else { _vastController.config.adsConfig.vpaidConfig.linearRegion = VPAIDConfig.RESERVED_FULLSCREEN_BLACK_WITH_CB_HEIGHT; }; }; if (_vastController.config.adsConfig.vpaidConfig.hasNonLinearRegionSpecified() == false){ _vastController.config.adsConfig.vpaidConfig.nonLinearRegion = VPAIDConfig.RESERVED_FULLSCREEN_TRANSPARENT_BOTTOM_MARGIN_ADJUSTED; }; if (_playerControlEventHandlersSetup == false){ _player.onFullscreen(onFullScreen); _player.onFullscreenExit(onFullScreenExit); _player.onMute(onMuteEvent); _player.onUnmute(onUnmuteEvent); _player.onVolume(onProcessVolumeEvent); _player.playlist.onPause(onPauseEvent); _player.playlist.onResume(onResumeEvent); _player.playlist.onBeforeBegin(onStreamBeforeBegin); _player.playlist.onFinish(onStreamFinish); _player.playlist.onMetaData(onMetaDataEvent); _player.playlist.onBeforeSeek(onBeforeSeekEvent); _player.playlist.onSeek(onSeekEvent); _playerControlEventHandlersSetup = true; if (getPlayerVersion() >= 3208){ _player.playlist.onBegin(onStreamBegin); }; }; recordDefaultControlbarState(); _vastController.addEventListener(AdTagEvent.CALL_STARTED, onAdCallStarted); _vastController.addEventListener(AdTagEvent.CALL_FAILOVER, onAdCallFailover); _vastController.addEventListener(AdTagEvent.CALL_COMPLETE, onAdCallComplete); _vastController.addEventListener(TemplateEvent.LOADED, onTemplateLoaded); _vastController.addEventListener(TemplateEvent.LOAD_FAILED, onTemplateLoadError); _vastController.addEventListener(TemplateEvent.LOAD_TIMEOUT, onTemplateLoadTimeout); _vastController.addEventListener(TemplateEvent.LOAD_DEFERRED, onTemplateLoadDeferred); _vastController.addEventListener(AdSlotLoadEvent.LOADED, onAdSlotLoaded); _vastController.addEventListener(AdSlotLoadEvent.LOAD_ERROR, onAdSlotLoadError); _vastController.addEventListener(AdSlotLoadEvent.LOAD_TIMEOUT, onAdSlotLoadTimeout); _vastController.addEventListener(AdSlotLoadEvent.LOAD_DEFERRED, onAdSlotLoadDeferred); _vastController.addEventListener(LinearAdDisplayEvent.STARTED, onLinearAdStarted); _vastController.addEventListener(LinearAdDisplayEvent.SKIPPED, onLinearAdSkipped); _vastController.addEventListener(LinearAdDisplayEvent.COMPLETE, onLinearAdComplete); _vastController.addEventListener(LinearAdDisplayEvent.CLICK_THROUGH, onLinearAdClickThrough); _vastController.addEventListener(CompanionAdDisplayEvent.DISPLAY, onDisplayCompanionAd); _vastController.addEventListener(CompanionAdDisplayEvent.HIDE, onHideCompanionAd); _vastController.addEventListener(OverlayAdDisplayEvent.DISPLAY, onDisplayOverlay); _vastController.addEventListener(OverlayAdDisplayEvent.HIDE, onHideOverlay); _vastController.addEventListener(OverlayAdDisplayEvent.DISPLAY_NON_OVERLAY, onDisplayNonOverlay); _vastController.addEventListener(OverlayAdDisplayEvent.HIDE_NON_OVERLAY, onHideNonOverlay); _vastController.addEventListener(OverlayAdDisplayEvent.CLICKED, onOverlayClicked); _vastController.addEventListener(OverlayAdDisplayEvent.CLOSE_CLICKED, onOverlayCloseClicked); _vastController.addEventListener(AdNoticeDisplayEvent.DISPLAY, onDisplayNotice); _vastController.addEventListener(AdNoticeDisplayEvent.HIDE, onHideNotice); _vastController.addEventListener(TrackingPointEvent.SET, onSetTrackingPoint); _vastController.addEventListener(TrackingPointEvent.FIRED, onTrackingPointFired); _vastController.addEventListener(SeekerBarEvent.TOGGLE, onToggleSeekerBar); _vastController.addEventListener(StreamSchedulingEvent.SCHEDULE, onStreamSchedule); _vastController.addEventListener(NonLinearSchedulingEvent.SCHEDULE, onNonLinearSchedule); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_LOADING, onVPAIDLinearAdLoading); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_LOADED, onVPAIDLinearAdLoaded); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_LOADING, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_LOADED, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_START, onVPAIDLinearAdStart); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_COMPLETE, onVPAIDLinearAdComplete); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_ERROR, onVPAIDLinearAdError); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_LINEAR_CHANGE, onVPAIDLinearAdLinearChange); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_EXPANDED_CHANGE, onVPAIDLinearAdExpandedChange); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_TIME_CHANGE, onVPAIDLinearAdTimeChange); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_START, onVPAIDNonLinearAdStart); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_COMPLETE, onVPAIDNonLinearAdComplete); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_ERROR, onVPAIDNonLinearAdError); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_LINEAR_CHANGE, onVPAIDNonLinearAdLinearChange); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_EXPANDED_CHANGE, onVPAIDNonLinearAdExpandedChange); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_TIME_CHANGE, onVPAIDNonLinearAdTimeChange); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_IMPRESSION, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_IMPRESSION, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.VIDEO_AD_START, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.VIDEO_AD_FIRST_QUARTILE, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.VIDEO_AD_MIDPOINT, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.VIDEO_AD_THIRD_QUARTILE, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.VIDEO_AD_COMPLETE, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_CLICK_THRU, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_CLICK_THRU, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_USER_ACCEPT_INVITATION, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_USER_MINIMIZE, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.LINEAR_USER_CLOSE, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_USER_ACCEPT_INVITATION, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_USER_MINIMIZE, onVPAIDUnusedEvent); _vastController.addEventListener(VPAIDAdDisplayEvent.NON_LINEAR_USER_CLOSE, onVPAIDUnusedEvent); if (_vastController.overlayController == null){ initialiseRegionController(); }; _vastController.load(); doLog("OVA initialisation complete."); } protected function onAdSlotLoadDeferred(_arg1:AdSlotLoadEvent):void{ doLog(("PLUGIN NOTIFICATION: DEFERRED loading Ad Slot (skipping) - " + _arg1.toString()), Debuggable.DEBUG_FATAL); if (_forcedAdLoadOnInitialisation){ actionPlayerPostTemplateLoad(); _forcedAdLoadOnInitialisation = false; }; if (_arg1.adSlot.isLinear()){ if (_arg1.adSlot.isMidRoll() == false){ if (_player.playlist.hasNext()){ moveToNextClip(); } else { resetPlayback(); }; }; }; } protected function showOVAReady():void{ } protected function initialiseRegionController():void{ setDefaultPlayerConfigGroup(); _vastController.enableRegionDisplay(new DisplayProperties(this, getPlayerWidth(), getPlayerHeight(), getDisplayMode(), _vastController.getActiveDisplaySpecification(activeStreamIsShowStream()), true, getControlBarHeight(), getControlBarYPosition())); } protected function informPlayerOVAPluginLoaded():void{ doLog("Informing Flowplayer that OVA load is complete", Debuggable.DEBUG_CONFIG); _loadEventHasBeenDispatched = true; _model.dispatchOnLoad(); if (((activeClipIsVPAIDLinearAd()) && (_vastController.autoPlay()))){ doLog("Forcing auto-play on the VPAID pre-roll", Debuggable.DEBUG_CONFIG); startPlayback(); }; } protected function resetPlayback():void{ doLog((("Player: Resetting playback of clip @ index " + _player.playlist.currentIndex) + " back to index 0"), Debuggable.DEBUG_PLAYLIST); stopPlayback(); if (_player.playlist.length > 0){ if (clipIsSplashImage(_player.playlist.clips[0].url)){ _player.playlist.toIndex(0); startPlayback(); } else { _player.playlist.clips[0].autoPlay = false; _player.playlist.toIndex(0); }; }; } public function showOverlay(_arg1:int=-1, _arg2:String="auto:bottom", _arg3:String=null){ doLog("Not implemented", Debuggable.DEBUG_API); return (false); } protected function replacePlaylistWithHoldingClip():void{ if (_player.playlist.clips.length > 0){ if (clipIsSplashImage(_player.playlist.clips[0])){ loadClipsIntoPlayer([new HoldingClip(_player.playlist.clips[0]), new HoldingClip(getDefaultHoldingClipProperties(false))]); _removeFirstImageClipBeforeLoading = true; return; }; }; loadClipsIntoPlayer([new HoldingClip(getDefaultHoldingClipProperties(false))]); } protected function onStopEvent(_arg1:PlayerEvent):void{ if (_vastController != null){ _vastController.onPlayerStop(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; } public function onDisplayNotice(_arg1:AdNoticeDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: Event received to display ad notice", Debuggable.DEBUG_DISPLAY_EVENTS); } protected function getActiveStream():Stream{ if (_vastController != null){ if (_vastController.streamSequence != null){ return (_vastController.streamSequence.streamAt(getActiveStreamIndex())); }; }; return (null); } protected function startPlayback():void{ doLog(("Player: Starting playback from clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); _player.play(); } public function scheduleAds(_arg1=null, _arg2=null){ var formedPlaylist:Array; var playlist = _arg1; var newConfig = _arg2; doLog("API call to reschedule playlist and ads...", Debuggable.DEBUG_API); var previousShowsConfig:ShowsConfigGroup; if (playlist != null){ if ((playlist is Array)){ formedPlaylist = PlaylistConstructor.create(playlist, _player.playlist.commonClip); if (formedPlaylist != null){ doLog((("Loading a new playlist (" + formedPlaylist.length) + " clips) into the player before re-scheduling"), Debuggable.DEBUG_API); if (formedPlaylist.length > 0){ _player.playlist.replaceClips2(formedPlaylist); } else { _player.playlist.replaceClips2(new Array()); }; }; } else { doLog("Cannot reschedule - the playlist provided is not in the correct format", Debuggable.DEBUG_API); return (false); }; } else { doLog("Restoring the original playlist before re-scheduling", Debuggable.DEBUG_API); restoreOriginalPlaylist(); }; var config:Object; if (newConfig != null){ if ((newConfig is String)){ doLog(("Loading new config data as String: " + newConfig), Debuggable.DEBUG_API); try { config = JSON.decode(newConfig); } catch(e:Error) { doLog(((("OVA Configuration parsing exception on " + _player.version) + " - ") + e.message), Debuggable.DEBUG_API); return (false); }; } else { if ((newConfig is Object)){ doLog("Loading new config data as Object", Debuggable.DEBUG_API); config = newConfig; } else { doLog("Cannot initialise OVA with the provided config - it is not a String or Object", Debuggable.DEBUG_API); return (false); }; }; } else { config = _model.config; }; _vastController.closeActiveAdNotice(); _vastController.closeActiveOverlaysAndCompanions(); _vastController.closeActiveVPAIDAds(); _vastController.hideAllRegions(); initialiseVASTFramework(config); doLog("Rescheduling complete", Debuggable.DEBUG_JAVASCRIPT); return (true); } protected function onPlayEvent(_arg1:PlayerEvent):void{ if (_vastController != null){ _vastController.onPlayerPlay(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; } public function disableAds(){ doLog("not implemented", Debuggable.DEBUG_API); return (false); } protected function setControlBarVisibility(_arg1:Boolean):void{ var _local3:DisplayObject; var _local2:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (_local2 != null){ doLog(("Setting the control bar visibility to " + _arg1), Debuggable.DEBUG_DISPLAY_EVENTS); _local3 = _local2.getDisplayObject(); _local3.visible = _arg1; } else { doLog("Cannot change the visibility of the controlbar - unable to get a handle to it", Debuggable.DEBUG_DISPLAY_EVENTS); }; } protected function onStreamBeforeBegin(_arg1:ClipEvent):void{ var _local2:Stream; if (_lastOnBeforeBeginEvent != null){ if (_player.playlist.currentIndex == _lastOnBeforeBeginEvent.clipIndex){ doLog(("Ignoring duplicate onBeforeBegin event for clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); return; }; }; _lastOnBeforeBeginEvent = {clipIndex:_player.playlist.currentIndex, event:_arg1}; resetPlayerDisplay(); if (_vastController != null){ if (_player.playlist.currentIndex == 0){ _vastController.processImpressionFiringForEmptyAdSlots(); }; _local2 = getActiveStream(); if (_local2 != null){ if ((_local2 is AdSlot)){ if (((AdSlot(_local2).loadOnDemand) && (AdSlot(_local2).requiresLoading()))){ doLog((("Linear ad clip @ index " + _player.playlist.currentIndex) + " is about to be loaded (on demand)"), Debuggable.DEBUG_PLAYLIST); loadAdSlot((_local2 as AdSlot)); } else { if (AdSlot(_local2).isInteractive()){ doLog((("VPAID ad clip @ index " + _player.playlist.currentIndex) + " is about to start playback"), Debuggable.DEBUG_PLAYLIST); playVPAIDAdSlot(AdSlot(getActiveStream())); } else { if (AdSlot(_local2).isMidRoll()){ doLog("Resetting the mid-roll AdSlot duration to 0 to force reset of the tracking events when the meta-data is received", Debuggable.DEBUG_PLAYLIST); _local2.duration = 0; } else { if ((_player.playlist.getClip(_player.playlist.currentIndex) is HoldingClip)){ doLog((("Linear ad clip @ index " + _player.playlist.currentIndex) + " does not appear to have successfully loaded - skipping this clip completely"), Debuggable.DEBUG_PLAYLIST); moveToNextClip(); } else { doLog(((((("Linear ad clip @ index " + _player.playlist.currentIndex) + " is about to start playback - loadOnDemand=") + AdSlot(_local2).loadOnDemand) + ", requiresLoading=") + AdSlot(_local2).requiresLoading()), Debuggable.DEBUG_PLAYLIST); }; }; }; }; } else { doLog((("Show clip @ index " + _player.playlist.currentIndex) + " is about to start playback"), Debuggable.DEBUG_PLAYLIST); }; } else { doLog(("FATAL: Cannot play NULL clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); }; }; } public function hideOverlay(_arg1:String){ doLog("Not implemented", Debuggable.DEBUG_API); return (false); } protected function isBitRatedClip(_arg1:Clip):Boolean{ if (_arg1 != null){ if (_arg1.customProperties != null){ return (!((_arg1.customProperties["bitrates"] == null))); }; }; return (false); } protected function getHoldingClipURL():String{ if (getPlayerVersion() >= 3208){ return (_vastController.config.adsConfig.holdingClipUrl); }; return (null); } protected function showOVABusy():void{ } protected function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } protected function resizeWithHiddenControls():void{ if (_vastController != null){ if (_vastController.overlayController == null){ initialiseRegionController(); } else { _vastController.resizeOverlays(new DisplayProperties(this, getPlayerWidth(), getPlayerHeight(), getDisplayMode(), _vastController.getActiveDisplaySpecification(activeStreamIsShowStream()), false, 0, getControlBarYPosition())); }; }; } protected function onVPAIDNonLinearAdError(_arg1:VPAIDAdDisplayEvent):void{ enableControlBarWidgets(); if (playerPaused()){ doLog((("PLUGIN NOTIFICATION: VPAID Non-Linear Ad error ('" + ((_arg1.data)!=null) ? _arg1.data.message : "") + "') - resuming playback"), Debuggable.DEBUG_VPAID); resumePlayback(); } else { doLog((("PLUGIN NOTIFICATION: VPAID Non-Linear Ad error ('" + ((_arg1.data)!=null) ? _arg1.data.message : "") + "')"), Debuggable.DEBUG_VPAID); }; } protected function setupPlayerToDeferInitialisation():void{ doLog("Holding on initialising the vastController until the Play button is pressed - loading holding clip/image", Debuggable.DEBUG_CONFIG); _player.playlist.onBeforeBegin(onPlayEventWithDeferredInitialisation); _delayedInitialisation = true; replacePlaylistWithHoldingClip(); informPlayerOVAPluginLoaded(); } protected function onVPAIDUnusedEvent(_arg1:VPAIDAdDisplayEvent):void{ doLog(("PLUGIN NOTIFICATION: VPAID Unused Event - " + _arg1.type), Debuggable.DEBUG_VPAID); } protected function getControlBarYPosition():int{ return (-1); } protected function onVPAIDNonLinearAdLinearChange(_arg1:VPAIDAdDisplayEvent):void{ doLog(("PLUGIN NOTIFICATION: VPAID Non-Linear Ad linear change - linear state == " + ((_arg1)!=null) ? _arg1.data : "'not provided'"), Debuggable.DEBUG_VPAID); if (_arg1.data == false){ enableControlBarWidgets(); if (playerPaused()){ resumePlayback(); }; } else { disableControlBarWidgets(true); pausePlayback(); }; } protected function processCuepoint(_arg1:ClipEvent):void{ var _local2:Cuepoint = (_arg1.info as Cuepoint); var _local3:int = parseInt(_local2.callbackId.substr(3)); var _local4:String = _local2.callbackId.substr(0, 2); var _local5:Stream = _vastController.streamSequence.getStreamAtIndex(_local3); doLog(((("Cuepoint triggered " + _arg1.toString()) + " - id: ") + _local2.callbackId), Debuggable.DEBUG_CUEPOINT_EVENTS); if (_local4 == "OD"){ if ((_local5 is AdSlot)){ if (AdSlot(_local5).isMidRoll()){ if (_local5.flagged){ } else { if (AdSlot(_local5).loadOnDemand){ if (AdSlot(_local5).requiresLoading()){ this.loadAdSlot((_local5 as AdSlot)); } else { if (insertLinearAdAsClip((_local5 as AdSlot), _local3)){ _local5.flag = true; }; }; }; }; }; }; } else { if (_local4 == "OX"){ _local5.flag = false; } else { if (_local4 == "VM"){ if ((_local5 is AdSlot)){ if (_local5.flagged){ } else { if (((AdSlot(_local5).isMidRoll()) && (AdSlot(_local5).isInteractive()))){ _local5.flag = true; playVPAIDAdSlot((_local5 as AdSlot)); }; }; }; } else { if (_local4 == "VX"){ _local5.flag = false; } else { _vastController.processTimeEvent(_local3, new TimeEvent(_arg1.info.time, 0, _local4)); }; }; }; }; } protected function onVPAIDLinearAdLoaded(_arg1:VPAIDAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: VPAID ad loaded", Debuggable.DEBUG_VPAID); showOVAReady(); } public function loadPlaylist(_arg1:Array, _arg2:Boolean=true){ doLog("Loading a new playlist...", Debuggable.DEBUG_API); if (_arg2){ scheduleAds(_arg1); } else { _player.setPlaylist(_arg1); }; return (true); } protected function onVPAIDNonLinearAdExpandedChange(_arg1:VPAIDAdDisplayEvent):void{ doLog(((((("PLUGIN NOTIFICATION: VPAID Non-Linear Ad expanded change - expanded state == " + ((_arg1)!=null) ? _arg1.data.expanded : "'not provided'") + ", linear playback underway == ") + _arg1.data.linearPlayback) + ", player paused == ") + playerPaused()), Debuggable.DEBUG_VPAID); if ((((_arg1.data.expanded == false)) && ((_arg1.data.linearPlayback == false)))){ if (_vastController.config.adsConfig.vpaidConfig.resumeOnCollapse){ if (playerPaused()){ resumePlayback(); }; }; } else { if (((_arg1.data.expanded) && (_arg1.data.linearPlayback))){ pausePlayback(); } else { if (((_arg1.data.expanded) && (_vastController.config.adsConfig.vpaidConfig.pauseOnExpand))){ pausePlayback(); }; }; }; } protected function onTemplateLoaded(_arg1:TemplateEvent):void{ if (_arg1.template.hasAds()){ doLog((("PLUGIN NOTIFICATION: VAST template loaded - " + _arg1.template.ads.length) + " ads retrieved"), Debuggable.DEBUG_VAST_TEMPLATE); } else { doLog("PLUGIN NOTIFICATION: No ads to be scheduled - only show streams will be played", Debuggable.DEBUG_VAST_TEMPLATE); }; loadScheduledClipList(); actionPlayerPostTemplateLoad(); } protected function setupTrackingCuepoints(_arg1:Clip, _arg2:TrackingTable, _arg3:int):void{ var _local5:TrackingPoint; _arg1.removeCuepoints(); var _local4:int; while (_local4 < _arg2.length) { _local5 = _arg2.pointAt(_local4); if (_local5.isLinear()){ _arg1.addCuepoint(new Cuepoint(_local5.milliseconds, ((_local5.label + ":") + _arg3))); if ((((_local5.label == "SN")) && ((_local5.milliseconds < 1000)))){ _arg1.addCuepoint(new Cuepoint(1000, ((_local5.label + ":") + _arg3))); }; doLog(((((("Flowplayer Linear CUEPOINT set at " + _local5.milliseconds) + " with label ") + _local5.label) + ":") + _arg3), Debuggable.DEBUG_CUEPOINT_FORMATION); }; _local4++; }; } public function onLinearAdClickThrough(_arg1:LinearAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: Event received that linear ad click through activated", Debuggable.DEBUG_DISPLAY_EVENTS); if (_vastController.pauseOnClickThrough){ pausePlayback(); }; } public function getDebugLevel():String{ return (_vastController.config.debugLevel); } protected function onMuteEvent(_arg1:PlayerEvent):void{ var _local2:IVPAID; if (_vastController != null){ _vastController.playerVolume = 0; if (_vastController.isVPAIDAdPlaying()){ _local2 = _vastController.getActiveVPAIDAd(); if (_local2 != null){ _local2.adVolume = 0; }; } else { _vastController.onPlayerMute(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; }; } protected function onNonLinearSchedule(_arg1:NonLinearSchedulingEvent):void{ var _local5:TrackingPoint; var _local2:int = _vastController.getStreamSequenceIndexGivenOriginatingIndex(_arg1.adSlot.originatingAssociatedStreamIndex, true, true); doLog(((((((("PLUGIN NOTIFICATION: Scheduling " + (_arg1.adSlot.loadOnDemand) ? "on-demand " : "") + "non-linear ad '") + _arg1.adSlot.id) + "' against stream at index ") + _local2) + " ad slot is ") + _arg1.adSlot.key), Debuggable.DEBUG_SEGMENT_FORMATION); var _local3:TrackingTable = _arg1.adSlot.getTrackingTable(); var _local4:int; while (_local4 < _local3.length) { _local5 = _local3.pointAt(_local4); if (((_local5.isNonLinear()) && (!(_local5.isForLinearChild)))){ if (_local2 > -1){ if (_local2 <= _clipList.length){ _clipList[_local2].addCuepoint(new Cuepoint(_local5.milliseconds, ((_local5.label + ":") + _arg1.adSlot.associatedStreamIndex))); doLog(((((("Flowplayer NonLinear CUEPOINT set at " + _local5.milliseconds) + " with label ") + _local5.label) + ":") + _arg1.adSlot.associatedStreamIndex), Debuggable.DEBUG_CUEPOINT_FORMATION); } else { doLog((((("FATAL: Adjusted stream index (" + _local2) + ") to map overlay is greater than length of clip list (") + _clipList.length) + ")"), Debuggable.DEBUG_FATAL); }; } else { doLog("FATAL: Cannot map non-linear ad to a valid stream index", Debuggable.DEBUG_FATAL); }; }; _local4++; }; } protected function onMetaDataEvent(_arg1:ClipEvent):void{ var _local4:String; if ((_player.currentClip is HoldingClip)){ return; }; var _local2:Number = Number(_player.currentClip.durationFromMetadata); doLog(("MetaData received for active clip - metadata duration is " + _local2), Debuggable.DEBUG_CONFIG); var _local3:Stream = _vastController.streamSequence.streamAt(getActiveStreamIndex()); if (_local3 != null){ if ((_local3 is AdSlot)){ if (((((_player.currentClip.isInStream) && (_local3.isRTMP()))) && (AdSlot(_local3).isMidRoll())) == false){ if (_local3.hasZeroDuration()){ attemptCurrentStreamDurationAdjustment(_local3, _local2); } else { if (_vastController.deriveAdDurationFromMetaData()){ attemptCurrentStreamDurationAdjustment(_local3, _local2); } else { doLog("Not adjusting the ad stream metadata - deriveAdDurationFromMetaData == false", Debuggable.DEBUG_CONFIG); }; }; } else { doLog("Not adjusting Ad clip duration because a) it is a mid-roll using the FP Instream API and b) it is an RTMP stream which hits a bug in Flowplayer.", Debuggable.DEBUG_CONFIG); doLog("For more information on this issue, see http://www.longtailvideo.com/support/forums/open-video-ads/ova-for-flowplayer/15759/play-button-after-midroll", Debuggable.DEBUG_CONFIG); }; } else { if ((_local3 is Stream)){ if (_vastController.deriveShowDurationFromMetaData()){ attemptCurrentStreamDurationAdjustment(_local3, _local2, true); } else { _local4 = String(Math.floor(_player.currentClip.duration)); if (_local3.duration != _local4){ doLog((((("Not adjusting the show stream metadata - 'deriveShowDurationFromMetaData' == false, but resetting stream duration (" + _local3.duration) + ") to match clip (") + _local4) + "), and updating tracking points accordingly"), Debuggable.DEBUG_CONFIG); _local3.duration = _local4; modifyTrackingCuepoints(_player.currentClip, _local3.getTrackingTable(), getActiveStreamIndex()); } else { doLog("Not adjusting the show stream metadata - 'deriveShowDurationFromMetaData' == false and stream and clip duration match", Debuggable.DEBUG_CONFIG); }; }; } else { doLog("Not adjusting the stream duration based on the metadata - the clip is of an unknown type", Debuggable.DEBUG_CONFIG); }; }; }; if ((((_player.isPlaying() == false)) && (_vastController.autoPlay()))){ doLog("Forcibly triggering playback after onMetaData because the player is not playing and autoPlay='true'", Debuggable.DEBUG_CONFIG); startPlayback(); }; } public function onDisplayOverlay(_arg1:OverlayAdDisplayEvent):void{ doLog((("PLUGIN NOTIFICATION: Event received to display non-linear overlay ad (" + _arg1.toString()) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } protected function onVPAIDNonLinearAdTimeChange(_arg1:VPAIDAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: VPAID Non-Linear Ad time change", Debuggable.DEBUG_VPAID); } protected function deriveBaseUrlFromClip(_arg1:Clip):String{ if (_arg1 != null){ if (_arg1.baseUrl != null){ return (_arg1.baseUrl); }; if (_arg1.customProperties != null){ if (_arg1.customProperties.hasOwnProperty("netConnectionUrl")){ return (_arg1.customProperties.netConnectionUrl); }; }; }; return (null); } protected function onAdCallFailover(_arg1:AdTagEvent):void{ doLog("PLUGIN NOTIFICATION: Ad Tag call failover", Debuggable.DEBUG_VAST_TEMPLATE); } public function setDebugLevel(_arg1:String){ doLog(("API call to set debug level to: " + _arg1), Debuggable.DEBUG_API); Debuggable.getInstance().setLevelFromString(_arg1); return (true); } protected function activeStreamIsShowStream():Boolean{ return (!(activeStreamIsLinearAd())); } protected function getDefaultHoldingClipProperties(_arg1:Boolean=true):Object{ return ({url:getHoldingClipURL(), scaling:MediaSize.forName("scale"), autoPlay:_arg1}); } protected function setDefaultPlayerConfigGroup():void{ var _local1:Number = getPlayerReportedControlBarHeight(); _vastController.setDefaultPlayerConfigGroup({width:_player.screen.getDisplayObject().width, height:_player.screen.getDisplayObject().height, controls:{height:_local1}, margins:{normal:{withControls:_local1, withoutControls:0}, fullscreen:{withControls:_local1, withoutControls:0}}, modes:{linear:{controls:{stream:{visible:true, manage:true, enablePlay:true, enablePause:true, enablePlaylist:false, enableTime:false, enableFullscreen:true, enableMute:true, enableVolume:true}, vpaid:{visible:false, manage:true, enabled:false}}}, nonLinear:{margins:{fullscreen:{withControls:_local1, withoutControls:0}}}}}); _vastController.config.playerConfig = _vastController.getDefaultPlayerConfig(); if (_model.config.hasOwnProperty("player")){ _vastController.config.playerConfig.initialise(_model.config.player); }; } protected function onTemplateLoadDeferred(_arg1:TemplateEvent):void{ doLog(("PLUGIN NOTIFICATION: DEFERRED loading VAST template - " + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); if (((playlistStartsWithSplashImage()) && ((_vastController.autoPlay() == false)))){ doLog("Playlist starts with an image - and the ad calls have been deferred - not triggering initial ad slot loads", Debuggable.DEBUG_VAST_TEMPLATE); restorePlaylistAfterSchedulingProcess(); } else { if (((_vastController.playbackStartsWithPreroll()) && ((((_vastController.delayAdRequestUntilPlay() == false)) || ((((_vastController.delayAdRequestUntilPlay() == true)) && (_vastController.autoPlay()))))))){ doLog("Playlist starts with a pre-roll and delayAdRequestUntilPlay either false or we have autoPlay - triggering the first ad call", Debuggable.DEBUG_VAST_TEMPLATE); loadScheduledClipList(); _forcedAdLoadOnInitialisation = true; loadAdSlot(_vastController.getFirstPreRollAdSlot()); } else { restorePlaylistAfterSchedulingProcess(); }; }; } protected function getPlayerVersion():int{ var _local1:Array; var _local2:int; if (_player != null){ _local1 = _player.version; if (_local1.length >= 3){ _local2 = (((_local1[0] * 1000) + (_local1[1] * 100)) + _local1[2]); return (_local2); }; }; return (0); } protected function qualifyStreamUrl(_arg1:String, _arg2:String):String{ if (_arg2 != null){ if (StringUtils.beginsWith(_arg2, "http://")){ if (StringUtils.beginsWith(_arg1, _arg2)){ return (_arg1); }; return (StringUtils.concatEnsuringSeparator(_arg2, _arg1, "/")); }; }; return (_arg1); } public function onDisplayNonOverlay(_arg1:OverlayAdDisplayEvent):void{ doLog((("PLUGIN NOTIFICATION: Event received to display non-linear non-overlay ad (" + _arg1.toString()) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } protected function controlBarIsHidden():Boolean{ var _local1:String = getControlBarHideSetting(); if (((StringUtils.matchesIgnoreCase(_local1, "NONE")) || ((_local1 == null)))){ return (true); }; if (StringUtils.matchesIgnoreCase(_local1, "NEVER")){ return (false); }; return ((_controlBarVisible == false)); } public function getVASTResponseAsString(){ doLog("API call received to get VAST template as string", Debuggable.DEBUG_API); return (_vastController.getVASTResponseAsString()); } protected function onResumeEvent(_arg1:ClipEvent):void{ if (_vastController != null){ _vastController.onPlayerResume(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; } protected function onVPAIDNonLinearAdStart(_arg1:VPAIDAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: VPAID Non-Linear Ad start", Debuggable.DEBUG_VPAID); } protected function enableControlBarWidgets():void{ var _local2:DisplayObject; var _local1:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (_local1 != null){ doLog("Enabling control bar widgets", Debuggable.DEBUG_DISPLAY_EVENTS); _local2 = _local1.getDisplayObject(); if (_local2 != null){ if (_local2["enable"] != undefined){ Object(_local2).enable({scrubber:true, playlist:true, volume:true, stop:true, play:true, fullscreen:true, mute:true, hd:true, sd:true}); } else { doLog("Cannot enable control bar - 'enabled' method is undefined", Debuggable.DEBUG_DISPLAY_EVENTS); }; }; doLog("Cannot enable the control bar - unable to get a handle to the display object", Debuggable.DEBUG_DISPLAY_EVENTS); } else { doLog("Cannot enable the control bar - unable to get a handle to the controls plugin model", Debuggable.DEBUG_DISPLAY_EVENTS); }; } protected function setupClipFromStream(_arg1:Stream, _arg2:int, _arg3:Clip, _arg4:Boolean=false):Clip{ var netConnectionUrl:String; var adSlot:AdSlot; var prop:String; var cpProp:String; var stream = _arg1; var scheduleIndex = _arg2; var clip = _arg3; var assessAutoPlayFromCliplist = _arg4; var haveSetAutoPlay:Boolean; var proxying:Boolean; clip.type = ClipType.fromMimeType(stream.mimeType); if ((stream is AdSlot)){ proxying = _vastController.areProxiesEnabledForAdStreams(); clip.start = 0; if (AdSlot(stream).isInteractive()){ doLog("Linear ad is a VPAID ad - inserting a holding clip", Debuggable.DEBUG_CONFIG); clip = new HoldingClip({url:getHoldingClipURL(), scaling:MediaSize.forName("scale"), autoPlay:true, duration:0, customProperties:{title:_vastController.config.adsConfig.getLinearAdTitle("Advertisement", AdSlot(stream).duration, AdSlot(stream).key), description:_vastController.config.adsConfig.getLinearAdDescription(AdSlot(stream).title, AdSlot(stream).duration, AdSlot(stream).key), ovaAd:true, ovaZone:AdSlot(stream).zone, ovaSlotId:AdSlot(stream).id, ovaPosition:AdSlot(stream).position, ovaAssociatedStreamIndex:AdSlot(stream).associatedStreamIndex, ovaAdType:(AdSlot(stream).isPreRoll()) ? "pre-roll-vpaid" : (AdSlot(stream).isMidRoll()) ? "mid-roll-vpaid" : "post-roll-vpaid"}}); HoldingClip(clip).key = scheduleIndex; if (((AdSlot(stream).isPreRoll()) && ((_associatedPrerollClipIndex == -1)))){ _associatedPrerollClipIndex = _clipList.length; }; } else { clip.duration = stream.getDurationAsInt(); doLog((((("Setting default duration on ad (" + stream.streamName) + ") from VAST data - ") + clip.duration) + " seconds"), Debuggable.DEBUG_CONFIG); }; } else { proxying = _vastController.areProxiesEnabledForShowStreams(); clip.start = stream.getStartTimeAsSeconds(); if (!_vastController.deriveShowDurationFromMetaData()){ if (stream.hasDuration()){ clip.duration = stream.getDurationAsInt(); doLog(("Show duration has been set to " + clip.duration), Debuggable.DEBUG_CONFIG); } else { doLog((("Cannot set show duration for " + stream.streamName) + " - no duration provided in the config"), Debuggable.DEBUG_CONFIG); }; } else { doLog((("Did not set duration on the show clip (" + stream.streamName) + ") from config - duration to be determined from stream metadata."), Debuggable.DEBUG_CONFIG); }; }; if (assessAutoPlayFromCliplist){ if (_clipList.length == 0){ if (clipIsSplashImage(getClipNameFromStream(stream))){ } else { clip.autoPlay = _vastController.autoPlay(); haveSetAutoPlay = true; doLog(("clipList == 0: clip[0] is not an image so autoPlay set on clip[0] to: " + clip.autoPlay), Debuggable.DEBUG_CONFIG); }; } else { if (_clipList.length == 1){ if (clipIsSplashImage(_clipList[0])){ clip.autoPlay = _vastController.autoPlay(); haveSetAutoPlay = true; doLog(("clipList == 1: clip[0] is an image so autoPlay set on clip[1] to: " + clip.autoPlay), Debuggable.DEBUG_CONFIG); } else { _clipList[0].autoPlay = _vastController.autoPlay(); doLog(("clipList == 1: autoPlay set on clip[0] to: " + _clipList[0].autoPlay), Debuggable.DEBUG_CONFIG); }; }; }; }; if ((clip is HoldingClip) == false){ (clip as ScheduledClip).originalDuration = stream.getOriginalDurationAsInt(); StaticPlayerConfig.setClipConfig(clip, stream.playerConfig); (clip as ScheduledClip).key = scheduleIndex; if (stream.playerConfig.isOriginallyPlaylistClip == true){ if (stream.playerConfig.baseUrl != null){ clip.url = qualifyStreamUrl(stream.streamName, stream.playerConfig.baseUrl); clip.baseUrl = stream.playerConfig.baseUrl; doLog(("Common clip baseURL set to " + clip.baseUrl), Debuggable.DEBUG_CONFIG); } else { clip.url = stream.streamName; }; clip.setCustomProperty("netConnectionUrl", stream.playerConfig.baseUrl); clip.provider = stream.provider; } else { if (stream.isRTMP()){ clip.provider = _vastController.getProvider("rtmp"); if (proxying == false){ clip.url = stream.streamName; netConnectionUrl = stream.baseURL; clip.setCustomProperty("netConnectionUrl", netConnectionUrl); doLog(((("Not proxying stream - OVA has determined that the clip URL is " + clip.url) + " and the netConnectionURL is ") + netConnectionUrl), Debuggable.DEBUG_CONFIG); } else { clip.url = stream.url; doLog(("Proxying stream - OVA will allow clip resolver(s) to be used to determine the netConnectionURL from " + clip.url), Debuggable.DEBUG_CONFIG); }; } else { clip.url = stream.url; doLog(("Clip provider set to " + _vastController.getProvider("http")), Debuggable.DEBUG_CONFIG); clip.provider = _vastController.getProvider("http"); }; clip.setCustomProperty("bitrates", [{url:clip.url, bitrate:800, hd:true, sd:true, isDefault:true, label:"SD"}]); doLog(("Clip URL is " + clip.url), Debuggable.DEBUG_CONFIG); }; if ((stream is AdSlot)){ adSlot = (stream as AdSlot); clip.setCustomProperty("title", _vastController.config.adsConfig.getLinearAdTitle("Advertisement", adSlot.duration, adSlot.key)); clip.setCustomProperty("description", _vastController.config.adsConfig.getLinearAdDescription(adSlot.title, adSlot.duration, adSlot.key)); clip.setCustomProperty("ovaAd", true); clip.setCustomProperty("ovaZone", adSlot.zone); clip.setCustomProperty("ovaSlotId", adSlot.id); clip.setCustomProperty("ovaPosition", adSlot.position); clip.setCustomProperty("ovaAssociatedStreamIndex", adSlot.associatedStreamIndex); clip.setCustomProperty("ovaAdType", (adSlot.isPreRoll()) ? "pre-roll" : (adSlot.isMidRoll()) ? "mid-roll" : "post-roll"); clip.setCustomProperty("ovaInteractive", adSlot.isInteractive()); if (((adSlot.isPreRoll()) && ((_associatedPrerollClipIndex == -1)))){ _associatedPrerollClipIndex = _clipList.length; }; if (_vastController.config.adsConfig.hasLinearScalingPreference() == false){ if (((((adSlot.isInteractive()) && (_vastController.enforceLinearInteractiveAdScaling()))) || (((adSlot.isLinear()) && (_vastController.enforceLinearVideoAdScaling()))))){ if (adSlot.canScale()){ if (adSlot.shouldMaintainAspectRatio()){ clip.scaling = MediaSize.forName("fit"); doLog("Scaling set to (scale, maintain): FIT", Debuggable.DEBUG_CONFIG); } else { clip.scaling = MediaSize.forName("scale"); doLog("Scaling set to (scale, don't maintain): SCALE", Debuggable.DEBUG_CONFIG); }; } else { if (adSlot.shouldMaintainAspectRatio() == false){ clip.scaling = MediaSize.forName("fit"); doLog("Scaling set to (no scale, don't maintain): FIT", Debuggable.DEBUG_CONFIG); } else { clip.scaling = MediaSize.forName("orig"); doLog("Scaling set to (no scale, maintain): ORIG", Debuggable.DEBUG_CONFIG); }; }; }; } else { try { clip.scaling = MediaSize.forName(_vastController.config.adsConfig.linearScaling); doLog((("Linear ad scaling has been set to '" + _vastController.config.adsConfig.linearScaling) + "'"), Debuggable.DEBUG_CONFIG); } catch(e:Error) { doLog((("Scaling exception - cannot set scaling to '" + _vastController.config.adsConfig.linearScaling) + "'"), Debuggable.DEBUG_CONFIG); }; }; } else { if (_associatedPrerollClipIndex > -1){ clip.setCustomProperty("ovaAssociatedPrerollClipIndex", _associatedPrerollClipIndex); }; clip.setCustomProperty("ovaAssociatedStreamIndex", scheduleIndex); _associatedPrerollClipIndex = -1; }; clip.setCustomProperty("ovaIsEndBlock", stream.isEndBlock()); setupTrackingCuepoints(clip, stream.getTrackingTable(), scheduleIndex); clip.onCuepoint(processCuepoint); clip.onError(onClipError); if ((stream is AdSlot)){ if (_vastController.config.playerConfig.setUrlResolversOnAdClips == false){ doLog("Not setting the urlResolvers for this ad clip as 'setUrlResolversOnAdClips' is 'false'", Debuggable.DEBUG_PLAYLIST); clip.setUrlResolvers(null); }; if (adSlot.isMidRoll()){ if ((_activeShowClip is ScheduledClip)){ _activeShowClip.duration = (_activeShowClip as ScheduledClip).originalDuration; doLog((("Duration of underlying stream set to " + _activeShowClip.duration) + " - mid-roll clip has been created"), Debuggable.DEBUG_PLAYLIST); }; clip.position = stream.getStartTimeAsSeconds(); clip.start = 0; return (clip); }; } else { _activeShowClip = clip; if (stream.hasCustomProperties()){ for (prop in stream.customProperties) { if (prop == "customProperties"){ for (cpProp in stream.customProperties.customProperties) { clip.setCustomProperty(cpProp, stream.customProperties.customProperties[cpProp]); }; } else { if (prop == "accelerated"){ clip.accelerated = stream.customProperties[prop]; } else { if (prop == "autoBuffering"){ clip.autoBuffering = stream.customProperties[prop]; } else { if ((((prop == "autoPlay")) && (!(haveSetAutoPlay)))){ clip.autoPlay = stream.customProperties[prop]; } else { if (prop == "baseUrl"){ clip.baseUrl = stream.customProperties[prop]; } else { if (prop == "bufferLength"){ clip.bufferLength = stream.customProperties[prop]; } else { if (prop == "fadeInSpeed"){ clip.fadeInSpeed = stream.customProperties[prop]; } else { if (prop == "fadeOutSpeed"){ clip.fadeOutSpeed = stream.customProperties[prop]; } else { if (prop == "image"){ clip.image = stream.customProperties[prop]; } else { if (prop == "linkUrl"){ clip.linkUrl = stream.customProperties[prop]; } else { if (prop == "linkWindow"){ clip.linkWindow = stream.customProperties[prop]; } else { if (prop == "metaData"){ clip.metaData = stream.customProperties[prop]; } else { if (prop == "live"){ clip.live = stream.customProperties[prop]; } else { if (prop == "position"){ clip.position = stream.customProperties[prop]; } else { if (prop == "scaling"){ try { if ((stream.customProperties[prop] is MediaSize)){ clip.scaling = stream.customProperties[prop]; } else { if ((stream.customProperties[prop] is String)){ clip.scaling = MediaSize.forName(stream.customProperties[prop]); } else { doLog((("Unknown MediaSize definition type '" + stream.customProperties[prop]) + "'"), Debuggable.DEBUG_CONFIG); }; }; } catch(e:Error) { doLog((("Unknown MediaSize '" + stream.customProperties[prop]) + "'"), Debuggable.DEBUG_CONFIG); }; } else { if (prop == "seekableOnBegin"){ clip.seekableOnBegin = stream.customProperties[prop]; } else { if (prop == "urlResolvers"){ if (proxying == false){ clip.setUrlResolvers(stream.customProperties[prop]); if (StringUtils.beginsWith(clip.url, "http")){ clip.setCustomProperty("netConnectionUrl", null); doLog("Have set the URL resolvers on this clip and nullified the netConnectionUrl custom property", Debuggable.DEBUG_CONFIG); }; }; } else { if (prop == "connectionProvider"){ if (stream.customProperties[prop] != null){ clip.connectionProvider = stream.customProperties[prop]; }; } else { clip.setCustomProperty(prop, stream.customProperties[prop]); }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; }; return (clip); } protected function onFullScreen(_arg1:PlayerEvent):void{ if (_vastController != null){ _vastController.onPlayerFullscreenEntry(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; } protected function loadClipsIntoPlayer(_arg1:Array):void{ var _local2:int; if (_arg1 != null){ doLog((("Loading a new set of " + _arg1.length) + " clips into the player playlist:"), Debuggable.DEBUG_PLAYLIST); _local2 = 0; while (_local2 < _arg1.length) { doLog((" + " + ((_arg1[_local2] is HoldingClip)) ? "(holding clip)" : ((((_arg1[_local2].url)!=null) ? _arg1[_local2].url : "(no url, stream may be bitrated)" + ", duration: ") + _arg1[_local2].duration)), Debuggable.DEBUG_PLAYLIST); _local2++; }; if ((((getPlayerVersion() >= 3208)) && (_vastController.delayAdRequestUntilPlay()))){ _player.stop(); }; _player.playlist.replaceClips2(_arg1); }; } public function onOverlayCloseClicked(_arg1:OverlayAdDisplayEvent):void{ doLog((("PLUGIN NOTIFICATION: Event received - overlay close has been clicked (" + _arg1.toString()) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } protected function onAdSlotLoadError(_arg1:AdSlotLoadEvent):void{ doLog(("PLUGIN NOTIFICATION: Ad Slot load error (skipping) - " + _arg1.toString()), Debuggable.DEBUG_PLAYLIST); if (_forcedAdLoadOnInitialisation){ actionPlayerPostTemplateLoad(); _forcedAdLoadOnInitialisation = false; }; if (_arg1.adSlot.isLinear()){ if (_arg1.adSlot.isMidRoll() == false){ if (_player.playlist.hasNext()){ moveToNextClip(); } else { resetPlayback(); }; }; }; } protected function activeClipIsVPAIDLinearAd():Boolean{ var _local1:Stream; if (_vastController != null){ if (_vastController.streamSequence != null){ _local1 = _vastController.streamSequence.streamAt(getActiveStreamIndex()); if (_local1 != null){ if ((_local1 is AdSlot)){ return (((AdSlot(_local1).isLinear()) && (AdSlot(_local1).isInteractive()))); }; }; }; }; return (false); } public function getDefaultConfig():Object{ return ({top:0, left:0, width:"100%", height:"100%"}); } protected function moveToNextClip():void{ _vastController.closeAllAdMessages(); if (_player.playlist.currentIndex < (_player.playlist.length - 1)){ doLog(("Player: Moving to next clip from clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); _player.next(); } else { doLog((("Player: Attempt to move to next clip from index " + _player.playlist.currentIndex) + " stopped. End of playlist. Stopping playback"), Debuggable.DEBUG_PLAYLIST); stopPlayback(); }; } protected function onAdCallComplete(_arg1:AdTagEvent):void{ doLog("PLUGIN NOTIFICATION: Ad Tag call complete", Debuggable.DEBUG_VAST_TEMPLATE); if ((((_arg1.calledOnDemand() == false)) || (((_arg1.calledOnDemand()) && (_arg1.includesLinearAds()))))){ showOVAReady(); }; } public function play(){ doLog("API call to start playback", Debuggable.DEBUG_API); startPlayback(); return (true); } protected function onVPAIDLinearAdComplete(_arg1:VPAIDAdDisplayEvent):void{ showOVAReady(); if (activeStreamIsLinearAd()){ _playingVPAIDLinear = false; doLog("PLUGIN NOTIFICATION: VPAID Linear Ad complete - proceeding to next playlist item", Debuggable.DEBUG_VPAID); moveFromVPAIDLinearToNextPlaylistItem(); } else { if (playerPaused()){ doLog("PLUGIN NOTIFICATION: VPAID Linear Ad complete - show stream is already active - resuming playback", Debuggable.DEBUG_VPAID); enableControlBarWidgets(); resumePlayback(); } else { doLog("PLUGIN NOTIFICATION: VPAID Linear Ad complete - show stream is already active - no additional action required", Debuggable.DEBUG_VPAID); }; }; } protected function onTemplateLoadError(_arg1:TemplateEvent):void{ doLog(("PLUGIN NOTIFICATION: FAILURE loading VAST template - " + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); restorePlaylistAfterSchedulingProcess(); } protected function playlistStartsWithSplashImage():Boolean{ if (_player.playlist.length > 0){ return (clipIsSplashImage(_player.playlist.getClip(0).url)); }; return (false); } protected function loadAdSlot(_arg1:AdSlot):void{ if (((!((_vastController == null))) && (!((_arg1 == null))))){ doLog("Current stream is an 'on-demand' ad slot that needs to be loaded - triggering the load", Debuggable.DEBUG_PLAYLIST); _vastController.loadAdSlotOnDemand(_arg1); }; } public function onHideOverlay(_arg1:OverlayAdDisplayEvent):void{ doLog((("PLUGIN NOTIFICATION: Event received to hide non-linear overlay ad (" + _arg1.toString()) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } public function onLinearAdStarted(_arg1:LinearAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: Event received that linear ad has started", Debuggable.DEBUG_DISPLAY_EVENTS); } public function enableJavascriptCallbacks(){ doLog("Not implemented", Debuggable.DEBUG_API); return (false); } public function onHideNonOverlay(_arg1:OverlayAdDisplayEvent):void{ doLog((("PLUGIN NOTIFICATION: Event received to hide non-linear non-overlay ad (" + _arg1.toString()) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } public function onLoad(_arg1:Flowplayer):void{ _player = _arg1; saveOriginalPlaylist(); initialiseVASTFramework(); registerControlbarListeners(); } protected function onFullScreenExit(_arg1:PlayerEvent):void{ if (_vastController != null){ _vastController.onPlayerFullscreenExit(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; } protected function resumePlayback():void{ doLog(("Player: Resuming playback from clip @ index " + _player.playlist.currentIndex), Debuggable.DEBUG_PLAYLIST); _player.play(); } protected function playerPaused():Boolean{ return ((_player.state == State.PAUSED)); } protected function restoreOriginalPlaylist():void{ if (_originalPlaylistClips != null){ doLog(("Restoring the original player playlist - " + _originalPlaylistClips.length), Debuggable.DEBUG_PLAYLIST); loadClipsIntoPlayer(_originalPlaylistClips); } else { doLog("Cannot restore the original player playlist - it is null", Debuggable.DEBUG_PLAYLIST); }; } override protected function onResize():void{ super.onResize(); if (_vastController != null){ if (_vastController.overlayController == null){ initialiseRegionController(); } else { _vastController.resizeOverlays(new DisplayProperties(this, getPlayerWidth(), getPlayerHeight(), getDisplayMode(), _vastController.getActiveDisplaySpecification(activeStreamIsShowStream()), true, getControlBarHeight(), getControlBarYPosition())); }; }; } public function onOverlayClicked(_arg1:OverlayAdDisplayEvent):void{ doLog((("PLUGIN NOTIFICATION: Event received - overlay has been clicked! (" + _arg1.toString()) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); if (_arg1.nonLinearVideoAd.hasAccompanyingVideoAd()){ playInstreamAd(_arg1.adSlot, true); } else { if (((_arg1.nonLinearVideoAd.hasClickThroughURL()) && (_vastController.pauseOnClickThrough))){ pausePlayback(); }; }; } protected function onClipError(_arg1):void{ doLog(((("Clip error " + _arg1.error.code) + ": ") + _arg1.error.message), Debuggable.DEBUG_ALWAYS); var _local2:Stream = getActiveStream(); _vastController.fireAPICall("onAdClipError", {code:_arg1.error.code, message:_arg1.error.message}, ((_local2)!=null) ? _local2.toJSObject() : null, _player.playlist.current); onLinearAdSkipped(null); } protected function doTrace(_arg1:Object, _arg2:int=1):void{ Debuggable.getInstance().doTrace(_arg1, _arg2); } protected function initialiseVASTController():void{ _vastController.disableRegionDisplay(); _vastController.initialise(_config, false, this); } public function onLinearAdComplete(_arg1:LinearAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: Event received that linear ad is complete", Debuggable.DEBUG_DISPLAY_EVENTS); } protected function loadExistingPlaylist(_arg1:Config):void{ var _local2:int; if (_player.playlist.clips.length > 0){ if (((!((_player.playlist.clips[0].url == null))) || (isBitRatedClip(_player.playlist.clips[0])))){ if (_arg1.outputingDebug()){ doLog(("Shows configuration include items from the Flowplayer playlist " + _player.playlist.toString()), Debuggable.DEBUG_CONFIG); }; if (_arg1.hasStreams()){ _arg1.prependStreams(convertFlowplayerPlaylistToShowStreamConfig()); } else { _arg1.streams = convertFlowplayerPlaylistToShowStreamConfig(); }; if (_arg1.outputingDebug()){ if (_arg1.outputingDebug()){ doLog((("Total show configuration is: " + _arg1.streams.length) + " (length)"), Debuggable.DEBUG_CONFIG); }; _local2 = 0; while (_local2 < _arg1.streams.length) { if (_arg1.outputingDebug()){ doLog(((("- stream " + _local2) + ": ") + ((_arg1.streams[_local2].file)==null) ? "To be determined - e.g. bwcheck etc." : _arg1.streams[_local2].file), Debuggable.DEBUG_CONFIG); }; _local2++; }; }; } else { if (_arg1.outputingDebug()){ doLog("No Flowplayer playlist defined - first clip does not have a URL or 'bitrates' specified", Debuggable.DEBUG_CONFIG); }; }; } else { if (_arg1.outputingDebug()){ doLog("No Flowplayer playlist defined - relying on internal show stream configuration", Debuggable.DEBUG_CONFIG); }; }; } protected function onPauseEvent(_arg1:ClipEvent):void{ if (_vastController != null){ _vastController.onPlayerPause(getActiveStreamIndex(), isActiveLinearClipOverlay()); }; } protected function isActiveLinearClipOverlay():Boolean{ if (_player.currentClip != null){ if ((_player.currentClip is ScheduledClip)){ return (ScheduledClip(_player.currentClip).isOverlayLinear); }; }; return (false); } public function clearOverlays(){ doLog("Not implemented", Debuggable.DEBUG_API); return (false); } public function setActiveLinearAdVolume(_arg1:Number){ if (_vastController != null){ if (_vastController.isVPAIDAdPlaying()){ doLog((("API call made to set the active VPAID ad volume to '" + _arg1) + "'"), Debuggable.DEBUG_API); setActiveVPAIDAdVolume(_arg1); return (true); }; if (activeStreamIsLinearAd()){ doLog((("API call made to set the active linear ad volume to '" + _arg1) + "'"), Debuggable.DEBUG_API); _player.volume = _arg1; _vastController.playerVolume = getPlayerVolume(); return (true); }; }; return (false); } protected function resetPlayerDisplay():void{ enableControlBarWidgets(); setControlBarVisibility(_defaultControlbarVisibilityState); _vastController.hideAllOverlays(); _vastController.closeActiveOverlaysAndCompanions(); doLog("Have reset the control bar and cleared out any visible regions.", Debuggable.DEBUG_PLAYLIST); } protected function loadScheduledClipList():void{ if (_removeFirstImageClipBeforeLoading){ if (_clipList.length > 0){ doLog("Removing the first (image) clip from the playlist before loading (it must be a delayed start with a splash image)...", Debuggable.DEBUG_PLAYLIST); _clipList.shift(); } else { doLog("Not removing the first (image) clip from the playlist before loading - the scheduled playlist is empty", Debuggable.DEBUG_PLAYLIST); }; }; if (_clipList.length > 0){ doLog(("Replacing the player playlist with the ad scheduled cliplist - " + _clipList.length), Debuggable.DEBUG_PLAYLIST); loadClipsIntoPlayer(_clipList); } else { doLog("Not modifying the existing playlist - the scheduled playlist is empty", Debuggable.DEBUG_PLAYLIST); }; } protected function getActiveStreamIndex():int{ if (_player.currentClip != null){ if ((_player.currentClip is ScheduledClip)){ return ((_player.currentClip as ScheduledClip).key); }; return (_player.currentClip.index); }; return (0); } protected function onVPAIDLinearAdExpandedChange(_arg1:VPAIDAdDisplayEvent):void{ doLog(((((("PLUGIN NOTIFICATION: VPAID Linear Ad expanded change - expanded state == " + ((_arg1)!=null) ? _arg1.data.expanded : "'not provided'") + ", linear playback underway == ") + _arg1.data.linearPlayback) + ", player paused == ") + playerPaused()), Debuggable.DEBUG_VPAID); if ((((_arg1.data.expanded == false)) && ((_arg1.data.linearPlayback == false)))){ if (activeStreamIsLinearAd()){ if (nextStreamIsShowStream()){ onResize(); moveFromVPAIDLinearToNextPlaylistItem(); } else { _vastController.closeActiveVPAIDAds(); }; } else { restoreControlBarPostVPAIDLinear(); if (playerPaused()){ onResize(); resumePlayback(); }; }; } else { if (((_arg1.data.expanded) && ((_arg1.data.linearPlayback == false)))){ disableControlBarWidgets(true); pausePlayback(); } else { if (((((_arg1.data.expanded) && (_arg1.data.linearPlayback))) && (activeStreamIsShowStream()))){ disableControlBarWidgets(true); onResize(); pausePlayback(); }; }; }; } protected function nextStreamIsShowStream():Boolean{ var _local1:Stream; if (_vastController != null){ if (_vastController.streamSequence != null){ _local1 = _vastController.streamSequence.streamAt((getActiveStreamIndex() + 1)); if (_local1 != null){ return (!((_local1 is AdSlot))); }; }; }; return (false); } protected function getControlBarHideSetting():String{ var _local2:DisplayObject; var _local1:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (_local1 != null){ _local2 = _local1.getDisplayObject(); if (_local1.config["autoHide"] == null){ return ("ALWAYS"); }; if ((_local1.config["autoHide"] is Boolean)){ if (_local1.config["autoHide"] == false){ return ("NEVER"); }; } else { if ((_local1.config["autoHide"] is String)){ return (_local1.config["autoHide"]); }; if ((_local1.config["autoHide"] is Object)){ if (_local1.config["autoHide"].enabled == false){ return ("NEVER"); }; }; }; }; return ("ALWAYS"); } protected function onTrackingPointFired(_arg1:TrackingPointEvent):void{ } protected function getNewConfigWithDefaults():Config{ var _local1:Config = new Config(); _local1.analytics.update([{type:AnalyticsConfigGroup.GOOGLE_ANALYTICS, element:GoogleAnalyticsConfigGroup.OVA, displayObject:_player.screen.getDisplayObject(), analyticsId:OVA_FP_DEFAULT_GA_ACCOUNT_ID, impressions:{enable:true, linear:"/ova/impression/flowplayer?ova_format=linear", nonLinear:"/ova/impression/flowplayer?ova_format=non-linear", companion:"/ova/impression/flowplayer?ova_format=companion"}, adCalls:{enable:false, fired:"/ova/ad-call/flowplayer?ova_action=fired", complete:"/ova/ad-call/flowplayer?ova_action=complete", failover:"/ova/ad-call/flowplayer?ova_action=failover", error:"/ova/ad-call/flowplayer?ova_action=error", timeout:"/ova/ad-call/flowplayer?ova_action=timeout", deferred:"/ova/ad-call/flowplayer?ova_action=deferred"}, template:{enable:false, loaded:"/ova/template/flowplayer?ova_action=loaded", error:"/ova/template/flowplayer?ova_action=error", timeout:"/ova/template/flowplayer?ova_action=timeout", deferred:"/ova/template/flowplayer?ova_action=deferred"}, adSlot:{enable:false, loaded:"/ova/ad-slot/flowplayer?ova_action=loaded", error:"/ova/ad-slot/flowplayer?ova_action=error", timeout:"/ova/ad-slot/flowplayer?ova_action=timeout", deferred:"/ova/ad-slot/flowplayer?ova_action=deferred"}, progress:{enable:false, start:"/ova/progress/flowplayer?ova_action=start", stop:"/ova/progress/flowplayer?ova_action=stop", firstQuartile:"/ova/progress/flowplayer?ova_action=firstQuartile", midpoint:"/ova/progress/flowplayer?ova_action=midpoint", thirdQuartile:"/ova/progress/flowplayer?ova_action=thirdQuartile", complete:"/ova/progress/flowplayer?ova_action=complete", pause:"/ova/progress/flowplayer?ova_action=pause", resume:"/ova/progress/flowplayer?ova_action=resume", fullscreen:"/ova/progress/flowplayer?ova_action=fullscreen", mute:"/ova/progress/flowplayer?ova_action=mute", unmute:"/ova/progress/flowplayer?ova_action=unmute", expand:"/ova/progress/flowplayer?ova_action=expand", collapse:"/ova/progress/flowplayer?ova_action=collapse", userAcceptInvitation:"/ova/progress/flowplayer?ova_action=userAcceptInvitation", close:"/ova/progress/flowplayer?ova_action=close"}, clicks:{enable:false, linear:"/ova/clicks/flowplayer?ova_action=linear", nonLinear:"/ova/clicks/flowplayer?ova_action=nonLinear", vpaid:"/ova/clicks/flowplayer?ova_action=vpaid"}, vpaid:{enable:false, loaded:"/ova/vpaid/flowplayer?ova_action=loaded", started:"/ova/vpaid/flowplayer?ova_action=started", complete:"/ova/vpaid/flowplayer?ova_action=complete", stopped:"/ova/vpaid/flowplayer?ova_action=stopped", linearChange:"/ova/vpaid/flowplayer?ova_action=linearChange", expandedChange:"/ova/vpaid/flowplayer?ova_action=expandedChange", remainingTimeChange:"/ova/vpaid/flowplayer?ova_action=remainingTimeChange", volumeChange:"/ova/vpaid/flowplayer?ova_action=volumeChange", videoStart:"/ova/vpaid/flowplayer?ova_action=videoStart", videoFirstQuartile:"/ova/vpaid/flowplayer?ova_action=videoFirstQuartile", videoMidpoint:"/ova/vpaid/flowplayer?ova_action=videoMidpoint", videoThirdQuartile:"/ova/vpaid/flowplayer?ova_action=videoThirdQuartile", videoComplete:"/ova/vpaid/flowplayer?ova_action=videoComplete", userAcceptInvitation:"/ova/vpaid/flowplayer?ova_action=userAcceptInvitation", userClose:"/ova/vpaid/flowplayer?ova_action=userClose", paused:"/ova/vpaid/flowplayer?ova_action=paused", playing:"/ova/vpaid/flowplayer?ova_action=playing", error:"/ova/vpaid/flowplayer?ova_action=error"}}]); return (_local1); } protected function onAdSlotLoaded(_arg1:AdSlotLoadEvent):void{ if (_arg1.adSlotHasLinearAds()){ doLog("Inserting linear ad from freshly loaded ad slot into the playlist", Debuggable.DEBUG_PLAYLIST); if (_arg1.adSlot.isInteractive()){ if (_player.isPlaying()){ doLog("Starting the newly loaded VPAID ad - player is playing at this time", Debuggable.DEBUG_PLAYLIST); playVPAIDAdSlot(_arg1.adSlot); } else { doLog("Not starting newly loaded VPAID ad - player is not playing at this time", Debuggable.DEBUG_PLAYLIST); _arg1.adSlot.flag = true; if (_forcedAdLoadOnInitialisation){ actionPlayerPostTemplateLoad(); }; }; } else { if (insertLinearAdAsClip(_arg1.adSlot, _player.playlist.currentIndex, _forcedAdLoadOnInitialisation)){ _arg1.adSlot.flag = true; if (_forcedAdLoadOnInitialisation){ actionPlayerPostTemplateLoad(); }; } else { if (_arg1.adSlot.isMidRoll()){ doLog("Failure to insert linear video ad as an instream mid-roll clip - skipping", Debuggable.DEBUG_PLAYLIST); _forcedAdLoadOnInitialisation = false; return; }; if (_player.playlist.hasNext()){ doLog("Failure to insert linear video ad as current clip - skipping", Debuggable.DEBUG_PLAYLIST); moveToNextClip(); } else { doLog("Failure to insert linear video ad as current clip - at end of playlist - resetting to clip 0", Debuggable.DEBUG_PLAYLIST); resetPlayback(); }; }; }; } else { if (_arg1.adSlot.isNonLinear()){ } else { if (_arg1.adSlot.isMidRoll() == false){ doLog((((("Ad slot loaded but it does not have any linear ads to play - skipping to the next playlist item - autoPlay='" + _vastController.autoPlay()) + "', player.isPlaying()='") + _player.isPlaying()) + "'"), Debuggable.DEBUG_PLAYLIST); if (_forcedAdLoadOnInitialisation){ actionPlayerPostTemplateLoad(); }; moveToNextClip(); } else { doLog("Mid-roll ad slot loaded but without an ad to play - skipping", Debuggable.DEBUG_PLAYLIST); }; }; }; _forcedAdLoadOnInitialisation = false; } protected function registerControlbarListeners():void{ var model:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (model != null){ with ({}) { with ({}) { !ERROR!.controlBarShown = function (_arg1:PluginEvent):void{ if (_arg1.id == "onShowed"){ _controlBarVisible = true; onResize(); } else { if (_arg1.id == "onHidden"){ _controlBarVisible = false; resizeWithHiddenControls(); }; }; }; }; model.onPluginEvent(function (_arg1:PluginEvent):void{ if (_arg1.id == "onShowed"){ _controlBarVisible = true; onResize(); } else { if (_arg1.id == "onHidden"){ _controlBarVisible = false; resizeWithHiddenControls(); }; }; }); }; } public function isOVAConfigLoading():Boolean{ return (false); } protected function onStreamFinish(_arg1:ClipEvent):void{ _vastController.closeActiveVPAIDAds(); _lastOnBeforeBeginEvent = null; } protected function onStreamBegin(_arg1:ClipEvent):void{ if ((_player.currentClip is HoldingClip)){ pausePlayback(); } else { if (activeStreamIsShowStream()){ resetPlayerDisplay(); }; }; } protected function getControlBarHeight(_arg1:DisplayObject=null):int{ if (_vastController != null){ return (_vastController.config.playerConfig.getControlBarHeight()); }; return (getPlayerReportedControlBarHeight()); } protected function initialiseVASTFramework(_arg1:Object=null):void{ _instreamMidRollScheduled = false; _lastOnBeforeBeginEvent = null; _vastController = new VASTController(); _vastController.startStreamSafetyMargin = 500; _vastController.endStreamSafetyMargin = 500; _vastController.playerVolume = (_player.muted) ? 0 : getPlayerVolume(); _vastController.additionMetricsParams = ((("ova_plugin_version=" + OVA_VERSION) + "&ova_player_version=") + _player.version); var _local2:String; var _local3:Object = ((_arg1)!=null) ? _arg1 : _model.config; if (_local3 != null){ if (_local3.ads != undefined){ if (_local3.ads.filterOnLinearAdMimeTypes == undefined){ _local2 = "Setting accepted Linear Ad mime types to default list - swf, mp4 and flv"; _local3.ads.acceptedLinearAdMimeTypes = ["video/flv", "video/mp4", "video/x-flv", "video/x-mp4", "application/x-shockwave-flash", "flv", "mp4", "swf"]; _local3.ads.filterOnLinearAdMimeTypes = true; } else { _local2 = ("Setting accepted Linear Ad mime types based on config - enabled = " + _local3.ads.filterOnLinearAdMimeTypes); }; } else { _local2 = "Setting accepted Linear Ad mime types to defaults - swf, mp4 and flv"; _local3.ads = new Object(); _local3.ads.acceptedLinearAdMimeTypes = ["video/flv", "video/mp4", "video/x-flv", "video/x-mp4", "application/x-shockwave-flash", "flv", "mp4", "swf"]; _local3.ads.filterOnLinearAdMimeTypes = true; }; _config = (new PropertyBinder(getNewConfigWithDefaults(), null).copyProperties(_vastController.preProcessDepreciatedConfig(_local3)) as Config); } else { _config = getNewConfigWithDefaults(); }; _config.signalInitialisationComplete(); if (_config.outputingDebug()){ if (_local2 != null){ doLog(_local2, Debuggable.DEBUG_CONFIG); }; doLog(("OVA Plugin zIndex is " + DisplayPluginModelImpl(_model).zIndex), Debuggable.DEBUG_CONFIG); }; _clipList = new Array(); loadExistingPlaylist(_config); if (((_config.delayAdRequestUntilPlay) && (!(_config.autoPlay)))){ setupPlayerToDeferInitialisation(); } else { initialiseControllersAndHandlers(); }; } protected function onVPAIDLinearAdLinearChange(_arg1:VPAIDAdDisplayEvent):void{ doLog(("PLUGIN NOTIFICATION: VPAID Linear Ad linear change - linear state == " + ((_arg1)!=null) ? _arg1.data : "'not provided'"), Debuggable.DEBUG_VPAID); if (_arg1.data == true){ }; } protected function onVPAIDNonLinearAdComplete(_arg1:VPAIDAdDisplayEvent):void{ showOVAReady(); enableControlBarWidgets(); if (playerPaused()){ doLog("PLUGIN NOTIFICATION: VPAID Non-Linear Ad complete - resuming playback", Debuggable.DEBUG_VPAID); resumePlayback(); } else { doLog("PLUGIN NOTIFICATION: VPAID Non-Linear Ad complete - no action required", Debuggable.DEBUG_VPAID); }; } protected function playVPAIDAdSlot(_arg1:AdSlot):void{ if (_vastController != null){ doLog("Active clip is a VPAID ad - triggering the playback", Debuggable.DEBUG_PLAYLIST); if (_player.isPlaying()){ pausePlayback(); }; _vastController.playVPAIDAd(_arg1, _player.muted, false, getPlayerVolume()); }; } public function getAdSchedule(){ return (_vastController.adSchedule.toJSObject()); } protected function onVPAIDLinearAdLoading(_arg1:VPAIDAdDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: VPAID ad loading", Debuggable.DEBUG_VPAID); showOVABusy(); } protected function recordDefaultControlbarState():void{ var _local2:DisplayObject; var _local1:DisplayPluginModel = (_player.pluginRegistry.getPlugin(CONTROLS_PLUGIN_NAME) as DisplayPluginModel); if (_local1 != null){ _local2 = _local1.getDisplayObject(); _defaultControlbarVisibilityState = _local2.visible; _autoHidingControlBar = StringUtils.matchesIgnoreCase(getControlBarHideSetting(), "ALWAYS"); doLog(("Default controlbar state set to visibility=" + _defaultControlbarVisibilityState), Debuggable.DEBUG_CONFIG); } else { _defaultControlbarVisibilityState = false; doLog("Cannot record the default state of the control bar - cannot get a handle to it", Debuggable.DEBUG_CONFIG); }; } protected function attemptCurrentStreamDurationAdjustment(_arg1:Stream, _arg2:Number, _arg3:Boolean=false):Boolean{ var _local4:int = _arg1.getDurationAsInt(); var _local5:int = Math.floor(_arg2); if (((!((_local4 == _arg2))) && ((_arg2 > 0)))){ doLog(((((((_arg1 is AdSlot)) ? "Ad" : "Show" + " stream duration requires adjustment - original duration: ") + _local4) + ", metadata duration: ") + _arg2), Debuggable.DEBUG_CONFIG); if (_player.currentClip != null){ _player.currentClip.duration = _arg2; _arg1.duration = String(_local5); if (_arg3){ modifyTrackingCuepoints(_player.currentClip, _arg1.getTrackingTable(), getActiveStreamIndex()); } else { setupTrackingCuepoints(_player.currentClip, _arg1.getTrackingTable(), getActiveStreamIndex()); }; doLog(("Active stream duration and tracking points updated to reflect new clip duration of " + _player.currentClip.duration), Debuggable.DEBUG_CONFIG); return (true); } else { doLog((("Not changing " + ((_arg1 is AdSlot)) ? "Ad" : "Show") + " stream duration - cannot get a handle to the 'current' stream in the playlist"), Debuggable.DEBUG_CONFIG); }; } else { doLog((((((((("Not adjusting the " + ((_arg1 is AdSlot)) ? "Ad" : "Show") + " stream duration based on metadata (") + _arg2) + ") - it is either zero or the same as currently set on the clip (") + _local4) + " == ") + _arg2) + ")"), Debuggable.DEBUG_CONFIG); }; return (false); } protected function convertFlowplayerPlaylistToShowStreamConfig():Array{ var _local1:Array = new Array(); var _local2:int; while (_local2 < _player.playlist.clips.length) { _local1.push(new StreamConfig(_player.playlist.clips[_local2].url, _player.playlist.clips[_local2].url, Timestamp.secondsToTimestamp(_player.playlist.clips[_local2].duration), false, "any", false, _player.playlist.clips[_local2].metaData, _player.playlist.clips[_local2].autoPlay, _player.playlist.clips[_local2].provider, {isOriginallyPlaylistClip:true, originalPlaylistIndex:_local2, baseUrl:deriveBaseUrlFromClip(_player.playlist.clips[_local2]), originalClip:_player.playlist.clips[_local2]}, {customProperties:_player.playlist.clips[_local2].customProperties, accelerated:_player.playlist.clips[_local2].accelerated, autoBuffering:_player.playlist.clips[_local2].autoBuffering, bufferLength:_player.playlist.clips[_local2].bufferLength, fadeInSpeed:_player.playlist.clips[_local2].fadeInSpeed, fadeOutSpeed:_player.playlist.clips[_local2].fadeOutSpeed, image:_player.playlist.clips[_local2].image, linkUrl:_player.playlist.clips[_local2].linkUrl, linkWindow:_player.playlist.clips[_local2].linkWindow, live:_player.playlist.clips[_local2].live, position:_player.playlist.clips[_local2].position, scaling:_player.playlist.clips[_local2].scaling, seekableOnBegin:_player.playlist.clips[_local2].seekableOnBegin, baseUrl:_player.playlist.clips[_local2].baseUrl, autoPlay:_player.playlist.clips[_local2].autoPlay, urlResolvers:_player.playlist.clips[_local2].urlResolvers, metaData:_player.playlist.clips[_local2].metaData, connectionProvider:((_player.playlist.clips[_local2].connectionProvider)!=undefined) ? _player.playlist.clips[_local2].connectionProvider : null}, null, Timestamp.secondsToTimestamp(_player.playlist.clips[_local2].start))); _local2++; }; return (_local1); } protected function onSetTrackingPoint(_arg1:TrackingPointEvent):void{ } protected function getPlayerVolume():Number{ return ((_player.volume / 100)); } public function disableJavascriptCallbacks(){ doLog("Not implemented", Debuggable.DEBUG_API); return (false); } public function onToggleSeekerBar(_arg1:SeekerBarEvent):void{ var _local2:Boolean; if (((!((_vastController == null))) && (activeStreamIsLinearAd()))){ _local2 = activeClipIsVPAIDLinearAd(); doLog(("onToggleSeekerBar() event received - linear ad " + (_local2) ? "is VPAID" : "is stream"), Debuggable.DEBUG_DISPLAY_EVENTS); if (_vastController.config.playerConfig.shouldManageControlsDuringLinearAds(_local2)){ if (_arg1.turnOff()){ if (_vastController.config.playerConfig.shouldHideControlsOnLinearPlayback(_local2)){ doLog("Hiding the control bar", Debuggable.DEBUG_DISPLAY_EVENTS); setControlBarVisibility(false); } else { if (_vastController.config.playerConfig.shouldDisableControlsDuringLinearAds()){ doLog("Disabling the control bar", Debuggable.DEBUG_DISPLAY_EVENTS); disableControlBarWidgets(_local2); }; }; } else { doLog("Enabling the control bar", Debuggable.DEBUG_DISPLAY_EVENTS); enableControlBarWidgets(); setControlBarVisibility(_defaultControlbarVisibilityState); }; } else { doLog("OVA will not manipulate the control bar - the 'manage' config option is set to false", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("Enabling the control bar - stream is not a linear ad", Debuggable.DEBUG_DISPLAY_EVENTS); enableControlBarWidgets(); setControlBarVisibility(_defaultControlbarVisibilityState); }; } protected function onVPAIDLinearAdError(_arg1:VPAIDAdDisplayEvent):void{ showOVAReady(); if (activeStreamIsLinearAd()){ _playingVPAIDLinear = false; doLog(((_arg1)!=null) ? (("PLUGIN NOTIFICATION: VPAID Linear Ad error ('" + ((_arg1.data)!=null) ? _arg1.data.message : "") + "') proceeding to next playlist item") : "PLUGIN NOTIFICATION: VPAID Linear Ad error proceeding to next playlist item", Debuggable.DEBUG_VPAID); moveFromVPAIDLinearToNextPlaylistItem(); } else { if (playerPaused()){ doLog((("PLUGIN NOTIFICATION: VPAID Linear Ad error ('" + ((_arg1.data)!=null) ? _arg1.data.message : "") + "') - Active stream is a show stream - resuming playback"), Debuggable.DEBUG_VPAID); enableControlBarWidgets(); resumePlayback(); } else { doLog((("PLUGIN NOTIFICATION: VPAID Linear Ad error ('" + ((_arg1.data)!=null) ? _arg1.data.message : "") + "') - Active stream is a show stream - no additional action required"), Debuggable.DEBUG_VPAID); }; }; } protected function onSeekEvent(_arg1:ClipEvent):void{ var _local2:Array; if (_timeBeforeSeek > -1){ if (_vastController.config.adsConfig.enforceMidRollPlayback){ if (_arg1.info < _player.playlist.current.duration){ if (activeStreamIsShowStream()){ _local2 = _vastController.getMidrollsForStreamBetween(getActiveStream().originatingStreamIndex, _timeBeforeSeek, Number(_arg1.info)); if (_local2.length > 0){ doLog((_local2.length + " mid-rolls skipped during this seek - triggering the playback of the first mid-roll"), Debuggable.DEBUG_PLAYLIST); playInstreamAd(_local2[0], false); _timeBeforeSeek = -1; return; }; }; }; }; _timeBeforeSeek = -1; }; if (_vastController != null){ _vastController.onPlayerSeek(getActiveStreamIndex(), isActiveLinearClipOverlay(), (int(_arg1.info) * 1000)); }; } protected function getPlayerHeight():Number{ return (height); } public function onHideCompanionAd(_arg1:CompanionAdDisplayEvent):void{ doLog((((("PLUGIN NOTIFICATION: Request received to hide companion ad (" + _arg1.companionAd.width) + "X") + _arg1.companionAd.height) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); } protected function checkAutoPlaySettings():void{ if (_player.playlist.length == 0){ doLog("Checking autoPlay after ad call processed - leaving as is - no playlist", Debuggable.DEBUG_CONFIG); return; }; if (_player.playlist.length == 1){ if (clipIsSplashImage(_player.playlist.clips[0]) == false){ doLog(("Checking autoPlay after ad call processed: playlist length == 1: clip[0] is not an image so set to - " + _vastController.autoPlay()), Debuggable.DEBUG_CONFIG); _player.playlist.clips[0].autoPlay = _vastController.autoPlay(); } else { doLog(("Checking autoPlay after ad call processed: playlist length == 1: clip[0] is an image so leaving as is - " + _player.playlist.clips[0].autoPlay), Debuggable.DEBUG_CONFIG); }; } else { if (clipIsSplashImage(_player.playlist.clips[0])){ _player.playlist.clips[0].autoPlay = true; _player.playlist.clips[1].autoPlay = _vastController.autoPlay(); doLog(("Checking autoPlay after ad call processed: playlist length > 1: clip[0] is an image so autoPlay set on clip[1] to: " + _vastController.autoPlay()), Debuggable.DEBUG_CONFIG); } else { _clipList[0].autoPlay = _vastController.autoPlay(); doLog(("Checking autoPlay after ad call processed: playlist length > 1: clip[0] is not an image so set to: " + _vastController.autoPlay()), Debuggable.DEBUG_CONFIG); }; }; } protected function onProcessVolumeEvent(_arg1:PlayerEvent):void{ var _local2:IVPAID; if (_vastController != null){ if (_player.volume == 0){ _wasZeroVolume = true; onMuteEvent(_arg1); } else { if (_wasZeroVolume){ onUnmuteEvent(_arg1); _wasZeroVolume = false; } else { if (_vastController.isVPAIDAdPlaying()){ if (_player.muted == false){ _local2 = _vastController.getActiveVPAIDAd(); if (_local2 != null){ _local2.adVolume = getPlayerVolume(); }; }; }; }; }; }; } public function pause(){ if (_vastController != null){ if (activeClipIsVPAIDLinearAd()){ doLog("Pausing VPAID ad", Debuggable.DEBUG_API); _vastController.overlayController.getActiveVPAIDAd().pauseAd(); return (true); }; if (activeStreamIsLinearAd()){ doLog("Pausing Linear ad", Debuggable.DEBUG_API); _player.pause(); return (true); }; if (activeStreamIsShowStream()){ doLog("Pausing show stream", Debuggable.DEBUG_API); _player.pause(); return (true); }; }; return (false); } public function onHideNotice(_arg1:AdNoticeDisplayEvent):void{ doLog("PLUGIN NOTIFICATION: Event received to hide ad notice", Debuggable.DEBUG_DISPLAY_EVENTS); } protected function onAdSlotLoadTimeout(_arg1:AdSlotLoadEvent):void{ doLog(("PLUGIN NOTIFICATION: TIMEOUT loading Ad Slot (skipping) - " + _arg1.toString()), Debuggable.DEBUG_FATAL); if (_forcedAdLoadOnInitialisation){ actionPlayerPostTemplateLoad(); _forcedAdLoadOnInitialisation = false; }; if (_arg1.adSlot.isLinear()){ if (_arg1.adSlot.isMidRoll() == false){ if (_player.playlist.hasNext()){ moveToNextClip(); } else { resetPlayback(); }; }; }; } protected function onStreamSchedule(_arg1:StreamSchedulingEvent):void{ var _local2:Clip; var _local3:int; var _local4:String; var _local5:String; if (_arg1 != null){ if (_arg1.stream != null){ if (((_arg1.stream.isSlicedStream()) && (!(_arg1.stream.isFirstSlice())))){ doLog((((((("PLUGIN NOTIFICATION: Ignoring request to schedule stream '" + _arg1.stream.id) + "' ('") + _arg1.stream.streamName) + "') at index ") + _arg1.scheduleIndex) + " - sliced and it's not the first segment"), Debuggable.DEBUG_PLAYLIST); return; }; _local2 = null; if ((_arg1.stream is AdSlot)){ if (((AdSlot(_arg1.stream).loadOnDemand) && ((AdSlot(_arg1.stream).hasLinearAd() == false)))){ doLog(((("PLUGIN NOTIFICATION: Scheduling on-demand ad stream '" + _arg1.stream.id) + "' at index ") + _arg1.scheduleIndex), Debuggable.DEBUG_PLAYLIST); _local2 = new HoldingClip(getDefaultHoldingClipProperties()); HoldingClip(_local2).key = _arg1.scheduleIndex; } else { doLog(((((("PLUGIN NOTIFICATION: Scheduling pre-loaded ad stream '" + _arg1.stream.id) + "' ('") + _arg1.stream.streamName) + "') at index ") + _arg1.scheduleIndex), Debuggable.DEBUG_PLAYLIST); _local2 = setupClipFromStream(_arg1.stream, _arg1.scheduleIndex, new ScheduledClip(), true); }; if (AdSlot(_arg1.stream).isMidRoll()){ _local3 = 0; _local4 = null; _local5 = null; if (_activeShowClip != null){ if (AdSlot(_arg1.stream).loadOnDemand){ doLog("Ad stream is an on-demand mid-roll - attempting to setup cuepoints to trigger load", Debuggable.DEBUG_PLAYLIST); if (_instreamMidRollScheduled == false){ _activeShowClip.duration = (_activeShowClip as ScheduledClip).originalDuration; doLog((("Duration of underlying stream set to " + _activeShowClip.duration) + " - mid-roll holding clip has been created"), Debuggable.DEBUG_PLAYLIST); _local3 = (Timestamp.timestampToSeconds(_arg1.stream.startTime) * 1000); _local4 = ("OD:" + AdSlot(_arg1.stream).index); _local5 = ("OX:" + AdSlot(_arg1.stream).index); _activeShowClip.addCuepoint(new Cuepoint(_local3, _local4)); _activeShowClip.addCuepoint(new Cuepoint((_local3 + 500), _local5)); doLog((((("Added on-demand mid-roll cuepoint '" + _local4) + "' @ ") + _local3) + " seconds to trigger ad call and instream insertion"), Debuggable.DEBUG_CUEPOINT_FORMATION); } else { doLog("Ignoring on-demand mid-roll - non on-demand mid-rolls have already been inserted", Debuggable.DEBUG_PLAYLIST); }; } else { if ((_local2 is HoldingClip)){ _local3 = (Timestamp.timestampToSeconds(_arg1.stream.startTime) * 1000); _local4 = ("VM:" + AdSlot(_arg1.stream).index); _local5 = ("VX:" + AdSlot(_arg1.stream).index); _activeShowClip.addCuepoint(new Cuepoint(_local3, _local4)); _activeShowClip.addCuepoint(new Cuepoint((_local3 + 500), _local5)); doLog((((("Adding pre-loaded VPAID mid-roll cuepoint '" + _local4) + "' @ ") + _local3) + " to trigger VPAID playback"), Debuggable.DEBUG_PLAYLIST); } else { _activeShowClip.addChild(_local2); _instreamMidRollScheduled = true; doLog(((((((("Added mid-roll ad as child Stream (running time " + _local2.duration) + ") provider: ") + _local2.provider) + ", baseUrl: ") + _local2.baseUrl) + ", url: ") + _local2.url), Debuggable.DEBUG_PLAYLIST); }; }; }; return; }; } else { doLog(((((("PLUGIN NOTIFICATION: Scheduling stream '" + _arg1.stream.id) + "' ('") + _arg1.stream.streamName) + "') at index ") + _arg1.scheduleIndex), Debuggable.DEBUG_PLAYLIST); _local2 = setupClipFromStream(_arg1.stream, _arg1.scheduleIndex, new ScheduledClip(), true); _activeShowClip = _local2; if ((_activeShowClip is ScheduledClip)){ _activeShowClip.duration = (_activeShowClip as ScheduledClip).originalDuration; doLog((("Duration of underlying stream set to " + _activeShowClip.duration) + " seconds"), Debuggable.DEBUG_PLAYLIST); }; }; if (_local2 != null){ _clipList.push(_local2); if ((_local2 is HoldingClip)){ doLog("Added Holding Clip to the playlist", Debuggable.DEBUG_PLAYLIST); } else { doLog(((((("Added Stream clip " + _local2.provider) + " - ") + _local2.baseUrl) + ", ") + _local2.url), Debuggable.DEBUG_PLAYLIST); }; }; } else { doLog("PLUGIN NOTIFICATION: onStreamSchedule received an event without a stream - ignoring request to schedule", Debuggable.DEBUG_PLAYLIST); }; }; } } }//package org.openvideoads.plugin.flowplayer.streamer
Section 63
//BaseRegionConfig (org.openvideoads.regions.config.BaseRegionConfig) package org.openvideoads.regions.config { import flash.display.*; import org.openvideoads.base.*; import org.openvideoads.util.*; public class BaseRegionConfig extends Debuggable { protected var _originalBackgroundColor:String;// = null protected var _closeButton:CloseButtonConfig; protected var _backgroundImage:String;// = null protected var _html:String;// = null protected var _backgroundColor:String;// = null protected var _backgroundGradient;// = null protected var _style:String;// = null protected var _borderWidth:int;// = -1 protected var _borderRadius:int;// = -1 protected var _id:String;// = null protected var _swf;// = null protected var _backgroundRepeat:String;// = null protected var _border:String;// = null protected var _opacity:Number;// = -1 protected var _background:String;// = null protected var _padding:String;// = "5 5 5 5" protected var _borderColor:String;// = null protected var _scaleRate:Number;// = 1 protected var _image;// = null protected var _styleSheetAddress:String; protected var _originalBackground:String;// = null public function BaseRegionConfig(_arg1:Object=null){ _closeButton = new CloseButtonConfig(); super(); setup(_arg1); } public function hasBorderWidth():Boolean{ return ((_borderWidth > -1)); } public function get borderWidth():int{ return (_borderWidth); } public function get swf(){ return (_swf); } public function set backgroundGradient(_arg1):void{ _backgroundGradient = _arg1; } public function set swf(_arg1):void{ _swf = _arg1; } public function set closeButton(_arg1:CloseButtonConfig):void{ _closeButton = _arg1; } public function set backgroundTransparent(_arg1:Boolean):void{ if (_arg1){ makeBackgroundTransparent(); } else { restoreOriginalBackground(); }; } public function imageIsBitmap():Boolean{ return ((_image is Bitmap)); } public function restoreOriginalBackground():void{ _background = _originalBackground; _backgroundColor = _originalBackgroundColor; } public function hasSWF():Boolean{ return (!((_swf == null))); } public function get opacity():Number{ return (_opacity); } public function get borderColor():String{ return (_borderColor); } public function get id():String{ return (_id); } public function set stylesheet(_arg1:String):void{ _styleSheetAddress = _arg1; } public function hasBorderRadius():Boolean{ return ((_borderRadius > -1)); } public function get backgroundGradient(){ return (_backgroundGradient); } public function set backgroundImage(_arg1:String):void{ _backgroundImage = _arg1; } public function set padding(_arg1:String):void{ _padding = _arg1; } public function hasOpacity():Boolean{ return ((_opacity > -1)); } public function hasBackgroundRepeat():Boolean{ return (!((_backgroundRepeat == null))); } public function get html():String{ return (_html); } public function makeBackgroundTransparent():void{ _background = "transparent"; _backgroundColor = "transparent"; } public function get style():String{ return (_style); } public function set borderColor(_arg1:String):void{ _borderColor = _arg1; } public function set id(_arg1:String):void{ _id = _arg1; } public function set backgroundColor(_arg1:String):void{ _backgroundColor = _arg1; _originalBackgroundColor = _arg1; } public function set borderRadius(_arg1:int):void{ _borderRadius = _arg1; } public function get padding():String{ return (_padding); } public function get properties():Object{ var _local1:Object = new Object(); _local1.id = id; _local1.border = border; _local1.borderRadius = borderRadius; _local1.backgroundGradient = backgroundGradient; _local1.backgroundImage = backgroundImage; _local1.backgroundColor = backgroundColor; _local1.closeButton = closeButton; _local1.opacity = opacity; _local1.stylesheet = stylesheet; _local1.style = style; _local1.scaleRate = scaleRate; _local1.image = image; _local1.swf = swf; return (_local1); } public function get border():String{ return (_border); } public function set image(_arg1):void{ _image = _arg1; } public function get background():String{ return (_background); } public function hasBackgroundGradient():Boolean{ return (!((_backgroundGradient == null))); } public function hasBorderColor():Boolean{ return (!((_borderColor == null))); } public function set opacity(_arg1:Number):void{ _opacity = _arg1; } public function get scaleRate():Number{ return (_scaleRate); } public function hasBackgroundImage():Boolean{ return (!((_backgroundImage == null))); } public function get backgroundImage():String{ return (_backgroundImage); } public function get stylesheet():String{ return (_styleSheetAddress); } public function set html(_arg1:String):void{ _html = _arg1; } public function set backgroundRepeat(_arg1:String):void{ _backgroundRepeat = _arg1; } public function hasBackgroundColor():Boolean{ return (!((_backgroundColor == null))); } public function get borderRadius():int{ return (_borderRadius); } public function set border(_arg1:String):void{ _border = _arg1; } public function hasImage():Boolean{ return (!((_image == null))); } public function set style(_arg1:String):void{ _style = _arg1; } public function set background(_arg1:String):void{ _background = _arg1; _originalBackground = _arg1; } public function hasBorder():Boolean{ return (!((_border == null))); } public function hasBackground():Boolean{ return (!((_background == null))); } public function get backgroundRepeat():String{ return (_backgroundRepeat); } public function get image(){ return (_image); } public function get closeButton():CloseButtonConfig{ return (_closeButton); } public function get backgroundColor():String{ return (_backgroundColor); } public function imageIsLoader():Boolean{ return ((_image is Loader)); } public function canShowCloseButton():Boolean{ return (((_closeButton)!=null) ? _closeButton.enabled : true); } public function set scaleRate(_arg1:Number):void{ _scaleRate = _arg1; } public function set borderWidth(_arg1:int):void{ _borderWidth = _arg1; } public function setup(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.id != undefined){ id = _arg1.id; }; if (_arg1.stylesheet != undefined){ stylesheet = _arg1.stylesheet; }; if (_arg1.style != undefined){ style = _arg1.style; }; if (_arg1.border != undefined){ border = _arg1.border; }; if (_arg1.borderRadius != undefined){ borderRadius = _arg1.borderRadius; }; if (_arg1.borderColor != undefined){ borderColor = _arg1.borderColor; }; if (_arg1.borderWidth != undefined){ borderWidth = _arg1.borderWidth; }; if (_arg1.backgroundGradient != undefined){ backgroundGradient = _arg1.backgroundGradient; }; if (_arg1.background != undefined){ background = _arg1.background; }; if (_arg1.backgroundImage != undefined){ backgroundImage = StringUtils.revertSingleQuotes(_arg1.backgroundImage, "%27"); }; if (_arg1.backgroundRepeat != undefined){ backgroundRepeat = _arg1.backgroundRepeat; }; if (_arg1.backgroundColor != undefined){ backgroundColor = _arg1.backgroundColor; }; if (_arg1.closeButton != undefined){ if ((_arg1.closeButton is CloseButtonConfig)){ _closeButton = _arg1.closeButton; } else { _closeButton = new CloseButtonConfig(_arg1.closeButton); }; }; if (_arg1.padding != undefined){ padding = _arg1.padding; }; if (_arg1.opacity != undefined){ opacity = _arg1.opacity; }; if (_arg1.html != undefined){ html = StringUtils.revertSingleQuotes(_arg1.html, "'"); }; if (_arg1.image != undefined){ image = _arg1.image; }; if (_arg1.swf != undefined){ swf = _arg1.swf; }; }; } } }//package org.openvideoads.regions.config
Section 64
//CloseButtonConfig (org.openvideoads.regions.config.CloseButtonConfig) package org.openvideoads.regions.config { import org.openvideoads.base.*; public class CloseButtonConfig extends Debuggable { protected var _enabled:Boolean;// = true protected var _height:int;// = 15 protected var _width:int;// = 15 protected var _type:String;// = "crosshair" protected var _color:String;// = "#FFFFFF" protected var _imageURL:String;// = null public function CloseButtonConfig(_arg1:Object=null){ if (_arg1 != null){ initialise(_arg1); }; } public function get enabled():Boolean{ return (_enabled); } public function set enabled(_arg1:Boolean):void{ _enabled = _arg1; } public function get width():int{ return (_width); } public function set width(_arg1:int):void{ _width = _arg1; } public function get imageURL():String{ return (_imageURL); } public function set height(_arg1:int):void{ _height = _arg1; } public function set color(_arg1:String):void{ _color = _arg1; } public function get color():String{ return (_color); } public function get height():int{ return (_height); } public function set imageURL(_arg1:String):void{ _imageURL = _arg1; } public function set type(_arg1:String):void{ _type = _arg1; } protected function initialise(_arg1:Object):void{ if (_arg1.type != undefined){ _type = _arg1.type; }; if (_arg1.color != undefined){ _color = _arg1.color; }; if (_arg1.enabled != undefined){ _enabled = _arg1.enabled; }; if (_arg1.image != undefined){ _imageURL = _arg1.image; }; if (_arg1.width != undefined){ _width = _arg1.width; }; if (_arg1.height != undefined){ _height = _arg1.height; }; } public function get type():String{ if (_type != null){ return (_type.toUpperCase()); }; return (_type); } } }//package org.openvideoads.regions.config
Section 65
//RegionsConfig (org.openvideoads.regions.config.RegionsConfig) package org.openvideoads.regions.config { import org.openvideoads.base.*; public class RegionsConfig extends BaseRegionConfig { protected var _makeRegionsVisible:Boolean;// = false protected var _regions:Array; protected var _skin:String;// = null public function RegionsConfig(_arg1:Object=null){ _regions = new Array(); super(_arg1); } public function get makeRegionsVisible():Boolean{ return (_makeRegionsVisible); } public function set makeRegionsVisible(_arg1:Boolean):void{ _makeRegionsVisible = _arg1; } public function hasRegionDefinitions():Boolean{ return ((_regions.length > 0)); } override public function setup(_arg1:Object):void{ super.setup(_arg1); id = "master"; if (_arg1 != null){ if (_arg1.hasOwnProperty("declarations")){ regions = _arg1.declarations; }; if (_arg1.closeButton != undefined){ closeButton = new CloseButtonConfig(_arg1.closeButton); }; }; } public function set regions(_arg1:Array):void{ var _local2:int; var _local3:RegionViewConfig; _regions = new Array(); if (_arg1 != null){ doLog((("Recording " + _arg1.length) + " custom region declarations..."), Debuggable.DEBUG_REGION_FORMATION); _local2 = 0; while (_local2 < _arg1.length) { _local3 = new RegionViewConfig(properties); _local3.setup(_arg1[_local2]); _regions.push(_local3); _local2++; }; }; } public function get regions():Array{ return (_regions); } } }//package org.openvideoads.regions.config
Section 66
//RegionViewConfig (org.openvideoads.regions.config.RegionViewConfig) package org.openvideoads.regions.config { import org.openvideoads.util.*; public class RegionViewConfig extends BaseRegionConfig { protected var _horizontalAlign:String;// = "left" protected var _useOverrideMargin:Boolean;// = false protected var _additionalHeight;// = 0 protected var _expandedWidth:Number;// = -1 protected var _keepVisibleAfterClick:Boolean;// = false protected var _minimizedHeight;// = null protected var _autoShow:Boolean;// = false protected var _autoSizing:Boolean;// = false protected var _resetAdditionalHeightOnResize:String;// = null protected var _clickToPlay:Boolean;// = false protected var _canScale:Boolean;// = false protected var _width; protected var _height; protected var _template:String;// = null protected var _contentTypes:String;// = null protected var _verticalAlignOffset:Number;// = 0 protected var _expandedHeight:Number;// = -1 protected var _clickable:Boolean;// = true protected var _autoHide:Boolean;// = true protected var _verticalAlignPosition:String;// = "TOP" protected static var TEMPLATES:Array = [{id:"standard-text", html:""}]; public function RegionViewConfig(_arg1:Object=null){ super(_arg1); } public function set expandedHeight(_arg1:Number):void{ _expandedHeight = _arg1; } public function calculateMinimizedHeight(_arg1:DisplayProperties):Number{ if (((((StringUtils.matchesIgnoreCase(_minimizedHeight, "CONTROLS-YPOS-WHEN-VISIBLE-ALL-MODES")) || (((_arg1.displayModeIsNormal()) && (StringUtils.matchesIgnoreCase(_minimizedHeight, "CONTROLS-YPOS-WHEN-VISIBLE-NORMAL")))))) || (((_arg1.displayModeIsFullscreen()) && (StringUtils.matchesIgnoreCase(_minimizedHeight, "CONTROLS-YPOS-WHEN-VISIBLE-FULLSCREEN")))))){ if (_arg1.controlsVisibleAtBottom){ return (_arg1.controlsYPos); }; }; return (_arg1.displayHeight); } public function get useOverrideMargin():Boolean{ return (_useOverrideMargin); } public function set contentTypes(_arg1:String):void{ _contentTypes = _arg1; } public function get autoHide(){ return (_autoHide); } public function set width(_arg1):void{ _width = _arg1; } public function get autoSizing():Boolean{ return (_autoSizing); } public function set autoShow(_arg1:Boolean):void{ _autoShow = _arg1; } public function get keepVisibleAfterClick():Boolean{ return (_keepVisibleAfterClick); } public function set autoHide(_arg1):void{ _autoHide = _arg1; } public function set useOverrideMargin(_arg1:Boolean):void{ _useOverrideMargin = _arg1; } public function get expandedWidth():Number{ return (_expandedWidth); } public function get height(){ return (_height); } public function set autoSizing(_arg1:Boolean):void{ _autoSizing = _arg1; } public function get contentTypes():String{ return (_contentTypes); } public function get additionalHeight(){ return (_additionalHeight); } public function set horizontalAlign(_arg1:String):void{ _horizontalAlign = _arg1; } public function additionalHeightRestrictionsMet(_arg1:DisplayProperties):Boolean{ if (_additionalHeight != null){ if ((_additionalHeight is String)){ return (((StringUtils.matchesIgnoreCase(_additionalHeight, "CONTROLS-HEIGHT-WHEN-NORMAL")) && (_arg1.displayModeIsNormal()))); }; }; return (false); } public function get verticalAlignOffset():Number{ return (_verticalAlignOffset); } public function calculateAdditionalHeight(_arg1:DisplayProperties):Number{ if (_additionalHeight != null){ if ((_additionalHeight is String)){ if (((StringUtils.matchesIgnoreCase(_additionalHeight, "CONTROLS-HEIGHT-WHEN-NORMAL")) && (!((_arg1 == null))))){ return (_arg1.controlsHeight); }; } else { return (_additionalHeight); }; }; return (0); } public function set minimizedHeight(_arg1):void{ _minimizedHeight = _arg1; } public function get expandedHeight():Number{ return (_expandedHeight); } public function set keepVisibleAfterClick(_arg1:Boolean):void{ _keepVisibleAfterClick = _arg1; } public function set canScale(_arg1:Boolean):void{ _canScale = _arg1; } public function set verticalAlignOffset(_arg1:Number):void{ _verticalAlignOffset = _arg1; } public function get horizontalAlign():String{ return (_horizontalAlign); } public function hasContentTypes():Boolean{ return (!((_contentTypes == null))); } public function set clickable(_arg1:Boolean):void{ _clickable = _arg1; } public function get autoShow():Boolean{ return (_autoShow); } public function set height(_arg1):void{ _height = _arg1; } public function hasExpandedSizing():Boolean{ return ((((_expandedWidth > -1)) && ((_expandedHeight > -1)))); } public function hasMinimizedHeight():Boolean{ return (!((_minimizedHeight == null))); } public function get minimizedHeight(){ return (_minimizedHeight); } public function isAutoSizing():Boolean{ return (_autoSizing); } public function get canScale():Boolean{ return (_canScale); } public function set additionalHeight(_arg1):void{ _additionalHeight = _arg1; } public function get width(){ return (_width); } public function hasTemplate():Boolean{ return (!((_template == null))); } public function hasAdditionalHeight():Boolean{ return (((!((_additionalHeight == 0))) && (!((_additionalHeight == null))))); } public function get clickable():Boolean{ return (_clickable); } public function set expandedWidth(_arg1:Number):void{ _expandedWidth = _arg1; } public function additionalHeightIsRestricted():Boolean{ if (_additionalHeight != null){ if ((_additionalHeight is String)){ return (StringUtils.matchesIgnoreCase(_additionalHeight, "CONTROLS-HEIGHT-WHEN-NORMAL")); }; }; return (false); } public function set template(_arg1:String):void{ _template = _arg1; } public function set clickToPlay(_arg1:Boolean):void{ _clickToPlay = _arg1; } public function hasMinimizedHeightBasedOnYPosForDisplayMode(_arg1:String):Boolean{ if (hasMinimizedHeight()){ if ((_minimizedHeight is String)){ if (StringUtils.matchesIgnoreCase(_minimizedHeight, "CONTROLS-YPOS-WHEN-VISIBLE-ALL-MODES")){ return (true); }; if (StringUtils.matchesIgnoreCase(_arg1, "FULLSCREEN")){ return (StringUtils.matchesIgnoreCase(_minimizedHeight, "CONTROLS-YPOS-WHEN-VISIBLE-FULLSCREEN")); }; return (StringUtils.matchesIgnoreCase(_minimizedHeight, "CONTROLS-YPOS-WHEN-VISIBLE-NORMAL")); }; }; return (false); } public function get verticalAlignPosition():String{ return (_verticalAlignPosition); } public function get template():String{ return (_template); } override public function setup(_arg1:Object):void{ var _local2:Array; if (_arg1 != null){ super.setup(_arg1); if (_arg1.verticalAlign != undefined){ if (_arg1.verticalAlign != null){ if (String(_arg1.verticalAlign).indexOf(":") > -1){ _local2 = String(_arg1.verticalAlign).split(":"); if (_local2.length == 2){ _verticalAlignPosition = _local2[0].toUpperCase(); _verticalAlignOffset = parseInt(_local2[1]); } else { _verticalAlignPosition = "BOTTOM"; }; } else { _verticalAlignPosition = String(_arg1.verticalAlign).toUpperCase(); }; }; }; if (_arg1.horizontalAlign != undefined){ _horizontalAlign = _arg1.horizontalAlign; }; if (_arg1.width != undefined){ _width = _arg1.width; }; if (_arg1.height != undefined){ _height = _arg1.height; }; if (_arg1.expandedWidth != undefined){ _expandedWidth = _arg1.expandedWidth; }; if (_arg1.expandedHeight != undefined){ _expandedHeight = _arg1.expandedHeight; }; if (_arg1.autoShow != undefined){ _autoShow = _arg1.autoShow; }; if (_arg1.clickable != undefined){ _clickable = _arg1.clickable; }; if (_arg1.clickToPlay != undefined){ _clickToPlay = _arg1.clickToPlay; }; if (_arg1.keepAfterClick != undefined){ _keepVisibleAfterClick = _arg1.keepAfterClick; }; if (_arg1.canScale != undefined){ _canScale = _arg1.canScale; }; if (_arg1.additionalHeight != undefined){ _additionalHeight = _arg1.additionalHeight; }; if (_arg1.autoSizing != undefined){ _autoSizing = _arg1.autoSizing; }; if (_arg1.useOverrideMargin != undefined){ _useOverrideMargin = _arg1.useOverrideMargin; }; if (_arg1.minimizedHeight != undefined){ _minimizedHeight = _arg1.minimizedHeight; }; if (_arg1.autoHide != undefined){ _autoHide = _arg1.autoHide; }; }; } public function get clickToPlay():Boolean{ return (_clickToPlay); } public function set verticalAlignPosition(_arg1:String):void{ _verticalAlignPosition = _arg1; } } }//package org.openvideoads.regions.config
Section 67
//RegionMouseEvent (org.openvideoads.regions.events.RegionMouseEvent) package org.openvideoads.regions.events { import flash.events.*; import org.openvideoads.regions.view.*; public class RegionMouseEvent extends Event { protected var _originalMouseEvent:MouseEvent;// = null protected var _regionView:RegionView; public static const REGION_CLICKED:String = "region-clicked"; public function RegionMouseEvent(_arg1:String, _arg2:RegionView, _arg3:MouseEvent, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); _regionView = _arg2; _originalMouseEvent = _arg3; } public function get originalMouseEvent():MouseEvent{ return (_originalMouseEvent); } public function get regionView():RegionView{ return (_regionView); } public function set originalMouseEvent(_arg1:MouseEvent):void{ _originalMouseEvent = _arg1; } override public function clone():Event{ return (new RegionMouseEvent(type, regionView, originalMouseEvent, bubbles, cancelable)); } public function get regionID():String{ return (_regionView.id); } } }//package org.openvideoads.regions.events
Section 68
//CloseButton (org.openvideoads.regions.view.button.CloseButton) package org.openvideoads.regions.view.button { import flash.display.*; import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.regions.view.*; public class CloseButton extends Sprite { private var _parentView:RegionView;// = null protected var _buttonWidth:int;// = 0 protected var _buttonHeight:int;// = 0 private var _id:String; public function CloseButton(_arg1:String=null, _arg2:RegionView=null, _arg3:int=0, _arg4:int=0){ _id = _arg1; _parentView = _arg2; _buttonWidth = _arg3; _buttonHeight = _arg4; drawButton(); addEventListener(MouseEvent.ROLL_OVER, onMouseOver); addEventListener(MouseEvent.ROLL_OUT, onMouseOut); addEventListener(MouseEvent.CLICK, onMouseClick); buttonMode = true; this.mouseChildren = true; } public function calculateLayoutPosition(_arg1:int, _arg2:int):void{ x = ((_arg1 - buttonWidth) - (_arg2 / 5)); y = ((_arg2)>0) ? (buttonHeight + (_arg2 / 5)) : buttonHeight; } protected function onMouseOver(_arg1:MouseEvent):void{ doLog("CROSS button over", Debuggable.DEBUG_MOUSE_EVENTS); this.alpha = 1; } protected function onMouseClick(_arg1:MouseEvent):void{ doLog("CROSS button clicked to close", Debuggable.DEBUG_MOUSE_EVENTS); _arg1.stopPropagation(); if (_parentView != null){ _parentView.onCloseClicked(); }; } public function set buttonWidth(_arg1:int):void{ _buttonWidth = _arg1; } protected function doTrace(_arg1:Object, _arg2:int=1):void{ Debuggable.getInstance().doTrace(_arg1, _arg2); } protected function onMouseOut(_arg1:MouseEvent):void{ doLog("CROSS button out", Debuggable.DEBUG_MOUSE_EVENTS); this.alpha = 0.7; } protected function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } public function set buttonHeight(_arg1:int):void{ _buttonHeight = _arg1; } protected function drawButton():void{ } public function get buttonHeight():int{ return (_buttonHeight); } public function get buttonWidth():int{ return (_buttonWidth); } } }//package org.openvideoads.regions.view.button
Section 69
//CrossCloseButton (org.openvideoads.regions.view.button.CrossCloseButton) package org.openvideoads.regions.view.button { import flash.display.*; import org.openvideoads.util.*; import org.openvideoads.regions.view.*; import org.openvideoads.regions.config.*; import flash.text.*; public class CrossCloseButton extends CloseButton { protected var _color:String;// = "#FFFFFF" public function CrossCloseButton(_arg1:String=null, _arg2:RegionView=null, _arg3:CloseButtonConfig=null){ if (_arg3 != null){ _color = _arg3.color; }; super(_arg1, _arg2, 5, 5); } override protected function drawButton():void{ this.graphics.clear(); this.graphics.beginFill(0, 0); this.graphics.drawCircle(0, 0, 10); this.graphics.endFill(); var _local1:TextField = GraphicsUtils.createFlashTextField(false, null, 14, true, GraphicsUtils.hexStringToUint(_color)); _local1.blendMode = BlendMode.LAYER; _local1.autoSize = TextFieldAutoSize.CENTER; _local1.wordWrap = false; _local1.multiline = false; _local1.antiAliasType = AntiAliasType.ADVANCED; _local1.condenseWhite = true; _local1.mouseEnabled = false; _local1.text = "+"; _local1.x = -9; _local1.y = -10; _local1.selectable = false; _local1.mouseEnabled = true; this.addChild(_local1); } } }//package org.openvideoads.regions.view.button
Section 70
//LoadableImageCloseButton (org.openvideoads.regions.view.button.LoadableImageCloseButton) package org.openvideoads.regions.view.button { import flash.display.*; import org.openvideoads.base.*; import org.openvideoads.regions.view.*; import org.openvideoads.regions.config.*; import flash.net.*; public class LoadableImageCloseButton extends CloseButton { public function LoadableImageCloseButton(_arg1:String=null, _arg2:RegionView=null, _arg3:CloseButtonConfig=null){ var _local4:Loader; var _local5:URLRequest; super(_arg1, _arg2, _arg3.width, _arg3.height); if (_arg3 != null){ doLog(("Loading a custom image for the overlay close button from " + _arg3.imageURL), Debuggable.DEBUG_DISPLAY_EVENTS); _local4 = new Loader(); _local5 = new URLRequest(_arg3.imageURL); _local4.load(_local5); addChild(_local4); _local4.x = 0; _local4.y = 0; }; } override public function calculateLayoutPosition(_arg1:int, _arg2:int):void{ x = ((_arg1 - buttonWidth) - (_arg2 / 5)); y = ((_arg2)>0) ? (0 + (_arg2 / 5)) : 0; } } }//package org.openvideoads.regions.view.button
Section 71
//NormalButtonBitmap (org.openvideoads.regions.view.button.NormalButtonBitmap) package org.openvideoads.regions.view.button { import flash.display.*; public final class NormalButtonBitmap extends Bitmap { public function NormalButtonBitmap():void{ } } }//package org.openvideoads.regions.view.button
Section 72
//StandardImageCloseButton (org.openvideoads.regions.view.button.StandardImageCloseButton) package org.openvideoads.regions.view.button { import org.openvideoads.regions.view.*; public class StandardImageCloseButton extends CloseButton { public function StandardImageCloseButton(_arg1:String=null, _arg2:RegionView=null){ super(_arg1, _arg2, 15, 15); } override public function calculateLayoutPosition(_arg1:int, _arg2:int):void{ x = ((_arg1 - buttonWidth) - (_arg2 / 5)); y = ((_arg2)>0) ? (0 + (_arg2 / 5)) : 0; } override protected function drawButton():void{ this.addChild(new NormalButtonBitmap()); } } }//package org.openvideoads.regions.view.button
Section 73
//FlashMedia (org.openvideoads.regions.view.FlashMedia) package org.openvideoads.regions.view { public interface FlashMedia { function get recommendedHeight():int; function markAsLoaded():void; function get loaded():Boolean; function get maintainAspectRatio():Boolean; function get scale():Boolean; function get recommendedWidth():int; function get swfURL():String; function get enforceRecommendedSizing():Boolean; function signalLoadError(_arg1:String):void; function markAsLoading():void; function unload():void; } }//package org.openvideoads.regions.view
Section 74
//LoadableStyleSheet (org.openvideoads.regions.view.LoadableStyleSheet) package org.openvideoads.regions.view { import org.openvideoads.base.*; import org.openvideoads.util.*; import flash.text.*; public class LoadableStyleSheet extends NetworkResource { private var _onLoadCallback:Function; private var _styleSheet:StyleSheet; public function LoadableStyleSheet(_arg1:String=null, _arg2:Function=null){ _onLoadCallback = _arg2; _styleSheet = new StyleSheet(); if (_arg1 != null){ url = _arg1; doLog(("Loading up external stylesheet file from " + url), Debuggable.DEBUG_DISPLAY_EVENTS); call(); }; } public function parseCSS(_arg1:String):void{ _styleSheet.parseCSS(_arg1); } public function get stylesheet():StyleSheet{ return (_styleSheet); } override protected function loadComplete(_arg1:String):void{ doLog("Stylesheet data loaded from external file - updating the stylesheet settings to include...", Debuggable.DEBUG_DISPLAY_EVENTS); _styleSheet = new StyleSheet(); parseCSS(_arg1); if (_onLoadCallback != null){ _onLoadCallback(); }; } } }//package org.openvideoads.regions.view
Section 75
//RegionView (org.openvideoads.regions.view.RegionView) package org.openvideoads.regions.view { import flash.display.*; import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.regions.*; import org.openvideoads.regions.config.*; import flash.net.*; import flash.text.*; import org.openvideoads.regions.view.button.*; import flash.system.*; public class RegionView extends Sprite { protected var _minimized:Boolean;// = false protected var _text:TextField; protected var _displayProperties:DisplayProperties; protected var _textMask:Sprite; protected var _controller:RegionController; protected var _expanded:Boolean;// = false protected var _height:Number;// = 0 protected var _border:Sprite; protected var _config:RegionViewConfig; protected var _closeButton:CloseButton;// = null protected var _loadedImage:Bitmap;// = null protected var _autoSizing:Boolean;// = false protected var _maskShape:Shape;// = null protected var _scalable:Boolean;// = true protected var _width:Number;// = 0 protected var _activeFlashMedia:FlashMedia;// = null protected var _stylesheet:LoadableStyleSheet;// = null protected var _autoHide:Boolean;// = true protected var _contentLoader:Loader;// = null public function RegionView(_arg1:RegionController, _arg2:RegionViewConfig, _arg3:DisplayProperties){ visible = false; buttonMode = true; mouseChildren = true; _controller = _arg1; _config = _arg2; _displayProperties = _arg3; _autoHide = _arg2.autoHide; if (_arg2.stylesheet != null){ _stylesheet = new LoadableStyleSheet(_arg2.stylesheet, onStyleSheetLoaded); }; if (_arg2.style != null){ if (_stylesheet == null){ _stylesheet = new LoadableStyleSheet(); }; _stylesheet.parseCSS(_arg2.style); }; if (_config.canShowCloseButton()){ createCloseButton(); }; addListeners(); if (_config.html){ html = _config.html; }; resize(); redraw(); } public function hasBorderWidth():Boolean{ return (((_config)!=null) ? _config.hasBorderWidth() : false); } protected function onMouseOver(_arg1:MouseEvent):void{ doLog("RegionView: mouse over", Debuggable.DEBUG_MOUSE_EVENTS); } public function clearDisplayContent():void{ if (_contentLoader != null){ try { this.removeChild(_contentLoader); _contentLoader.unload(); doLog("** loader.unload() called on Flash object", Debuggable.DEBUG_VPAID); } catch(ae:ArgumentError) { }; _contentLoader = null; } else { if (_loadedImage != null){ this.removeChild(_loadedImage); _loadedImage = null; }; }; _maskShape = null; } protected function createMask():Sprite{ var _local1:Sprite = new Sprite(); _local1.graphics.beginFill(0); GraphicsUtils.drawRoundRectangle(_local1.graphics, 0, 0, width, height, borderRadius); return (_local1); } public function set configuredHeight(_arg1:Number):void{ if (_config != null){ _config.height = _arg1; }; setSize(_width, _arg1, false); } public function getBackgroundColorAsUInt():uint{ var _local1:Array; if (hasBackgroundColor()){ return (StyleUtils.toColorValue(backgroundColor)); }; if (hasBackground()){ _local1 = StyleUtils.toElements(backgroundColor); if (String(_local1[0]).indexOf("#") == 0){ return (StyleUtils.toColorValue(_local1[0])); }; }; return (0x333333); } public function get autoSizing():Boolean{ if (_config != null){ return (_config.autoSizing); }; return (false); } protected function assessFlashMediaScaling():void{ if (scalable){ if (((!((_activeFlashMedia == null))) && (!((_contentLoader == null))))){ if (_activeFlashMedia.loaded){ if (_activeFlashMedia.scale){ if (_activeFlashMedia.enforceRecommendedSizing){ if ((((_activeFlashMedia.recommendedHeight > _height)) || ((_activeFlashMedia.recommendedWidth > _width)))){ doLog((((((((("Scaling the loaded SWF based on VAST dimensions - the width and height (" + _activeFlashMedia.recommendedWidth) + "X") + _activeFlashMedia.recommendedHeight) + ") does not fit within the region (") + _width) + "X") + _height) + ")"), Debuggable.DEBUG_VPAID); modifyActiveFlashMediaDimensions(_activeFlashMedia.recommendedWidth, _activeFlashMedia.recommendedHeight); }; } else { if ((((_contentLoader.height > _height)) || ((_contentLoader.width > _width)))){ doLog((((((((("Scaling the loaded SWF based on actual SWF dimensions - width and height (" + _contentLoader.width) + "X") + _contentLoader.height) + ") does not fit within the region (") + _width) + "X") + _height) + ")"), Debuggable.DEBUG_VPAID); modifyActiveFlashMediaDimensions(_contentLoader.width, _contentLoader.height); }; }; if (isAutoSizing()){ resizeDimensions(_contentLoader.width, _contentLoader.height); } else { if (_contentLoader.width < _width){ doLog((((((((("The loaded SWF X position has been adjusted to " + (_contentLoader.x + Math.floor(((_width - _contentLoader.width) / 2)))) + " based on '") + _contentLoader.x) + " + Math.floor((") + _width) + " - ") + _contentLoader.width) + ") / 2)'"), Debuggable.DEBUG_VPAID); _contentLoader.x = (_contentLoader.x + Math.floor(((_width - _contentLoader.width) / 2))); }; if (_contentLoader.height < _height){ doLog((((((((("The loaded SWF Y position has been adjusted to " + (_contentLoader.y + (_height - _contentLoader.height))) + " based on '") + _contentLoader.y) + " + (") + _height) + " - ") + _contentLoader.height) + ")'"), Debuggable.DEBUG_VPAID); _contentLoader.y = (_contentLoader.y + (_height - _contentLoader.height)); }; }; }; } else { doLog("Not scaling the loaded flash media - scalable='false'", Debuggable.DEBUG_VPAID); }; }; } else { doLog("Not scaling the flash media - scaling has been disabled", Debuggable.DEBUG_VPAID); }; } public function hasOpacity():Boolean{ return (((_config)!=null) ? _config.hasOpacity() : false); } public function get opacity():Number{ return (((_config)!=null) ? _config.opacity : 1); } public function set minimized(_arg1:Boolean):void{ _minimized = _arg1; } public function restoreOriginalBackground():void{ if (_config != null){ _config.restoreOriginalBackground(); redraw(); }; } public function contract():void{ if (expanded){ doLog(("RegionView contracted" + id), Debuggable.DEBUG_REGION_FORMATION); expanded = false; makeBackgroundTransparent(); resize(_displayProperties); }; } public function set autoSizing(_arg1:Boolean):void{ if (_config == null){ _config = new RegionViewConfig(); }; _config.autoSizing = _arg1; } public function get id():String{ return (((_config)!=null) ? _config.id : "none"); } protected function onFlashContentLoaded():void{ } public function get padding():String{ return (((_config)!=null) ? _config.padding : null); } public function set padding(_arg1:String):void{ if (_config != null){ _config.padding = _arg1; }; } public function canShowCloseButton():Boolean{ return (((_config)!=null) ? _config.canShowCloseButton() : false); } public function set opacity(_arg1:Number):void{ if (_config != null){ _config.opacity = _arg1; }; } override public function get height():Number{ if (scaleY > 1){ return ((_height * scaleY)); }; return (((_height) || (super.height))); } public function setHeight():Boolean{ var _local2:*; var _local3:int; var _local4:int; var _local5:Number; var _local1:Number = height; if (expanded){ } else { _local2 = _config.height; if (typeof(_local2) == "string"){ if (_local2.indexOf("pct") != -1){ _local3 = 0; if (((_config.hasAdditionalHeight()) && ((minimized == false)))){ _local5 = 0; if (_config.additionalHeightIsRestricted()){ if (_config.additionalHeightRestrictionsMet(_displayProperties)){ _local5 = _config.calculateAdditionalHeight(_displayProperties); doLog(((("Taking additional height (" + _local5) + " with restrictions) into considertion when sizing region ") + id), Debuggable.DEBUG_REGION_FORMATION); }; } else { _local5 = _config.calculateAdditionalHeight(_displayProperties); doLog(((("Taking additional height (" + _local5) + " without restrictions) into considertion when sizing region ") + id), Debuggable.DEBUG_REGION_FORMATION); }; _local3 = (_displayProperties.getMarginAdjustedHeight(_config.useOverrideMargin) + _local5); } else { _local3 = _displayProperties.getMarginAdjustedHeight(_config.useOverrideMargin); }; _local4 = parseInt(_local2.substring(0, _local2.indexOf("pct"))); height = ((_local3 / 100) * _local4); doLog(((((((("Height for " + id) + " calculated as % (") + _local2) + ") of parent ") + _local3) + " = ") + height), Debuggable.DEBUG_REGION_FORMATION); } else { doLog(((("Region height is a string value " + _local2) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); height = parseInt(_local2); }; } else { if ((_local2 is Number)){ doLog(((("Region height is defined as a number " + _local2) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); height = _local2; } else { doLog(((((("FATAL: Bad type '" + typeof(_local2)) + "' for height value '") + _local2) + "' of region ") + id), Debuggable.DEBUG_REGION_FORMATION); }; }; }; return (!((height == _local1))); } private function removeListeners():void{ if (_config.clickable){ removeEventListener(MouseEvent.ROLL_OVER, onMouseOver); removeEventListener(MouseEvent.ROLL_OUT, onMouseOut); removeEventListener(MouseEvent.CLICK, onClick); }; } public function set autoHide(_arg1:Boolean):void{ _autoHide = _arg1; } public function hasTemplate():Boolean{ return (((_config)!=null) ? _config.hasTemplate() : false); } public function set borderColor(_arg1:String):void{ if (_config != null){ _config.borderColor = _arg1; }; } private function createTextField():void{ if (_text){ removeChild(_text); }; _text = GraphicsUtils.createFlashTextField(false, null, 12, false); _text.blendMode = BlendMode.NORMAL; _text.autoSize = TextFieldAutoSize.CENTER; _text.wordWrap = true; _text.multiline = true; _text.antiAliasType = AntiAliasType.ADVANCED; _text.condenseWhite = true; _text.mouseEnabled = false; if (_stylesheet != null){ _text.styleSheet = _stylesheet.stylesheet; }; if (html != null){ _text.htmlText = html; }; addChild(_text); _textMask = createMask(); addChild(_textMask); _text.mask = _textMask; arrangeText(); } public function get border():String{ return (((_config)!=null) ? _config.border : null); } public function get background():String{ return (((_config)!=null) ? _config.background : null); } public function isBackgroundTransparent():Boolean{ if (hasBackgroundColor() == false){ return (false); }; return ((backgroundColor.toUpperCase() == "TRANSPARENT")); } protected function modifyActiveFlashMediaDimensions(_arg1:Number, _arg2:Number):void{ var _local3:Number; if (_activeFlashMedia.maintainAspectRatio){ _local3 = 1; if ((((_arg1 > _width)) && ((Math.abs((_arg1 - _width)) > Math.abs((_arg2 - _height)))))){ _local3 = (_arg1 / _width); } else { _local3 = (_arg2 / _height); }; doLog(("Scaling the loaded SWF but maintaining the aspect ratio - the scaling factor is " + _local3), Debuggable.DEBUG_VPAID); _contentLoader.width = Math.floor((_arg1 / _local3)); _contentLoader.height = Math.floor((_arg2 / _local3)); } else { doLog("Mapping the loaded SWF width and height directly - the aspect ratio does not need to be maintained", Debuggable.DEBUG_VPAID); if (_arg1 > _width){ _contentLoader.width = _width; }; if (_arg2 > _height){ _contentLoader.height = _height; }; }; doLog(((("The SWF dimensions have been re-calculated as " + _contentLoader.width) + "X") + _contentLoader.height), Debuggable.DEBUG_VPAID); } public function hasContentTypes():Boolean{ return (((_config)!=null) ? _config.hasContentTypes() : false); } public function getBorderColorAsUInt():uint{ if (hasBorderColor()){ return (StyleUtils.toColorValue(borderColor)); }; if (hasBorder()){ return (StyleUtils.toColorValue(StyleUtils.toElements(border)[2])); }; return (0xFFFFFF); } override public function set height(_arg1:Number):void{ setSize(_width, _arg1); } public function set configuredWidth(_arg1:Number):void{ if (_config != null){ _config.width = _arg1; }; setSize(_arg1, _height, false); } public function hide():void{ removeListeners(); this.visible = false; } public function get scalable():Boolean{ return (_scalable); } public function set html(_arg1:String):void{ if (_config != null){ _config.html = ((_arg1)==null) ? "" : _arg1; doLog(("Set region HTML to " + _config.html), Debuggable.DEBUG_REGION_FORMATION); createTextField(); arrangeCloseButton(); }; } public function parseCSS(_arg1:String):void{ if (_stylesheet == null){ _stylesheet = new LoadableStyleSheet(); }; _stylesheet.parseCSS(_arg1); doLog(("Stylesheet settings have been updated to include: " + _arg1), Debuggable.DEBUG_DISPLAY_EVENTS); } public function set background(_arg1:String):void{ if (_config != null){ _config.background = _arg1; }; } public function setHorizontalAlignment():Boolean{ var _local1:Number = x; var _local2:* = _config.horizontalAlign; var _local3:int = (_displayProperties.displayWidth * scaleX); if (typeof(_local2) == "string"){ _local2 = _local2.toUpperCase(); if (_local2 == "LEFT"){ x = 0; } else { if (_local2 == "RIGHT"){ x = (_local3 - width); } else { if (_local2 == "CENTER"){ x = ((_local3 - width) / 2); } else { x = new Number(_local2); }; }; }; doLog(((("Horizontal alignment set to " + x) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); } else { if (typeof(_local2) == "number"){ x = _local2; doLog(((("Horizontal alignment set to " + x) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); } else { doLog(((("Bad horizontal alignment value " + _local2) + " on region ") + id), Debuggable.DEBUG_REGION_FORMATION); }; }; return (!((x == _local1))); } public function set border(_arg1:String):void{ if (_config != null){ _config.border = _arg1; }; } public function getBackgroundGradientAsArray():Array{ if (hasBackgroundGradient()){ if ((backgroundGradient is String)){ switch (backgroundGradient){ case "none": return (null); case "high": return ([1, 0.5, 0.1, 0.3]); case "medium": return ([0.6, 0.21, 0.21]); case "low": return ([0.4, 0.15, 0.15]); }; return ([0.4, 0.15, 0.15]); }; return (backgroundGradient); }; return (null); } public function hasBorder():Boolean{ return (((_config)!=null) ? _config.hasBorder() : false); } public function getBorderRadiusAsInt():int{ if (hasBorderRadius() == false){ return (5); }; return (NumberUtils.toPixels(borderRadius)); } public function hasBackground():Boolean{ return (((_config)!=null) ? _config.hasBackground() : false); } protected function hasActiveScalableFlashMedia():Boolean{ if (((!((_activeFlashMedia == null))) && (!((_contentLoader == null))))){ return (_activeFlashMedia.scale); }; return (false); } public function set expanded(_arg1:Boolean):void{ _expanded = _arg1; } protected function onResize():void{ arrangeCloseButton(); if (_textMask){ _textMask.width = _width; _textMask.height = _height; }; if (_maskShape != null){ _maskShape.width = _width; _maskShape.height = _height; }; this.x = 0; this.y = 0; } protected function onMouseOut(_arg1:MouseEvent):void{ doLog("RegionView: mouse out", Debuggable.DEBUG_MOUSE_EVENTS); } public function get template():String{ return (((_config)!=null) ? _config.template : null); } public function get backgroundGradient(){ return (((_config)!=null) ? _config.backgroundGradient : null); } public function get contentTypes():String{ return (((_config)!=null) ? _config.contentTypes : null); } protected function doTrace(_arg1:Object, _arg2:int=1):void{ Debuggable.getInstance().doTrace(_arg1, _arg2); } public function setSize(_arg1:Number, _arg2:Number, _arg3:Boolean=true):void{ _width = _arg1; _height = _arg2; onResize(); if (_arg3){ redraw(); }; } public function setWidth():Boolean{ var _local2:*; var _local3:int; var _local4:int; var _local1:Number = width; if (((expanded) && (_config.hasExpandedSizing()))){ width = _config.expandedWidth; return (true); }; _local2 = _config.width; if (typeof(_local2) == "string"){ if (_local2.indexOf("pct") != -1){ _local3 = _displayProperties.displayWidth; _local4 = parseInt(_local2.substring(0, _local2.indexOf("pct"))); width = ((_local3 / 100) * _local4); doLog(((("Width is to be set to a percentage of the parent - " + _local2) + " setting to ") + width), Debuggable.DEBUG_REGION_FORMATION); } else { doLog(((("Region width is a string value " + _local2) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); width = parseInt(_local2); }; } else { if ((_local2 is Number)){ doLog(((("Region width is defined as a number " + _local2) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); width = _local2; } else { doLog(((((("FATAL: Bad type '" + typeof(_local2)) + "' for width value '") + _local2) + "' of region ") + id), Debuggable.DEBUG_REGION_FORMATION); }; }; return (!((width == _local1))); } public function get minimized():Boolean{ return (_minimized); } public function loadFlashContent(_arg1:FlashMedia, _arg2:String, _arg3:Boolean=false):void{ var media = _arg1; var allowDomains = _arg2; var blockMouseActions = _arg3; clearDisplayContent(); doLog(("Loading Flash resource from " + media.swfURL), Debuggable.DEBUG_VPAID); doLog(("Security.allowDomain() has been set to " + allowDomains), Debuggable.DEBUG_VPAID); Security.allowDomain(allowDomains); Security.allowInsecureDomain(allowDomains); _contentLoader = new Loader(); _activeFlashMedia = media; _activeFlashMedia.markAsLoading(); var urlReq:URLRequest = new URLRequest(media.swfURL); _contentLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:Event):void{ doLog("IO Error loading external SWF", Debuggable.DEBUG_VPAID); if (_activeFlashMedia != null){ _activeFlashMedia.signalLoadError("IO Error loading external SWF"); }; }); _contentLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:Event):void{ doLog("Security Error loading external SWF", Debuggable.DEBUG_VPAID); if (_activeFlashMedia != null){ _activeFlashMedia.signalLoadError("Security Error loading external SWF"); }; }); _contentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (_arg1:Event):void{ _activeFlashMedia.markAsLoaded(); doLog(((((("External SWF (load size is " + _contentLoader.width) + "x") + _contentLoader.height) + ") successfully loaded from ") + media.swfURL), Debuggable.DEBUG_VPAID); assessFlashMediaScaling(); _maskShape = new Shape(); _maskShape.graphics.beginFill(0); _maskShape.graphics.drawRect(0, 0, width, height); _maskShape.graphics.endFill(); addChild(_maskShape); doLog(((("Flash content masked with a rectangle " + width) + "x") + height), Debuggable.DEBUG_VPAID); _contentLoader.visible = true; _contentLoader.mask = _maskShape; onFlashContentLoaded(); }); _contentLoader.mouseChildren = !(blockMouseActions); _contentLoader.mouseEnabled = !(blockMouseActions); _contentLoader.visible = false; addChild(_contentLoader); _contentLoader.load(urlReq, new LoaderContext(true, new ApplicationDomain(), SecurityDomain.currentDomain)); arrangeCloseButton(); } public function set backgroundTransparent(_arg1:Boolean):void{ if (_config != null){ _config.backgroundColor = (_arg1) ? "transparent" : null; }; } private function drawBorder():void{ if (((_border) && ((_border.parent == this)))){ removeChild(_border); }; if (borderWidth <= 0){ return; }; _border = new Sprite(); addChild(_border); _border.graphics.lineStyle(borderWidth, getBorderColorAsUInt()); GraphicsUtils.drawRoundRectangle(_border.graphics, 0, 0, width, height, borderRadius); } public function get autoHide():Boolean{ return (_autoHide); } private function drawBackground():void{ graphics.clear(); if (hasOpacity()){ alpha = opacity; }; if (isBackgroundTransparent() == false){ graphics.beginFill(getBackgroundColorAsUInt()); } else { graphics.beginFill(0, 0); }; GraphicsUtils.drawRoundRectangle(graphics, 0, 0, _width, _height, borderRadius); graphics.endFill(); if (backgroundGradient){ GraphicsUtils.addGradient(this, 0, backgroundGradient, borderRadius); } else { GraphicsUtils.removeGradient(this); }; } override public function set width(_arg1:Number):void{ setSize(_arg1, _height); } public function restore():void{ if (_minimized){ _minimized = false; restoreOriginalBackground(); resize(); }; } public function hasBorderRadius():Boolean{ return (((_config)!=null) ? _config.hasBorderRadius() : false); } protected function loadScalableImageContent(_arg1:String, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Boolean, _arg7:Boolean, _arg8:String):void{ var url = _arg1; var expectedWidth = _arg2; var expectedHeight = _arg3; var recommendedWidth = _arg4; var recommendedHeight = _arg5; var scaleToDeclaredSize = _arg6; var maintainAspectRatio = _arg7; var allowDomains = _arg8; if (url != null){ clearDisplayContent(); doLog(("Loading Image resource from " + url), Debuggable.DEBUG_DISPLAY_EVENTS); doLog(("Security.allowDomain() has been set to " + allowDomains), Debuggable.DEBUG_DISPLAY_EVENTS); Security.allowDomain(allowDomains); Security.allowInsecureDomain(allowDomains); _contentLoader = new Loader(); _contentLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:Event):void{ doLog("IO Error loading external image", Debuggable.DEBUG_DISPLAY_EVENTS); }); _contentLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, function (_arg1:Event):void{ doLog("Security Error loading external image", Debuggable.DEBUG_DISPLAY_EVENTS); }); _contentLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function (_arg1:Event):void{ var _local2:Number; var _local3:Number; doLog(((((((((("External image (load size is " + _contentLoader.width) + "x") + _contentLoader.height) + ", recommended size is ") + recommendedWidth) + "x") + recommendedHeight) + ") successfully loaded from ") + url), Debuggable.DEBUG_DISPLAY_EVENTS); _loadedImage = Bitmap(_contentLoader.content); _loadedImage.x = 0; _loadedImage.y = 0; if (scalable){ _local2 = (recommendedWidth / _loadedImage.width); _local3 = (recommendedHeight / _loadedImage.height); if (scaleToDeclaredSize){ _loadedImage.scaleX = _local2; _loadedImage.scaleY = _local3; } else { if (_local2 < _local3){ if (maintainAspectRatio){ _loadedImage.scaleX = (_loadedImage.scaleY = _local2); } else { _loadedImage.scaleX = _local2; }; } else { if (maintainAspectRatio){ _loadedImage.scaleX = (_loadedImage.scaleY = _local3); } else { _loadedImage.scaleX = _local3; }; }; }; doLog(((((((("Image scaling is - scaleX: " + _loadedImage.scaleX) + ", scaleY: ") + _loadedImage.scaleY) + ", scaleToDeclaredSize: ") + scaleToDeclaredSize) + ", maintainAspectRatio: ") + maintainAspectRatio), Debuggable.DEBUG_DISPLAY_EVENTS); if (isAutoSizing()){ resizeDimensions(_loadedImage.width, _loadedImage.height); }; } else { doLog("Image will not be scaled - 'enableScaling' is false", Debuggable.DEBUG_DISPLAY_EVENTS); }; addChild(_loadedImage); arrangeCloseButton(); _loadedImage.visible = true; _contentLoader = null; }); _contentLoader.load(new URLRequest(url), new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain)); }; } public function expand():void{ if (expanded == false){ doLog(("RegionView expanded" + id), Debuggable.DEBUG_REGION_FORMATION); expanded = true; resize(_displayProperties); }; } public function hasBorderColor():Boolean{ return (((_config)!=null) ? _config.hasBorderColor() : false); } public function get borderColor():String{ return (((_config)!=null) ? _config.borderColor : null); } public function resizeDimensions(_arg1:Number, _arg2:Number):void{ _config.width = _arg1; _config.height = _arg2; setWidth(); setHeight(); setVerticalAlignment(); setHorizontalAlignment(); } private function addListeners():void{ if (_config.clickable){ addEventListener(MouseEvent.ROLL_OVER, onMouseOver); addEventListener(MouseEvent.ROLL_OUT, onMouseOut); addEventListener(MouseEvent.CLICK, onClick); }; } public function onCloseClicked():void{ hide(); _controller.onRegionCloseClicked(this); } public function hideCloseButton():void{ if (_closeButton != null){ _closeButton.visible = false; }; } public function set scalable(_arg1:Boolean):void{ _scalable = _arg1; } public function get html():String{ return (((_config)!=null) ? _config.html : null); } public function minimize():void{ _minimized = true; makeBackgroundTransparent(); resize(); } public function set backgroundColor(_arg1:String):void{ if (_config != null){ _config.backgroundColor = _arg1; }; } protected function createCloseButton():void{ switch (_config.closeButton.type){ case "STANDARD": _closeButton = new StandardImageCloseButton(null, this); break; case "CROSSHAIR": _closeButton = new CrossCloseButton(null, this, _config.closeButton); break; case "CUSTOM": _closeButton = new LoadableImageCloseButton(null, this, _config.closeButton); break; case "SKINNED": break; }; addChild(_closeButton); } protected function onRedraw():void{ arrangeText(); arrangeCloseButton(); } public function hasBackgroundGradient():Boolean{ return (((_config)!=null) ? _config.hasBackgroundGradient() : false); } public function get expanded():Boolean{ return (_expanded); } public function resize(_arg1:DisplayProperties=null):void{ var _local2:Boolean; var _local3:Boolean; if (_arg1 != null){ _displayProperties = _arg1; scaleX = (_config.canScale) ? _arg1.scaleX : 1; scaleY = (_config.canScale) ? _arg1.scaleY : 1; doLog(((("Scaling set to X: " + scaleX) + " Y: ") + scaleY), Debuggable.DEBUG_REGION_FORMATION); }; if (_displayProperties != null){ _local2 = setWidth(); _local3 = setHeight(); setVerticalAlignment(); setHorizontalAlignment(); if (((hasActiveScalableFlashMedia()) && (((_local2) || (_local3))))){ assessFlashMediaScaling(); }; }; } public function set borderRadius(_arg1:int):void{ if (_config != null){ _config.borderRadius = _arg1; }; } protected function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } override public function get width():Number{ if (scaleX > 1){ return ((_width * scaleX)); }; return (((_width) || (super.width))); } public function setVerticalAlignment():Boolean{ var _local1:Number = y; var _local2:int = (_displayProperties.displayHeight * scaleY); if ((_config.verticalAlignPosition is String)){ if (_config.verticalAlignPosition == "TOP"){ y = (0 + _config.verticalAlignOffset); } else { if (_config.verticalAlignPosition == "BOTTOM"){ y = ((_local2 - height) + _config.verticalAlignOffset); } else { if (_config.verticalAlignPosition == "CENTER"){ y = (((_local2 - height) / 2) + _config.verticalAlignOffset); } else { y = new Number((_config.verticalAlignPosition + _config.verticalAlignOffset)); }; }; }; doLog(((("Vertical alignment set to " + y) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); } else { y = (_config.verticalAlignPosition as Number); y = (y + _config.verticalAlignOffset); doLog(((("Vertical alignment set to " + y) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); }; return (!((y == _local1))); } protected function onStyleSheetLoaded():void{ doLog("Stylesheet has been loaded", Debuggable.DEBUG_DISPLAY_EVENTS); } public function get backgroundColor():String{ return (((_config)!=null) ? _config.backgroundColor : null); } public function isAutoSizing():Boolean{ return (this.autoSizing); } public function hasBackgroundColor():Boolean{ return (((_config)!=null) ? _config.hasBackgroundColor() : false); } public function get borderRadius():int{ return (((_config)!=null) ? _config.borderRadius : -1); } protected function onClick(_arg1:MouseEvent):void{ doLog("RegionView: on click", Debuggable.DEBUG_MOUSE_EVENTS); if (autoHide){ hide(); }; _controller.onRegionClicked(this, _arg1); } public function makeBackgroundTransparent():void{ if (_config != null){ _config.makeBackgroundTransparent(); redraw(); }; } private function redraw():void{ drawBackground(); drawBorder(); onRedraw(); } private function arrangeText():void{ var _local1:Array; var _local2:Array; var _local3:int; if (_text){ _local1 = new Array(); if (padding.indexOf(" ") > 0){ _local2 = padding.split(" "); _text.y = NumberUtils.toPixels(_local2[0]); _text.x = NumberUtils.toPixels(_local2[3]); _text.height = Math.round(((_height - NumberUtils.toPixels(_local2[0])) - NumberUtils.toPixels(_local2[2]))); _text.width = Math.round(((_width - NumberUtils.toPixels(_local2[1])) - NumberUtils.toPixels(_local2[3]))); } else { _local3 = NumberUtils.toPixels(padding); _text.y = Math.round(_local3[0]); _text.x = Math.round(_local3[3]); _text.height = Math.round(((_height - _local3[0]) - _local3[2])); _text.width = Math.round(((_width - _local3[1]) - _local3[3])); }; doLog(((((((((("Arranging text (" + _text.htmlText) + ") to sit at X:") + _text["y"]) + " Y:") + _text["x"]) + " height:") + _text["height"]) + " width:") + _text["width"]), Debuggable.DEBUG_REGION_FORMATION); }; } public function get borderWidth():int{ return (((_config)!=null) ? _config.borderWidth : -1); } public function set borderWidth(_arg1:int):void{ if (_config != null){ _config.borderWidth = _arg1; }; } public function set backgroundGradient(_arg1):void{ if (_config != null){ _config.backgroundGradient = _arg1; }; } public function show():void{ addListeners(); this.visible = true; } private function arrangeCloseButton():void{ if (_closeButton){ _closeButton.calculateLayoutPosition(width, borderRadius); if (numChildren > 0){ setChildIndex(_closeButton, (numChildren - 1)); }; }; } public function getBorderWidthAsNumber():Number{ if (hasBorderWidth()){ return (NumberUtils.toPixels(borderWidth)); }; if (hasBorder() == false){ return (0); }; return (NumberUtils.toPixels(StyleUtils.toElements(border)[0])); } } }//package org.openvideoads.regions.view
Section 76
//TextSign (org.openvideoads.regions.view.TextSign) package org.openvideoads.regions.view { import flash.events.*; import org.openvideoads.util.*; import org.openvideoads.regions.config.*; public class TextSign extends RegionView { public function TextSign(_arg1:RegionViewConfig, _arg2:DisplayProperties){ super(null, _arg1, _arg2); } override protected function onMouseOut(_arg1:MouseEvent):void{ } override protected function onClick(_arg1:MouseEvent):void{ } override protected function onMouseOver(_arg1:MouseEvent):void{ } override public function resize(_arg1:DisplayProperties=null):void{ super.resize(_arg1); } } }//package org.openvideoads.regions.view
Section 77
//RegionController (org.openvideoads.regions.RegionController) package org.openvideoads.regions { import flash.display.*; import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.regions.view.*; import org.openvideoads.regions.config.*; import org.openvideoads.regions.events.*; public class RegionController extends Sprite { public var DEFAULT_REGION:RegionView;// = null protected var _displayProperties:DisplayProperties; protected var _regionViews:Array; protected var _config:RegionsConfig;// = null protected var _inDebugMode:Boolean;// = false public function RegionController(_arg1:DisplayProperties, _arg2:RegionsConfig){ _regionViews = new Array(); super(); doLog(("RegionController: Display properties " + _arg1.toString()), Debuggable.DEBUG_DISPLAY_EVENTS); _displayProperties = _arg1; _config = _arg2; createRegionViews(); } public function hideAllRegions():void{ var _local1:int; while (_local1 < _regionViews.length) { _regionViews[_local1].hide(); _local1++; }; } public function resize(_arg1:DisplayProperties):void{ _displayProperties = _arg1; var _local2:int; while (_local2 < _regionViews.length) { _regionViews[_local2].resize(_arg1); _local2++; }; } public function hideAllRegionsExceptNamed(_arg1:Array):void{ var _local2:int; var _local3:Boolean; var _local4:int; if (_arg1 != null){ _local2 = 0; while (_local2 < _regionViews.length) { _local3 = false; _local4 = 0; while ((((_local4 < _arg1.length)) && (!(_local3)))) { if (StringUtils.matchesIgnoreCase(_regionViews[_local2].id, _arg1[_local4].id)){ _local3 = true; }; _local4++; }; if (!_local3){ _regionViews[_local2].hide(); }; _local2++; }; } else { hideAllRegions(); }; } public function setRegionStyle(_arg1:String, _arg2:String):String{ var _local3:RegionView = getRegion(_arg1); if (_local3 != null){ _local3.parseCSS(_arg2); return ("1, successfully passed to region to process"); }; return (("-2, No region found for id: " + _arg1)); } protected function get displayHeight():Number{ if (_displayProperties != null){ return (_displayProperties.displayHeight); }; return (0); } protected function getRegionMatchingContentType(_arg1:String, _arg2:String):RegionView{ var _local3:int; while (_local3 < _regionViews.length) { if (_regionViews[_local3].id == _arg1){ if (_regionViews[_local3].hasContentTypes()){ if (_regionViews[_local3].contentTypes.toUpperCase().indexOf(_arg2.toUpperCase()) > -1){ return (_regionViews[_local3]); }; } else { return (_regionViews[_local3]); }; }; _local3++; }; return (createPredefinedRegion(_arg1)); } public function regionIsAuto(_arg1:String):Boolean{ if (_arg1 != null){ return ((_arg1.toUpperCase().indexOf("AUTO") > -1)); }; return (false); } protected function createRegionView(_arg1:RegionViewConfig):RegionView{ doLog((("Creating region '" + _arg1.id) + "'"), Debuggable.DEBUG_REGION_FORMATION); var _local2:RegionView = newRegion(this, _arg1, _displayProperties); _regionViews.push(_local2); addChild(_local2); this.setChildIndex(_local2, (this.numChildren - 1)); return (_local2); } protected function get regionViews():Array{ return (_regionViews); } protected function removeRegionView(_arg1:String):void{ var _local2:int; while (_local2 < _regionViews.length) { if (_regionViews[_local2].id == _arg1){ _regionViews.splice(_local2, 1); }; _local2++; }; } protected function createAutoRegion(_arg1:String, _arg2:int, _arg3, _arg4:String="BOTTOM", _arg5:CloseButtonConfig=null, _arg6:Boolean=true, _arg7:String=null, _arg8:String=null, _arg9:Number=-1, _arg10:Number=-1, _arg11:Boolean=false, _arg12:Boolean=true):RegionView{ doLog(((((((((("Creating an AUTO region '" + _arg1) + "' - ") + _arg2) + "x") + _arg3) + " alignment: ") + _arg4) + " clickable: ") + _arg6), Debuggable.DEBUG_REGION_FORMATION); removeRegionView(_arg1); return (createRegionView(new RegionViewConfig({id:_arg1, verticalAlign:_arg4, backgroundColor:getBackgroundColor("transparent"), horizontalAlign:"center", padding:((_arg8)!=null) ? _arg8 : "-10 -10 -10 -10", width:_arg2, height:_arg3, expandedWidth:_arg9, expandedHeight:_arg10, closeButton:((_arg5)!=null) ? _arg5 : this.closeButtonConfig, clickable:_arg6, style:_arg7, autoSizing:true, canScale:_arg11, autoHide:_arg12}))); } public function onRegionCloseClicked(_arg1:RegionView):void{ } protected function getBackgroundColor(_arg1:String):String{ if (_inDebugMode){ return ("#6F6F6F"); }; return (_arg1); } protected function getRegion(_arg1:String, _arg2:Boolean=false):RegionView{ var _local3:int; while (_local3 < _regionViews.length) { if (_regionViews[_local3].id == _arg1){ if (_arg2){ _regionViews.splice(_local3, 1); } else { return (_regionViews[_local3]); }; }; _local3++; }; return (createPredefinedRegion(_arg1)); } public function getAutoRegionAlignment(_arg1:String):String{ var _local2:String; if (_arg1 != null){ if ((((_arg1.toUpperCase().indexOf("AUTO:") > -1)) && ((_arg1.length > 5)))){ _local2 = _arg1.substr((_arg1.toUpperCase().indexOf("AUTO:") + 5)); if (_local2 != null){ _local2 = StringUtils.trim(_local2).toUpperCase(); if ("BOTTOM CENTER TOP".indexOf(_local2) > -1){ return (_local2); }; }; }; }; return ("BOTTOM"); } protected function get closeButtonConfig():CloseButtonConfig{ return (((_config)!=null) ? _config.closeButton : null); } protected function newRegion(_arg1:RegionController, _arg2:RegionViewConfig, _arg3:DisplayProperties):RegionView{ return (new RegionView(this, _arg2, _displayProperties)); } protected function createPredefinedRegion(_arg1:String):RegionView{ return (DEFAULT_REGION); } public function onRegionClicked(_arg1:RegionView, _arg2:MouseEvent):void{ dispatchEvent(new RegionMouseEvent(RegionMouseEvent.REGION_CLICKED, _arg1, _arg2)); } protected function get displayWidth():Number{ if (_displayProperties != null){ return (_displayProperties.displayWidth); }; return (0); } protected function createRegionViews():void{ } protected static function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } protected static function doTrace(_arg1:Object, _arg2:int=1):void{ Debuggable.getInstance().doTrace(_arg1, _arg2); } } }//package org.openvideoads.regions
Section 78
//Animator (org.openvideoads.util.Animator) package org.openvideoads.util { import flash.display.*; import flash.events.*; import org.openvideoads.base.*; import flash.utils.*; public class Animator extends Debuggable { protected var _target:Sprite;// = null protected var _alphaReductionFactor:Number;// = 0 protected var _timer:Timer;// = null public function stop():void{ if (_timer != null){ _timer.stop(); _timer = null; }; } public function fade(_arg1:Sprite, _arg2:Object):void{ var target = _arg1; var properties = _arg2; if (target != null){ if (properties != null){ if (_timer != null){ _timer.stop(); }; _target = target; _alphaReductionFactor = ((properties.alpha - target.alpha) / properties.times); _timer = new Timer(properties.rate, properties.times); with ({}) { with ({}) { !ERROR!.onTimer = function (_arg1:TimerEvent):void{ _target.alpha = (_target.alpha + _alphaReductionFactor); }; }; _timer.addEventListener(TimerEvent.TIMER, function (_arg1:TimerEvent):void{ _target.alpha = (_target.alpha + _alphaReductionFactor); }); with ({}) { with ({}) { !ERROR!.onTimerComplete = function (_arg1:TimerEvent):void{ _target.alpha = properties.alpha; if (properties.onComplete != undefined){ properties.onComplete(); }; }; }; _timer.addEventListener(TimerEvent.TIMER_COMPLETE, function (_arg1:TimerEvent):void{ _target.alpha = properties.alpha; if (properties.onComplete != undefined){ properties.onComplete(); }; }); _timer.start(); }; }; } } }//package org.openvideoads.util
Section 79
//ArrayUtils (org.openvideoads.util.ArrayUtils) package org.openvideoads.util { import com.adobe.serialization.json.*; public class ArrayUtils { public static function makeArray(_arg1:Object):Array{ var _local2:*; if ((_arg1 is Array)){ return ((_arg1 as Array)); }; if ((_arg1 is String)){ _local2 = JSON.decode((_arg1 as String)); if ((_local2 is Array)){ return (_local2); }; if ((_local2 is String)){ return (_local2.split(",")); }; }; return (new Array()); } public static function convertToJSObjectArray(_arg1:Array):Array{ var _local3:int; var _local2:Array = new Array(); if (_arg1 != null){ _local3 = 0; while (_local3 < _arg1.length) { _local2.push(_arg1[_local3].toJSObject()); _local3++; }; }; return (_local2); } public static function toUpperCase(_arg1:Array):Array{ var _local3:int; var _local2:Array = new Array(); if (_arg1 != null){ _local3 = 0; while (_local3 < _arg1.length) { if ((_arg1[_local3] is String)){ _local2.push(_arg1[_local3].toUpperCase()); } else { _local2.push(_arg1[_local3].toJSObject()); }; _local3++; }; }; return (_local2); } } }//package org.openvideoads.util
Section 80
//BrowserUtils (org.openvideoads.util.BrowserUtils) package org.openvideoads.util { import flash.external.*; public class BrowserUtils { public static function getBrowserDetails():Object{ var browser:Object; try { browser = {userAgentString:null, IE:false, Safari:false, Firefox:false, Chrome:false, Opera:false, version:null}; browser.userAgent = ExternalInterface.call("window.navigator.userAgent.toString"); if (browser.userAgent.indexOf("Safari") != -1){ browser.Safari = true; } else { if (browser.userAgent.indexOf("Firefox") != -1){ browser.Firefox = true; } else { if (browser.userAgent.indexOf("Chrome") != -1){ browser.Chrome = true; } else { if (browser.userAgent.indexOf("MSIE") != -1){ browser.IE = true; browser.version = parseInt(browser.userAgent.substr((browser.userAgent.indexOf("MSIE") + 5), browser.userAgent.indexOf(".", browser.userAgent.indexOf("MSIE")))); } else { if (browser.userAgent.indexOf("Opera") != -1){ browser.Opera = true; }; }; }; }; }; } catch(e:Error) { }; return (browser); } public static function getDomain(_arg1:Boolean=true, _arg2:Boolean=false):String{ var makeSafe = _arg1; var forceEncoding = _arg2; try { if (((makeSafe) || (forceEncoding))){ return (clean(NetworkResource.getDomain(getPageUrl(false, false)), forceEncoding)); } else { return (NetworkResource.getDomain(getPageUrl(false, false))); }; } catch(e:Error) { }; return (null); } public static function getReferrer(_arg1:Boolean=true, _arg2:Boolean=false):String{ var makeSafe = _arg1; var forceEncoding = _arg2; try { if (((makeSafe) || (forceEncoding))){ return (clean(ExternalInterface.call("function(){ return document.referrer; }"), forceEncoding)); } else { return (ExternalInterface.call("function(){ return document.referrer; }")); }; } catch(e:Error) { }; return (null); } public static function isIE6():Boolean{ var _local1:Object = BrowserUtils.getBrowserDetails(); if (_local1.IE === true){ return ((_local1.version == 6)); }; return (false); } protected static function clean(_arg1:String, _arg2:Boolean=false):String{ var _local3:String = StringUtils.trim(_arg1); if (_arg2){ return (encodeURIComponent(_local3)); }; if ((((_local3.indexOf("&") > -1)) || ((_local3.indexOf("?") > -1)))){ return (encodeURIComponent(_local3)); }; return (_local3); } public static function getPageUrl(_arg1:Boolean=true, _arg2:Boolean=false):String{ var makeSafe = _arg1; var forceEncoding = _arg2; try { if (((makeSafe) || (forceEncoding))){ return (clean(ExternalInterface.call("function(){ return document.location.href.toString();}"), forceEncoding)); } else { return (ExternalInterface.call("function(){ return document.location.href.toString();}")); }; } catch(e:Error) { }; return (null); } } }//package org.openvideoads.util
Section 81
//ControlsSpecification (org.openvideoads.util.ControlsSpecification) package org.openvideoads.util { import org.openvideoads.base.*; public class ControlsSpecification extends Debuggable { protected var _enabled:Boolean;// = false protected var _manage:Boolean;// = true protected var _enablePlaylist:Boolean;// = false protected var _enableTime:Boolean;// = false protected var _anchorNonLinearToBottom:Boolean;// = false protected var _visible:Boolean;// = true protected var _enableStop:Boolean;// = true protected var _height:int;// = -999 protected var _enableMute:Boolean;// = true protected var _enableVolume:Boolean;// = true protected var _hideDock:Boolean;// = false protected var _enablePlay:Boolean;// = true protected var _enablePause:Boolean;// = true protected var _enableFullscreen:Boolean;// = true public static const STOP:String = "STOP"; public static const TIME:String = "TIME"; public static const PLAYLIST:String = "PLAYLIST"; public static const FULLSCREEN:String = "FULLSCREEN"; public static const PLAY:String = "PLAY"; public static const PAUSE:String = "PAUSE"; public static const MUTE:String = "MUTE"; public static const VOLUME:String = "VOLUME"; public function ControlsSpecification(_arg1:Object=null){ if (_arg1 != null){ initialise(_arg1); }; } public function set enableVolume(_arg1:Boolean):void{ _enableVolume = _arg1; } public function set anchorNonLinearToBottom(_arg1:Boolean):void{ _anchorNonLinearToBottom = _arg1; } public function set enabled(_arg1:Boolean):void{ _enabled = _arg1; enablePlay = _arg1; enablePause = _arg1; enablePlaylist = _arg1; enableTime = _arg1; enableVolume = _arg1; enableStop = _arg1; enableFullscreen = _arg1; enableMute = _arg1; } public function shouldShowControlsDuringLinearAds():Boolean{ return (_visible); } public function get hideDock():Boolean{ return (_hideDock); } public function get enableVolume():Boolean{ return (_enableVolume); } public function controlEnabled(_arg1:String):Boolean{ if (_arg1 != null){ _arg1 = _arg1.toUpperCase(); if (_arg1 == _slot1.PLAY){ return (enablePlay); }; if (_arg1 == _slot1.PAUSE){ return (enablePause); }; if (_arg1 == _slot1.PLAYLIST){ return (enablePlaylist); }; if (_arg1 == _slot1.TIME){ return (enableTime); }; if (_arg1 == _slot1.VOLUME){ return (enableVolume); }; if (_arg1 == _slot1.MUTE){ return (enableMute); }; if (_arg1 == _slot1.STOP){ return (enableStop); }; if (_arg1 == _slot1.FULLSCREEN){ return (enableFullscreen); }; }; return (false); } public function get enableStop():Boolean{ return (_enableStop); } public function get height():int{ return (_height); } public function set hideDock(_arg1:Boolean):void{ _hideDock = _arg1; } public function get enableFullscreen():Boolean{ return (_enableFullscreen); } public function set enablePlay(_arg1:Boolean):void{ _enablePlay = _arg1; } public function initialise(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.hasOwnProperty("manage")){ _manage = StringUtils.validateAsBoolean(_arg1.manage); }; if (_arg1.hasOwnProperty("visible")){ _visible = StringUtils.validateAsBoolean(_arg1.visible); }; if (_arg1.hasOwnProperty("enable")){ enabled = StringUtils.validateAsBoolean(_arg1.enable); }; if (enabled == false){ if (_arg1.hasOwnProperty("enablePlay")){ _enablePlay = StringUtils.validateAsBoolean(_arg1.enablePlay); }; if (_arg1.hasOwnProperty("enablePause")){ _enablePause = StringUtils.validateAsBoolean(_arg1.enablePause); }; if (_arg1.hasOwnProperty("enableStop")){ _enableStop = StringUtils.validateAsBoolean(_arg1.enableStop); }; if (_arg1.hasOwnProperty("enablePlaylist")){ _enablePlaylist = StringUtils.validateAsBoolean(_arg1.enablePlaylist); }; if (_arg1.hasOwnProperty("enableTime")){ _enableTime = StringUtils.validateAsBoolean(_arg1.enableTime); }; if (_arg1.hasOwnProperty("enableVolume")){ _enableVolume = StringUtils.validateAsBoolean(_arg1.enableVolume); }; if (_arg1.hasOwnProperty("enableMute")){ _enableMute = StringUtils.validateAsBoolean(_arg1.enableMute); }; if (_arg1.hasOwnProperty("enableFullscreen")){ _enableFullscreen = StringUtils.validateAsBoolean(_arg1.enableFullscreen); }; if (_arg1.hasOwnProperty("anchorNonLinearToBottom")){ _anchorNonLinearToBottom = StringUtils.validateAsBoolean(_arg1.anchorNonLinearToBottom); }; }; if (_arg1.hasOwnProperty("hideDock")){ this.hideDock = StringUtils.validateAsBoolean(_arg1.hideDock); }; if (_arg1.hasOwnProperty("height")){ this.height = _arg1.height; }; }; } public function get enablePause():Boolean{ return (_enablePause); } public function get enableMute():Boolean{ return (_enableMute); } public function get enabled():Boolean{ return (_enabled); } public function get anchorNonLinearToBottom():Boolean{ return (_anchorNonLinearToBottom); } public function set manage(_arg1:Boolean):void{ _manage = _arg1; } public function set enableFullscreen(_arg1:Boolean):void{ _enableFullscreen = _arg1; } public function set height(_arg1:int):void{ _height = _arg1; } public function hasHeightSpecified():Boolean{ return (!((_height == -999))); } public function set enableStop(_arg1:Boolean):void{ _enableStop = _arg1; } public function get enablePlay():Boolean{ return (_enablePlay); } public function set enableTime(_arg1:Boolean):void{ _enableTime = _arg1; } public function set visible(_arg1:Boolean):void{ _visible = _arg1; } public function get manage():Boolean{ if (_enabled == true){ return (false); }; return (_manage); } public function set enablePlaylist(_arg1:Boolean):void{ _enablePlaylist = _arg1; } public function set enablePause(_arg1:Boolean):void{ _enablePause = _arg1; } public function get enableTime():Boolean{ return (_enableTime); } public function get visible():Boolean{ return (_visible); } public function get enablePlaylist():Boolean{ return (_enablePlaylist); } public function set enableMute(_arg1:Boolean):void{ _enableMute = _arg1; } } }//package org.openvideoads.util
Section 82
//DisplayProperties (org.openvideoads.util.DisplayProperties) package org.openvideoads.util { import flash.display.*; import org.openvideoads.base.*; public class DisplayProperties extends Debuggable { protected var _displaySpecification:DisplaySpecification;// = null protected var _displayWidth:Number;// = 0 protected var _displayHeight:Number;// = 0 protected var _displayMode:String;// = "normal" protected var _controlsYPos:Number;// = 0 protected var _controlsHeight:Number;// = 0 protected var _controlsVisibleAtBottom:Boolean;// = true protected var _displayObjectContainer:DisplayObjectContainer; public static const DISPLAY_NORMAL:String = "normal"; public static const DISPLAY_FULLSCREEN:String = "fullscreen"; public static const DISPLAY_THUMBNAIL:String = "thumbnail"; public function DisplayProperties(_arg1:DisplayObjectContainer, _arg2:int, _arg3:int, _arg4:String, _arg5:DisplaySpecification, _arg6:Boolean, _arg7:Number, _arg8:Number){ _displayObjectContainer = _arg1; _displayWidth = _arg2; _displayHeight = _arg3; _displayMode = _arg4; _displaySpecification = _arg5; _controlsVisibleAtBottom = _arg6; _controlsHeight = _arg7; _controlsYPos = _arg8; doLog(("DisplayProperties set to " + toString()), Debuggable.DEBUG_REGION_FORMATION); } public function get baselineWidth():Number{ return (_displaySpecification.width); } public function get displayMode():String{ return (_displayMode); } public function set displayWidth(_arg1:Number):void{ _displayWidth = _arg1; } public function get displayHeight():Number{ return (_displayHeight); } public function get scaleX():Number{ return ((displayWidth / baselineWidth)); } public function get scaleY():Number{ return ((displayHeight / baselineHeight)); } public function set displayMode(_arg1:String):void{ _displayMode = _arg1; } public function set displayHeight(_arg1:Number):void{ _displayHeight = _arg1; } public function get baselineHeight():Number{ return (_displaySpecification.height); } public function displayModeIsNormal():Boolean{ if (_displayMode != null){ return (StringUtils.matchesIgnoreCase(_displayMode, DisplayProperties.DISPLAY_NORMAL)); }; return (false); } public function set displayObjectContainer(_arg1:DisplayObjectContainer):void{ _displayObjectContainer = _arg1; } public function getActiveMargin(_arg1:Boolean=false):Number{ if (controlsVisibleAtBottom){ return (_displaySpecification.marginsSpecification.getWithControlsMargin(displayMode, _arg1)); }; return (_displaySpecification.marginsSpecification.getWithoutControlsMargin(displayMode, _arg1)); } public function clone():DisplayProperties{ return (new DisplayProperties(_displayObjectContainer, _displayWidth, _displayHeight, _displayMode, _displaySpecification, _controlsVisibleAtBottom, _controlsHeight, _controlsYPos)); } public function get displayWidth():Number{ return (_displayWidth); } public function get displayObjectContainer():DisplayObjectContainer{ return (_displayObjectContainer); } public function displayModeIsFullscreen():Boolean{ if (_displayMode != null){ return ((displayModeIsNormal() == false)); }; return (false); } public function toString():String{ return ((((((("(displayWidth: " + _displayWidth) + ", displayHeight: ") + _displayHeight) + ", displayMode: ") + _displayMode) + ")")); } public function get controlsYPos():Number{ return (_controlsYPos); } public function getMarginAdjustedHeight(_arg1:Boolean=false):Number{ return ((displayHeight - getActiveMargin(_arg1))); } public function get controlsVisibleAtBottom():Boolean{ return (_controlsVisibleAtBottom); } public function get controlsHeight():Number{ return (_controlsHeight); } } }//package org.openvideoads.util
Section 83
//DisplaySpecification (org.openvideoads.util.DisplaySpecification) package org.openvideoads.util { import org.openvideoads.base.*; public class DisplaySpecification extends Debuggable { protected var _mode:String;// = null protected var _height:int;// = 0 protected var _width:int;// = 0 protected var _controls:Object; protected var _hideLogo:Boolean;// = false protected var _scalable:Boolean;// = false protected var _marginsSpecification:MarginsSpecification; public static const LINEAR:String = "linear"; public static const NON_LINEAR:String = "nonLinear"; public function DisplaySpecification(_arg1){ _marginsSpecification = new MarginsSpecification(); _controls = {stream:new ControlsSpecification(), vpaid:new ControlsSpecification({visible:false, enabled:false})}; super(); if ((_arg1 is String)){ _mode = _arg1; } else { initialise(_arg1); }; } public function set margins(_arg1:Object):void{ if (_marginsSpecification == null){ _marginsSpecification = new MarginsSpecification(_arg1); } else { _marginsSpecification.initialise(_arg1); }; } public function get vpaidControlsSpecification():ControlsSpecification{ return (_controls.vpaid); } public function get hideLogo():Boolean{ return (_hideLogo); } public function set width(_arg1:int):void{ _width = _arg1; } public function get streamControlsSpecification():ControlsSpecification{ return (_controls.stream); } public function get width():int{ return (_width); } public function set vpaidControlsSpecification(_arg1:ControlsSpecification):void{ _controls.vpaid = _arg1; } public function hideControlsOnLinearPlayback(_arg1:Boolean=false):Boolean{ if (shouldManageControlsDuringLinearAds(_arg1)){ if (_arg1){ return ((_controls.vpaid.visible == false)); }; return ((_controls.stream.visible == false)); }; return (false); } public function toString():String{ return ((((((("{ mode: " + _mode) + ", width: ") + width) + ", height: ") + height) + " }")); } public function set hideLogo(_arg1:Boolean):void{ _hideLogo = _arg1; } public function hideDockOnLinearPlayback(_arg1:Boolean=false):Boolean{ if (shouldManageControlsDuringLinearAds(_arg1)){ if (_arg1){ return ((_controls.vpaid.visible == false)); }; return ((_controls.stream.visible == false)); }; return (false); } public function set height(_arg1:int):void{ _height = _arg1; } public function set streamControlsSpecification(_arg1:ControlsSpecification):void{ _controls.stream = _arg1; } public function shouldManageControlsDuringLinearAds(_arg1:Boolean=false):Boolean{ if (_arg1){ return (_controls.vpaid.manage); }; return (_controls.stream.manage); } public function get scalable():Boolean{ return (_scalable); } public function get height():int{ return (_height); } public function controlEnabledForLinearAdType(_arg1:String, _arg2:Boolean):Boolean{ if (shouldManageControlsDuringLinearAds(_arg2) == false){ return (true); }; if (_arg2){ return (_controls.vpaid.controlEnabled(_arg1)); }; return (_controls.stream.controlEnabled(_arg1)); } public function set scalable(_arg1:Boolean):void{ _scalable = _arg1; } public function get controls():Object{ return (_controls); } public function initialise(_arg1:Object):void{ if (_arg1.hasOwnProperty("width")){ if ((_arg1.width is String)){ width = parseInt(_arg1.width); } else { width = _arg1.width; }; }; if (_arg1.hasOwnProperty("width")){ if ((_arg1.height is String)){ height = parseInt(_arg1.height); } else { height = _arg1.height; }; }; if (_arg1.hasOwnProperty("hideLogo")){ if ((_arg1.height is String)){ hideLogo = StringUtils.matchesIgnoreCase(_arg1.hideLogo, "TRUE"); } else { hideLogo = _arg1.hideLogo; }; }; if (_arg1.hasOwnProperty("scalable")){ scalable = StringUtils.validateAsBoolean(_arg1.scalable); }; if (_arg1.hasOwnProperty("controls")){ controls = _arg1.controls; }; if (_arg1.hasOwnProperty("margins")){ margins = _arg1.margins; }; } public function set controls(_arg1:Object):void{ if (_arg1 != null){ _controls.stream.initialise(_arg1); _controls.vpaid.initialise(_arg1); if (_arg1.hasOwnProperty("stream")){ _controls.stream.initialise(_arg1.stream); }; if (_arg1.hasOwnProperty("vpaid")){ _controls.vpaid.initialise(_arg1.vpaid); }; }; } public function set marginsSpecification(_arg1:MarginsSpecification):void{ _marginsSpecification = _arg1; } public function get marginsSpecification():MarginsSpecification{ return (_marginsSpecification); } public function shouldDisableControlsDuringLinearAds(_arg1:Boolean=false):Boolean{ if (_arg1){ return ((_controls.vpaid.enabled == false)); }; return ((_controls.stream.enabled == false)); } } }//package org.openvideoads.util
Section 84
//GraphicsUtils (org.openvideoads.util.GraphicsUtils) package org.openvideoads.util { import flash.display.*; import org.openvideoads.base.*; import flash.text.*; import flash.system.*; import flash.geom.*; public class GraphicsUtils extends Debuggable { public static function hexStringToUint(_arg1:String):uint{ var _local2:RegExp = new RegExp(/#/g); return (uint(String(_arg1).replace(_local2, "0x"))); } public static function beginLinearGradientFill(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Array, _arg5:Array):void{ var _local6:Matrix = new Matrix(); _local6.createGradientBox(_arg2, _arg3, (Math.PI / 2)); var _local7:Array = new Array(); var _local8:int = (0xFF / (_arg4.length - 1)); var _local9:Number = 0; while (_local9 < _arg4.length) { _local7.push((_local9 * _local8)); _local9++; }; _arg1.beginGradientFill(GradientType.LINEAR, _arg4, _arg5, _local7, _local6); } private static function beginFill(_arg1:Graphics, _arg2:Array, _arg3:Number, _arg4:Number):void{ var _local5:Array = new Array(); var _local6:Number = 0; while (_local6 < _arg2.length) { _local5.push(0xFFFFFF); _local6++; }; beginLinearGradientFill(_arg1, _arg3, _arg4, _local5, _arg2); } public static function removeGradient(_arg1:DisplayObjectContainer):void{ var _local2:DisplayObject = _arg1.getChildByName("_gradient"); if (_local2){ _arg1.removeChild(_local2); }; } public static function drawRoundRectangle(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number):void{ if (_arg6 > 0){ _arg1.drawRoundRect(_arg2, _arg3, _arg4, _arg5, _arg6, _arg6); } else { _arg1.drawRect(_arg2, _arg3, _arg4, _arg5); }; } public static function addGradient(_arg1:DisplayObjectContainer, _arg2:int, _arg3:Array, _arg4:Number, _arg5:Number=0, _arg6:Number=0):void{ removeGradient(_arg1); var _local7:Shape = new Shape(); _local7.name = "_gradient"; _arg1.addChildAt(_local7, _arg2); _local7.graphics.clear(); beginFill(_local7.graphics, _arg3, _arg1.width, _arg1.height); GraphicsUtils.drawRoundRectangle(_local7.graphics, _arg5, _arg6, _arg1.width, _arg1.height, _arg4); _local7.graphics.endFill(); } public static function createFlashTextField(_arg1:Boolean, _arg2:String=null, _arg3:int=12, _arg4:Boolean=false, _arg5:uint=0xFFFFFF):TextField{ var _local8:Array; var _local9:Array; var _local10:Number; var _local11:Number; var _local6:TextField = new TextField(); var _local7:TextFormat = new TextFormat(); _local6.blendMode = BlendMode.LAYER; if (_arg2 != null){ _local7.font = _arg2; _local6.antiAliasType = AntiAliasType.ADVANCED; } else { if (Capabilities.os.indexOf("Windows") == 0){ _local8 = ["Lucida Grande", "Lucida Sans Unicode", "Bitstream Vera", "Verdana", "Arial", "_sans", "_serif"]; _local9 = Font.enumerateFonts(true); _local7.font = "_sans"; _local10 = 0; while (_local10 < _local8.length) { _local11 = 0; while (_local11 < _local9.length) { if (Font(_local9[_local11]).fontName == _local8[_local10]){ _local7.font = _local8[_local10]; _local11 = _local9.length; _local10 = _local8.length; }; _local11++; }; _local10++; }; } else { _local7.font = "Lucida Grande, Lucida Sans Unicode, Bitstream Vera, Verdana, Arial, _sans, _serif"; _local6.antiAliasType = AntiAliasType.ADVANCED; }; }; _local7.size = _arg3; _local7.color = _arg5; _local7.bold = _arg4; _local6.embedFonts = _arg1; _local6.defaultTextFormat = _local7; return (_local6); } public static function beginGradientFill(_arg1:Graphics, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number=1):void{ var _local7:Array = [_arg4, _arg5, _arg4]; var _local8:Matrix = new Matrix(); _local8.createGradientBox(_arg2, _arg3, (Math.PI / 2)); _arg1.beginGradientFill(GradientType.LINEAR, _local7, [_arg6, _arg6, _arg6], [0, 128, 0xFF], _local8); } } }//package org.openvideoads.util
Section 85
//InjectedLoader (org.openvideoads.util.InjectedLoader) package org.openvideoads.util { import flash.events.*; import flash.net.*; import flash.utils.*; public class InjectedLoader extends TransformingLoader { protected var _delayTimer:Timer;// = null override public function load(_arg1:URLRequest):void{ } private function onDelayTimeEvent(_arg1:TimerEvent):void{ this.dispatchEvent(new Event(Event.COMPLETE)); } public function getBytesLoaded():uint{ var _local1:ByteArray; if (this.data != null){ _local1 = new ByteArray(); _local1.writeUTFBytes(this.data); return (_local1.length); }; return (0); } public function process(_arg1:String):void{ this.data = _arg1; _delayTimer = new Timer(300, 1); _delayTimer.addEventListener(TimerEvent.TIMER, onDelayTimeEvent); _delayTimer.start(); } } }//package org.openvideoads.util
Section 86
//MarginsSpecification (org.openvideoads.util.MarginsSpecification) package org.openvideoads.util { import org.openvideoads.base.*; public class MarginsSpecification extends Debuggable { protected var _normal:Object; protected var _fullscreen:Object; public function MarginsSpecification(_arg1:Object=null){ _normal = {withControls:0, withControlsOverride:-1, withoutControls:0, withoutControlsOverride:-1}; _fullscreen = {withControls:0, withControlsOverride:-1, withoutControls:0, withoutControlsOverride:-1}; super(); initialise(_arg1); } public function getWithControlsMargin(_arg1:String, _arg2:Boolean=false):Number{ if (StringUtils.matchesIgnoreCase(_arg1, "NORMAL")){ if (_arg2){ if (_normal.hasOwnProperty("withControlsOverride")){ if (_normal.withControlsOverride > -1){ return (_normal.withControlsOverride); }; }; }; if (_normal.hasOwnProperty("withControls")){ return (_normal.withControls); }; } else { if (_arg2){ if (_fullscreen.hasOwnProperty("withControlsOverride")){ if (_fullscreen.withControlsOverride > -1){ return (_fullscreen.withControlsOverride); }; }; }; if (_fullscreen.hasOwnProperty("withControls")){ return (_fullscreen.withControls); }; }; return (0); } public function getNormalMarginWithoutControls():Number{ return (getWithoutControlsMargin("normal")); } public function get fullscreenControlMargins():Object{ return (_fullscreen); } public function getNormalMarginWithControls():Number{ return (getWithControlsMargin("normal")); } protected function setControlMargins(_arg1:Object, _arg2:Object):void{ if (_arg2.hasOwnProperty("withControls")){ _arg1.withControls = _arg2.withControls; }; if (_arg2.hasOwnProperty("withControlsOverride")){ _arg1.withControlsOverride = _arg2.withControlsOverride; }; if (_arg2.hasOwnProperty("withoutControls")){ _arg1.withoutControls = _arg2.withoutControls; }; if (_arg2.hasOwnProperty("withoutControlsOverride")){ _arg1.withoutControlsOverride = _arg2.withoutControlsOverride; }; } public function set fullscreenControlMargins(_arg1:Object):void{ setControlMargins(_fullscreen, _arg1); } public function get normalControlMargins():Object{ return (_normal); } public function getWithoutControlsMargin(_arg1:String, _arg2:Boolean=false):Number{ if (StringUtils.matchesIgnoreCase(_arg1, "NORMAL")){ if (_arg2){ if (_normal.hasOwnProperty("withoutControlsOverride")){ if (_normal.withoutControlsOverride > -1){ return (_normal.withoutControlsOverride); }; }; }; if (_normal.hasOwnProperty("withoutControls")){ return (_normal.withoutControls); }; } else { if (_arg2){ if (_fullscreen.hasOwnProperty("withoutControlsOverride")){ if (_fullscreen.withoutControlsOverride > -1){ return (_fullscreen.withoutControlsOverride); }; }; }; if (_fullscreen.hasOwnProperty("withoutControls")){ return (_fullscreen.withoutControls); }; }; return (0); } public function initialise(_arg1:Object):void{ if (_arg1 != null){ setControlMargins(_normal, _arg1); setControlMargins(_fullscreen, _arg1); if (_arg1.hasOwnProperty("normal")){ normalControlMargins = _arg1.normal; }; if (_arg1.hasOwnProperty("fullscreen")){ fullscreenControlMargins = _arg1.fullscreen; }; }; } public function getFullscreenMarginWithControls():Number{ return (getWithControlsMargin("fullscreen")); } public function set normalControlMargins(_arg1:Object):void{ setControlMargins(_normal, _arg1); } public function getFullscreenMarginWithoutControls():Number{ return (getWithoutControlsMargin("fullscreen")); } } }//package org.openvideoads.util
Section 87
//NetworkResource (org.openvideoads.util.NetworkResource) package org.openvideoads.util { import flash.events.*; import org.openvideoads.base.*; import flash.net.*; import flash.utils.*; public class NetworkResource extends Debuggable { protected var _id:String;// = null protected var _timeoutTimer:Timer;// = null protected var _mimeType:String;// = null protected var _url:String;// = null protected var _loader:URLLoader; public function NetworkResource(_arg1:String=null, _arg2:String=null, _arg3:String=null){ _loader = new URLLoader(); super(); _id = _arg1; this.url = _arg2; _mimeType = _arg3; } public function getURI():String{ var _local1:int; if (_url != null){ _local1 = _url.lastIndexOf("/"); if (_local1 == -1){ return (null); }; return (_url.substr(0, (_local1 + 1))); //unresolved jump }; return (null); } public function hasMimeType():Boolean{ return (!((_mimeType == null))); } public function isStream():Boolean{ var _local1:String = getFilename(); var _local2:RegExp = new RegExp("(?i).*\\.(mp4|flv|wmv|mp3|3g2|3gp|aac|f4b|f4p|f4v|m4a|m4v|mov|sdp)"); return (!((_local1.match(_local2) == null))); } public function hasMP4FileMarker():Boolean{ if (_url != null){ return ((_url.indexOf("mp4:") > -1)); }; return (false); } public function get mimeType():String{ return (_mimeType); } public function isRTMP():Boolean{ if (_url != null){ return ((_url.indexOf("rtmp") > -1)); }; return (false); } public function hasFileMarker():Boolean{ if (_url != null){ return (((hasMP4FileMarker()) || (hasFLVFileMarker()))); }; return (false); } public function isQualified():Boolean{ if (_url != null){ return ((((((_url.indexOf("http://") > -1)) || ((_url.indexOf("https://") > -1)))) || ((_url.indexOf("rtmp://") > -1)))); }; return (false); } public function getQualifiedStreamAddress(_arg1:String=null):String{ if (isQualified()){ return (_url); }; if (_arg1 != null){ return ((_arg1 + _url)); }; return (_url); } protected function loadComplete(_arg1:String):void{ close(); } public function isMimeType(_arg1:String):Boolean{ if (_mimeType != null){ return (StringUtils.matchesIgnoreCase(_arg1, _mimeType)); }; return (false); } public function get netConnectionAddress():String{ if (_url != null){ if (_url.indexOf("mp4:") > 0){ return (_url.substr(0, _url.indexOf("mp4:"))); }; if (_url.indexOf("flv:") > 0){ return (_url.substr(0, _url.indexOf("flv:"))); }; }; return (null); } public function get id():String{ return (_id); } public function set mimeType(_arg1:String):void{ _mimeType = _arg1; } public function clone():NetworkResource{ return (new NetworkResource(_id, _url)); } public function set url(_arg1:String):void{ _url = StringUtils.removeControlChars(StringUtils.trim(_arg1)); } protected function timeoutCall(_arg1:TimerEvent):void{ stopTimeoutTimer(); doLog("HTTP ERROR: Call has been forcibly timed out", Debuggable.DEBUG_HTTP_CALLS); close(); } protected function errorHandler(_arg1:Event):void{ doLog(("HTTP ERROR: " + _arg1.toString()), Debuggable.DEBUG_HTTP_CALLS); close(); } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {id:_id, uid:_uid, url:_url, mimeType:_mimeType}; return (_local1); } public function call(_arg1:int=-1):void{ if (_url != null){ if (StringUtils.trim(_url).length > 0){ doLog(("Making HTTP call to " + _url), Debuggable.DEBUG_HTTP_CALLS); _loader = new URLLoader(); _loader.addEventListener(Event.COMPLETE, callComplete); _loader.addEventListener(ErrorEvent.ERROR, errorHandler); _loader.addEventListener(AsyncErrorEvent.ASYNC_ERROR, errorHandler); _loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); _loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); if (_arg1 > 0){ startTimeoutTimer((_arg1 * 1000)); }; _loader.load(new URLRequest(_url)); } else { doLog("HTTP call not made - the URL is empty", Debuggable.DEBUG_HTTP_CALLS); }; } else { doLog("HTTP call cannot be made - no URL set", Debuggable.DEBUG_HTTP_CALLS); }; } protected function startTimeoutTimer(_arg1:int):void{ if (_timeoutTimer != null){ stopTimeoutTimer(); }; if (_arg1 > 0){ doLog((("HTTP call timer started - max call duration is set at " + _arg1) + " milliseconds"), Debuggable.DEBUG_HTTP_CALLS); _timeoutTimer = new Timer(_arg1, 1); _timeoutTimer.addEventListener(TimerEvent.TIMER, timeoutCall); _timeoutTimer.start(); }; } public function isLiveURL():Boolean{ var _local1:String = getFilename(); if (_local1 != null){ return ((_local1.indexOf("(live)") > -1)); }; return (false); } public function hasFileExtension(_arg1:String):Boolean{ var _local2:int; if (_url != null){ _local2 = _url.lastIndexOf("."); return (StringUtils.matchesIgnoreCase(_url.substr(_local2), _arg1)); }; return (false); } public function get data():String{ return (_loader.data); } public function get qualifiedHTTPUrl():String{ if (!isQualified()){ return (("http://" + StringUtils.trim(_url))); }; return (_url); } public function hasFLVFileMarker():Boolean{ if (_url != null){ return ((_url.indexOf("flv:") > -1)); }; return (false); } public function get url():String{ return (_url); } public function get qualifiedUrl():String{ return (qualifiedHTTPUrl); } public function hasUrl():Boolean{ if (_url != null){ return ((StringUtils.trim(_url).length > 0)); }; return (false); } public function set id(_arg1:String):void{ _id = _arg1; } protected function callComplete(_arg1:Event):void{ if (_loader != null){ doLog((((("HTTP call complete (to " + id) + ") - ") + _loader.bytesLoaded) + " bytes loaded"), Debuggable.DEBUG_HTTP_CALLS); loadComplete(_loader.data); } else { doLog((("HTTP call complete (to " + id) + ") - loader is null so no load data available"), Debuggable.DEBUG_HTTP_CALLS); }; } public function close():void{ if (_loader != null){ try { _loader.close(); _loader = null; } catch(e:Error) { }; }; } public function getLiveStreamName():String{ var _local1:String; if (isLiveURL()){ _local1 = getFilename(); return (_local1.substr((_local1.lastIndexOf("(live)") + 6))); }; return (null); } public function getFilename(_arg1:String=null):String{ var _local2:int; var _local3:int; if (_url != null){ if (_arg1 != null){ _local2 = _url.indexOf(_arg1); if (_local2 == -1){ return (_url); }; return (_url.substr(_local2)); } else { _local3 = _url.lastIndexOf("/"); if (_local3 == -1){ return (_url); }; return (_url.substr((_local3 + 1))); }; //unresolved jump }; return (null); } protected function stopTimeoutTimer():void{ if (_timeoutTimer != null){ _timeoutTimer.stop(); _timeoutTimer = null; }; } public static function getDomain(_arg1:String):String{ var _local2:Array; if (_arg1 != null){ if (StringUtils.beginsWith(_arg1, "http://localhost")){ return ("localhost"); }; _local2 = _arg1.split("/"); if (StringUtils.beginsWith(_arg1, "http")){ if (_local2.length >= 3){ return (_local2[2]); }; } else { return (_local2[0]); }; }; return (null); } public static function appendToPath(_arg1:String, _arg2:String):String{ if (StringUtils.endsWith(_arg1, "/")){ return ((_arg1 + _arg2)); }; return (((_arg1 + "/") + _arg2)); } public static function addBaseURL(_arg1:String, _arg2:String):String{ if (_arg2 == null){ return (null); }; if (isCompleteURLWithProtocol(_arg2)){ return (_arg2); }; if (_arg2.indexOf("/") == 0){ return (_arg2); }; if ((((((_arg1 == "")) || ((_arg1 == null)))) || ((_arg1 == "null")))){ return (_arg2); }; if (_arg1 != null){ if (_arg1.lastIndexOf("/") == (_arg1.length - 1)){ return ((_arg1 + _arg2)); }; return (((_arg1 + "/") + _arg2)); }; return (_arg2); } public static function addParameterToURLString(_arg1:String, _arg2:String):String{ if (_arg1.indexOf("?") > 0){ return (((_arg1 + "&") + _arg2)); }; return (((_arg1 + "?") + _arg2)); } public static function isCompleteURLWithProtocol(_arg1:String):Boolean{ if (!_arg1){ return (false); }; return ((_arg1.indexOf("://") > 0)); } } }//package org.openvideoads.util
Section 88
//NumberUtils (org.openvideoads.util.NumberUtils) package org.openvideoads.util { public class NumberUtils { public static function toPixels(_arg1):Number{ if ((_arg1 is Number)){ return (Math.round(_arg1)); }; if (_arg1.indexOf("px") < 0){ _arg1 = (_arg1 + "px"); }; var _local2:Number = convert("px", _arg1); if (isNaN(_local2)){ return ((_arg1.substr(0) as Number)); }; return (Math.round(_local2)); } private static function convert(_arg1:String, _arg2:String):Number{ if (_arg2.indexOf(_arg1) <= 0){ return (NaN); }; return (Number(_arg2.substring(0, _arg2.indexOf(_arg1)))); } public static function toPercentage(_arg1):Number{ if ((_arg1 is Number)){ return (_arg1); }; if (_arg1.indexOf("pct") > -1){ return (convert("pct", _arg1)); }; return (convert("%", _arg1)); } } }//package org.openvideoads.util
Section 89
//ObjectUtils (org.openvideoads.util.ObjectUtils) package org.openvideoads.util { import flash.system.*; public class ObjectUtils { private static var counter:Number = 0; private static function sha1_kt(_arg1:Number):Number{ return (((_arg1)<20) ? 1518500249 : ((_arg1)<40) ? 1859775393 : ((_arg1)<60) ? -1894007588 : -899497514); } private static function binb2hex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:String = new String("0123456789abcdef"); var _local4:Number = 0; while (_local4 < (_arg1.length * 4)) { _local2 = (_local2 + (_local3.charAt(((_arg1[(_local4 >> 2)] >> (((3 - (_local4 % 4)) * 8) + 4)) & 15)) + _local3.charAt(((_arg1[(_local4 >> 2)] >> ((3 - (_local4 % 4)) * 8)) & 15)))); _local4++; }; return (_local2); } private static function core_sha1(_arg1:Array, _arg2:Number):Array{ var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; _arg1[(_arg2 >> 5)] = (_arg1[(_arg2 >> 5)] | (128 << (24 - (_arg2 % 32)))); _arg1[((((_arg2 + 64) >> 9) << 4) + 15)] = _arg2; var _local3:Array = new Array(80); var _local4:Number = 1732584193; var _local5:Number = -271733879; var _local6:Number = -1732584194; var _local7:Number = 271733878; var _local8:Number = -1009589776; var _local9:Number = 0; while (_local9 < _arg1.length) { _local10 = _local4; _local11 = _local5; _local12 = _local6; _local13 = _local7; _local14 = _local8; _local15 = 0; while (_local15 < 80) { if (_local15 < 16){ _local3[_local15] = _arg1[(_local9 + _local15)]; } else { _local3[_local15] = rol((((_local3[(_local15 - 3)] ^ _local3[(_local15 - 8)]) ^ _local3[(_local15 - 14)]) ^ _local3[(_local15 - 16)]), 1); }; _local16 = safe_add(safe_add(rol(_local4, 5), sha1_ft(_local15, _local5, _local6, _local7)), safe_add(safe_add(_local8, _local3[_local15]), sha1_kt(_local15))); _local8 = _local7; _local7 = _local6; _local6 = rol(_local5, 30); _local5 = _local4; _local4 = _local16; _local15++; }; _local4 = safe_add(_local4, _local10); _local5 = safe_add(_local5, _local11); _local6 = safe_add(_local6, _local12); _local7 = safe_add(_local7, _local13); _local8 = safe_add(_local8, _local14); _local9 = (_local9 + 16); }; return (new Array(_local4, _local5, _local6, _local7, _local8)); } private static function calculate(_arg1:String):String{ return (hex_sha1(_arg1)); } private static function sha1_ft(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ if (_arg1 < 20){ return (((_arg2 & _arg3) | (~(_arg2) & _arg4))); }; if (_arg1 < 40){ return (((_arg2 ^ _arg3) ^ _arg4)); }; if (_arg1 < 60){ return ((((_arg2 & _arg3) | (_arg2 & _arg4)) | (_arg3 & _arg4))); }; return (((_arg2 ^ _arg3) ^ _arg4)); } private static function hex_sha1(_arg1:String):String{ return (binb2hex(core_sha1(str2binb(_arg1), (_arg1.length * 8)))); } private static function rol(_arg1:Number, _arg2:Number):Number{ return (((_arg1 << _arg2) | (_arg1 >>> (32 - _arg2)))); } public static function createUID():String{ var _local1:Date = new Date(); var _local2:Number = _local1.getTime(); var _local3:Number = (Math.random() * Number.MAX_VALUE); var _local4:String = Capabilities.serverString; var _local5:String = calculate((((_local2 + _local4) + _local3) + counter++)).toUpperCase(); var _local6:String = ((((((((_local5.substring(0, 8) + "-") + _local5.substring(8, 12)) + "-") + _local5.substring(12, 16)) + "-") + _local5.substring(16, 20)) + "-") + _local5.substring(20, 32)); return (_local6); } private static function safe_add(_arg1:Number, _arg2:Number):Number{ var _local3:Number = ((_arg1 & 0xFFFF) + (_arg2 & 0xFFFF)); var _local4:Number = (((_arg1 >> 16) + (_arg2 >> 16)) + (_local3 >> 16)); return (((_local4 << 16) | (_local3 & 0xFFFF))); } private static function str2binb(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = ((1 << 8) - 1); var _local4:Number = 0; while (_local4 < (_arg1.length * 8)) { _local2[(_local4 >> 5)] = (_local2[(_local4 >> 5)] | ((_arg1.charCodeAt((_local4 / 8)) & _local3) << (24 - (_local4 % 32)))); _local4 = (_local4 + 8); }; return (_local2); } } }//package org.openvideoads.util
Section 90
//PopupWindow (org.openvideoads.util.PopupWindow) package org.openvideoads.util { import org.openvideoads.base.*; import flash.net.*; import flash.external.*; public class PopupWindow { private static function getUA():String{ var agent:String; if (ExternalInterface.available){ try { agent = ExternalInterface.call("function getBrowser(){return navigator.userAgent;}"); if (((!((agent == null))) && ((agent.indexOf("Firefox") >= 0)))){ return ("FIREFOX"); } else { if (((!((agent == null))) && ((agent.indexOf("Safari") >= 0)))){ return ("SAFARI"); } else { if (((!((agent == null))) && ((agent.indexOf("MSIE") >= 0)))){ return ("IE"); } else { if (((!((agent == null))) && ((agent.indexOf("Opera") >= 0)))){ return ("OPERA"); }; }; }; }; } catch(e:Error) { }; }; return ("UNDEFINED"); } public static function openWindow(_arg1:String, _arg2:String="_blank", _arg3:String=""):void{ var _local4:String = _slot1.getUA(); switch (_local4){ case "IE": Debuggable.getInstance().doLog("User agent is identified as IE - processing click through via JS window.open()", Debuggable.DEBUG_CLICKTHROUGH_EVENTS); ExternalInterface.call((((((("function setWMWindow() {window.open('" + _arg1) + "', '") + _arg2) + "', '") + _arg3) + "');}")); break; case "FIREFOX": case "SAFARI": case "OPERA": default: Debuggable.getInstance().doLog((("User agent is identified as " + _local4) + " - processing click through via AS3 navigateToURL()"), Debuggable.DEBUG_CLICKTHROUGH_EVENTS); navigateToURL(new URLRequest(_arg1), _arg2); break; }; } } }//package org.openvideoads.util
Section 91
//StringUtils (org.openvideoads.util.StringUtils) package org.openvideoads.util { public class StringUtils { public static function validateAsBoolean(_arg1):Boolean{ if (((!((_arg1 == null))) && (!((_arg1 == undefined))))){ if ((((_arg1 is String)) || ((typeof(_arg1) == "xml")))){ return ((_arg1.toUpperCase() == "TRUE")); }; if ((_arg1 is Boolean)){ return (_arg1); }; }; return (false); } public static function limitLength(_arg1:String, _arg2:Number):String{ if (_arg1 != null){ return (_arg1.substr(0, _arg2)); }; return (_arg1); } public static function isEmpty(_arg1:String):Boolean{ if (_arg1 == null){ return (true); }; return ((_slot1.trim(_arg1).length == 0)); } public static function removeControlChars(_arg1:String):String{ var _local2:String; var _local3:Array; if (_arg1 != null){ _local2 = _arg1; _local2 = _local2.split("\t").join(" "); _local2 = _local2.split("\r").join(" "); _local2 = _local2.split("\n").join(" "); return (_local2); }; return (_arg1); } public static function endsWith(_arg1:String, _arg2:String):Boolean{ if (_arg1 == null){ return (false); }; return ((_arg1.lastIndexOf(_arg2) == (_arg1.length - _arg2.length))); } public static function escapeSingleQuotes(_arg1:String):String{ return (_arg1.replace(/(['\\])/g, "\\$1")); } public static function convertStringToNumber(_arg1:String, _arg2:int):Number{ var _local3:Array; var _local4:int; var _local5:Number; var _local6:int; if (_arg1 != null){ _local3 = _arg1.split("."); _local4 = 0; _local5 = 0; _local6 = (_local3.length - 1); while (_local6 >= 0) { if (_local5 == 0){ _local4 = _local3[_local6]; _local5 = _arg2; } else { _local4 = (_local4 + (_local3[_local6] * _local5)); }; _local5 = (_local5 * 10); _local6--; }; return (_local4); }; return (0); } public static function trim(_arg1:String):String{ return ((_arg1) ? _arg1.replace(/^\s+|\s+$/gs, "") : ""); } public static function revertSingleQuotes(_arg1:String, _arg2:String):String{ var _local3:RegExp = /{quote}/g; return (_arg1.replace(_local3, _arg2)); } public static function escapeDoubleQuotes(_arg1:String):String{ var _local2:String = new String(); var _local3:int; while (_local3 < _arg1.length) { if (_arg1.charAt(_local3) == "\""){ _local2 = (_local2 + "\""); } else { _local2 = (_local2 + _arg1.charAt(_local3)); }; _local3++; }; return (_local2); } public static function containsIgnoreCase(_arg1, _arg2:String):Boolean{ var _local3:Object; var _local4:String; var _local5:String; if ((_arg1 is Array)){ for each (_local3 in _arg1) { if ((_local3 is String)){ if (matchesIgnoreCase((_local3 as String), _arg2)){ return (true); }; }; }; } else { if ((_arg1 is String)){ if (((_slot1.isEmpty(_arg1)) || (_slot1.isEmpty(_arg2)))){ return (false); }; _local4 = _arg1.toUpperCase(); _local5 = _arg2.toUpperCase(); return ((_local4.indexOf(_local5) > -1)); }; }; return (false); } public static function validateAsNumber(_arg1):Number{ if ((_arg1 is Number)){ return (_arg1); }; if ((_arg1 is String)){ return (Number(_arg1)); }; return (-1); } public static function removeNewlines(_arg1:String):String{ return (_arg1.replace(/\n/g, "")); } public static function matchesIgnoreCase(_arg1:String, _arg2:String):Boolean{ if ((((_arg1 == null)) && ((_arg2 == null)))){ return (true); }; if ((((((_arg1 == null)) && (!((_arg2 == null))))) || (((!((_arg1 == null))) && ((_arg2 == null)))))){ return (false); }; return ((_arg1.toUpperCase() == _arg2.toUpperCase())); } public static function concatEnsuringSeparator(_arg1:String, _arg2:String, _arg3:String):String{ if (((_slot1.endsWith(_arg1, _arg3)) || (_slot1.beginsWith(_arg2, _arg3)))){ return ((_arg1 + _arg2)); }; return (((_arg1 + _arg3) + _arg2)); } public static function beginsWith(_arg1:String, _arg2:String):Boolean{ if ((((_arg1 == null)) || ((_arg2 == null)))){ return (false); }; return ((_slot1.trim(_arg1).toUpperCase().indexOf(_arg2.toUpperCase()) == 0)); } public static function doubleEscapeSingleQuotes(_arg1:String):String{ return (_arg1.replace(/(['\\])/g, "\\$1")); } public static function replaceSingleWithDoubleQuotes(_arg1:String):String{ var _local2:RegExp = /'/g; return (_arg1.replace(_local2, "\"")); } public static function matchesAndHasValue(_arg1:String, _arg2:String):Boolean{ if (_arg1 != null){ if (_arg2 != null){ if (((!(_slot1.isEmpty(_arg1))) && (!(_slot1.isEmpty(_arg2))))){ return ((_arg1 == _arg2)); }; }; }; return (false); } public static function difference(_arg1:String, _arg2:String):String{ var _local3:int; while (_local3 < _arg1.length) { if (_local3 < _arg2.length){ if (_arg1.charAt(_local3) != _arg2.charAt(_local3)){ return ((((((("difference: " + _local3) + ", (") + _arg1.charCodeAt(_local3)) + ") != (") + _arg2.charCodeAt(_local3)) + ")")); }; } else { return ("difference: string1 longer"); }; _local3++; }; if (_arg1.length < _arg2.length){ return ("difference: string2 is longer"); }; return ("difference: identical"); } public static function convertStringToObject(_arg1:String, _arg2:String, _arg3:String):Object{ var _local6:int; var _local7:Array; var _local4:Object = new Object(); var _local5:Array = _arg1.split(_arg2); if (_local5.length > 0){ _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split(_arg3); if (_local7.length == 2){ _local4[_local7[0]] = _local7[1]; }; _local6++; }; }; return (_local4); } public static function compressWhitespace(_arg1:String):String{ var _local3:Array; var _local2:String = _arg1; _local3 = _local2.split(" "); var _local4:uint; while (_local4 < _local3.length) { if (_local3[_local4] == ""){ _local3.splice(_local4, 1); _local4--; }; _local4++; }; _local2 = _local3.join(" "); return (_local2); } } }//package org.openvideoads.util
Section 92
//StyleUtils (org.openvideoads.util.StyleUtils) package org.openvideoads.util { public class StyleUtils { public static function toColorValue(_arg1:String):uint{ if (!_arg1){ return (0xFFFFFF); }; return (parseInt(("0x" + _arg1.substr(1)))); } public static function toElements(_arg1:String):Array{ return (_arg1.split(" ")); } public static function findInShorthand(_arg1:String, _arg2:String):String{ var _local3:Array = toElements(_arg1); var _local4:Number = 0; while (_local4 < _local3.length) { if ((((_local3[_local4] is String)) && ((String(_local3[_local4]).indexOf(_arg2) == 0)))){ return ((_local3[_local4] as String)); }; _local4++; }; return (null); } } }//package org.openvideoads.util
Section 93
//TimedURLLoader (org.openvideoads.util.TimedURLLoader) package org.openvideoads.util { import flash.events.*; import org.openvideoads.base.*; import flash.net.*; import flash.utils.*; import org.openvideoads.events.*; public class TimedURLLoader extends TransformingLoader { protected var _timeoutTimer:Timer;// = null protected var _maxWaitTimeInMilliseconds:int;// = -1 public function TimedURLLoader(_arg1:Number=-1){ _maxWaitTimeInMilliseconds = _arg1; addEventListener(Event.COMPLETE, stopTimerHandler); addEventListener(ErrorEvent.ERROR, stopTimerHandler); addEventListener(SecurityErrorEvent.SECURITY_ERROR, stopTimerHandler); addEventListener(IOErrorEvent.IO_ERROR, stopTimerHandler); } protected function doTrace(_arg1:Object, _arg2:int=1):void{ Debuggable.getInstance().doTrace(_arg1, _arg2); } protected function startTimeoutTimer():void{ if (_timeoutTimer != null){ stopTimeoutTimer(); }; if (_maxWaitTimeInMilliseconds > 0){ doLog((("HTTP timed load started - max wait time is " + _maxWaitTimeInMilliseconds) + " milliseconds"), Debuggable.DEBUG_HTTP_CALLS); _timeoutTimer = new Timer(_maxWaitTimeInMilliseconds, 1); _timeoutTimer.addEventListener(TimerEvent.TIMER, timeoutCall); _timeoutTimer.start(); }; } override public function load(_arg1:URLRequest):void{ if (_maxWaitTimeInMilliseconds > 0){ startTimeoutTimer(); }; super.load(_arg1); } protected function stopTimerHandler(_arg1:Event):void{ if (_timeoutTimer != null){ stopTimeoutTimer(); }; } protected function stopTimeoutTimer():void{ if (_timeoutTimer != null){ _timeoutTimer.stop(); _timeoutTimer = null; doLog("HTTP timer has been stopped", Debuggable.DEBUG_ALWAYS); }; } protected function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } protected function timeoutCall(_arg1:TimerEvent):void{ this.close(); stopTimeoutTimer(); doLog("HTTP timed load has forcibly timed out", Debuggable.DEBUG_HTTP_CALLS); dispatchEvent(new TimedLoaderEvent(TimedLoaderEvent.TIMED_OUT)); } } }//package org.openvideoads.util
Section 94
//Timestamp (org.openvideoads.util.Timestamp) package org.openvideoads.util { import org.openvideoads.base.*; public class Timestamp extends Debuggable { public static function pad(_arg1:int):String{ if (_arg1 < 10){ return (("0" + _arg1)); }; return (("" + _arg1)); } public static function validate(_arg1:String):Boolean{ if (_arg1 == null){ return (false); }; var _local2:Array = _arg1.split(":"); return ((_local2.length == 3)); } private static function doubleDigitFormat(_arg1:uint):String{ if (_arg1 < 10){ return (("0" + _arg1)); }; return (String(_arg1)); } public static function secondsStringToTimestamp(_arg1:String):String{ if (_arg1 == null){ return ("00:00:00"); }; return (secondsToTimestamp(int(_arg1))); } public static function secondsToTimestamp(_arg1:Number):String{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:String; var _local6:String; var _local7:String; if (_arg1 > 0){ _local2 = (_arg1 % 60); _local3 = Math.floor(((_arg1 % 3600) / 60)); _local4 = Math.floor((_arg1 / (60 * 60))); _local5 = (((_local4)==0) ? "00" : doubleDigitFormat(_local4) + ":"); _local6 = (doubleDigitFormat(_local3) + ":"); _local7 = doubleDigitFormat(_local2); return (((_local5 + _local6) + _local7)); }; return ("00:00:00"); } public static function addSecondsToTimestamp(_arg1:String, _arg2:Number):String{ var _local3:int; if (_arg2 > 0){ _local3 = timestampToSeconds(_arg1); return (secondsToTimestamp((_local3 + _arg2))); }; return (_arg1); } public static function timestampToSeconds(_arg1:String):int{ var _local2:Array; if (_arg1 != null){ _local2 = _arg1.split(":"); if (_local2.length == 3){ return ((((parseInt(_local2[0]) * 3600) + (parseInt(_local2[1]) * 60)) + parseInt(_local2[2]))); }; return (parseInt(_arg1)); }; return (0); } public static function timestampToSecondsString(_arg1:String):String{ return (new String(Timestamp.timestampToSeconds(_arg1))); } } }//package org.openvideoads.util
Section 95
//TransformingLoader (org.openvideoads.util.TransformingLoader) package org.openvideoads.util { import flash.net.*; public class TransformingLoader extends URLLoader { protected var _transformers:Array;// = null public function set transformers(_arg1:Array):void{ _transformers = _arg1; } public function get transformedData():String{ var _local1:String; var _local2:int; if (_transformers != null){ if (_transformers.length > 0){ _local1 = super.data; _local2 = 0; while (_local2 < _transformers.length) { if (((_transformers[_local2].hasOwnProperty("pattern")) && (_transformers[_local2].hasOwnProperty("replace")))){ _local1 = _local1.replace(new RegExp(_transformers[_local2].pattern, (_transformers[_local2].hasOwnProperty("command")) ? _transformers[_local2].hasOwnProperty("command") : "g"), _transformers[_local2].replace); }; _local2++; }; }; return (_local1); }; return (super.data); } } }//package org.openvideoads.util
Section 96
//AnalyticsInterface (org.openvideoads.vast.analytics.AnalyticsInterface) package org.openvideoads.vast.analytics { import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.vast.server.request.*; public interface AnalyticsInterface { function fireVPAIDPlaybackTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void; function fireAdCallTracking(_arg1:String, _arg2:AdServerRequest, _arg3:Boolean=false, _arg4=null):void; function fireImpressionTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void; function fireAdClickTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void; function fireAdPlaybackTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void; function fireTemplateLoadTracking(_arg1:String, _arg2=null):void; function fireAdSlotTracking(_arg1:String, _arg2:AdSlot, _arg3=null):void; } }//package org.openvideoads.vast.analytics
Section 97
//AnalyticsProcessor (org.openvideoads.vast.analytics.AnalyticsProcessor) package org.openvideoads.vast.analytics { import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.vast.server.request.*; import org.openvideoads.base.*; import org.openvideoads.vast.config.groupings.analytics.*; public class AnalyticsProcessor extends Debuggable implements AnalyticsInterface { protected var _gaProcessor:GoogleAnalyticsProcessor;// = null public static const ALL:String = "all"; public static const LOADED:String = "loaded"; public static const TIMED_OUT:String = "timeout"; public static const STOP:String = "stop"; public static const EXPANDED_CHANGE:String = "expandedChange"; public static const POSITION_PRE_ROLL:String = "pre-roll"; public static const LINEAR_CHANGE:String = "linearChange"; public static const PLAYING:String = "playing"; public static const FAILED_OVER:String = "failover"; public static const AD_CALLS:String = "adCalls"; public static const AD_SLOT:String = "adSlot"; public static const VIDEO_COMPLETE:String = "videoComplete"; public static const MUTE:String = "mute"; public static const EXPAND:String = "expand"; public static const LINEAR:String = "linear"; public static const POSITION_POST_ROLL:String = "post-roll"; public static const VPAID:String = "vpaid"; public static const PROGRESS:String = "progress"; public static const PAUSED:String = "paused"; public static const NON_INTERACTIVE:String = "non-interactive"; public static const VIDEO_FIRST_QUARTILE:String = "videoFirstQuartile"; public static const COMPLETE:String = "complete"; public static const FULLSCREEN:String = "fullscreen"; public static const RESUME:String = "resume"; public static const START:String = "start"; public static const COLLAPSE:String = "collapse"; public static const MIDPOINT:String = "midpoint"; public static const USER_ACCEPT_INVITATION:String = "userAcceptInvitation"; public static const FIRED:String = "fired"; public static const STOPPED:String = "stopped"; public static const FIRST_QUARTILE:String = "firstQuartile"; public static const VIDEO_MIDPOINT:String = "videoMidpoint"; public static const PAUSE:String = "pause"; public static const VIDEO_START:String = "videoStart"; public static const DEFERRED:String = "deferred"; public static const VIDEO_THIRD_QUARTILE:String = "videoThirdQuartile"; public static const CLOSE:String = "close"; public static const ERROR:String = "error"; public static const IMPRESSIONS:String = "impressions"; public static const CLICKS:String = "clicks"; public static const COMPANION:String = "companion"; public static const POSITION_MID_ROLL:String = "mid-roll"; public static const STARTED:String = "started"; public static const VOLUME_CHANGE:String = "volumeChange"; public static const NON_LINEAR:String = "nonLinear"; public static const UNMUTE:String = "unmute"; public static const REMAINING_TIME_CHANGE:String = "remainingTimeChange"; public static const TEMPLATE:String = "template"; public static const THIRD_QUARTILE:String = "thirdQuartile"; public function AnalyticsProcessor(_arg1:AnalyticsConfigGroup=null){ if (_arg1 != null){ initialise(_arg1); }; } public function fireAdClickTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (_gaProcessor != null){ _gaProcessor.fireAdClickTracking(_arg1, _arg2, _arg3, _arg4); }; } public function fireTemplateLoadTracking(_arg1:String, _arg2=null):void{ if (_gaProcessor != null){ _gaProcessor.fireTemplateLoadTracking(_arg1, _arg2); }; } public function fireAdPlaybackTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (_gaProcessor != null){ _gaProcessor.fireAdPlaybackTracking(_arg1, _arg2, _arg3, _arg4); }; } public function fireAdCallTracking(_arg1:String, _arg2:AdServerRequest, _arg3:Boolean=false, _arg4=null):void{ if (_gaProcessor != null){ _gaProcessor.fireAdCallTracking(_arg1, _arg2, _arg3, _arg4); }; } public function fireImpressionTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (_gaProcessor != null){ _gaProcessor.fireImpressionTracking(_arg1, _arg2, _arg3, _arg4); }; } public function initialise(_arg1:AnalyticsConfigGroup):void{ if (_arg1 != null){ if (_arg1.googleEnabled()){ doLog("Google Analytics Processor started", Debuggable.DEBUG_CONFIG); _gaProcessor = new GoogleAnalyticsProcessor(_arg1.google); } else { doLog("Google Analytics Processor has been disabled", Debuggable.DEBUG_CONFIG); _gaProcessor = null; }; }; } public function fireAdSlotTracking(_arg1:String, _arg2:AdSlot, _arg3=null):void{ if (_gaProcessor != null){ _gaProcessor.fireAdSlotTracking(_arg1, _arg2, _arg3); }; } public function fireVPAIDPlaybackTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (_gaProcessor != null){ _gaProcessor.fireVPAIDPlaybackTracking(_arg1, _arg2, _arg3, _arg4); }; } } }//package org.openvideoads.vast.analytics
Section 98
//GoogleAnalyticsProcessor (org.openvideoads.vast.analytics.GoogleAnalyticsProcessor) package org.openvideoads.vast.analytics { import org.openvideoads.vast.schedule.ads.*; import flash.display.*; import org.openvideoads.vast.server.request.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.model.*; import org.openvideoads.vast.config.groupings.analytics.google.*; import com.google.analytics.*; public class GoogleAnalyticsProcessor extends Debuggable implements AnalyticsInterface { protected var _gaCustomTracker:AnalyticsTracker;// = null protected var _gaOVATracker:AnalyticsTracker;// = null protected var _config:GoogleAnalyticsConfigGroup;// = null protected var _displayObject:DisplayObject;// = null public function GoogleAnalyticsProcessor(_arg1:GoogleAnalyticsConfigGroup){ if (_arg1 != null){ initialise(_arg1); }; } public function fireAdPlaybackTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (((((!((_config == null))) && (!((_arg2 == null))))) && (!((_arg3 == null))))){ fireCalls(AnalyticsProcessor.PROGRESS, _arg1, (((getAdSlotTrackingParams(_arg2) + getAdContainerTrackingParams(_arg2.videoAd)) + ((_arg3 is LinearVideoAd)) ? getLinearAdTrackingParams(_arg3) : ((_arg3 is NonLinearVideoAd)) ? getNonLinearAdTrackingParams(_arg3) : "") + formatAdditionalParams(_arg4)), _arg2.adServerTag); }; } protected function getCompanionAdTrackingParams(_arg1:CompanionAd):String{ if (_arg1 != null){ return (((((((("&ova_companion_creative_type=" + _arg1.creativeType) + "&ova_companion_resource_type=") + _arg1.resourceType) + "&ova_companion_width=") + _arg1.width) + "&ova_companion_height=") + _arg1.height)); }; return (""); } protected function getLinearAdTrackingParams(_arg1:LinearVideoAd):String{ var _local2:MediaFile; if (_arg1 != null){ _local2 = _arg1.lastSelectedMediaFile(); if (_local2 != null){ return (((((((((("&ova_media_url=" + encodeURIComponent(StringUtils.limitLength(_local2.url.url, 200))) + "&ova_media_interactive=") + (_local2.isInteractive()) ? "true" : "false") + "&ova_media_bitrate=") + _local2.bitRate) + "&ova_media_delivery=") + _local2.delivery) + "&ova_media_apiFramework=") + _local2.apiFramework)); }; }; return (""); } protected function getNonLinearAdTrackingParams(_arg1:NonLinearVideoAd):String{ if (_arg1 != null){ return (((((((((("&ova_non_linear_interactive=" + (_arg1.isInteractive()) ? "true" : "false") + "&ova_creative_type=") + _arg1.creativeType) + "&ova_resource_type=") + _arg1.resourceType) + "&ova_creative_width=") + _arg1.width) + "&ova_creative_height=") + _arg1.height)); }; return (""); } public function fireAdCallTracking(_arg1:String, _arg2:AdServerRequest, _arg3:Boolean=false, _arg4=null):void{ if (_config != null){ fireCalls(AnalyticsProcessor.AD_CALLS, _arg1, (((getAdRequestParams(_arg2) + "&ova_wrapped_ad_tag=") + _arg3) + formatAdditionalParams(_arg4)), null); }; } protected function getAdRequestParams(_arg1:AdServerRequest):String{ if (_arg1 != null){ return (((("&ova_ad_server_type=" + _arg1.serverType()) + "&ova_ad_server_tag=") + encodeURIComponent(StringUtils.limitLength(_arg1.formedRequest, 200)))); }; return (""); } protected function formatAdditionalParams(_arg1):String{ if (_arg1 != null){ if ((_arg1 is String)){ if (StringUtils.beginsWith(_arg1, "&")){ return (_arg1); }; return (("&" + _arg1)); }; }; return (""); } protected function getAdContainerTrackingParams(_arg1:VideoAd):String{ var _local2:String; if (_arg1 != null){ _local2 = ""; return (((((((((((("&ova_ad_id=" + encodeURIComponent(_arg1.adId)) + "&ova_sequence_id=") + encodeURIComponent(_arg1.sequenceId)) + "&ova_creative_id=") + encodeURIComponent(_arg1.creativeId)) + "&ova_ad_system=") + encodeURIComponent(_arg1.adSystem)) + "&ova_ad_title=") + encodeURIComponent(_arg1.adTitle)) + "&ova_ad_description=") + encodeURIComponent(_arg1.description))); }; return (""); } public function fireAdClickTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (((((!((_config == null))) && (!((_arg2 == null))))) && (!((_arg3 == null))))){ fireCalls(AnalyticsProcessor.CLICKS, _arg1, (((getAdSlotTrackingParams(_arg2) + getAdContainerTrackingParams(_arg2.videoAd)) + ((_arg3 is LinearVideoAd)) ? getLinearAdTrackingParams(_arg3) : ((_arg3 is NonLinearVideoAd)) ? getNonLinearAdTrackingParams(_arg3) : "") + formatAdditionalParams(_arg4)), _arg2.adServerTag); }; } public function fireTemplateLoadTracking(_arg1:String, _arg2=null):void{ if (_config != null){ fireCalls(AnalyticsProcessor.TEMPLATE, _arg1, formatAdditionalParams(_arg2), null); }; } public function fireAdSlotTracking(_arg1:String, _arg2:AdSlot, _arg3=null):void{ if (((!((_config == null))) && (!((_arg2 == null))))){ fireCalls(AnalyticsProcessor.AD_SLOT, _arg1, ((getAdSlotTrackingParams(_arg2) + getAdContainerTrackingParams(_arg2.videoAd)) + formatAdditionalParams(_arg3)), _arg2.adServerTag); }; } protected function getAdSlotTrackingParams(_arg1:AdSlot):String{ if (_arg1 != null){ return ((((((((("&ova_ad_slot_position=" + _arg1.position) + "&ova_ad_slot_zone=") + _arg1.zone) + "&ova_ad_slot_index=") + _arg1.key) + "&ova_slot_type=") + _arg1.getSlotType()) + (_arg1.isMidRoll()) ? ("ova_slot_starttime=" + _arg1.startTime) : "")); }; return (""); } public function initialise(_arg1:GoogleAnalyticsConfigGroup):void{ var config = _arg1; _config = config; if (_config != null){ if (_config.enabled){ try { if (((_config.ova.trackingEnabled) && (!((_config.ova.displayObject == null))))){ doLog(("Google Analytics OVA Tracker instantiated - tracking to account " + _config.ova.accountId), Debuggable.DEBUG_ANALYTICS); _gaOVATracker = new GATracker(_config.ova.displayObject, config.ova.accountId, "AS3", false); } else { doLog(((("Google Analytics OVA Tracker has been disabled - ova.trackingEnabled='" + _config.ova.trackingEnabled) + "'") + ((_config.ova.displayObject)==null) ? " displayObject is null" : ""), Debuggable.DEBUG_ANALYTICS); _gaOVATracker = null; }; if (((_config.custom.trackingEnabled) && (!((_config.custom.displayObject == null))))){ doLog(("Google Analytics CUSTOM Tracker instantiated - tracking to account " + _config.custom.accountId), Debuggable.DEBUG_ANALYTICS); _gaCustomTracker = new GATracker(_config.custom.displayObject, _config.custom.accountId, "AS3", false); } else { doLog(((("Google Analytics CUSTOM Tracker has been disabled - custom.trackingEnabled='" + _config.custom.trackingEnabled) + "'") + ((_config.custom.displayObject)==null) ? " displayObject is null" : ""), Debuggable.DEBUG_ANALYTICS); _gaCustomTracker = null; }; } catch(e:Error) { doLog(("Google Analytics has thrown an exception on startup - " + e.message), Debuggable.DEBUG_ANALYTICS); }; } else { doLog("Google Analytics Tracker has been disabled completely", Debuggable.DEBUG_ANALYTICS); }; }; } public function fireImpressionTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (((((!((_config == null))) && (!((_arg2 == null))))) && (!((_arg3 == null))))){ fireCalls(AnalyticsProcessor.IMPRESSIONS, _arg1, (((getAdSlotTrackingParams(_arg2) + getAdContainerTrackingParams(_arg2.videoAd)) + ((_arg3 is LinearVideoAd)) ? getLinearAdTrackingParams(_arg3) : ((_arg3 is NonLinearVideoAd)) ? getNonLinearAdTrackingParams(_arg3) : getCompanionAdTrackingParams(_arg3)) + formatAdditionalParams(_arg4)), _arg2.adServerTag); }; } public function fireVPAIDPlaybackTracking(_arg1:String, _arg2:AdSlot, _arg3, _arg4=null):void{ if (((((!((_config == null))) && (!((_arg2 == null))))) && (!((_arg3 == null))))){ fireCalls(AnalyticsProcessor.VPAID, _arg1, (((getAdSlotTrackingParams(_arg2) + getAdContainerTrackingParams(_arg2.videoAd)) + ((_arg3 is LinearVideoAd)) ? getLinearAdTrackingParams(_arg3) : ((_arg3 is NonLinearVideoAd)) ? getNonLinearAdTrackingParams(_arg3) : "") + formatAdditionalParams(_arg4)), _arg2.adServerTag); }; } protected function fireCalls(_arg1:String, _arg2:String, _arg3:String, _arg4:String=null):void{ var finalTrackingURL:String; var element = _arg1; var type = _arg2; var params = _arg3; var adTag = _arg4; var path:String; var config:GoogleAnalyticsTrackingGroup = _config.ova; var accountType = "OVA"; var tracker:AnalyticsTracker = _gaOVATracker; var i:int; while (i < 2) { if (((config.trackingElement(element)) && (!((tracker == null))))){ path = config.getPath(element, type); if (path != null){ try { doLog((((((((((("Firing " + element) + " '") + type) + "' to Google Analytics ") + accountType) + " account ") + config.accountId) + " (") + path) + ")"), Debuggable.DEBUG_ANALYTICS); if (adTag != null){ finalTrackingURL = null; if (config.addParamsToTrackingURL){ finalTrackingURL = NetworkResource.addParameterToURLString(path, params); if (config.trackAdTags == false){ finalTrackingURL = (finalTrackingURL + ("&ova_ad_provider=" + NetworkResource.getDomain(adTag))); } else { finalTrackingURL = (finalTrackingURL + ("&ova_ad_tag=" + encodeURIComponent(adTag))); }; } else { finalTrackingURL = path; }; tracker.trackPageview(finalTrackingURL); } else { tracker.trackPageview(NetworkResource.addParameterToURLString(path, params)); }; } catch(e:Error) { doLog(("Google Analytics has thrown an exception when firing the call - " + e.message), Debuggable.DEBUG_ANALYTICS); }; } else { doLog((("GA tracking path for '" + type) + "' is null - cannot track"), Debuggable.DEBUG_ANALYTICS); }; }; config = _config.custom; accountType = "CUSTOM"; tracker = _gaCustomTracker; i = (i + 1); }; } } }//package org.openvideoads.vast.analytics
Section 99
//GoogleAnalyticsConfigGroup (org.openvideoads.vast.config.groupings.analytics.google.GoogleAnalyticsConfigGroup) package org.openvideoads.vast.config.groupings.analytics.google { import org.openvideoads.vast.config.*; import flash.display.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; public class GoogleAnalyticsConfigGroup extends ConfigLoader { protected var _enabled:Boolean;// = true protected var _custom:GoogleAnalyticsTrackingGroup;// = null protected var _displayObject:DisplayObject;// = null protected var _ova:GoogleAnalyticsTrackingGroup; public static const CUSTOM:String = "CUSTOM"; public static const OVA:String = "OVA"; public function GoogleAnalyticsConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ _ova = new GoogleAnalyticsTrackingGroup("OVA", {enable:true, impressions:{enable:true}}); super(_arg1, _arg2); } public function get enabled():Boolean{ if (_enabled == false){ return (false); }; return (((ova.trackingEnabled) || (custom.trackingEnabled))); } protected function syncDisplayObject():void{ if (_displayObject != null){ ova.displayObject = _displayObject; if (_custom != null){ _custom.displayObject = _displayObject; }; }; } public function update(_arg1:Object):void{ if (StringUtils.matchesIgnoreCase(_arg1.element, OVA)){ ova.update(_arg1); }; if (StringUtils.matchesIgnoreCase(_arg1.element, CUSTOM)){ custom.update(_arg1); }; if (_arg1.displayObject != null){ _displayObject = _arg1.displayObject; }; syncDisplayObject(); } public function set custom(_arg1:GoogleAnalyticsTrackingGroup):void{ _custom = _arg1; } public function set ova(_arg1:GoogleAnalyticsTrackingGroup):void{ _ova = _arg1; } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ markAsLoading(); super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.enable != undefined){ if ((_arg1.enable is String)){ _enabled = (_arg1.enable.toUpperCase() == "TRUE"); } else { _enabled = _arg1.enable; }; }; if (_arg1.ova != undefined){ this.ova = new GoogleAnalyticsTrackingGroup("OVA", _arg1.ova, _arg3); if (_arg1.ova.displayObject != null){ _displayObject = _arg1.ova.displayObject; }; }; if (_arg1.custom != undefined){ if (_arg1.custom.displayObject != null){ _displayObject = _arg1.custom.displayObject; }; this.custom = new GoogleAnalyticsTrackingGroup("CUSTOM"); this.custom.initialise(_arg1.custom, _arg3); }; syncDisplayObject(); }; markAsLoaded(); } public function get custom():GoogleAnalyticsTrackingGroup{ if (_custom == null){ _custom = new GoogleAnalyticsTrackingGroup(CUSTOM, {enable:false}); }; return (_custom); } public function get ova():GoogleAnalyticsTrackingGroup{ if (_ova == null){ _ova = new GoogleAnalyticsTrackingGroup(OVA); }; return (_ova); } } }//package org.openvideoads.vast.config.groupings.analytics.google
Section 100
//GoogleAnalyticsTrackingGroup (org.openvideoads.vast.config.groupings.analytics.google.GoogleAnalyticsTrackingGroup) package org.openvideoads.vast.config.groupings.analytics.google { import flash.display.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.util.*; public class GoogleAnalyticsTrackingGroup extends Debuggable { protected var _addParamsToTrackingURL:Boolean;// = true protected var _additionalParamsString:String;// = "" protected var _useDefaultPaths:Boolean;// = true protected var _displayObject:DisplayObject;// = null protected var _accountId:String;// = null protected var _trackAdTags:Boolean;// = false protected var _name:String;// = "No name" protected var _additionalParams:Object;// = null protected var _paths:Object; protected var _enableTracking:Boolean;// = true protected static const DEFAULT_ACCOUNT_ID:String = "UA-4011032-6"; public function GoogleAnalyticsTrackingGroup(_arg1:String, _arg2:Object=null, _arg3:Boolean=false){ _paths = {impressions:{enable:false}, adCalls:{enable:false}, template:{enable:false}, adSlot:{enable:false}, progress:{enable:false}, clicks:{enable:false}, vpaid:{enable:false}}; super(); if (_arg1 != null){ _name = _arg1; }; if (_arg2 != null){ initialise(_arg2, _arg3); } else { setDefaultPaths(); }; } public function trackingClicks():Boolean{ return (((trackingEnabled) && (_paths.clicks.enable))); } public function trackingProgress():Boolean{ return (((trackingEnabled) && (_paths.progress.enable))); } public function get trackAdTags():Boolean{ return (_trackAdTags); } public function get trackingEnabled():Boolean{ return (_enableTracking); } public function get name():String{ return (_name); } public function set trackAdTags(_arg1:Boolean):void{ _trackAdTags = _arg1; } public function set trackingEnabled(_arg1:Boolean):void{ _enableTracking = _arg1; } public function set name(_arg1:String):void{ _name = _arg1; } public function getPath(_arg1:String, _arg2:String):String{ if (_paths.hasOwnProperty(_arg1)){ if (_paths[_arg1].hasOwnProperty(_arg2)){ return ((_paths[_arg1][_arg2] + getAdditionalParamsString())); }; }; return (null); } public function turnOnAllTracking():void{ _enableTracking = true; } public function get displayObject():DisplayObject{ return (_displayObject); } public function trackingAdSlots():Boolean{ return (((trackingEnabled) && (_paths.adSlot.enable))); } public function get accountId():String{ if (_accountId == null){ return (DEFAULT_ACCOUNT_ID); }; return (_accountId); } protected function setDefaultPaths():void{ if (_useDefaultPaths){ _paths = {impressions:{enable:false, linear:"/ova/impression/default?ova_format=linear", nonLinear:"/ova/impression/default?ova_format=non-linear", companion:"/ova/impression/default?ova_format=companion"}, adCalls:{enable:false, fired:"/ova/ad-call/default?ova_action=fired", complete:"/ova/ad-call/default?ova_action=complete", failover:"/ova/ad-call/default?ova_action=failover", error:"/ova/ad-call/default?ova_action=error", timeout:"/ova/ad-call/default?ova_action=timeout", deferred:"/ova/ad-call/default?ova_action=deferred"}, template:{enable:false, loaded:"/ova/template/default?ova_action=loaded", error:"/ova/template/default?ova_action=error", timeout:"/ova/template/default?ova_action=timeout", deferred:"/ova/template/default?ova_action=deferred"}, adSlot:{enable:false, loaded:"/ova/ad-slot/default?ova_action=loaded", error:"/ova/ad-slot/default?ova_action=error", timeout:"/ova/ad-slot/default?ova_action=timeout", deferred:"/ova/ad-slot/default?ova_action=deferred"}, progress:{enable:false, start:"/ova/progress/default?ova_action=start", stop:"/ova/progress/default?ova_action=stop", firstQuartile:"/ova/progress/default?ova_action=firstQuartile", midpoint:"/ova/progress/default?ova_action=midpoint", thirdQuartile:"/ova/progress/default?ova_action=thirdQuartile", complete:"/ova/progress/default?ova_action=complete", pause:"/ova/progress/default?ova_action=pause", resume:"/ova/progress/default?ova_action=resume", fullscreen:"/ova/progress/default?ova_action=fullscreen", mute:"/ova/progress/default?ova_action=mute", unmute:"/ova/progress/default?ova_action=unmute", expand:"/ova/progress/default?ova_action=expand", collapse:"/ova/progress/default?ova_action=collapse", userAcceptInvitation:"/ova/progress/default?ova_action=userAcceptInvitation", close:"/ova/progress/default?ova_action=close"}, clicks:{enable:false, linear:"/ova/clicks/default?ova_action=linear", nonLinear:"/ova/clicks/default?ova_action=nonLinear", vpaid:"/ova/clicks/default?ova_action=vpaid"}, vpaid:{enable:false, loaded:"/ova/vpaid/default?ova_action=loaded", started:"/ova/vpaid/default?ova_action=started", stopped:"/ova/vpaid/default?ova_action=stopped", linearChange:"/ova/vpaid/default?ova_action=linearChange", expandedChange:"/ova/vpaid/default?ova_action=expandedChange", remainingTimeChange:"/ova/vpaid/default?ova_action=remainingTimeChange", volumeChange:"/ova/vpaid/default?ova_action=volumeChange", videoStart:"/ova/vpaid/default?ova_action=videoStart", videoFirstQuartile:"/ova/vpaid/default?ova_action=videoFirstQuartile", videoMidpoint:"/ova/vpaid/default?ova_action=videoMidpoint", videoThirdQuartile:"/ova/vpaid/default?ova_action=videoThirdQuartile", videoComplete:"/ova/vpaid/default?ova_action=videoComplete", userAcceptInvitation:"/ova/vpaid/default?ova_action=userAcceptInvitation", userClose:"/ova/vpaid/default?ova_action=userClose", paused:"/ova/vpaid/default?ova_action=paused", playing:"/ova/vpaid/default?ova_action=playing", error:"/ova/vpaid/default?ova_action=error"}}; } else { _paths = {impressions:{enable:false}, adCalls:{enable:false}, template:{enable:false}, adSlot:{enable:false}, progress:{enable:false}, clicks:{enable:false}, vpaid:{enable:false}}; }; } protected function constructAdditionalParamsString():void{ var _local2:*; var _local1 = ""; if (_additionalParams != null){ for (_local2 in _additionalParams) { _local1 = (_local1 + ((("&" + _local2) + "=") + _additionalParams[_local2])); }; }; _additionalParamsString = _local1; } public function initialise(_arg1:Object, _arg2:Boolean=false):void{ if (_arg1.useDefaultPaths != undefined){ _useDefaultPaths = StringUtils.validateAsBoolean(_arg1.useDefaultPaths); }; setDefaultPaths(); if (_arg1.accountId != undefined){ _accountId = _arg1.accountId; }; if (_arg1.enable != undefined){ if ((_arg1.enable is String)){ _enableTracking = (_arg1.enable.toUpperCase() == "TRUE"); } else { _enableTracking = _arg1.enable; }; }; if (_arg1.name != undefined){ _name = _arg1.name; }; if (_arg1.impressions != undefined){ processConfigBlock(_arg1.impressions, _paths.impressions, _arg2); }; if (_arg1.adCalls != undefined){ processConfigBlock(_arg1.adCalls, _paths.adCalls, _arg2); }; if (_arg1.template != undefined){ processConfigBlock(_arg1.template, _paths.template, _arg2); }; if (_arg1.adSlot != undefined){ processConfigBlock(_arg1.adSlot, _paths.adSlot, _arg2); }; if (_arg1.progress != undefined){ processConfigBlock(_arg1.progress, _paths.progress, _arg2); }; if (_arg1.vpaid != undefined){ processConfigBlock(_arg1.vpaid, _paths.vpaid, _arg2); }; if (_arg1.clicks != undefined){ processConfigBlock(_arg1.clicks, _paths.clicks, _arg2); }; if (_arg1.parameters != undefined){ additionalParameters = _arg1.parameters; }; if (_arg1.displayObject != undefined){ _displayObject = _arg1.displayObject; }; if (_arg1.trackAdTags != undefined){ _trackAdTags = StringUtils.validateAsBoolean(_arg1.trackAdTags); }; if (_arg1.addParamsToTrackingURL != undefined){ _addParamsToTrackingURL = StringUtils.validateAsBoolean(_arg1.addParamsToTrackingURL); }; reportStatus(); } public function trackingAdCalls():Boolean{ return (((trackingEnabled) && (_paths.adCalls.enable))); } public function hasCustomAccountId():Boolean{ return (!((_accountId == null))); } public function disableTracking(_arg1:String):void{ if (_arg1 == AnalyticsProcessor.ALL){ turnOffAllTracking(); } else { _paths[_arg1].enable = false; }; } public function set useDefaultPaths(_arg1:Boolean):void{ _useDefaultPaths = _arg1; } public function set displayObject(_arg1:DisplayObject):void{ _displayObject = _arg1; } public function trackingElement(_arg1:String):Boolean{ if (_paths.hasOwnProperty(_arg1)){ if (_paths[_arg1].hasOwnProperty("enable")){ return (((trackingEnabled) && (_paths[_arg1].enable))); }; }; return (false); } public function reportStatus():void{ doLog(((((((((((((((((((((((((_name + " overide (") + (trackingEnabled) ? "ON" : "OFF") + ")") + " impression (") + (trackingImpressions()) ? "ON" : "OFF") + ")") + " ad call (") + (trackingAdCalls()) ? "ON" : "OFF") + ")") + " template (") + (trackingTemplates()) ? "ON" : "OFF") + ")") + " ad slot (") + (trackingAdSlots()) ? "ON" : "OFF") + ")") + " progress (") + (trackingProgress()) ? "ON" : "OFF") + ")") + " VPAID (") + (trackingVPAID()) ? "ON" : "OFF") + ")") + " clicks (") + (trackingClicks()) ? "ON" : "OFF") + ")"), Debuggable.DEBUG_ANALYTICS); } public function update(_arg1:Object):void{ initialise(_arg1); } public function trackingVPAID():Boolean{ return (((trackingEnabled) && (_paths.vpaid.enable))); } public function set accountId(_arg1:String):void{ _accountId = _arg1; } public function trackingTemplates():Boolean{ return (((trackingEnabled) && (_paths.template.enable))); } public function trackingImpressions():Boolean{ return (((trackingEnabled) && (_paths.impressions.enable))); } public function enableTracking(_arg1:String):void{ _enableTracking = true; if (_arg1 == AnalyticsProcessor.ALL){ turnOnAllTracking(); } else { _paths[_arg1].enable = true; }; } public function get useDefaultPaths():Boolean{ return (_useDefaultPaths); } public function set additionalParameters(_arg1:Object):void{ _additionalParams = _arg1; constructAdditionalParamsString(); } public function turnOffAllTracking():void{ _enableTracking = false; } public function set addParamsToTrackingURL(_arg1:Boolean):void{ _addParamsToTrackingURL = _arg1; } protected function getAdditionalParamsString():String{ return (_additionalParamsString); } public function get addParamsToTrackingURL():Boolean{ return (_addParamsToTrackingURL); } protected function processConfigBlock(_arg1:Object, _arg2:Object, _arg3:Boolean=false):void{ var _local4:Boolean; var _local5:Boolean; var _local6:*; if (((!((_arg1 == null))) && (!((_arg2 == null))))){ _local4 = false; _local5 = false; for (_local6 in _arg1) { if (_local6 == "enable"){ if ((_arg1.enable is String)){ _arg2.enable = (_arg1.enable.toUpperCase() == "TRUE"); } else { _arg2.enable = _arg1.enable; }; if (_arg2.enable){ _enableTracking = true; }; _local4 = true; } else { _arg2[_local6] = _arg1[_local6]; _local5 = true; }; }; if (((((_arg3) && (_local5))) && ((_local4 == false)))){ _arg2.enable = true; }; }; } } }//package org.openvideoads.vast.config.groupings.analytics.google
Section 101
//AnalyticsConfigGroup (org.openvideoads.vast.config.groupings.analytics.AnalyticsConfigGroup) package org.openvideoads.vast.config.groupings.analytics { import org.openvideoads.vast.config.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vast.config.groupings.analytics.google.*; public class AnalyticsConfigGroup extends ConfigLoader { protected var _google:GoogleAnalyticsConfigGroup; public static const GOOGLE_ANALYTICS:String = "GA"; public function AnalyticsConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ super(_arg1, _arg2); } override public function isOVAConfigLoading():Boolean{ if (_google != null){ return (((loading()) && (_google.loading()))); }; return (loading()); } public function set google(_arg1):void{ if ((_arg1 is GoogleAnalyticsConfigGroup)){ _google = _arg1; } else { _google = new GoogleAnalyticsConfigGroup(_arg1); }; } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ markAsLoading(); super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.google != undefined){ google.initialise(_arg1.google, null, _arg3); }; }; markAsLoaded(); } public function update(_arg1:Array):void{ var _local2:int; if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { if (StringUtils.matchesIgnoreCase(_arg1[_local2].type, GOOGLE_ANALYTICS)){ google.update(_arg1[_local2]); }; _local2++; }; }; } public function get google():GoogleAnalyticsConfigGroup{ if (_google == null){ _google = new GoogleAnalyticsConfigGroup(); }; return (_google); } public function googleEnabled():Boolean{ return (google.enabled); } } }//package org.openvideoads.vast.config.groupings.analytics
Section 102
//AbstractStreamsConfig (org.openvideoads.vast.config.groupings.AbstractStreamsConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; public class AbstractStreamsConfig extends ConfigLoader { protected var _setDurationFromMetaData:Boolean;// = false protected var _fireTrackingEvents:Boolean;// = false protected var _stripFileExtensions:Boolean;// = false protected var _deliveryType:String; protected var _bitrate;// = -1 protected var _playOnce:Boolean; protected var _clearPlaylist:Boolean;// = true protected var _providersConfig:ProvidersConfigGroup;// = null protected var _height:int;// = -1 protected var _playerConfig:Object; protected var _streamType:String; protected var _allowPlaylistControl:Boolean; protected var _enableProxies:Boolean;// = false protected var _baseURL:String; protected var _ignoreDuration:Boolean;// = false protected var _metaData:Boolean;// = true protected var _width:int;// = -1 protected var _delayAdRequestUntilPlay:Boolean;// = false protected var _subscribe:Boolean; protected var _turnOnCountdownTimer:Boolean;// = false protected var _autoPlay:Boolean;// = false protected var _canFireAPICalls:Boolean;// = true protected var _canFireEventAPICalls:Boolean;// = false protected static var DEFAULT_DELIVERY_TYPE:String = "any"; protected static var DEFAULT_SUBSCRIBE:Boolean = false; protected static var DEFAULT_BIT_RATE:String = "any"; protected static var DEFAULT_PLAY_ALLOW_PLAYLIST_CONTROL:Boolean = false; protected static var DEFAULT_PLAY_ONCE:Boolean = false; protected static var DEFAULT_STREAM_TYPE:String = "any"; protected static var DEFAULT_BASE_URL:String = null; public function AbstractStreamsConfig(_arg1:Object=null, _arg2:ConfigLoadListener=null){ _baseURL = DEFAULT_BASE_URL; _streamType = DEFAULT_STREAM_TYPE; _deliveryType = DEFAULT_DELIVERY_TYPE; _subscribe = DEFAULT_SUBSCRIBE; _allowPlaylistControl = DEFAULT_PLAY_ALLOW_PLAYLIST_CONTROL; _playOnce = DEFAULT_PLAY_ONCE; _playerConfig = new Object(); super(_arg1, _arg2); } public function set autoPlay(_arg1:Boolean):void{ _autoPlay = _arg1; } public function set providersConfig(_arg1:ProvidersConfigGroup):void{ _providersConfig = _arg1; } public function get delayAdRequestUntilPlay():Boolean{ return (_delayAdRequestUntilPlay); } public function set fireTrackingEvents(_arg1:Boolean):void{ _fireTrackingEvents = _arg1; } public function get canFireEventAPICalls():Boolean{ return (_canFireEventAPICalls); } public function set delayAdRequestUntilPlay(_arg1:Boolean):void{ _delayAdRequestUntilPlay = _arg1; } public function set enableProxies(_arg1:Boolean):void{ _enableProxies = _arg1; } public function set canFireEventAPICalls(_arg1:Boolean):void{ _canFireEventAPICalls = _arg1; } public function get canFireAPICalls():Boolean{ return (_canFireAPICalls); } public function get height():int{ return (_height); } public function hasProviders():Boolean{ return (!((_providersConfig == null))); } public function set httpProvider(_arg1:String):void{ providersConfig.httpProvider = _arg1; } public function baseURLHasChanged():Boolean{ return (!((_baseURL == DEFAULT_BASE_URL))); } public function streamTypeHasChanged():Boolean{ return (!((_streamType == DEFAULT_STREAM_TYPE))); } public function get clearPlaylist():Boolean{ return (_clearPlaylist); } public function set canFireAPICalls(_arg1:Boolean):void{ _canFireAPICalls = _arg1; } public function set providers(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.http != undefined){ this.httpProvider = _arg1.http; }; if (_arg1.rtmp != undefined){ this.rtmpProvider = _arg1.rtmp; }; this.providersConfig = new ProvidersConfigGroup(_arg1); }; } public function set allowPlaylistControl(_arg1:Boolean):void{ _allowPlaylistControl = _arg1; } public function get deliveryType():String{ return (_deliveryType); } public function get setDurationFromMetaData():Boolean{ return (_setDurationFromMetaData); } public function set height(_arg1:int):void{ _height = _arg1; } public function get metaData():Boolean{ return (_metaData); } public function get subscribe():Boolean{ return (_subscribe); } public function getProvider(_arg1:String):String{ return (providersConfig.getProvider(_arg1)); } public function get bitrate(){ return (_bitrate); } public function playOnceHasChanged():Boolean{ return (!((_playOnce == DEFAULT_PLAY_ONCE))); } public function hasBitrate():Boolean{ if ((_bitrate is String)){ return (true); }; return ((Number(_bitrate) > -1)); } public function get rtmpProvider():String{ return (providersConfig.rtmpProvider); } public function set clearPlaylist(_arg1:Boolean):void{ _clearPlaylist = _arg1; } public function get autoPlay():Boolean{ return (_autoPlay); } public function get providersConfig():ProvidersConfigGroup{ if (_providersConfig == null){ _providersConfig = new ProvidersConfigGroup(); }; return (_providersConfig); } public function get fireTrackingEvents():Boolean{ return (_fireTrackingEvents); } public function get enableProxies():Boolean{ return (_enableProxies); } public function set width(_arg1:int):void{ _width = _arg1; } public function get httpProvider():String{ return (providersConfig.httpProvider); } public function set subscribe(_arg1:Boolean):void{ _subscribe = _arg1; } public function set deliveryType(_arg1:String):void{ _deliveryType = _arg1; } public function set setDurationFromMetaData(_arg1:Boolean):void{ _setDurationFromMetaData = _arg1; } public function get allowPlaylistControl():Boolean{ return (_allowPlaylistControl); } public function subscribeHasChanged():Boolean{ return (!((_subscribe == DEFAULT_SUBSCRIBE))); } public function deliveryTypeHasChanged():Boolean{ return (!((_deliveryType == DEFAULT_DELIVERY_TYPE))); } public function set playOnce(_arg1:Boolean):void{ _playOnce = _arg1; } public function set metaData(_arg1:Boolean):void{ _metaData = _arg1; } public function set streamType(_arg1:String):void{ _streamType = _arg1; } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ var _local4:String; super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.baseURL != undefined){ this.baseURL = _arg1.baseURL; }; if (_arg1.streamType != undefined){ this.streamType = _arg1.streamType; }; if (_arg1.metaData != undefined){ if ((_arg1.metaData is String)){ this.metaData = ((_arg1.metaData.toUpperCase())=="TRUE") ? true : false; } else { this.metaData = _arg1.metaData; }; }; if (_arg1.canFireAPICalls != undefined){ if ((_arg1.canFireAPICalls is String)){ this.canFireAPICalls = ((_arg1.canFireAPICalls.toUpperCase())=="TRUE") ? true : false; } else { this.canFireAPICalls = _arg1.canFireAPICalls; }; }; if (_arg1.canFireEventAPICalls != undefined){ if ((_arg1.canFireEventAPICalls is String)){ this.canFireEventAPICalls = ((_arg1.canFireEventAPICalls.toUpperCase())=="TRUE") ? true : false; } else { this.canFireEventAPICalls = _arg1.canFireEventAPICalls; }; }; if (_arg1.setDurationFromMetaData != undefined){ if ((_arg1.setDurationFromMetaData is String)){ _setDurationFromMetaData = ((_arg1.setDurationFromMetaData.toUpperCase())=="TRUE") ? true : false; } else { _setDurationFromMetaData = _arg1.setDurationFromMetaData; }; }; if (_arg1.delayAdRequestUntilPlay != undefined){ if ((_arg1.delayAdRequestUntilPlay is String)){ _delayAdRequestUntilPlay = ((_arg1.delayAdRequestUntilPlay.toUpperCase())=="TRUE") ? true : false; } else { _delayAdRequestUntilPlay = _arg1.delayAdRequestUntilPlay; }; }; if (_arg1.enableProxies != undefined){ if ((_arg1.enableProxies is String)){ _enableProxies = ((_arg1.enableProxies.toUpperCase())=="TRUE") ? true : false; } else { _enableProxies = _arg1.enableProxies; }; }; if (_arg1.stripFileExtensions != undefined){ if ((_arg1.stripFileExtensions is String)){ this.stripFileExtensions = ((_arg1.stripFileExtensions.toUpperCase())=="TRUE") ? true : false; } else { this.stripFileExtensions = _arg1.stripFileExtensions; }; }; if (_arg1.bitrate != undefined){ if ((_arg1.bitrate is String)){ _local4 = _arg1.bitrate.toUpperCase(); if ((((((_local4 == "LOW")) || ((_local4 == "MEDIUM")))) || ((_local4 == "HIGH")))){ this.bitrate = _local4; } else { this.bitrate = _arg1.bitrate; }; } else { this.bitrate = _arg1.bitrate; }; }; if (_arg1.width != undefined){ if ((_arg1.width is String)){ this.width = int(_arg1.width); } else { this.width = _arg1.width; }; }; if (_arg1.height != undefined){ if ((_arg1.height is String)){ this.height = int(_arg1.height); } else { this.height = _arg1.height; }; }; if (_arg1.subscribe != undefined){ if ((_arg1.subscribe is String)){ this.subscribe = ((_arg1.subscribe.toUpperCase())=="TRUE") ? true : false; } else { this.subscribe = _arg1.subscribe; }; }; if (_arg1.fireTrackingEvents != undefined){ if ((_arg1.fireTrackingEvents is String)){ this.fireTrackingEvents = ((_arg1.fireTrackingEvents.toUpperCase())=="TRUE") ? true : false; } else { this.fireTrackingEvents = _arg1.fireTrackingEvents; }; }; if (_arg1.turnOnCountdownTimer != undefined){ if ((_arg1.turnOnCountdownTimer is String)){ this.turnOnCountdownTimer = ((_arg1.turnOnCountdownTimer.toUpperCase())=="TRUE") ? true : false; } else { this.turnOnCountdownTimer = _arg1.turnOnCountdownTimer; }; }; if (_arg1.deliveryType != undefined){ this.deliveryType = _arg1.deliveryType; }; if (_arg1.providers != undefined){ this.providers = _arg1.providers; }; if (_arg1.allowPlaylistControl != undefined){ if ((_arg1.allowPlaylistControl is String)){ this.allowPlaylistControl = ((_arg1.allowPlaylistControl.toUpperCase())=="TRUE") ? true : false; } else { this.allowPlaylistControl = _arg1.allowPlaylistControl; }; }; if (_arg1.clearPlaylist != undefined){ if ((_arg1.clearPlaylist is String)){ this.clearPlaylist = ((_arg1.clearPlaylist.toUpperCase())=="TRUE") ? true : false; } else { this.clearPlaylist = _arg1.clearPlaylist; }; }; if (_arg1.autoPlay != undefined){ if ((_arg1.autoPlay is String)){ this.autoPlay = ((_arg1.autoPlay.toUpperCase())=="TRUE") ? true : false; } else { this.autoPlay = _arg1.autoPlay; }; }; if (_arg1.playOnce != undefined){ if ((_arg1.playOnce is String)){ this.playOnce = ((_arg1.playOnce.toUpperCase())=="TRUE") ? true : false; } else { this.playOnce = _arg1.playOnce; }; }; if (_arg1.player != undefined){ this.player = _arg1.player; }; }; } public function set baseURL(_arg1:String):void{ _baseURL = _arg1; } public function mustOperateWithoutDuration():Boolean{ return (_setDurationFromMetaData); } public function set player(_arg1:Object):void{ _playerConfig = _arg1; } public function get width():int{ return (_width); } public function set stripFileExtensions(_arg1:Boolean):void{ _stripFileExtensions = _arg1; } public function get playOnce():Boolean{ return (_playOnce); } public function get streamType():String{ return (_streamType); } public function get baseURL():String{ return (_baseURL); } public function set turnOnCountdownTimer(_arg1:Boolean):void{ _turnOnCountdownTimer = _arg1; } public function set bitrate(_arg1):void{ _bitrate = _arg1; } public function setDefaultProviders():void{ _providersConfig = new ProvidersConfigGroup(); } public function get player():Object{ return (_playerConfig); } public function set rtmpProvider(_arg1:String):void{ providersConfig.rtmpProvider = _arg1; } public function get stripFileExtensions():Boolean{ return (_stripFileExtensions); } public function get turnOnCountdownTimer():Boolean{ return (_turnOnCountdownTimer); } public function allowPlaylistControlHasChanged():Boolean{ return (!((_allowPlaylistControl == DEFAULT_PLAY_ALLOW_PLAYLIST_CONTROL))); } } }//package org.openvideoads.vast.config.groupings
Section 103
//AdMetaDataConfigGroup (org.openvideoads.vast.config.groupings.AdMetaDataConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; public class AdMetaDataConfigGroup extends Debuggable { protected var _linearAdMetaData:LinearAdMetaDataConfig; public function AdMetaDataConfigGroup(_arg1:Object=null){ _linearAdMetaData = new LinearAdMetaDataConfig(); super(); initialise(_arg1); } public function getLinearAdTitle(_arg1:String="", _arg2:String="0", _arg3:int=-1):String{ if (_linearAdMetaData != null){ return (_linearAdMetaData.getAdTitle(_arg1, _arg2, _arg3)); }; return (""); } public function getLinearAdDescription(_arg1:String="", _arg2:String="0", _arg3:int=-1):String{ if (_linearAdMetaData != null){ return (_linearAdMetaData.getAdDescription(_arg1, _arg2, _arg3)); }; return (""); } public function initialise(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.linear != undefined){ _linearAdMetaData.initialise(_arg1.linear); }; }; } } }//package org.openvideoads.vast.config.groupings
Section 104
//AdNoticeConfig (org.openvideoads.vast.config.groupings.AdNoticeConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; public class AdNoticeConfig extends Debuggable { protected var _textStyle:String; protected var _message:String;// = null protected var _region:String;// = "reserved-system-message" protected var _type:String;// = "STATIC" protected var _show:Boolean;// = true public static var AD_NOTICE_TEXT_SMALL:String = "smalltext"; public static var AD_NOTICE_COUNTDOWN:String = "<p class='_textclass_' align='right'>This advertisement runs for _countdown_ seconds</p>"; public static var AD_NOTICE_STATIC:String = "<p class='_textclass_' align='right'>This advertisement runs for _seconds_ seconds</p>"; public static var AD_NOTICE_TEXT_NORMAL:String = "normaltext"; public function AdNoticeConfig(_arg1:Object=null){ _textStyle = AD_NOTICE_TEXT_NORMAL; super(); if (_arg1 != null){ initialise(_arg1); }; } public function set region(_arg1:String):void{ _region = _arg1; } public function get type():String{ return (_type); } public function get textStyle():String{ return (_textStyle); } public function isCountdown():Boolean{ return ((_message.indexOf("_countdown_") > -1)); } public function set show(_arg1:Boolean):void{ _show = _arg1; } public function set message(_arg1:String):void{ _message = _arg1; } public function set textStyle(_arg1:String):void{ _textStyle = _arg1; } public function set type(_arg1:String):void{ if (_arg1 != null){ if (_arg1.toUpperCase() == "STATIC"){ _type = "STATIC"; } else { _type = "COUNTDOWN"; }; }; } public function get message():String{ if (_message == null){ if (_type == "STATIC"){ _message = AD_NOTICE_STATIC; } else { _message = AD_NOTICE_COUNTDOWN; }; }; var _local1:RegExp = new RegExp("_textclass_", "g"); return (_message.replace(_local1, _textStyle)); } public function initialise(_arg1:Object):void{ if (_arg1.hasOwnProperty("show")){ show = _arg1.show; }; if (_arg1.hasOwnProperty("type")){ type = _arg1.type; }; if (_arg1.hasOwnProperty("region")){ region = _arg1.region; }; if (_arg1.hasOwnProperty("textStyle")){ textStyle = _arg1.textStyle; }; if (_arg1.hasOwnProperty("message")){ message = _arg1.message; }; } public function get region():String{ return (_region); } public function get show():Boolean{ return (_show); } public function isStatic():Boolean{ return (!(isCountdown())); } } }//package org.openvideoads.vast.config.groupings
Section 105
//AdsConfigGroup (org.openvideoads.vast.config.groupings.AdsConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; public class AdsConfigGroup extends AbstractStreamsConfig implements ConfigLoadListener { protected var _noticeConfig:AdNoticeConfig; protected var _filterOnLinearAdMimeTypes:Boolean;// = false protected var _activelySchedule:Boolean;// = true protected var _tagParams:Object;// = null protected var _adServerConfig:AdServerConfig;// = null protected var _postMidRollSeekPosition:int;// = -1 protected var _overlaysConfig:OverlaysConfig; protected var _vpaidConfig:VPAIDConfig; protected var _streamers:Array;// = null protected var _companionsConfig:CompanionsConfigGroup; protected var _visuallyCueLinearAdClickThrough:Boolean;// = true protected var _adServers:Array;// = null protected var _pauseOnClickThrough:Boolean;// = true protected var _allowDomains:String;// = "*" protected var _enforceLinearVideoAdScaling:Boolean;// = false protected var _metaDataConfig:AdMetaDataConfigGroup; protected var _linearScaling:String;// = null protected var _nativeDisplay:Boolean;// = true protected var _enforceLinearAdsOnPlaylistSelection:Boolean;// = false protected var _skipAdConfig:SkipAdConfig; protected var _clickSignConfig:ClickSignConfig; protected var _enforceLinearInteractiveAdScaling:Boolean;// = false protected var _resetTrackingOnReplay:Boolean;// = true protected var _schedule:Array; protected var _acceptedLinearAdMimeTypes:Array; protected var _enforceMidRollPlayback:Boolean;// = false public function AdsConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ _schedule = new Array(); _noticeConfig = new AdNoticeConfig(); _clickSignConfig = new ClickSignConfig(); _skipAdConfig = new SkipAdConfig(); _companionsConfig = new CompanionsConfigGroup(); _vpaidConfig = new VPAIDConfig(); _overlaysConfig = new OverlaysConfig(); _acceptedLinearAdMimeTypes = new Array(); _metaDataConfig = new AdMetaDataConfigGroup(); _setDurationFromMetaData = true; super(_arg1, _arg2); } public function get skipAd():SkipAdConfig{ return (_skipAdConfig); } public function set skipAd(_arg1:SkipAdConfig):void{ _skipAdConfig = new SkipAdConfig(_arg1); } public function canSkipOnLinearAd():Boolean{ return (_skipAdConfig.enabled); } public function get clickSignConfig():ClickSignConfig{ return (_clickSignConfig); } public function get companionsConfig():CompanionsConfigGroup{ return (_companionsConfig); } public function get vpaidMaxDurationTimeout():int{ return (_vpaidConfig.maxDurationTimeout); } public function set postMidRollSeekPosition(_arg1:int):void{ _postMidRollSeekPosition = _arg1; } public function set clickSignConfig(_arg1:ClickSignConfig):void{ _clickSignConfig = _arg1; } public function delayingCompanionInjection():Boolean{ return (_companionsConfig.delayingCompanionInjection()); } public function set companionsConfig(_arg1:CompanionsConfigGroup):void{ _companionsConfig = _arg1; } public function get millisecondDelayOnCompanionInjection():int{ return (_companionsConfig.millisecondDelayOnCompanionInjection); } public function get restoreCompanions():Boolean{ return (_companionsConfig.restoreCompanions); } public function get clickSignEnabled():Boolean{ if (_clickSignConfig != null){ return (_clickSignConfig.enabled); }; return (true); } public function get processCompanionDisplayExternally():Boolean{ if (nativeDisplay == false){ return (true); }; return ((_companionsConfig.nativeDisplay == false)); } protected function assignRuntimePropertiesToIndividualAdSlots(_arg1:String=null):void{ var _local2:Object; var _local3:Object; var _local4:int; if (_schedule != null){ doLog((("Configuring the ad server requests across each ad slot - schedule length is " + _schedule.length) + " ..."), Debuggable.DEBUG_CONFIG); _local3 = new Object(); _local4 = 0; for (;_local4 < _schedule.length;_local4++) { if (_arg1 != null){ _schedule[_local4].tag = _arg1; }; if (_schedule[_local4].commonAdTag != undefined){ if (_local3.hasOwnProperty(_schedule[_local4].commonAdTag.uid) == false){ _local3[_schedule[_local4].commonAdTag.uid] = AdServerConfigFactory.getAdServerConfig(_schedule[_local4].commonAdTag.server.type); _local3[_schedule[_local4].commonAdTag.uid].initialise(_schedule[_local4].commonAdTag.server); }; _schedule[_local4].server = _local3[_schedule[_local4].commonAdTag.uid]; } else { if (_schedule[_local4].tag != undefined){ if (_tagParams != null){ _schedule[_local4].server = {type:"direct", tag:_schedule[_local4].tag, customProperties:_tagParams}; } else { _schedule[_local4].server = {type:"direct", tag:_schedule[_local4].tag}; }; }; if (_schedule[_local4].server == undefined){ _schedule[_local4].server = getDefaultAdServer(); } else { _local2 = _schedule[_local4].server; if (_schedule[_local4].server.id == undefined){ if (_schedule[_local4].server.type != undefined){ _schedule[_local4].server = AdServerConfigFactory.getAdServerConfig(_schedule[_local4].server.type); if (_schedule[_local4].server == null){ doLog(("Cannot link this ad slot to an ad server - unknown ad server type " + _local2.server.type), Debuggable.DEBUG_CONFIG); continue; }; } else { _schedule[_local4].server = getDefaultAdServerCopy(); }; } else { _schedule[_local4].server = getAdServerById(_schedule[_local4].server.id); }; if (_local2 != null){ _schedule[_local4].server.initialise(_local2); }; }; }; if (_schedule[_local4].hasOwnProperty("encodeVars")){ _schedule[_local4].server.encodeVars = StringUtils.validateAsBoolean(_schedule[_local4].encodeVars); }; if (hasSpecificAcceptedLinearAdMimeTypesDeclared()){ _schedule[_local4].server.acceptedLinearAdMimeTypes = this.acceptedLinearAdMimeTypes; }; doLog(((((("AdSlot: " + _local4) + " - ad server type is ") + _schedule[_local4].server.serverType) + " on ") + ((_schedule[_local4].server.tag)!=null) ? _schedule[_local4].server.tag : _schedule[_local4].server.apiServerAddress), Debuggable.DEBUG_CONFIG); }; } else { doLog("No ad servers configured - no ad schedule defined", Debuggable.DEBUG_CONFIG); }; } public function hasLinearScalingPreference():Boolean{ return (!((_linearScaling == null))); } public function get vpaidConfig():VPAIDConfig{ return (_vpaidConfig); } public function get adServerConfig():AdServerConfig{ if (_adServerConfig == null){ if (_adServers != null){ return (_adServers[0]); }; }; return (_adServerConfig); } public function get replayOverlays():Boolean{ return (_overlaysConfig.replay); } public function set schedule(_arg1:Array):void{ var processedSchedule:Array; var i:int; var pres:Array; var mids:Array; var posts:Array; var k:int; var commonAdTag:Object; var j:int; var newObject:Object; var prop:String; var schedule = _arg1; if (schedule != null){ processedSchedule = new Array(); i = 0; while (i < schedule.length) { if (schedule[i].hasOwnProperty("notice")){ if ((schedule[i].notice is AdNoticeConfig) == false){ schedule[i].notice = new AdNoticeConfig(schedule[i]["notice"]); }; } else { schedule[i].notice = this.notice; }; if (((schedule[i].hasOwnProperty("interval")) && (schedule[i].hasOwnProperty("repeat")))){ if ((((schedule[i].interval > 0)) && ((schedule[i].repeat > 0)))){ commonAdTag = null; if (((schedule[i].hasOwnProperty("oneAdPerRequest")) && (schedule[i].hasOwnProperty("tag")))){ if (schedule[i].oneAdPerRequest == false){ commonAdTag = {uid:i, server:{type:"direct", tag:schedule[i].tag, oneAdPerRequest:false}}; }; }; if (schedule[i].hasOwnProperty("server")){ if (schedule[i].server != null){ if (schedule[i].server.hasOwnProperty("oneAdPerRequest")){ if (schedule[i].server.oneAdPerRequest == false){ commonAdTag = {uid:i, server:schedule[i].server}; if (commonAdTag.server.type == undefined){ commonAdTag.server.type = "direct"; }; }; }; }; }; j = 0; while (j < schedule[i].repeat) { newObject = new Object(); newObject.copyCount = j; newObject.startTime = Timestamp.addSecondsToTimestamp(schedule[i].startTime, (schedule[i].interval * j)); if (commonAdTag != null){ newObject["commonAdTag"] = commonAdTag; }; for (prop in schedule[i]) { if (commonAdTag != null){ //unresolved if } else { if (((((!((prop == "interval"))) && (!((prop == "startTime"))))) && (!((prop == "repeat"))))){ newObject[prop] = schedule[i][prop]; }; }; }; processedSchedule.push(newObject); j = (j + 1); }; }; } else { if (schedule[i].hasOwnProperty("oneAdPerRequest")){ if (schedule[i].hasOwnProperty("tag")){ schedule[i].server = {type:"direct", tag:schedule[i].tag, oneAdPerRequest:schedule[i].oneAdPerRequest}; delete schedule[i].tag; delete schedule[i].oneAdPerRequest; } else { if (schedule[i].hasOwnProperty("server")){ schedule[i].server.oneAdPerRequest = schedule[i].oneAdPerRequest; delete schedule[i].oneAdPerRequest; }; }; }; processedSchedule.push(schedule[i]); }; i = (i + 1); }; pres = new Array(); mids = new Array(); posts = new Array(); k = 0; while (k < processedSchedule.length) { if (StringUtils.matchesIgnoreCase(processedSchedule[k].position, "pre-roll")){ pres.push(processedSchedule[k]); } else { if (StringUtils.matchesIgnoreCase(processedSchedule[k].position, "post-roll")){ posts.push(processedSchedule[k]); } else { mids.push(processedSchedule[k]); }; }; k = (k + 1); }; mids.sort(function (_arg1:Object, _arg2:Object):Number{ var _local3:int; var _local4:int; if (_arg1.startTime != undefined){ if (_arg2.startTime != undefined){ _local3 = Timestamp.timestampToSeconds(_arg1.startTime); _local4 = Timestamp.timestampToSeconds(_arg2.startTime); if (_local3 > _local4){ return (1); }; if (_local3 < _local4){ return (-1); }; return (0); }; return (-1); }; return (-1); }); _schedule = pres; _schedule = _schedule.concat(mids); _schedule = _schedule.concat(posts); } else { _schedule = null; }; } public function get enforceLinearVideoAdScaling():Boolean{ return (_enforceLinearVideoAdScaling); } public function set tag(_arg1:String):void{ if (_schedule.length == 0){ _schedule = [{position:"pre-roll", tag:_arg1}]; }; assignRuntimePropertiesToIndividualAdSlots(_arg1); } public function showNotice():Boolean{ if (_noticeConfig != null){ return (_noticeConfig.show); }; return (false); } public function get pauseOnClickThrough():Boolean{ return (_pauseOnClickThrough); } public function isSkipAdButtonEnabled():Boolean{ if (_skipAdConfig != null){ return (_skipAdConfig.enabled); }; return (false); } public function set linearScaling(_arg1:String):void{ _linearScaling = _arg1; } public function get overlaysConfig():OverlaysConfig{ return (_overlaysConfig); } public function set vpaidConfig(_arg1:VPAIDConfig):void{ _vpaidConfig = _arg1; } public function get displayCompanions():Boolean{ return (_companionsConfig.displayCompanions); } public function hasSpecificAcceptedLinearAdMimeTypesDeclared():Boolean{ if (_acceptedLinearAdMimeTypes != null){ return ((_acceptedLinearAdMimeTypes.length > 0)); }; return (false); } public function set allowDomains(_arg1:String):void{ _allowDomains = _arg1; } public function set overlays(_arg1:Object):void{ overlaysConfig = new OverlaysConfig(_arg1); } public function set adServerConfig(_arg1:AdServerConfig):void{ _adServerConfig = _arg1; } public function set filterOnLinearAdMimeTypes(_arg1:Boolean):void{ _filterOnLinearAdMimeTypes = _arg1; } public function getLinearAdTitle(_arg1:String="", _arg2:String="0", _arg3:int=-1):String{ if (_metaDataConfig != null){ return (_metaDataConfig.getLinearAdTitle(_arg1, _arg2, _arg3)); }; return (""); } public function setMetaDataConfigFromObject(_arg1:Object):void{ this.metaDataConfig = new AdMetaDataConfigGroup(_arg1); } public function set nativeDisplay(_arg1:Boolean):void{ _nativeDisplay = _arg1; } public function resetPlayerWidthOnAdServerRequests(_arg1:int):void{ var _local2:int; while (_local2 < _schedule.length) { if ((_schedule[_local2].server is AdServerConfig)){ _schedule[_local2].server.playerWidth = _arg1; }; _local2++; }; } public function set enforceLinearVideoAdScaling(_arg1:Boolean):void{ _enforceLinearVideoAdScaling = _arg1; } public function get enforceLinearInteractiveAdScaling():Boolean{ return (_enforceLinearInteractiveAdScaling); } public function set pauseOnClickThrough(_arg1:Boolean):void{ _pauseOnClickThrough = _arg1; } public function get additionalParamsForSWFCompanions():Array{ return (_companionsConfig.additionalParamsForSWFCompanions); } public function get metaDataConfig():AdMetaDataConfigGroup{ return (_metaDataConfig); } public function get enforceLinearAdsOnPlaylistSelection():Boolean{ return (_enforceLinearAdsOnPlaylistSelection); } public function get rtmpSubscribe():Boolean{ if (_providersConfig != null){ return (_providersConfig.rtmpSubscribe); }; return (false); } public function get acceptedLinearAdMimeTypes():Array{ return (_acceptedLinearAdMimeTypes); } public function getDefaultAdServer():AdServerConfig{ var _local1:int; if (_adServers != null){ if (_adServers.length > 0){ _local1 = getDefaultAdServerIndex(); if (AdServerConfig(_adServers[_local1]).oneAdPerRequest){ return (_adServers[_local1].clone()); }; return (_adServers[_local1]); }; }; return (new AdServerConfig()); } public function hasStreamers():Boolean{ return (!((_streamers == null))); } public function getLinearAdDescription(_arg1:String="", _arg2:String="0", _arg3:int=-1):String{ if (_metaDataConfig != null){ return (_metaDataConfig.getLinearAdDescription(_arg1, _arg2, _arg3)); }; return (""); } public function set holdingClipUrl(_arg1:String):void{ this.vpaidConfig.holdingClipUrl = _arg1; } public function set tagParams(_arg1:Object):void{ _tagParams = _arg1; } public function set visuallyCueLinearAdClickThrough(_arg1:Boolean):void{ _visuallyCueLinearAdClickThrough = _arg1; } public function set vpaid(_arg1:Object):void{ this.vpaidConfig = new VPAIDConfig(_arg1); } public function set overlaysConfig(_arg1:OverlaysConfig):void{ _overlaysConfig = _arg1; } public function hasPostMidRollSeekPosition():Boolean{ return ((_postMidRollSeekPosition > -1)); } public function get postMidRollSeekPosition():int{ return (_postMidRollSeekPosition); } public function set activelySchedule(_arg1:Boolean):void{ _activelySchedule = _arg1; } public function postMidRollSeekPositionAsTimestamp():String{ return (Timestamp.secondsToTimestamp(_postMidRollSeekPosition)); } public function get linearScaling():String{ return (_linearScaling); } public function get allowDomains():String{ return (_allowDomains); } public function getDefaultAdServerCopy():AdServerConfig{ if (_adServers != null){ if (_adServers.length > 0){ return (_adServers[getDefaultAdServerIndex()].clone()); }; }; return (getFirstAdServerCopy()); } public function get nativeDisplay():Boolean{ return (_nativeDisplay); } public function get filterOnLinearAdMimeTypes():Boolean{ return (_filterOnLinearAdMimeTypes); } public function getAdServerById(_arg1:String):AdServerConfig{ var _local2:int; if (_adServers != null){ _local2 = 0; while (_local2 < _adServers.length) { if (_adServers[_local2].matchesId(_arg1)){ return (_adServers[_local2]); }; _local2++; }; }; return (new AdServerConfig()); } public function get schedule():Array{ return (_schedule); } public function set notice(_arg1:Object):void{ _noticeConfig = new AdNoticeConfig(_arg1); } public function get visuallyCueLinearAdClickThrough():Boolean{ return (_visuallyCueLinearAdClickThrough); } public function hasCompanionDivs():Boolean{ return (_companionsConfig.hasCompanionDivs()); } public function vpaidMaxDurationTimeoutEnabled():Boolean{ return (_vpaidConfig.enableMaxDurationTimeout); } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ markAsLoading(); super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.activelySchedule != undefined){ if ((_arg1.activelySchedule is String)){ this.activelySchedule = ((_arg1.activelySchedule.toUpperCase())=="TRUE") ? true : false; } else { this.activelySchedule = _arg1.activelySchedule; }; }; if (_arg1.resetTrackingOnReplay != undefined){ if ((_arg1.resetTrackingOnReplay is String)){ this.resetTrackingOnReplay = (_arg1.resetTrackingOnReplay.toUpperCase() == "TRUE"); } else { this.resetTrackingOnReplay = _arg1.resetTrackingOnReplay; }; }; if (_arg1.hasOwnProperty("skipAd")){ this.skipAd = new SkipAdConfig(_arg1.skipAd); }; if (_arg1.hasOwnProperty("overlays")){ this.overlays = _arg1.overlays; }; if (_arg1.playOnce != undefined){ if ((_arg1.playOnce is String)){ this.playOnce = ((_arg1.playOnce.toUpperCase())=="TRUE") ? true : false; } else { this.playOnce = _arg1.playOnce; }; }; if (_arg1.enforceMidRollPlayback != undefined){ if ((_arg1.enforceMidRollPlayback is String)){ this.enforceMidRollPlayback = ((_arg1.enforceMidRollPlayback.toUpperCase())=="TRUE") ? true : false; } else { this.enforceMidRollPlayback = _arg1.enforceMidRollPlayback; }; }; if (_arg1.enforceLinearInteractiveAdScaling != undefined){ if ((_arg1.enforceLinearInteractiveAdScaling is String)){ this.enforceLinearInteractiveAdScaling = ((_arg1.enforceLinearInteractiveAdScaling.toUpperCase())=="TRUE") ? true : false; } else { this.enforceLinearInteractiveAdScaling = _arg1.enforceLinearInteractiveAdScaling; }; }; if (_arg1.enforceLinearVideoAdScaling != undefined){ if ((_arg1.enforceLinearVideoAdScaling is String)){ this.enforceLinearVideoAdScaling = ((_arg1.enforceLinearVideoAdScaling.toUpperCase())=="TRUE") ? true : false; } else { this.enforceLinearVideoAdScaling = _arg1.enforceLinearVideoAdScaling; }; }; if (_arg1.enforceLinearAdsOnPlaylistSelection != undefined){ if ((_arg1.enforceLinearAdsOnPlaylistSelection is String)){ this.enforceLinearAdsOnPlaylistSelection = ((_arg1.enforceLinearAdsOnPlaylistSelection.toUpperCase())=="TRUE") ? true : false; } else { this.enforceLinearAdsOnPlaylistSelection = _arg1.enforceLinearAdsOnPlaylistSelection; }; }; if (_arg1.linearScaling != undefined){ this.linearScaling = _arg1.linearScaling; }; if (_arg1.notice != undefined){ this.notice = _arg1.notice; }; if (_arg1.visuallyCueLinearAdClickThrough != undefined){ if ((_arg1.visuallyCueLinearAdClickThrough is String)){ this.visuallyCueLinearAdClickThrough = ((_arg1.visuallyCueLinearAdClickThrough.toUpperCase())=="TRUE") ? true : false; } else { this.visuallyCueLinearAdClickThrough = _arg1.visuallyCueLinearAdClickThrough; }; }; if (_arg1.pauseOnClickThrough != undefined){ if ((_arg1.pauseOnClickThrough is String)){ this.pauseOnClickThrough = ((_arg1.pauseOnClickThrough.toUpperCase())=="TRUE") ? true : false; } else { this.pauseOnClickThrough = _arg1.pauseOnClickThrough; }; }; if (_arg1.nativeDisplay != undefined){ if ((_arg1.nativeDisplay is String)){ this.nativeDisplay = ((_arg1.nativeDisplay.toUpperCase())=="TRUE") ? true : false; } else { this.nativeDisplay = _arg1.nativeDisplay; }; }; if (_arg1.clickSign != undefined){ this.clickSignConfig = new ClickSignConfig(_arg1.clickSign); }; if (_arg1.companions != undefined){ this.companionsConfig = new CompanionsConfigGroup(_arg1.companions); }; if (_arg1.allowDomains != undefined){ this.allowDomains = _arg1.allowDomains; }; if (_arg1.schedule != undefined){ if ((_arg1.schedule is Array)){ this.schedule = _arg1.schedule; } else { this.schedule = ArrayUtils.makeArray(_arg1.schedule); }; }; if (_arg1.tagParams != undefined){ this.tagParams = _arg1.tagParams; }; if (_arg1.postMidRollSeekPosition != undefined){ if ((_arg1.postMidRollSeekPosition is String)){ _postMidRollSeekPosition = parseInt(_arg1.postMidRollSeekPosition); } else { _postMidRollSeekPosition = _arg1.postMidRollSeekPosition; }; }; if (_arg1.tag != undefined){ this.tag = _arg1.tag; }; if (_arg1.vpaid != undefined){ this.vpaid = _arg1.vpaid; }; if (_arg1.holdingClipUrl != undefined){ this.holdingClipUrl = _arg1.holdingClipUrl; }; if (_arg1.metaData != undefined){ this.setMetaDataConfigFromObject(_arg1.metaData); }; if (_arg1.acceptedLinearAdMimeTypes != undefined){ this.acceptedLinearAdMimeTypes = _arg1.acceptedLinearAdMimeTypes; }; if (_arg1.filterOnLinearAdMimeTypes != undefined){ if ((_arg1.filterOnLinearAdMimeTypes is String)){ this.filterOnLinearAdMimeTypes = ((_arg1.filterOnLinearAdMimeTypes.toUpperCase())=="TRUE") ? true : false; } else { this.filterOnLinearAdMimeTypes = _arg1.filterOnLinearAdMimeTypes; }; }; if (_arg1.streamers != undefined){ if ((_arg1.streamers is Array)){ this.streamers = _arg1.streamers; } else { this.streamers = ArrayUtils.makeArray(_arg1.streamers); }; }; if (_arg1.server != undefined){ if (_arg1.server.type != undefined){ this.adServerConfig = AdServerConfigFactory.getAdServerConfig(_arg1.server.type); this.adServerConfig.initialise(_arg1.server); }; }; if (_arg1.servers != undefined){ this.adServers = _arg1.servers; }; assignRuntimePropertiesToIndividualAdSlots(); }; markAsLoaded(); } public function get companionDivIDs():Array{ return (_companionsConfig.companionDivIDs); } public function set enforceMidRollPlayback(_arg1:Boolean):void{ _enforceMidRollPlayback = _arg1; } public function get tagParams():Object{ return (_tagParams); } public function get holdingClipUrl():String{ return (this.vpaidConfig.holdingClipUrl); } public function set streamers(_arg1:Array):void{ var _local2:int; _streamers = new Array(); if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { _streamers.push(new AdStreamerConfig(_arg1[_local2])); _local2++; }; }; } public function get activelySchedule():Boolean{ return (_activelySchedule); } public function set enforceLinearInteractiveAdScaling(_arg1:Boolean):void{ _enforceLinearInteractiveAdScaling = _arg1; } protected function adSlotIsLinear(_arg1:String):Boolean{ if (StringUtils.matchesIgnoreCase(_arg1, "PRE-ROLL")){ return (true); }; if (StringUtils.matchesIgnoreCase(_arg1, "MID-ROLL")){ return (true); }; if (StringUtils.matchesIgnoreCase(_arg1, "POST-ROLL")){ return (true); }; return (false); } public function set resetTrackingOnReplay(_arg1:Boolean):void{ _resetTrackingOnReplay = _arg1; } public function set rtmpSubscribe(_arg1:Boolean):void{ if (_providersConfig == null){ _providersConfig = new ProvidersConfigGroup(); }; _providersConfig.rtmpSubscribe = _arg1; } public function get enforceMidRollPlayback():Boolean{ return (_enforceMidRollPlayback); } public function resetPlayerHeightOnAdServerRequests(_arg1:int):void{ var _local2:int; while (_local2 < _schedule.length) { if ((_schedule[_local2].server is AdServerConfig)){ _schedule[_local2].server.playerHeight = _arg1; }; _local2++; }; } protected function getDefaultAdServerIndex():int{ var _local1:int; if (_adServers != null){ if (_adServers.length > 0){ _local1 = 0; while (_local1 < _adServers.length) { if (_adServers[_local1].defaultAdServer){ return (_local1); }; _local1++; }; }; }; return (0); } public function set enforceLinearAdsOnPlaylistSelection(_arg1:Boolean):void{ _enforceLinearAdsOnPlaylistSelection = _arg1; } public function get streamers():Array{ return (_streamers); } public function get skipAdButtonImage():String{ if (_skipAdConfig != null){ return (_skipAdConfig.image); }; return ("not-defined"); } public function set metaDataConfig(_arg1:AdMetaDataConfigGroup):void{ _metaDataConfig = _arg1; } public function get skipAdConfig():SkipAdConfig{ return (_skipAdConfig); } public function get resetTrackingOnReplay():Boolean{ return (_resetTrackingOnReplay); } public function get notice():Object{ return (_noticeConfig); } public function set adServers(_arg1:Array):void{ var _local3:AdServerConfig; _adServers = new Array(); doLog((("Configuring " + _arg1.length) + " ad servers"), Debuggable.DEBUG_CONFIG); var _local2:int; while (_local2 < _arg1.length) { if (_arg1[_local2].type != undefined){ _local3 = AdServerConfigFactory.getAdServerConfig(_arg1[_local2].type); _local3.initialise(_arg1[_local2]); if (_tagParams != null){ _local3.initialise({tagParams:_tagParams}); }; _adServers.push(_local3); } else { doLog((("Ad server configuration at position " + _local2) + " skipped - no 'type' provided"), Debuggable.DEBUG_CONFIG); }; _local2++; }; } public function getFirstAdServerCopy():AdServerConfig{ if (_adServers != null){ if (_adServers.length > 0){ return (_adServers[0].clone()); }; }; return (new AdServerConfig()); } public function set acceptedLinearAdMimeTypes(_arg1:Array):void{ _acceptedLinearAdMimeTypes = _arg1; } public function get adServers():Array{ return (_adServers); } } }//package org.openvideoads.vast.config.groupings
Section 106
//AdSlotRegionConfig (org.openvideoads.vast.config.groupings.AdSlotRegionConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.schedule.ads.templates.*; public class AdSlotRegionConfig extends Debuggable { protected var _enableScaling:Boolean;// = false protected var _overlay:Boolean;// = true protected var _keepVisibleAfterClick:Boolean;// = false protected var _enable:Boolean;// = false protected var _region:Object;// = null protected var _prefer:Boolean;// = false protected var _acceptedAdTypes:Array;// = null protected var _alwaysMatch;// = null protected var _templates:Object; protected var _height:int;// = -1 protected var _width:int;// = -1 protected var _displayMode:String;// = "flash" protected var _enforceRecommendedSizing:Boolean;// = true protected var _buttonConfig:CloseButtonConfig;// = null public function AdSlotRegionConfig(_arg1:String="flash", _arg2:Object=null, _arg3:Object=null){ _templates = new Object(); super(); _displayMode = _arg1; if (_arg2 != null){ initialise(_arg2, _arg3); }; } public function get enable():Boolean{ return (_enable); } public function get enableScaling():Boolean{ return (_enableScaling); } public function set enable(_arg1):void{ _enable = StringUtils.validateAsBoolean(_arg1); } public function set enableScaling(_arg1):void{ _enableScaling = StringUtils.validateAsBoolean(_arg1); } public function get prefer():Boolean{ return (_prefer); } public function get displayMode():String{ return (_displayMode); } public function get keepVisibleAfterClick():Boolean{ return (_keepVisibleAfterClick); } public function get buttonConfig():CloseButtonConfig{ return (_buttonConfig); } public function set overlay(_arg1):void{ _overlay = StringUtils.validateAsBoolean(_arg1); } public function set width(_arg1):void{ if ((_arg1 is String)){ _width = parseInt(_arg1); } else { _width = _arg1; }; } public function get height():int{ return (_height); } public function set keepVisibleAfterClick(_arg1:Boolean):void{ _keepVisibleAfterClick = _arg1; } public function hasAlwaysMatchSetting():Boolean{ return (!((_alwaysMatch == null))); } public function set prefer(_arg1):void{ _prefer = StringUtils.validateAsBoolean(_arg1); } public function get templates():Object{ return (_templates); } public function hasSize():Boolean{ return (((hasWidthSpecified()) && (hasHeightSpecified()))); } public function requiresCloseButton():Boolean{ if (_buttonConfig != null){ return (_buttonConfig.enabled); }; return (false); } public function initialise(_arg1:Object, _arg2:Object=null):void{ if (_arg1 != null){ if (_arg1.hasOwnProperty("enable")){ this.enable = _arg1.enable; }; if (_arg1.hasOwnProperty("prefer")){ this.prefer = _arg1.prefer; }; if (_arg1.hasOwnProperty("width")){ this.width = _arg1.width; }; if (_arg1.hasOwnProperty("height")){ this.height = _arg1.height; }; if (_arg1.hasOwnProperty("acceptedAdTypes")){ this.acceptedAdTypes = _arg1.acceptedAdTypes; }; if (_arg1.hasOwnProperty("keepVisibleAfterClick")){ this.keepVisibleAfterClick = _arg1.keepVisibleAfterClick; }; if (_arg1.hasOwnProperty("enableScaling")){ this.enableScaling = _arg1.enableScaling; }; if (_arg1.hasOwnProperty("enforceRecommendedSizing")){ this.enforceRecommendedSizing = _arg1.enforceRecommendedSizing; }; if (_arg1.hasOwnProperty("region")){ this.region = _arg1.region; }; if (_arg1.hasOwnProperty("templates")){ this.templates = _arg1.templates; }; if (_arg1.hasOwnProperty("overlay")){ this.overlay = _arg1.overlay; }; if (_arg1.hasOwnProperty("alwaysMatch")){ this.alwaysMatch = _arg1.alwaysMatch; }; if (_arg1.hasOwnProperty("closeButton")){ _buttonConfig = new CloseButtonConfig(_arg1.closeButton); } else { _buttonConfig = null; }; if (_arg2 != null){ if (_arg2.hasOwnProperty("enable")){ this.enable = _arg2.enable; }; if (_arg2.hasOwnProperty("prefer")){ this.prefer = _arg2.prefer; }; if (_arg2.hasOwnProperty("width")){ this.width = _arg2.width; }; if (_arg2.hasOwnProperty("height")){ this.height = _arg2.height; }; if (_arg2.hasOwnProperty("acceptedAdTypes")){ this.acceptedAdTypes = _arg2.acceptedAdTypes; }; if (_arg2.hasOwnProperty("keepVisibleAfterClick")){ this.keepVisibleAfterClick = _arg2.keepVisibleAfterClick; }; if (_arg2.hasOwnProperty("enableScaling")){ this.enableScaling = _arg2.enableScaling; }; if (_arg2.hasOwnProperty("enforceRecommendedSizing")){ this.enforceRecommendedSizing = _arg2.enforceRecommendedSizing; }; if (_arg2.hasOwnProperty("region")){ this.region = _arg2.region; }; if (_arg2.hasOwnProperty("templates")){ this.templates = _arg2.templates; }; if (_arg2.hasOwnProperty("overlay")){ this.overlay = _arg2.overlay; }; if (_arg2.hasOwnProperty("alwaysMatch")){ this.alwaysMatch = _arg2.alwaysMatch; }; if (_arg2.hasOwnProperty("closeButton")){ _buttonConfig = new CloseButtonConfig(_arg2.closeButton); }; }; }; } public function hasWidthSpecified():Boolean{ return ((width > -1)); } public function set height(_arg1):void{ if ((_arg1 is String)){ _height = parseInt(_arg1); } else { _height = _arg1; }; } public function hasHeightSpecified():Boolean{ return ((height > -1)); } public function get overlay():Boolean{ return (_overlay); } public function get width():int{ return (_width); } public function set acceptedAdTypes(_arg1):void{ if ((_arg1 is Array)){ _acceptedAdTypes = ArrayUtils.toUpperCase(_arg1); }; } public function set region(_arg1:Object):void{ _region = _arg1; } public function set alwaysMatch(_arg1):void{ _alwaysMatch = StringUtils.validateAsBoolean(_arg1); } public function getRegionIDBasedOnAdType(_arg1:String):String{ var _local2:String; if (((!((_region == null))) && (!((_arg1 == null))))){ _local2 = _arg1.toLowerCase(); if (_region.hasOwnProperty(_local2)){ return (_region[_local2]); }; }; return ("auto:bottom"); } public function get acceptedAdTypes():Array{ return (_acceptedAdTypes); } public function set templates(_arg1:Object):void{ _templates = _arg1; } public function set enforceRecommendedSizing(_arg1:Boolean):void{ _enforceRecommendedSizing = _arg1; } public function get alwaysMatch():Boolean{ if (_alwaysMatch == null){ if ((((width < 0)) && ((height < 0)))){ return (true); }; return (false); }; return (_alwaysMatch); } public function get enforceRecommendedSizing():Boolean{ return (_enforceRecommendedSizing); } public function get region():Object{ return (_region); } public function getTemplateBasedOnAdType(_arg1:String):AdTemplate{ var _local2:String; if (((!((_templates == null))) && (!((_arg1 == null))))){ _local2 = _arg1.toLowerCase(); if (_templates.hasOwnProperty(_local2)){ return (_templates[_local2]); }; }; return (new HtmlAdTemplate()); } } }//package org.openvideoads.vast.config.groupings
Section 107
//AdStreamerConfig (org.openvideoads.vast.config.groupings.AdStreamerConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; import org.openvideoads.util.*; public class AdStreamerConfig extends Debuggable { protected var _removeFilenameExtensions:Array;// = null protected var _addFilenamePrefixes:Array;// = null protected var _netConnectionAddress:String;// = null public function AdStreamerConfig(_arg1:Object){ if (_arg1 != null){ initialise(_arg1); }; } public function get netConnectionAddress():String{ return (_netConnectionAddress); } public function formDecoratedRTMPFilename(_arg1:String, _arg2:String="video/x-mp4"):String{ var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:int; if (_netConnectionAddress != null){ _local3 = _arg1; if (_arg1.indexOf(_netConnectionAddress) > -1){ _local3 = _arg1.substr(_netConnectionAddress.length); } else { if (_arg1.indexOf("rtmp://") > -1){ } else { _local3 = _arg1; }; }; if (_local3.charAt(0) == "/"){ _local3 = _local3.substr(1); }; if (((!((_removeFilenameExtensions == null))) || (!((_addFilenamePrefixes == null))))){ _local4 = null; if (_arg2 != null){ _local4 = StringUtils.trim(_arg2); if (_local4.indexOf("video/x-") == 0){ _local4 = _local4.substr(8); } else { if (_local4.indexOf("video/") == 0){ _local4 = _local4.substr(6); }; }; } else { if (_arg1.indexOf(".mp4") > -1){ _local4 = "mp4"; } else { if (_arg1.indexOf(".flv") > -1){ _local4 = "flv"; }; }; }; if (_local4 != null){ if (_removeFilenameExtensions != null){ _local5 = 0; while (_local5 < _removeFilenameExtensions.length) { if ((_removeFilenameExtensions[_local5] is String)){ if (StringUtils.matchesIgnoreCase(_removeFilenameExtensions[_local5], _local4)){ _local6 = _local3.indexOf(("." + _removeFilenameExtensions[_local5])); if (_local6 == -1){ _local6 = _local3.indexOf(("." + _removeFilenameExtensions[_local5].toUpperCase())); }; if (_local6 > -1){ _local3 = _local3.substr(0, _local6); _local5 = _removeFilenameExtensions.length; }; }; }; _local5++; }; }; if (_addFilenamePrefixes != null){ _local7 = 0; while (_local7 < _addFilenamePrefixes.length) { if ((_addFilenamePrefixes[_local7] is String)){ if (StringUtils.matchesIgnoreCase(_addFilenamePrefixes[_local7], _local4)){ if (_local3.toUpperCase().indexOf((_addFilenamePrefixes[_local7].toUpperCase() + ":")) == -1){ _local3 = ((_addFilenamePrefixes[_local7] + ":") + _local3); _local7 = _addFilenamePrefixes.length; }; }; }; _local7++; }; }; }; }; }; return (_local3); } public function set addFilenamePrefixes(_arg1:Array):void{ _addFilenamePrefixes = _arg1; } public function get addFilenamePrefixes():Array{ return (_addFilenamePrefixes); } public function set netConnectionAddress(_arg1:String):void{ _netConnectionAddress = _arg1; } public function initialise(_arg1:Object):void{ if (_arg1.netConnectionAddress != undefined){ _netConnectionAddress = StringUtils.trim(_arg1.netConnectionAddress); }; if (_arg1.removeFilenameExtensions != undefined){ if ((_arg1.removeFilenameExtensions is Array)){ _removeFilenameExtensions = _arg1.removeFilenameExtensions; } else { _removeFilenameExtensions = ArrayUtils.makeArray(_arg1.removeFilenameExtensions); }; }; if (_arg1.addFilenamePrefixes != undefined){ if ((_arg1.addFilenamePrefixes is Array)){ _addFilenamePrefixes = _arg1.addFilenamePrefixes; } else { _addFilenamePrefixes = ArrayUtils.makeArray(_arg1.addFilenamePrefixes); }; }; } public function set removeFilenameExtensions(_arg1:Array):void{ _removeFilenameExtensions = _arg1; } public function get removeFilenameExtensions():Array{ return (_removeFilenameExtensions); } } }//package org.openvideoads.vast.config.groupings
Section 108
//ClickSignConfig (org.openvideoads.vast.config.groupings.ClickSignConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.regions.config.*; public class ClickSignConfig extends RegionViewConfig { protected var _target:String;// = "_blank" protected var _enabled:Boolean;// = true public function ClickSignConfig(_arg1:Object=null){ super(null); _id = "reserved-click-me-prompt"; _verticalAlignPosition = "CENTER"; _horizontalAlign = "CENTER"; _width = 250; _height = 32; _opacity = 0.5; _borderRadius = 20; _backgroundColor = "#000000"; _style = ".smalltext { font-size:12; }"; _html = "<p class=\"smalltext\" align=\"center\">CLICK FOR MORE INFORMATION</p>"; _scaleRate = 0.75; _closeButton = new CloseButtonConfig({enabled:false}); setup(_arg1); if (_arg1 != null){ if (_arg1.closeButton != undefined){ if ((_arg1.closeButton is CloseButtonConfig)){ _closeButton = _arg1.closeButton; } else { _closeButton = new CloseButtonConfig(_arg1.closeButton); }; }; if (_arg1.enabled != undefined){ if ((_arg1.enabled is String)){ this.enabled = ((_arg1.enabled.toUpperCase())=="TRUE") ? true : false; } else { this.enabled = _arg1.enabled; }; }; if (_arg1.target != undefined){ _target = _arg1.target; }; }; } public function get enabled():Boolean{ return (_enabled); } public function set enabled(_arg1:Boolean):void{ _enabled = _arg1; } public function get target():String{ return (_target); } public function set target(_arg1:String):void{ _target = _arg1; } } }//package org.openvideoads.vast.config.groupings
Section 109
//CloseButtonConfig (org.openvideoads.vast.config.groupings.CloseButtonConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; import org.openvideoads.util.*; public class CloseButtonConfig extends Debuggable { protected var _enable:Boolean;// = true protected var _region:String;// = "overlay-close-button" protected var _program:Boolean;// = true public function CloseButtonConfig(_arg1=null){ initialise(_arg1); } public function get enabled():Boolean{ return (_enable); } public function initialise(_arg1):void{ if (_arg1 != null){ if ((_arg1 is String)){ _enable = StringUtils.validateAsBoolean(_arg1); } else { if ((_arg1 is Boolean)){ _enable = _arg1; } else { if (_arg1.hasOwnProperty("enable")){ _enable = StringUtils.validateAsBoolean(_arg1.enable); }; if (_arg1.hasOwnProperty("region")){ _region = _arg1.region; }; if (_arg1.hasOwnProperty("program")){ _program = StringUtils.validateAsBoolean(_arg1.program); }; }; }; }; } public function get region():String{ return (_region); } public function get program():Boolean{ return (_program); } } }//package org.openvideoads.vast.config.groupings
Section 110
//CompanionsConfigGroup (org.openvideoads.vast.config.groupings.CompanionsConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; import org.openvideoads.util.*; public class CompanionsConfigGroup extends Debuggable { protected var _companionDivIDs:Array; protected var _displayCompanions:Boolean;// = true protected var _additionalParamsForSWFCompanions:Array; protected var _restoreCompanions:Boolean;// = true protected var _millisecondDelayOnCompanionInjection:int;// = 0 protected var _nativeDisplay:Boolean;// = true public function CompanionsConfigGroup(_arg1:Object=null){ _companionDivIDs = new Array(); _additionalParamsForSWFCompanions = new Array(); super(); if (_arg1 != null){ initialise(_arg1); }; } public function get displayCompanions():Boolean{ if (_displayCompanions == false){ return (_displayCompanions); }; return (hasCompanionDivs()); } public function delayingCompanionInjection():Boolean{ return ((_millisecondDelayOnCompanionInjection > 0)); } public function set displayCompanions(_arg1:Boolean):void{ _displayCompanions = _arg1; } public function get millisecondDelayOnCompanionInjection():int{ return (_millisecondDelayOnCompanionInjection); } public function get restoreCompanions():Boolean{ return (_restoreCompanions); } public function set nativeDisplay(_arg1:Boolean):void{ _nativeDisplay = _arg1; } public function set millisecondDelayOnCompanionInjection(_arg1:int):void{ _millisecondDelayOnCompanionInjection = _arg1; } public function set additionalParamsForSWFCompanions(_arg1:Array):void{ _additionalParamsForSWFCompanions = _arg1; } public function set companionDivIDs(_arg1:Array):void{ var _local2:int; if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { if (_arg1[_local2].hasOwnProperty("width")){ if ((_arg1[_local2].width is String)){ _arg1[_local2].width = new Number(_arg1[_local2].width); }; }; if (_arg1[_local2].hasOwnProperty("height")){ if ((_arg1[_local2].height is String)){ _arg1[_local2].height = new Number(_arg1[_local2].height); }; }; _local2++; }; }; _companionDivIDs = _arg1; } public function set restoreCompanions(_arg1:Boolean):void{ _restoreCompanions = _arg1; } public function get additionalParamsForSWFCompanions():Array{ return (_additionalParamsForSWFCompanions); } public function get nativeDisplay():Boolean{ return (_nativeDisplay); } public function get companionDivIDs():Array{ return (_companionDivIDs); } public function hasCompanionDivs():Boolean{ return ((_companionDivIDs.length > 0)); } public function initialise(_arg1:Object=null):void{ if (_arg1.regions != undefined){ if ((_arg1.regions is String)){ this.companionDivIDs = ArrayUtils.makeArray(_arg1.regions); } else { this.companionDivIDs = _arg1.regions; }; }; if (_arg1.enable != undefined){ if ((_arg1.enable is String)){ this.displayCompanions = (_arg1.enable.toUpperCase() == "TRUE"); } else { this.displayCompanions = _arg1.enable; }; }; if (_arg1.html5 != undefined){ if ((_arg1.html5 is String)){ this.nativeDisplay = !((_arg1.html5.toUpperCase() == "TRUE")); } else { this.nativeDisplay = !(_arg1.html5); }; }; if (_arg1.nativeDisplay != undefined){ if ((_arg1.nativeDisplay is String)){ this.nativeDisplay = (_arg1.nativeDisplay.toUpperCase() == "TRUE"); } else { this.nativeDisplay = _arg1.nativeDisplay; }; }; if (_arg1.restore != undefined){ if ((_arg1.restore is String)){ this.restoreCompanions = (_arg1.restore.toUpperCase() == "TRUE"); } else { this.restoreCompanions = _arg1.restore; }; }; if (_arg1.additionalParamsForSWFCompanions != undefined){ if ((_arg1.additionalParamsForSWFCompanions is Array)){ _additionalParamsForSWFCompanions = _arg1.additionalParamsForSWFCompanions; }; }; if (_arg1.millisecondDelayOnInjection != undefined){ if ((_arg1.millisecondDelayOnInjection is String)){ this.millisecondDelayOnCompanionInjection = int(_arg1.millisecondDelayOnInjection); } else { this.millisecondDelayOnCompanionInjection = _arg1.millisecondDelayOnInjection; }; }; } } }//package org.openvideoads.vast.config.groupings
Section 111
//ConfigLoader (org.openvideoads.vast.config.groupings.ConfigLoader) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.base.*; public class ConfigLoader extends Debuggable implements ConfigLoadListener { protected var _loading:Boolean;// = true protected var _onLoadedListener:ConfigLoadListener;// = null protected var _initialising:Boolean;// = false public function ConfigLoader(_arg1:Object=null, _arg2:ConfigLoadListener=null){ if (_arg1 != null){ initialise(_arg1, _arg2); }; } public function hasLoadedListener():Boolean{ return (!((_onLoadedListener == null))); } public function markAsLoading():void{ _loading = true; _initialising = true; } public function onOVAConfigLoaded():void{ if (isOVAConfigLoading() == false){ if (hasLoadedListener()){ _onLoadedListener.onOVAConfigLoaded(); }; }; } public function isOVAConfigLoading():Boolean{ return (loading()); } public function markAsLoaded():void{ _loading = false; _initialising = false; onOVAConfigLoaded(); } public function initialising():Boolean{ return (_initialising); } public function setLoadedListener(_arg1:ConfigLoadListener):void{ _onLoadedListener = _arg1; } public function loading():Boolean{ return (_loading); } public function removeLoadedListener():void{ _onLoadedListener = null; } public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ if (_arg2 != null){ setLoadedListener(_arg2); }; } } }//package org.openvideoads.vast.config.groupings
Section 112
//DebugConfigGroup (org.openvideoads.vast.config.groupings.DebugConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.util.*; public class DebugConfigGroup extends ConfigLoader { private var _debugger:String;// = "firebug" private var _levels:String;// = "fatal, config" public function DebugConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ super(_arg1, _arg2); } public function get debugger():String{ return (_debugger); } public function set debugger(_arg1:String):void{ _debugger = _arg1; } public function set levels(_arg1:String):void{ if (_arg1 != null){ if (!StringUtils.isEmpty(_arg1)){ _levels = _arg1; }; }; } public function get levels():String{ return (_levels); } public function outputingDebug():Boolean{ return (!((StringUtils.trim(_levels).toUpperCase() == "NONE"))); } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ markAsLoading(); super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.levels != undefined){ this.levels = _arg1.levels; }; if (_arg1.debugger != undefined){ this.debugger = _arg1.debugger; }; }; markAsLoaded(); } public function debuggersSpecified():Boolean{ return (!((_debugger == null))); } public function debugLevelSpecified():Boolean{ return (!((_levels == null))); } } }//package org.openvideoads.vast.config.groupings
Section 113
//LinearAdMetaDataConfig (org.openvideoads.vast.config.groupings.LinearAdMetaDataConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; public class LinearAdMetaDataConfig extends Debuggable { protected var _title:String;// = null protected var _description:String;// = null public function LinearAdMetaDataConfig(_arg1:Object=null){ initialise(_arg1); } public function getAdDescription(_arg1:String="", _arg2:String="0", _arg3:int=-1):String{ var _local4:String; if (hasDescriptionSpecified()){ _local4 = replaceTemplate(_description, "__duration__", _arg2); _local4 = replaceTemplate(_local4, "__index__", new String(_arg3)); return (_local4); }; return (_arg1); } public function getAdTitle(_arg1:String="", _arg2:String="0", _arg3:int=-1):String{ var _local4:String; if (hasTitleSpecified()){ _local4 = replaceTemplate(_title, "__duration__", _arg2); _local4 = replaceTemplate(_local4, "__index__", new String(_arg3)); return (_local4); }; return (_arg1); } public function hasDescriptionSpecified():Boolean{ return (!((_description == null))); } public function set title(_arg1:String):void{ _title = _arg1; } public function hasTitleSpecified():Boolean{ return (!((_title == null))); } protected function replaceTemplate(_arg1:String, _arg2:String, _arg3:String):String{ var _local4:RegExp = new RegExp(_arg2, "g"); return (_arg1.replace(_local4, _arg3)); } public function initialise(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.title != undefined){ _title = _arg1.title; }; if (_arg1.description != undefined){ _description = _arg1.description; }; }; } public function get title():String{ return (_title); } public function get description():String{ return (_description); } public function set description(_arg1:String):void{ _description = _arg1; } } }//package org.openvideoads.vast.config.groupings
Section 114
//OverlaysConfig (org.openvideoads.vast.config.groupings.OverlaysConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; import org.openvideoads.vast.schedule.ads.templates.*; public class OverlaysConfig extends Debuggable { protected var _replay:Boolean;// = true public function OverlaysConfig(_arg1:Object=null){ initialise(_arg1); } public function get replay():Boolean{ return (_replay); } public function set replay(_arg1):void{ if ((_arg1 is String)){ _replay = ((String(_arg1).toUpperCase())=="TRUE") ? true : false; } else { _replay = _arg1; }; } public function initialise(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.hasOwnProperty("replay")){ this.replay = _arg1.replay; }; }; } } }//package org.openvideoads.vast.config.groupings
Section 115
//PlayerConfigGroup (org.openvideoads.vast.config.groupings.PlayerConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.util.*; public class PlayerConfigGroup extends ConfigLoader { protected var _defaultHeight:int;// = -1 protected var _useInstream:Boolean;// = false protected var _showBusyIcon:Boolean;// = true protected var _defaultControls:ControlsSpecification; protected var _setUrlResolversOnAdClips:Boolean;// = true protected var _defaultWidth:int;// = -1 protected var _modes:Object; public function PlayerConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ _defaultControls = new ControlsSpecification(); _modes = {linear:new DisplaySpecification(DisplaySpecification.LINEAR), nonLinear:new DisplaySpecification(DisplaySpecification.NON_LINEAR)}; super(_arg1, _arg2); } public function get setUrlResolversOnAdClips():Boolean{ return (_setUrlResolversOnAdClips); } public function set setUrlResolversOnAdClips(_arg1:Boolean):void{ _setUrlResolversOnAdClips = _arg1; } public function toString():String{ var _local3:DisplaySpecification; var _local1 = (((("{ defaultWidth: " + _defaultWidth) + ", defaultHeight: ") + _defaultWidth) + " "); var _local2 = ""; for each (_local3 in _modes) { _local1 = (_local1 + _local2); _local1 = (_local1 + _local3.toString()); _local2 = ", "; }; return ((_local1 + " } ")); } public function set hideLogoOnLinearPlayback(_arg1:Boolean):void{ _modes.linear.hideLogo = _arg1; } public function get width():int{ return (_defaultWidth); } public function set margins(_arg1):void{ if ((_arg1 is MarginsSpecification)){ _modes.linear.marginsSpecification = _arg1; _modes.nonLinear.marginsSpecification = _arg1; } else { _modes.linear.initialise({margins:_arg1}); _modes.nonLinear.initialise({margins:_arg1}); }; } public function set width(_arg1):void{ var _local2:int; if ((_arg1 is String)){ _local2 = parseInt(_arg1); } else { _local2 = _arg1; }; _defaultWidth = _local2; _modes.linear.width = _local2; _modes.nonLinear.width = _local2; } public function get useInstream():Boolean{ return (_useInstream); } public function set height(_arg1):void{ var _local2:int; if ((_arg1 is String)){ _local2 = parseInt(_arg1); } else { _local2 = _arg1; }; _defaultHeight = _local2; _modes.linear.height = _local2; _modes.nonLinear.height = _local2; } public function get defaultControls():ControlsSpecification{ return (_defaultControls); } public function get hideLogoOnLinearPlayback():Boolean{ return (_modes.linear.hideLogo); } public function set showBusyIcon(_arg1:Boolean):void{ _showBusyIcon = _arg1; } public function set useInstream(_arg1:Boolean):void{ _useInstream = _arg1; } public function shouldDisableControlsDuringLinearAds(_arg1:Boolean=false):Boolean{ return (_modes.linear.shouldDisableControlsDuringLinearAds(_arg1)); } public function shouldManageControlsDuringLinearAds(_arg1:Boolean=false):Boolean{ return (_modes.linear.shouldManageControlsDuringLinearAds(_arg1)); } public function getDisplaySpecification(_arg1:String):DisplaySpecification{ return (_modes[_arg1]); } public function get height():int{ return (_defaultHeight); } public function get nonLinearControls():Object{ return (_modes.nonLinear.controls); } public function hasPlayerHeight():Boolean{ return ((height > -1)); } public function shouldHideControlsOnLinearPlayback(_arg1:Boolean=false):Boolean{ return (_modes.linear.hideControlsOnLinearPlayback(_arg1)); } public function hasPlayerWidth():Boolean{ return ((width > -1)); } public function set controls(_arg1):void{ if ((_arg1 is ControlsSpecification)){ _defaultControls = _arg1; _modes.linear.controlsConfig = _arg1; _modes.nonLinear.controlsConfig = _arg1; } else { _defaultControls.initialise(_arg1); _modes.linear.initialise({controls:_arg1}); _modes.nonLinear.initialise({controls:_arg1}); }; } public function controlEnabledForLinearAdType(_arg1:String, _arg2:Boolean):Boolean{ return (_modes.linear.controlEnabledForLinearAdType(_arg1, _arg2)); } public function get showBusyIcon():Boolean{ return (_showBusyIcon); } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ markAsLoading(); super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.hasOwnProperty("modes")){ if (_arg1.modes.hasOwnProperty("linear")){ _modes.linear.initialise(_arg1.modes.linear); }; if (_arg1.modes.hasOwnProperty("nonLinear")){ _modes.nonLinear.initialise(_arg1.modes.nonLinear); }; }; if (_arg1.hasOwnProperty("width")){ width = _arg1.width; }; if (_arg1.hasOwnProperty("height")){ height = _arg1.height; }; if (_arg1.hasOwnProperty("controls")){ controls = _arg1.controls; }; if (_arg1.hasOwnProperty("margins")){ margins = _arg1.margins; }; if (_arg1.hasOwnProperty("setUrlResolversOnAdClips")){ if ((_arg1.setUrlResolversOnAdClips is String)){ setUrlResolversOnAdClips = ((_arg1.setUrlResolversOnAdClips.toUpperCase())=="TRUE") ? true : false; } else { setUrlResolversOnAdClips = _arg1.setUrlResolversOnAdClips; }; }; if (_arg1.hasOwnProperty("showBusyIcon")){ if ((_arg1.showBusyIcon is String)){ showBusyIcon = ((_arg1.showBusyIcon.toUpperCase())=="TRUE") ? true : false; } else { showBusyIcon = _arg1.showBusyIcon; }; }; }; markAsLoaded(); } public function set modes(_arg1:Object):void{ _modes = _arg1; } public function hasControlBarHeightSpecified():Boolean{ if (_defaultControls != null){ return (_defaultControls.hasHeightSpecified()); }; return (false); } public function getControlBarHeight():Number{ if (_defaultControls != null){ return (_defaultControls.height); }; return (-1); } public function get linearControls():Object{ return (_modes.linear.controls); } public function get modes():Object{ return (_modes); } } }//package org.openvideoads.vast.config.groupings
Section 116
//ProvidersConfigGroup (org.openvideoads.vast.config.groupings.ProvidersConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; public class ProvidersConfigGroup extends Debuggable { protected var _enforceSettingSubscribeRTMP:Boolean;// = false protected var _rtmpStreamer:String;// = null protected var _rtmpProvider:String;// = "rtmp" protected var _rtmpSubscribe:Boolean;// = false protected var _httpStreamer:String;// = null protected var _httpProvider:String;// = "http" public function ProvidersConfigGroup(_arg1:Object=null){ if (_arg1 != null){ if (_arg1.http != undefined){ httpProvider = _arg1.http; }; if (_arg1.rtmp != undefined){ rtmpProvider = _arg1.rtmp; }; if (_arg1.enforceSettingSubscribeRTMP != undefined){ if ((_arg1.enforceSettingSubscribeRTMP is String)){ this.enforceSettingSubscribeRTMP = ((_arg1.enforceSettingSubscribeRTMP.toUpperCase())=="TRUE") ? true : false; } else { this.enforceSettingSubscribeRTMP = _arg1.enforceSettingSubscribeRTMP; }; }; if (_arg1.rtmpSubscribe != undefined){ if ((_arg1.rtmpSubscribe is String)){ this.rtmpSubscribe = ((_arg1.rtmpSubscribe.toUpperCase())=="TRUE") ? true : false; } else { this.rtmpSubscribe = _arg1.rtmpSubscribe; }; }; }; } public function get enforceSettingSubscribeRTMP():Boolean{ return (_enforceSettingSubscribeRTMP); } public function set enforceSettingSubscribeRTMP(_arg1:Boolean):void{ _enforceSettingSubscribeRTMP = _arg1; doLog(("RTMP enforce set subscribe is " + _arg1), Debuggable.DEBUG_CONFIG); } public function set rtmpSubscribe(_arg1:Boolean):void{ _rtmpSubscribe = _rtmpSubscribe; doLog(("RTMP subscribe is set to " + enforceSettingSubscribeRTMP), Debuggable.DEBUG_CONFIG); } public function get httpProvider():String{ return (_httpProvider); } public function get httpStreamer():String{ return (_httpStreamer); } public function getStreamer(_arg1:String):String{ switch (_arg1.toUpperCase()){ case "RTMP": return (rtmpStreamer); case "HTTP": return (httpStreamer); }; return (null); } public function set rtmpStreamer(_arg1:String):void{ _rtmpStreamer = _arg1; doLog(("RTMP provider streamer set to " + _rtmpStreamer), Debuggable.DEBUG_CONFIG); } public function get rtmpSubscribe():Boolean{ return (_rtmpSubscribe); } public function getProvider(_arg1:String):String{ switch (_arg1.toUpperCase()){ case "RTMP": return (rtmpProvider); case "HTTP": return (httpProvider); }; return (null); } public function set rtmpProvider(_arg1):void{ if ((_arg1 is String)){ _rtmpProvider = _arg1; } else { if (_arg1.type != undefined){ _rtmpProvider = _arg1.type; if (_arg1.streamer != undefined){ rtmpStreamer = _arg1.streamer; }; }; }; doLog(("RTMP provider type set to " + _rtmpProvider), Debuggable.DEBUG_CONFIG); } public function set httpStreamer(_arg1:String):void{ _httpStreamer = _arg1; doLog(("HTTP provider streamer set to " + _httpStreamer), Debuggable.DEBUG_CONFIG); } public function get rtmpStreamer():String{ return (_rtmpStreamer); } public function get rtmpProvider():String{ return (_rtmpProvider); } public function set httpProvider(_arg1):void{ if ((_arg1 is String)){ _httpProvider = _arg1; } else { if (_arg1.type != undefined){ _httpProvider = _arg1.type; if (_arg1.streamer != undefined){ httpStreamer = _arg1.streamer; }; }; }; doLog(("HTTP provider type set to " + _httpProvider), Debuggable.DEBUG_CONFIG); } } }//package org.openvideoads.vast.config.groupings
Section 117
//RegionsConfigGroup (org.openvideoads.vast.config.groupings.RegionsConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.regions.config.*; public class RegionsConfigGroup extends RegionsConfig implements ConfigLoadListener { protected var _loading:Boolean;// = true protected var _onLoadedListener:ConfigLoadListener;// = null protected var _initialising:Boolean;// = false public function RegionsConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ super(_arg1); } public function hasLoadedListener():Boolean{ return (!((_onLoadedListener == null))); } public function onOVAConfigLoaded():void{ _loading = false; if (isOVAConfigLoading() == false){ if (hasLoadedListener()){ _onLoadedListener.onOVAConfigLoaded(); }; }; } public function isOVAConfigLoading():Boolean{ return (_loading); } public function markAsLoaded():void{ _loading = false; _initialising = false; onOVAConfigLoaded(); } public function initialising():Boolean{ return (_initialising); } public function setLoadedListener(_arg1:ConfigLoadListener):void{ _onLoadedListener = _arg1; } public function markAsLoading():void{ _initialising = true; _loading = true; } public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null):void{ markAsLoading(); setLoadedListener(_arg2); setup(_arg1); markAsLoaded(); } } }//package org.openvideoads.vast.config.groupings
Section 118
//RemoteConfigGroup (org.openvideoads.vast.config.groupings.RemoteConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.util.*; public class RemoteConfigGroup extends NetworkResource implements ConfigLoadListener { protected var _debugURL:String;// = "http://debug.openvideoads.org/log-debug.php" protected var _trackerURL:String;// = "http://tracker.openvideoads.org/log-event.php" public function RemoteConfigGroup(){ loadRemoteConfig(); } public function onOVAConfigLoaded():void{ } public function markAsLoaded():void{ } private function loadRemoteConfig():void{ } public function isOVAConfigLoading():Boolean{ return (false); } public function initialising():Boolean{ return (false); } public function initialise(_arg1:Object=null):void{ onOVAConfigLoaded(); } public function get trackerURL():String{ return (_trackerURL); } } }//package org.openvideoads.vast.config.groupings
Section 119
//ShowsConfigGroup (org.openvideoads.vast.config.groupings.ShowsConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.vast.config.*; import org.openvideoads.vast.schedule.*; import org.openvideoads.util.*; public class ShowsConfigGroup extends AbstractStreamsConfig implements ConfigLoadListener { protected var _streamTimerConfig:StreamTimerConfig; protected var _playlist:ShowsPlaylistConfigGroup;// = null protected var _previewImage:String;// = null protected var _streams:Array; public function ShowsConfigGroup(_arg1:Object=null, _arg2:ConfigLoadListener=null){ _streams = new Array(); _streamTimerConfig = new StreamTimerConfig(); super(_arg1, _arg2); } protected function triggerFilenameResolutions():void{ var _local1:int; if (_streams != null){ _local1 = 0; while (_local1 < _streams.length) { _streams[_local1].resolveFilename(this); _local1++; }; }; } override public function mustOperateWithoutDuration():Boolean{ var _local1:int; if (_setDurationFromMetaData){ return (true); }; if (_streams != null){ _local1 = 0; while (_local1 < _streams.length) { if ((_streams[_local1] is StreamConfig)){ if (!_streams[_local1].hasDuration()){ return (true); }; } else { if (_streams[_local1].duration == undefined){ return (true); }; if (parseInt(_streams[_local1].duration) <= 0){ return (true); }; }; _local1++; }; }; return (false); } public function hasShowStreamsDefined():Boolean{ return ((_streams.length > 0)); } public function set streams(_arg1:Array):void{ var _local2:int; var _local3:StreamConfig; _streams = new Array(); if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { _local3 = new StreamConfig(_arg1[_local2].file, _arg1[_local2].file, ((_arg1[_local2].duration)!=undefined) ? _arg1[_local2].duration : "00:00:00", ((_arg1[_local2].reduceLength)!=undefined) ? _arg1[_local2].reduceLength : false, ((_arg1[_local2].deliveryType)!=undefined) ? _arg1[_local2].deliveryType : "any", ((_arg1[_local2].playOnce)!=undefined) ? _arg1[_local2].playOnce : false, ((_arg1[_local2].metaData)!=undefined) ? _arg1[_local2].metaData : true, ((_arg1[_local2].autoPlay)!=undefined) ? _arg1[_local2].autoPlay : true, ((_arg1[_local2].provider)!=undefined) ? _arg1[_local2].provider : null, ((_arg1[_local2].player)!=undefined) ? _arg1[_local2].player : this.player, ((_arg1[_local2].customProperties)!=undefined) ? _arg1[_local2].customProperties : null, ((_arg1[_local2].type)!=undefined) ? _arg1[_local2].type : null, ((_arg1[_local2].startTime)!=undefined) ? _arg1[_local2].startTime : "00:00:00", fireTrackingEvents); _streams.push(_local3); _local2++; }; triggerFilenameResolutions(); }; } public function get streamTimerConfig():StreamTimerConfig{ return (_streamTimerConfig); } public function getPreviewImage():String{ return (_previewImage); } override public function isOVAConfigLoading():Boolean{ if (loading()){ return (true); }; var _local1:int; while (_local1 < _streams.length) { if (_streams[_local1].isOVAConfigLoading()){ return (true); }; _local1++; }; return (false); } public function prependStreams(_arg1:Array):void{ _streams = _arg1.concat(_streams); } public function hasPreviewImage():Boolean{ return (!((getPreviewImage() == null))); } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ markAsLoading(); super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1 != null){ if (_arg1.preview != undefined){ _previewImage = _arg1.preview; }; if (_arg1.streamTimer != undefined){ _streamTimerConfig = new StreamTimerConfig(_arg1.streamTimer); }; if (_arg1.playlist != undefined){ _playlist = new ShowsPlaylistConfigGroup(_arg1.playlist); this.streams = _playlist.toShowStreamsConfigArray(); } else { if (_arg1.streams != undefined){ if ((_arg1.streams is String)){ this.streams = ArrayUtils.makeArray(_arg1.streams); }; this.streams = _arg1.streams; }; }; }; }; markAsLoaded(); } public function get streams():Array{ return (_streams); } public function getLiveStreamName():String{ if (_streams.length > 0){ if (_streams[0].isLive()){ return (_streams[0].filename); }; }; return (null); } public function requiresStreamTimer():Boolean{ if (_streamTimerConfig != null){ return (_streamTimerConfig.enabled); }; return (false); } } }//package org.openvideoads.vast.config.groupings
Section 120
//ShowsPlaylistConfigGroup (org.openvideoads.vast.config.groupings.ShowsPlaylistConfigGroup) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; import org.openvideoads.vast.playlist.*; public class ShowsPlaylistConfigGroup extends Debuggable implements PlaylistLoadListener { protected var _url:String;// = null protected var _playlist:Playlist;// = null protected var _type:int; public function ShowsPlaylistConfigGroup(_arg1:Object){ _type = PlaylistController.PLAYLIST_FORMAT_MEDIA; super(); if (_arg1.type != undefined){ _type = PlaylistController.getType(_arg1.type); }; if (((!((_arg1.url == undefined))) || (!((_arg1.file == undefined))))){ _url = ((_arg1.url)!=undefined) ? _arg1.url : _arg1.file; loadPlaylistFromExternalURL(); }; } protected function loadPlaylistFromExternalURL():void{ if (_type != -1){ _playlist = PlaylistController.getPlaylistObject(_type); _playlist.loadFromURL(_url, this); } else { doLog("Cannot load playlist from external source - no playlist object available", Debuggable.DEBUG_PLAYLIST); }; } public function get url():String{ return (_url); } public function set type(_arg1:int):void{ _type = _arg1; } public function onPlaylistLoaded(_arg1:Playlist):void{ doLog("XXX NOT IMPLEMENTED - NEED TO CALL BACK TO CONTINUE INITIALISATION"); } public function get type():int{ return (_type); } public function toShowStreamsConfigArray():Array{ if (_playlist != null){ return (_playlist.toShowStreamsConfigArray()); }; return (new Array()); } public function set url(_arg1:String):void{ _url = _arg1; } } }//package org.openvideoads.vast.config.groupings
Section 121
//SkipAdConfig (org.openvideoads.vast.config.groupings.SkipAdConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; public class SkipAdConfig extends Debuggable { protected var _enabled:Boolean;// = false protected var _swf:String;// = null protected var _width:int;// = -1 protected var _html:String;// = null protected var _height:int;// = -1 protected var _region:Object;// = null protected var _minimumAdDuration:int;// = -1 protected var _image:String;// = null protected var _showForSeconds:int;// = -1 protected var _showAfterSeconds:int;// = -1 public function SkipAdConfig(_arg1:Object=null){ if (_arg1 != null){ initialise(_arg1); }; } public function set showAfterSeconds(_arg1:int):void{ _showAfterSeconds = _arg1; } public function get enabled():Boolean{ return (_enabled); } public function get minimumAdDuration():int{ return (_minimumAdDuration); } public function set enabled(_arg1:Boolean):void{ _enabled = _arg1; } public function isTimeDelayed():Boolean{ return ((_showAfterSeconds > 0)); } public function isFlashButton():Boolean{ return (!((_swf == null))); } public function hasCustomRegionDefined():Boolean{ return (!((_region == null))); } public function isTimeRestricted():Boolean{ return ((_showForSeconds > 0)); } public function isHtmlButton():Boolean{ return (!((_html == null))); } public function set minimumAdDuration(_arg1:int):void{ _minimumAdDuration = _arg1; } public function get showForSeconds():int{ return (_showForSeconds); } public function set html(_arg1:String):void{ _html = _arg1; } public function get width():int{ return (_width); } public function get showAfterSeconds():int{ return (_showAfterSeconds); } public function get image():String{ return (_image); } public function hasMinimumAdDuration():Boolean{ return ((_minimumAdDuration > 0)); } public function get height():int{ return (_height); } public function set region(_arg1:Object):void{ _region = _arg1; } public function get html():String{ return (_html); } public function set showForSeconds(_arg1:int):void{ _showForSeconds = _arg1; } public function set width(_arg1:int):void{ _width = _arg1; } public function get swf():String{ return (_swf); } public function set height(_arg1:int):void{ _height = _arg1; } public function set swf(_arg1:String):void{ _swf = _arg1; } public function get region():Object{ return (_region); } public function isStandardImageButton():Boolean{ return ((((isCustomImageButton() == false)) && ((isFlashButton() == false)))); } public function set image(_arg1:String):void{ _image = _arg1; } public function initialise(_arg1:Object):void{ if (_arg1.enabled != undefined){ if ((_arg1.enabled is String)){ this.enabled = ((_arg1.enabled.toUpperCase())=="TRUE") ? true : false; } else { this.enabled = _arg1.enabled; }; }; if (_arg1.region != undefined){ _region = _arg1.region; }; if (_arg1.image != undefined){ _image = _arg1.image; }; if (_arg1.swf != undefined){ _swf = _arg1.swf; }; if (_arg1.html != undefined){ _html = _arg1.html; }; if (_arg1.width != undefined){ if ((_arg1.width is String)){ this.width = int(_arg1.width); } else { this.width = _arg1.width; }; }; if (_arg1.height != undefined){ if ((_arg1.height is String)){ this.height = int(_arg1.height); } else { this.height = _arg1.height; }; }; if (_arg1.minimumAdDuration != undefined){ if ((_arg1.minimumAdDuration is String)){ this.minimumAdDuration = int(_arg1.minimumAdDuration); } else { this.minimumAdDuration = _arg1.minimumAdDuration; }; }; if (_arg1.showAfterSeconds != undefined){ if ((_arg1.showAfterSeconds is String)){ this.showAfterSeconds = int(_arg1.showAfterSeconds); } else { this.showAfterSeconds = _arg1.showAfterSeconds; }; }; if (_arg1.showForSeconds != undefined){ if ((_arg1.showForSeconds is String)){ this.showForSeconds = int(_arg1.showForSeconds); } else { this.showForSeconds = _arg1.showForSeconds; }; }; } public function isCustomImageButton():Boolean{ return (!((_image == null))); } } }//package org.openvideoads.vast.config.groupings
Section 122
//StreamTimerConfig (org.openvideoads.vast.config.groupings.StreamTimerConfig) package org.openvideoads.vast.config.groupings { import org.openvideoads.base.*; public class StreamTimerConfig extends Debuggable { protected var _enabled:Boolean;// = false protected var _cycles:Number;// = 100000 protected var _tickRate:Number;// = 100 public function StreamTimerConfig(_arg1:Object=null){ if (_arg1 != null){ initialise(_arg1); }; } public function get enabled():Boolean{ return (_enabled); } public function set enabled(_arg1:Boolean):void{ _enabled = _arg1; } public function get cycles():Number{ return (_cycles); } public function set cycles(_arg1:Number):void{ _cycles = _arg1; } public function initialise(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.enabled != undefined){ if ((_arg1.enabled is String)){ _enabled = (_arg1.enabled.toUpperCase() == "TRUE"); } else { _enabled = _arg1.enabled; }; }; if (_arg1.tickRate != undefined){ _tickRate = _arg1.tickRate; }; if (_arg1.cycles != undefined){ _cycles = _arg1.cycles; }; }; } public function set tickRate(_arg1:Number):void{ _tickRate = _arg1; } public function get tickRate():Number{ return (_tickRate); } } }//package org.openvideoads.vast.config.groupings
Section 123
//VPAIDConfig (org.openvideoads.vast.config.groupings.VPAIDConfig) package org.openvideoads.vast.config.groupings { public class VPAIDConfig { protected var _referrer:String;// = null protected var _enableNonLinearScaling:Boolean;// = true protected var _resumeOnCollapse:Boolean;// = false protected var _defaultNonLinearRegionWithControlbar:String;// = "reserved-fullscreen-transparent-no-close-button-non-clickable" protected var _defaultLinearRegionWithoutControlbar:String;// = "reserved-fullscreen-black-no-close-button-non-clickable-with-cb-height" protected var _enableLinearScaling:Boolean;// = true protected var _maxDurationTimeout:int;// = 90 protected var _nonLinearRegion:String;// = null protected var _supplyReferrer:Boolean;// = false protected var _linearRegion:String;// = null protected var _defaultNonLinearRegionWithoutControlbar:String;// = "reserved-fullscreen-transparent-no-close-button-non-clickable-bottom-margin-adjusted" protected var _holdingClipUrl:String;// = "http://lp.longtailvideo.com/5/ova/blank.mp4" protected var _enableMaxDurationTimeout:Boolean;// = false protected var _pauseOnExpand:Boolean;// = false protected var _defaultLinearRegionWithControlbar:String;// = "reserved-fullscreen-black-no-close-button-non-clickable" public static const RESERVED_FULLSCREEN_BLACK_WITH_MINIMIZE_RULES:String = "reserved-fullscreen-black-no-close-button-non-clickable-minimize-rules"; public static const RESERVED_FULLSCREEN_BLACK:String = "reserved-fullscreen-black-no-close-button-non-clickable"; public static const RESERVED_FULLSCREEN_BLACK_WITH_CB_HEIGHT:String = "reserved-fullscreen-black-no-close-button-non-clickable-with-cb-height"; public static const RESERVED_FULLSCREEN_TRANSPARENT:String = "reserved-fullscreen-transparent-no-close-button-non-clickable"; public static const RESERVED_FULLSCREEN_TRANSPARENT_BOTTOM_MARGIN_ADJUSTED:String = "reserved-fullscreen-transparent-no-close-button-non-clickable-bottom-margin-adjusted"; public function VPAIDConfig(_arg1:Object=null){ if (_arg1 != null){ initialise(_arg1); }; } public function get enableMaxDurationTimeout():Boolean{ return (_enableMaxDurationTimeout); } public function get referrer():String{ return (_referrer); } public function hasNonLinearRegionSpecified():Boolean{ return (!((_nonLinearRegion == null))); } public function get maxDurationTimeout():int{ return (_maxDurationTimeout); } public function get supplyReferrer():Boolean{ return (_supplyReferrer); } public function initialise(_arg1:Object):void{ if (_arg1.supplyReferrer != undefined){ if ((_arg1.supplyReferrer is String)){ this.supplyReferrer = (_arg1.supplyReferrer.toUpperCase() == "TRUE"); } else { this.supplyReferrer = _arg1.supplyReferrer; }; }; if (_arg1.enableLinearScaling != undefined){ if ((_arg1.enableLinearScaling is String)){ this.enableLinearScaling = (_arg1.enableLinearScaling.toUpperCase() == "TRUE"); } else { this.enableLinearScaling = _arg1.enableLinearScaling; }; }; if (_arg1.enableNonLinearScaling != undefined){ if ((_arg1.enableNonLinearScaling is String)){ this.enableNonLinearScaling = (_arg1.enableNonLinearScaling.toUpperCase() == "TRUE"); } else { this.enableNonLinearScaling = _arg1.enableNonLinearScaling; }; }; if (_arg1.referrer != undefined){ this.referrer = _arg1.referrer; }; if (_arg1.holdingClipUrl != undefined){ this.holdingClipUrl = _arg1.holdingClipUrl; }; if (_arg1.linearRegion != undefined){ this.linearRegion = _arg1.linearRegion; }; if (_arg1.nonLinearRegion != undefined){ this.nonLinearRegion = _arg1.nonLinearRegion; }; if (_arg1.enableMaxDurationTimeout != undefined){ if ((_arg1.enableMaxDurationTimeout is String)){ this.enableMaxDurationTimeout = (_arg1.enableMaxDurationTimeout.toUpperCase() == "TRUE"); } else { this.enableMaxDurationTimeout = _arg1.enableMaxDurationTimeout; }; }; if (_arg1.maxDurationTimeout != undefined){ if ((_arg1.maxDurationTimeout is String)){ this.maxDurationTimeout = int(_arg1.maxDurationTimeout); } else { this.maxDurationTimeout = _arg1.maxDurationTimeout; }; }; if (_arg1.pauseOnExpand != undefined){ if ((_arg1.pauseOnExpand is String)){ this.pauseOnExpand = (_arg1.pauseOnExpand.toUpperCase() == "TRUE"); } else { this.pauseOnExpand = _arg1.pauseOnExpand; }; }; if (_arg1.resumeOnCollapse != undefined){ if ((_arg1.resumeOnCollapse is String)){ this.resumeOnCollapse = (_arg1.resumeOnCollapse.toUpperCase() == "TRUE"); } else { this.resumeOnCollapse = _arg1.resumeOnCollapse; }; }; } public function get resumeOnCollapse():Boolean{ return (_resumeOnCollapse); } public function set enableMaxDurationTimeout(_arg1:Boolean):void{ _enableMaxDurationTimeout = _arg1; } public function get holdingClipUrl():String{ return (_holdingClipUrl); } public function hasLinearRegionSpecified():Boolean{ return (!((_linearRegion == null))); } public function set enableLinearScaling(_arg1:Boolean):void{ _enableLinearScaling = _arg1; } public function set referrer(_arg1:String):void{ _referrer = _arg1; } public function set nonLinearRegion(_arg1:String):void{ _nonLinearRegion = _arg1; } public function set maxDurationTimeout(_arg1:int):void{ _maxDurationTimeout = _arg1; } public function set supplyReferrer(_arg1:Boolean):void{ _supplyReferrer = _arg1; } public function set pauseOnExpand(_arg1:Boolean):void{ _pauseOnExpand = _arg1; } public function get enableLinearScaling():Boolean{ return (_enableLinearScaling); } public function get nonLinearRegion():String{ if (_nonLinearRegion != null){ return (_nonLinearRegion); }; return (_defaultNonLinearRegionWithControlbar); } public function get pauseOnExpand():Boolean{ return (_pauseOnExpand); } public function set linearRegion(_arg1:String):void{ _linearRegion = _arg1; } public function getLinearRegion(_arg1:Boolean):String{ if (_linearRegion != null){ return (_linearRegion); }; if (_arg1){ return (_defaultLinearRegionWithControlbar); }; return (_defaultLinearRegionWithoutControlbar); } public function set enableNonLinearScaling(_arg1:Boolean):void{ _enableNonLinearScaling = _arg1; } public function set holdingClipUrl(_arg1:String):void{ _holdingClipUrl = _arg1; } public function set resumeOnCollapse(_arg1:Boolean):void{ _resumeOnCollapse = _arg1; } public function get enableNonLinearScaling():Boolean{ return (_enableNonLinearScaling); } } }//package org.openvideoads.vast.config.groupings
Section 124
//Config (org.openvideoads.vast.config.Config) package org.openvideoads.vast.config { import org.openvideoads.base.*; import org.openvideoads.vast.playlist.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vast.config.groupings.analytics.*; public class Config extends AbstractStreamsConfig implements ConfigLoadListener { protected var _supportExternalPlaylistLoading:Boolean;// = false protected var _regionsConfig:RegionsConfigGroup; protected var _analyticsConfig:AnalyticsConfigGroup; protected var _playerSpecificConfig:PlayerConfigGroup; protected var _showsConfig:ShowsConfigGroup; protected var _autoPlayOnExternalLoad:Boolean;// = false protected var _openVideoAdsConfig:RemoteConfigGroup; protected var _adsConfig:AdsConfigGroup; protected var _debugConfig:DebugConfigGroup; public function Config(_arg1:Object=null, _arg2:ConfigLoadListener=null){ _adsConfig = new AdsConfigGroup(); _regionsConfig = new RegionsConfigGroup(); _showsConfig = new ShowsConfigGroup(); _debugConfig = new DebugConfigGroup(); _openVideoAdsConfig = new RemoteConfigGroup(); _playerSpecificConfig = new PlayerConfigGroup(); _analyticsConfig = new AnalyticsConfigGroup(); super(_arg1, _arg2); if (((!((_arg1 == null))) || (!((_arg2 == null))))){ initialise(_arg1, _arg2); }; } public function get processHTML5NonLinearDisplayExternally():Boolean{ return ((_adsConfig.nativeDisplay == false)); } public function set playerConfig(_arg1:PlayerConfigGroup):void{ _playerSpecificConfig = _arg1; } public function get showsConfig():ShowsConfigGroup{ return (_showsConfig); } public function delayingCompanionInjection():Boolean{ return (_adsConfig.delayingCompanionInjection()); } public function get vpaidMaxDurationTimeout():int{ return (_adsConfig.vpaidMaxDurationTimeout); } public function get millisecondDelayOnCompanionInjection():int{ return (_adsConfig.millisecondDelayOnCompanionInjection); } public function get rtmpProviderForShow():String{ return (_showsConfig.rtmpProvider); } public function get adsConfig():AdsConfigGroup{ return (_adsConfig); } public function set analytics(_arg1):void{ if ((_arg1 is AnalyticsConfigGroup)){ _analyticsConfig = _arg1; _analyticsConfig.initialise(null, this, true); } else { _analyticsConfig.initialise(_arg1, this, true); }; } public function get restoreCompanions():Boolean{ return (_adsConfig.restoreCompanions); } public function getLinearVPAIDRegionID():String{ return (_adsConfig.vpaidConfig.getLinearRegion(!(_playerSpecificConfig.shouldHideControlsOnLinearPlayback(true)))); } public function set httpProviderForShow(_arg1:String):void{ _showsConfig.httpProvider = _arg1; } public function get clickSignEnabled():Boolean{ return (_adsConfig.clickSignEnabled); } public function get processCompanionDisplayExternally():Boolean{ return (_adsConfig.processCompanionDisplayExternally); } public function set rtmpProviderForShow(_arg1:String):void{ _showsConfig.rtmpProvider = _arg1; } public function get regionsConfig():RegionsConfigGroup{ return (_regionsConfig); } public function controlEnabledForLinearAdType(_arg1:String, _arg2:Boolean):Boolean{ return (_playerSpecificConfig.controlEnabledForLinearAdType(_arg1, _arg2)); } public function get adServerConfig():AdServerConfig{ return (_adsConfig.adServerConfig); } public function set shows(_arg1:Object):void{ if (_arg1.player != undefined){ _arg1.player = this.player; }; _showsConfig.initialise(_arg1, this); } override public function hasProviders():Boolean{ return (((_showsConfig.hasProviders()) && (_adsConfig.hasProviders()))); } public function get debugger():String{ return (_debugConfig.debugger); } public function hasPlayerHeight():Boolean{ if (_playerSpecificConfig != null){ return (_playerSpecificConfig.hasPlayerHeight()); }; return (false); } public function get pauseOnClickThrough():Boolean{ return (_adsConfig.pauseOnClickThrough); } public function get autoPlayOnExternalLoad():Boolean{ return (_autoPlayOnExternalLoad); } public function getNonLinearVPAIDRegionID():String{ return (_adsConfig.vpaidConfig.nonLinearRegion); } public function get httpProviderForAds():String{ return (_adsConfig.httpProvider); } public function set tag(_arg1:String):void{ if (_adsConfig != null){ _adsConfig.tag = _arg1; }; } public function get showNotice():Boolean{ return (_adsConfig.showNotice()); } public function get rtmpProviderForAds():String{ return (_adsConfig.rtmpProvider); } public function set httpProviderForAds(_arg1:String):void{ _adsConfig.httpProvider = _arg1; } override public function set httpProvider(_arg1:String):void{ providersConfig.httpProvider = _arg1; _showsConfig.httpProvider = _arg1; _adsConfig.httpProvider = _arg1; } public function get displayCompanions():Boolean{ return (_adsConfig.displayCompanions); } override public function get subscribe():Boolean{ return ((_showsConfig.subscribeHasChanged()) ? _showsConfig.subscribe : (_adsConfig.subscribeHasChanged()) ? _adsConfig.subscribe : _subscribe); } public function set filterOnLinearAdMimeTypes(_arg1:Boolean):void{ _adsConfig.filterOnLinearAdMimeTypes = _arg1; } override public function get deliveryType():String{ return ((_showsConfig.deliveryTypeHasChanged()) ? _showsConfig.deliveryType : (_adsConfig.deliveryTypeHasChanged()) ? _adsConfig.deliveryType : _deliveryType); } public function setMissingProviders(_arg1:String, _arg2:String):void{ if (_providersConfig == null){ doLog("Setting missing GENERAL providers...", Debuggable.DEBUG_CONFIG); _providersConfig = new ProvidersConfigGroup(); _providersConfig.httpProvider = _arg1; _providersConfig.rtmpProvider = _arg2; }; if (!_showsConfig.hasProviders()){ doLog("Setting missing SHOW providers...", Debuggable.DEBUG_CONFIG); _showsConfig.setDefaultProviders(); _showsConfig.httpProvider = _arg1; _showsConfig.rtmpProvider = _arg2; }; if (!_adsConfig.hasProviders()){ doLog("Setting missing AD providers...", Debuggable.DEBUG_CONFIG); _adsConfig.setDefaultProviders(); _adsConfig.httpProvider = _arg1; _adsConfig.rtmpProvider = _arg2; }; } public function set ads(_arg1:Object):void{ if (_arg1 != null){ if (_arg1.player != undefined){ _arg1.player = this.player; }; _adsConfig.initialise(_arg1, this); }; } public function get playerWidth():int{ if (_playerSpecificConfig != null){ return (_playerSpecificConfig.width); }; return (-1); } public function set autoPlayOnExternalLoad(_arg1:Boolean):void{ _autoPlayOnExternalLoad = _arg1; } public function get playerHeight():int{ if (_playerSpecificConfig != null){ return (_playerSpecificConfig.height); }; return (-1); } public function providersForAds():ProvidersConfigGroup{ return (_adsConfig.providersConfig); } public function hasPlayerWidth():Boolean{ if (_playerSpecificConfig != null){ return (_playerSpecificConfig.hasPlayerWidth()); }; return (false); } override public function get bitrate(){ return ((_showsConfig.hasBitrate()) ? _showsConfig.bitrate : (_adsConfig.hasBitrate()) ? _adsConfig.bitrate : _bitrate); } public function getProviderForAds(_arg1:String):String{ return (_adsConfig.getProvider(_arg1)); } public function get previewImage():String{ if (_showsConfig != null){ return (_showsConfig.getPreviewImage()); }; return (null); } public function get acceptedLinearAdMimeTypes():Array{ return (_adsConfig.acceptedLinearAdMimeTypes); } public function signalInitialisationComplete():void{ if (_adsConfig.initialising() == false){ _adsConfig.markAsLoaded(); }; if (_regionsConfig.initialising() == false){ _regionsConfig.markAsLoaded(); }; if (_showsConfig.initialising() == false){ _showsConfig.markAsLoaded(); }; if (_debugConfig.initialising() == false){ _debugConfig.markAsLoaded(); }; if (_openVideoAdsConfig.initialising() == false){ _openVideoAdsConfig.markAsLoaded(); }; if (_analyticsConfig.initialising() == false){ _analyticsConfig.markAsLoaded(); }; if (_playerSpecificConfig.initialising() == false){ _playerSpecificConfig.markAsLoaded(); }; } public function set rtmpProviderForAds(_arg1:String):void{ _adsConfig.rtmpProvider = _arg1; } public function set tagParams(_arg1:Object):void{ if (_adsConfig != null){ _adsConfig.tagParams = _arg1; }; } public function get playerConfig():PlayerConfigGroup{ return (_playerSpecificConfig); } public function prependStreams(_arg1:Array):void{ _showsConfig.prependStreams(_arg1); } public function get analytics():AnalyticsConfigGroup{ return (_analyticsConfig); } override public function onOVAConfigLoaded():void{ if (((((((((((((!(_adsConfig.isOVAConfigLoading())) && (!(_regionsConfig.isOVAConfigLoading())))) && (!(_showsConfig.isOVAConfigLoading())))) && (!(_debugConfig.isOVAConfigLoading())))) && (!(_openVideoAdsConfig.isOVAConfigLoading())))) && (!(_analyticsConfig.isOVAConfigLoading())))) && (!(_playerSpecificConfig.isOVAConfigLoading())))){ if (_onLoadedListener != null){ _onLoadedListener.onOVAConfigLoaded(); }; }; } public function debuggersSpecified():Boolean{ return (_debugConfig.debuggersSpecified()); } public function get httpProviderForShow():String{ return (_showsConfig.httpProvider); } public function loadShowStreamsConfigFromPlaylist(_arg1:Playlist):void{ _showsConfig.streams = _arg1.toShowStreamsConfigArray(); } public function providersForShows():ProvidersConfigGroup{ return (_showsConfig.providersConfig); } public function ensureProvidersAreSet():void{ if (_providersConfig == null){ _providersConfig = new ProvidersConfigGroup(); }; if (!_showsConfig.hasProviders()){ _showsConfig.setDefaultProviders(); }; if (!_adsConfig.hasProviders()){ _adsConfig.setDefaultProviders(); }; } public function areProxiesEnabledForShowStreams():Boolean{ return (_showsConfig.enableProxies); } public function deriveAdDurationFromMetaData():Boolean{ return (_adsConfig.setDurationFromMetaData); } public function get scheduleAds():Boolean{ return (_adsConfig.activelySchedule); } public function outputingDebug():Boolean{ return (_debugConfig.outputingDebug()); } override public function get allowPlaylistControl():Boolean{ return ((_showsConfig.allowPlaylistControlHasChanged()) ? _showsConfig.allowPlaylistControl : _allowPlaylistControl); } public function set debug(_arg1:Object):void{ _debugConfig = new DebugConfigGroup(); _debugConfig.initialise(_arg1, this); } override public function isOVAConfigLoading():Boolean{ return (((((((((_adsConfig.isOVAConfigLoading()) || (_regionsConfig.isOVAConfigLoading()))) || (_showsConfig.isOVAConfigLoading()))) || (_debugConfig.isOVAConfigLoading()))) || (_openVideoAdsConfig.isOVAConfigLoading()))); } public function get visuallyCueLinearAdClickThrough():Boolean{ return (_adsConfig.visuallyCueLinearAdClickThrough); } public function get filterOnLinearAdMimeTypes():Boolean{ return (_adsConfig.filterOnLinearAdMimeTypes); } public function areProxiesEnabledForAdStreams():Boolean{ return (_adsConfig.enableProxies); } public function get companionDivIDs():Array{ return (_adsConfig.companionDivIDs); } public function hasCompanionDivs():Boolean{ return (_adsConfig.hasCompanionDivs()); } public function vpaidMaxDurationTimeoutEnabled():Boolean{ return (_adsConfig.vpaidMaxDurationTimeoutEnabled()); } override public function initialise(_arg1:Object=null, _arg2:ConfigLoadListener=null, _arg3:Boolean=false):void{ super.initialise(_arg1, _arg2); if (_arg1 != null){ if (_arg1.shows != undefined){ this.shows = _arg1.shows; } else { _showsConfig.initialise(null, this); }; if (_arg1.regions != undefined){ this.regions = _arg1.regions; } else { _regionsConfig.initialise(null, this); }; if (_arg1.tagParams != undefined){ this.adsConfig.tagParams = _arg1.tagParams; }; if (_arg1.ads != undefined){ this.ads = _arg1.ads; } else { _adsConfig.initialise(null, this); }; if (_arg1.tag != undefined){ this.adsConfig.tag = _arg1.tag; }; if (_arg1.providers != undefined){ this.providers = _arg1.providers; }; if (_arg1.debug != undefined){ this.debug = _arg1.debug; } else { _debugConfig.initialise(null, this); }; if (_arg1.player != undefined){ this.player = _arg1.player; } else { _playerSpecificConfig.initialise(null, this); }; if (_arg1.analytics != undefined){ this.analytics = _arg1.analytics; } else { _analyticsConfig.initialise(null, this); }; if (_arg1.supportExternalPlaylistLoading != undefined){ if ((_arg1.supportExternalPlaylistLoading is String)){ this.supportExternalPlaylistLoading = ((_arg1.supportExternalPlaylistLoading.toUpperCase())=="TRUE") ? true : false; } else { this.supportExternalPlaylistLoading = _arg1.supportExternalPlaylistLoading; }; }; if (_arg1.autoPlayOnExternalLoad != undefined){ if ((_arg1.autoPlayOnExternalLoad is String)){ this.autoPlayOnExternalLoad = ((_arg1.autoPlayOnExternalLoad.toUpperCase())=="TRUE") ? true : false; } else { this.autoPlayOnExternalLoad = _arg1.autoPlayOnExternalLoad; }; }; }; onOVAConfigLoaded(); } public function deriveShowDurationFromMetaData():Boolean{ return (_showsConfig.setDurationFromMetaData); } public function debugLevelSpecified():Boolean{ return (_debugConfig.debugLevelSpecified()); } public function get openVideoAdsConfig():RemoteConfigGroup{ return (_openVideoAdsConfig); } override public function set player(_arg1:Object):void{ if (_playerSpecificConfig == null){ _playerSpecificConfig = new PlayerConfigGroup(); }; _playerSpecificConfig.initialise(_arg1, this); } public function set playerWidth(_arg1:int):void{ if (_playerSpecificConfig == null){ _playerSpecificConfig = new PlayerConfigGroup(); }; _playerSpecificConfig.width = _arg1; if (_adsConfig != null){ _adsConfig.resetPlayerWidthOnAdServerRequests(_playerSpecificConfig.width); }; } public function hasShowsDefined():Boolean{ return (_showsConfig.hasShowStreamsDefined()); } public function set playerHeight(_arg1:int):void{ if (_playerSpecificConfig == null){ _playerSpecificConfig = new PlayerConfigGroup(); }; _playerSpecificConfig.height = _arg1; if (_adsConfig != null){ _adsConfig.resetPlayerHeightOnAdServerRequests(_playerSpecificConfig.height); }; } override public function get playOnce():Boolean{ return ((_adsConfig.playOnceHasChanged()) ? _adsConfig.playOnce : _playOnce); } public function get notice():Object{ return (_adsConfig.notice); } public function get adSchedule():Array{ return (_adsConfig.schedule); } override public function setLoadedListener(_arg1:ConfigLoadListener):void{ _onLoadedListener = _arg1; onOVAConfigLoaded(); } override public function get baseURL():String{ return ((_showsConfig.baseURLHasChanged()) ? _showsConfig.baseURL : (_adsConfig.baseURLHasChanged()) ? _adsConfig.baseURL : _baseURL); } public function set supportExternalPlaylistLoading(_arg1:Boolean):void{ _supportExternalPlaylistLoading = _arg1; } override public function get streamType():String{ return ((_showsConfig.streamTypeHasChanged()) ? _showsConfig.streamType : (_adsConfig.streamTypeHasChanged()) ? _adsConfig.streamType : _streamType); } override public function setDefaultProviders():void{ _providersConfig = new ProvidersConfigGroup(); _showsConfig.setDefaultProviders(); _adsConfig.setDefaultProviders(); } public function set streams(_arg1:Array):void{ _showsConfig.streams = _arg1; } override public function set rtmpProvider(_arg1:String):void{ providersConfig.rtmpProvider = _arg1; _showsConfig.rtmpProvider = _arg1; _adsConfig.rtmpProvider = _arg1; } public function get supportExternalPlaylistLoading():Boolean{ return (_supportExternalPlaylistLoading); } public function get debugLevel():String{ return (_debugConfig.levels); } public function get streams():Array{ return (_showsConfig.streams); } public function canSkipOnLinearAd():Boolean{ return (_adsConfig.canSkipOnLinearAd()); } public function set showsConfig(_arg1:ShowsConfigGroup):void{ _showsConfig = _arg1; } public function operateWithoutStreamDuration():Boolean{ return (_showsConfig.mustOperateWithoutDuration()); } public function hasStreams():Boolean{ return (_showsConfig.hasShowStreamsDefined()); } public function set acceptedLinearAdMimeTypes(_arg1:Array):void{ _adsConfig.acceptedLinearAdMimeTypes = _arg1; } public function set regions(_arg1:Object):void{ _regionsConfig = new RegionsConfigGroup(); _regionsConfig.initialise(_arg1, this); } public function getProviderForShow(_arg1:String):String{ return (_showsConfig.getProvider(_arg1)); } } }//package org.openvideoads.vast.config
Section 125
//ConfigLoadListener (org.openvideoads.vast.config.ConfigLoadListener) package org.openvideoads.vast.config { public interface ConfigLoadListener { function onOVAConfigLoaded():void; function isOVAConfigLoading():Boolean; } }//package org.openvideoads.vast.config
Section 126
//ConfigPreConverter (org.openvideoads.vast.config.ConfigPreConverter) package org.openvideoads.vast.config { import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.schedule.ads.templates.*; public class ConfigPreConverter { public static function convert(_arg1:Object):Object{ var _local2:Object = expandConfig(convertPreV1Config(_arg1)); return (_local2); } protected static function createTemplatesObject(_arg1:String, _arg2:Object=null):Object{ var _local4:String; var _local3:Object = {text:new TextAdTemplate(_arg1), html:new HtmlAdTemplate(_arg1), image:new ImageAdTemplate(_arg1), swf:new FlashAdTemplate(_arg1), script:new ScriptAdTemplate(_arg1), iframe:new IFrameAdTemplate(_arg1), vpaid:null}; if (_arg2 != null){ for (_local4 in _arg2) { if (StringUtils.matchesIgnoreCase(_local4, "text")){ _local3[_local4] = new TextAdTemplate(_arg1, _arg2[_local4]); } else { if (StringUtils.matchesIgnoreCase(_local4, "html")){ _local3[_local4] = new HtmlAdTemplate(_arg1, _arg2[_local4]); } else { if (StringUtils.matchesIgnoreCase(_local4, "image")){ _local3[_local4] = new ImageAdTemplate(_arg1, _arg2[_local4]); } else { if (StringUtils.matchesIgnoreCase(_local4, "swf")){ _local3[_local4] = new FlashAdTemplate(_arg1, _arg2[_local4]); } else { if (StringUtils.matchesIgnoreCase(_local4, "script")){ _local3[_local4] = new ScriptAdTemplate(_arg1, _arg2[_local4]); } else { if (StringUtils.matchesIgnoreCase(_local4, "iframe")){ _local3[_local4] = new IFrameAdTemplate(_arg1, _arg2[_local4]); }; }; }; }; }; }; }; }; return (_local3); } public static function convertPreV1Config(_arg1:Object):Object{ var _local2:String; var _local3:int; if (_arg1.hasOwnProperty("analytics")){ if (_arg1.analytics.hasOwnProperty("google")){ if (_arg1.analytics.google.hasOwnProperty("enable")){ if (_arg1.analytics.google.enable == false){ if (_arg1.analytics.google.hasOwnProperty("custom")){ _arg1.analytics.google.custom.enable = false; }; }; delete _arg1.analytics.google.enable; }; if (_arg1.analytics.google.hasOwnProperty("ova")){ delete _arg1.analytics.google.ova; }; }; }; if (_arg1.hasOwnProperty("overlays")){ if (_arg1.overlays.hasOwnProperty("closeButton")){ Debuggable.getInstance().doLog("Have converted the depreciated option 'overlays.controlButton' to 'regions.controlButton'", Debuggable.DEBUG_CONFIG); if (_arg1.hasOwnProperty("regions")){ _arg1.regions.closeButton = _arg1.overlays.closeButton; } else { _arg1.regions = {closeButton:_arg1.overlays.closeButton}; }; }; if (_arg1.overlays.hasOwnProperty("regions")){ Debuggable.getInstance().doLog("Have converted depreciated option 'overlays.region' to 'regions.declarations'", Debuggable.DEBUG_CONFIG); _arg1.regions = {declarations:_arg1.overlays.regions}; }; if (_arg1.overlays.hasOwnProperty("stagePaddingBottomNoControls")){ if (_arg1.hasOwnProperty("player")){ if (_arg1.player.hasOwnProperty("margins")){ _arg1.player.margins.withoutControls = _arg1.overlays.stagePaddingBottomNoControls; _arg1.player.margins.withoutControlsOverride = _arg1.overlays.stagePaddingBottomNoControls; } else { _arg1.player.margins = {withoutControls:_arg1.overlays.stagePaddingBottomNoControls, withoutControlsOverride:_arg1.overlays.stagePaddingBottomNoControls}; }; } else { _arg1.player = {margins:{withoutControls:_arg1.overlays.stagePaddingBottomNoControls, withoutControlsOverride:_arg1.overlays.stagePaddingBottomNoControls}}; }; }; if (_arg1.overlays.hasOwnProperty("stagePaddingBottomWithControls")){ if (_arg1.hasOwnProperty("player")){ if (_arg1.player.hasOwnProperty("margins")){ _arg1.player.margins.withControls = _arg1.overlays.stagePaddingBottomWithControls; _arg1.player.margins.withControlsOverride = _arg1.overlays.stagePaddingBottomWithControls; } else { _arg1.player.margins = {withControls:_arg1.overlays.stagePaddingBottomWithControls, withControlsOverride:_arg1.overlays.stagePaddingBottomWithControls}; }; } else { _arg1.player = {margins:{withControls:_arg1.overlays.stagePaddingBottomWithControls, withControlsOverride:_arg1.overlays.stagePaddingBottomWithControls}}; }; }; }; if (_arg1.hasOwnProperty("ads")){ if (_arg1.ads.hasOwnProperty("replayNonLinearAds")){ Debuggable.getInstance().doLog("Have converted depreciated 'ads.replayNonLinearAds' to 'ads.overlays.replay'", Debuggable.DEBUG_CONFIG); if (_arg1.ads.hasOwnProperty("overlays")){ _arg1.ads.overlays.replay = _arg1.ads.replayNonLinearAds; } else { _arg1.ads.overlays = {replay:_arg1.ads.replayNonLinearAds}; }; }; if (_arg1.ads.hasOwnProperty("acceptedNonLinearAdMimeTypes")){ Debuggable.getInstance().doLog("Have converted depreciated 'ads.acceptedNonLinearAdMimeTypes' to 'ads.overlays.acceptedMimeTypes'", Debuggable.DEBUG_CONFIG); if (_arg1.ads.hasOwnProperty("overlays")){ _arg1.ads.overlays.acceptedMimeTypes = _arg1.ads.acceptedNonLinearAdMimeTypes; } else { _arg1.ads.overlays = {acceptedMimeTypes:_arg1.ads.acceptedNonLinearAdMimeTypes}; }; }; if (_arg1.ads.hasOwnProperty("enableOverlayScaling")){ Debuggable.getInstance().doLog("Have converted depreciated 'ads.enableOverlayScaling' to 'ads.overlays.enableScaling'", Debuggable.DEBUG_CONFIG); if (_arg1.ads.hasOwnProperty("overlays")){ _arg1.ads.overlays.enableScaling = _arg1.ads.enableOverlayScaling; } else { _arg1.ads.overlays = {enableScaling:_arg1.ads.enableOverlayScaling}; }; }; if (_arg1.ads.hasOwnProperty("enforceOverlayRecommendedSizing")){ Debuggable.getInstance().doLog("Have converted depreciated 'ads.enforceOverlayRecommendedSizing' to 'ads.overlays.enforceRecommendedSizing'", Debuggable.DEBUG_CONFIG); if (_arg1.ads.hasOwnProperty("overlays")){ _arg1.ads.overlays.enforceRecommendedSizing = _arg1.ads.enforceOverlayRecommendedSizing; } else { _arg1.ads.overlays = {enforceRecommendedSizing:_arg1.ads.enforceOverlayRecommendedSizing}; }; }; if (_arg1.ads.hasOwnProperty("keepOverlayVisibleAfterClick")){ Debuggable.getInstance().doLog("Have converted depreciated 'ads.keepOverlayVisibleAfterClick' to 'ads.overlays.keepVisibleAfterClick'", Debuggable.DEBUG_CONFIG); if (_arg1.ads.hasOwnProperty("overlays")){ _arg1.ads.overlays.keepVisibleAfterClick = _arg1.ads.keepOverlayVisibleAfterClick; } else { _arg1.ads.overlays = {keepVisibleAfterClick:_arg1.ads.keepOverlayVisibleAfterClick}; }; }; if (_arg1.ads.hasOwnProperty("companions")){ if ((_arg1.ads.companions is Array)){ Debuggable.getInstance().doLog("Have converted the depreciated option 'ads.companions[]' to 'ads.companions.regions'", Debuggable.DEBUG_CONFIG); _arg1.ads.companions = {regions:_arg1.ads.companions}; }; }; if (_arg1.ads.hasOwnProperty("processCompanionsExternally")){ if (_arg1.ads.hasOwnProperty("companions")){ Debuggable.getInstance().doLog("Have converted the depreciated option 'ads.processCompanionsExternally' to 'ads.companions.html5'", Debuggable.DEBUG_CONFIG); _arg1.ads.companions.html5 = _arg1.ads.processCompanionsExternally; }; }; if (_arg1.ads.hasOwnProperty("millisecondDelayOnCompanionInjection")){ if (_arg1.ads.hasOwnProperty("companions")){ Debuggable.getInstance().doLog("Have converted the depreciated option 'ads.millisecondDelayOnCompanionInjection' to 'ads.companions.millisecondDelayOnInjection'", Debuggable.DEBUG_CONFIG); _arg1.ads.companions.millisecondDelayOnInjection = _arg1.ads.millisecondDelayOnCompanionInjection; }; }; if (_arg1.ads.hasOwnProperty("displayCompanions")){ if (_arg1.ads.hasOwnProperty("companions")){ Debuggable.getInstance().doLog("Have converted the depreciated option 'ads.displayCompanions' to 'ads.companions.enable'", Debuggable.DEBUG_CONFIG); _arg1.ads.companions.enable = _arg1.ads.displayCompanions; }; }; if (_arg1.ads.hasOwnProperty("restoreCompanions")){ if (_arg1.ads.hasOwnProperty("companions")){ Debuggable.getInstance().doLog("Have converted the depreciated option 'ads.restoreCompanions' to 'ads.companions.restore'", Debuggable.DEBUG_CONFIG); _arg1.ads.companions.restore = _arg1.ads.restoreCompanions; }; }; if (_arg1.ads.hasOwnProperty("additionalParamsForSWFCompanions")){ if (_arg1.ads.hasOwnProperty("companions")){ Debuggable.getInstance().doLog("Have converted the depreciated option 'ads.additionalParamsForSWFCompanions' to 'ads.companions.additionalParamsForSWFCompanions'", Debuggable.DEBUG_CONFIG); _arg1.ads.companions.additionalParamsForSWFCompanions = _arg1.ads.additionalParamsForSWFCompanions; }; }; if (_arg1.ads.hasOwnProperty("controls")){ if (_arg1.ads.controls.hasOwnProperty("skipAd")){ Debuggable.getInstance().doLog("Have moved depreciated option 'ads.controls.skipAd' to 'ads.skipAd'", Debuggable.DEBUG_CONFIG); _arg1.ads.skipAd = _arg1.ads.controls.skipAd; } else { Debuggable.getInstance().doLog("Have moved depreciated option 'ads.controls' to 'player.modes.linear.controls'", Debuggable.DEBUG_CONFIG); if (_arg1.hasOwnProperty("player") == false){ _arg1.player = {modes:{linear:{controls:_arg1.ads.controls}}}; } else { if (_arg1.player.hasOwnProperty("modes") == false){ _arg1.player.modes = {linear:{controls:_arg1.ads.controls}}; } else { if (_arg1.player.modes.hasOwnProperty("linear") == false){ _arg1.player.modes.linear = {controls:_arg1.ads.controls}; } else { if (_arg1.player.modes.linear.hasOwnProperty("controls") == false){ _arg1.player.modes.linear.controls = _arg1.ads.controls; } else { for (_local2 in _arg1.ads.controls) { if (_local2 == "skipAd"){ Debuggable.getInstance().doLog("Have moved depreciated option 'ads.controls.skipAd' to 'ads.skipAd'", Debuggable.DEBUG_CONFIG); _arg1.ads.skipAd = _local2; } else { _arg1.player.modes.linear.controls[_local2] = _arg1.ads.controls[_local2]; }; }; }; }; }; }; }; } else { if (_arg1.ads.hasOwnProperty("vpaid")){ if (_arg1.ads.vpaid.hasOwnProperty("controls")){ if (_arg1.ads.vpaid.controls.hasOwnProperty("hideOnLinearPlayback")){ Debuggable.getInstance().doLog("Have converted depreciated option 'ads.vpaid.controls.hideOnLinearPlayback' to 'player.modes.linear.controls.vpaid.visible'", Debuggable.DEBUG_CONFIG); if (_arg1.hasOwnProperty("player") == false){ _arg1.player = {modes:{linear:{controls:{vpaid:{visible:!(_arg1.ads.vpaid.controls.hideOnLinearPlayback)}}}}}; } else { if (_arg1.player.hasOwnProperty("modes") == false){ _arg1.player.modes = {linear:{controls:{vpaid:{visible:!(_arg1.ads.vpaid.controls.hideOnLinearPlayback)}}}}; } else { if (_arg1.player.modes.hasOwnProperty("linear") == false){ _arg1.player.modes.linear = {controls:{vpaid:{visible:!(_arg1.ads.vpaid.controls.hideOnLinearPlayback)}}}; } else { if (_arg1.player.modes.linear.hasOwnProperty("controls") == false){ _arg1.player.modes.linear.controls = {vpaid:{visible:!(_arg1.ads.vpaid.controls.hideOnLinearPlayback)}}; } else { if (_arg1.player.modes.linear.controls.hasOwnProperty("vpaid") == false){ _arg1.player.modes.linear.controls.vpaid = {visible:!(_arg1.ads.vpaid.controls.hideOnLinearPlayback)}; } else { _arg1.player.modes.linear.controls.vpaid.visible = !(_arg1.ads.vpaid.controls.hideOnLinearPlayback); }; }; }; }; }; }; }; }; }; if (_arg1.ads.hasOwnProperty("disableControls")){ Debuggable.getInstance().doLog("Have moved depreciated 'ads.disableControls' to 'player.modes.linear.controls.enable'", Debuggable.DEBUG_CONFIG); if (_arg1.hasOwnProperty("player") == false){ _arg1.player = {modes:{linear:{controls:{enable:!(_arg1.ads.disableControls)}}}}; } else { if (_arg1.player.hasOwnProperty("modes") == false){ _arg1.player.modes = {linear:{controls:{enable:!(_arg1.ads.disableControls)}}}; } else { if (_arg1.player.modes.hasOwnProperty("linear") == false){ _arg1.player.modes.linear = {controls:{enable:!(_arg1.ads.disableControls)}}; } else { if (_arg1.player.modes.linear.hasOwnProperty("controls") == false){ _arg1.player.modes.linear.controls = {enable:!(_arg1.ads.disableControls)}; } else { if (_arg1.player.modes.linear.hasOwnProperty("enable") == false){ _arg1.player.modes.linear.controls.enable = !(_arg1.ads.disableControls); }; }; }; }; }; }; if (_arg1.ads.hasOwnProperty("schedule")){ if ((_arg1.ads.schedule is Array)){ _local3 = 0; while (_local3 < _arg1.ads.schedule.length) { if (_arg1.ads.schedule[_local3].hasOwnProperty("position")){ if ((_arg1.ads.schedule[_local3].position is String)){ if (StringUtils.containsIgnoreCase("PRE-ROLL MID-ROLL POST-ROLL", _arg1.ads.schedule[_local3].position) == false){ Debuggable.getInstance().doLog("Have converted depreciated non-linear option 'ads.schedule[].position' to 'ads.schedule[].region'", Debuggable.DEBUG_CONFIG); _arg1.ads.schedule[_local3].region = _arg1.ads.schedule[_local3].position; delete _arg1.ads.schedule[_local3].position; }; }; }; _local3++; }; }; }; }; return (_arg1); } public static function expandConfig(_arg1:Object):Object{ var _local2:Object; var _local3:int; var _local4:String; var _local5:int; var _local6:int; if (_arg1.hasOwnProperty("ads")){ _local2 = (_arg1.ads.hasOwnProperty("overlays")) ? _arg1.ads.overlays : new Object(); if (_local2.hasOwnProperty("regions") == false){ if (_local2.hasOwnProperty("region")){ _local2.regions = {preferred:"flash", flash:[{enable:true, region:_local2.region}], html5:[{enable:false, region:_local2.region}]}; delete _local2.region; } else { _local2.regions = {preferred:"flash", flash:[{enable:true}], html5:[{enable:false}]}; }; } else { if (_local2.regions.hasOwnProperty("preferred") == false){ _local2.regions.preferred = "flash"; }; if (_local2.regions.hasOwnProperty("flash") == false){ _local2.regions.flash = [{enable:true}]; } else { if ((((_local2.regions.flash is String)) || ((_local2.regions.flash is Boolean)))){ _local2.regions.flash = [{enable:StringUtils.validateAsBoolean(_local2.regions.flash)}]; } else { if ((_local2.regions.flash is Array)){ }; }; }; if (_local2.regions.hasOwnProperty("html5") == false){ _local2.regions.html5 = [{enable:false}]; } else { if ((_local2.regions.html5 is Array) == false){ _local2.regions.html5 = [{enable:StringUtils.validateAsBoolean(_local2.regions.html5)}]; }; }; }; if (_arg1.ads.hasOwnProperty("schedule")){ if ((_arg1.ads.schedule is Array)){ _local3 = 0; while (_local3 < _arg1.ads.schedule.length) { if (_arg1.ads.schedule[_local3].hasOwnProperty("startTime")){ if (_arg1.ads.schedule[_local3].hasOwnProperty("regions") == false){ if (_arg1.ads.schedule[_local3].hasOwnProperty("region")){ _arg1.ads.schedule[_local3].regions = {preferred:_local2.regions.preferred, flash:[{enable:_local2.regions.flash[0].enable, region:_arg1.ads.schedule[_local3].region, overlay:true}], html5:[{enable:_local2.regions.html5[0].enable, region:_arg1.ads.schedule[_local3].region, overlay:true}]}; } else { _arg1.ads.schedule[_local3].regions = _local2.regions; }; }; if (_arg1.ads.schedule[_local3].regions.hasOwnProperty("preferred") == false){ _arg1.ads.schedule[_local3].regions.preferred = "flash"; }; if (_arg1.ads.schedule[_local3].regions.hasOwnProperty("flash") == false){ if (_arg1.ads.schedule[_local3].hasOwnProperty("region")){ _arg1.ads.schedule[_local3].regions.flash = [{enable:_local2.regions.flash[0].enable, region:_arg1.ads.schedule[_local3].region, overlay:true}]; } else { _arg1.ads.schedule[_local3].regions.flash = [{enable:_local2.regions.flash[0].enable, overlay:true}]; }; } else { if ((_arg1.ads.schedule[_local3].regions.flash is Array) == false){ _arg1.ads.schedule[_local3].regions.flash = [{enable:StringUtils.validateAsBoolean(_arg1.ads.schedule[_local3].regions.flash), overlay:true}]; }; }; if (_arg1.ads.schedule[_local3].regions.hasOwnProperty("html5") == false){ if (_arg1.ads.schedule[_local3].hasOwnProperty("region")){ _arg1.ads.schedule[_local3].regions.html5 = [{enable:_local2.regions.html5[0].enable, region:_arg1.ads.schedule[_local3].region, overlay:true}]; } else { _arg1.ads.schedule[_local3].regions.html5 = [{enable:_local2.regions.html5[0].enable, overlay:true}]; }; } else { if ((_arg1.ads.schedule[_local3].regions.html5 is Array) == false){ _arg1.ads.schedule[_local3].regions.html5 = [{enable:StringUtils.validateAsBoolean(_arg1.ads.schedule[_local3].regions.html5), overlay:true}]; }; }; _local4 = "flash"; _local5 = 0; while (_local5 < 2) { _local6 = 0; while (_local6 < _arg1.ads.schedule[_local3].regions[_local4].length) { if (_arg1.ads.schedule[_local3].regions[_local4][_local6].hasOwnProperty("region")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].region = createRegionObject(_arg1.ads.schedule[_local3].regions[_local4][_local6].region); } else { if (_arg1.ads.schedule[_local3].regions.hasOwnProperty("region")){ if (_arg1.ads.schedule[_local3].hasOwnProperty("region")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].region = createRegionObject(_arg1.ads.schedule[_local3].region); }; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("region")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].region = createRegionObject(_arg1.ads.overlays.region); }; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("templates")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].templates = createTemplatesObject(_local4, _arg1.ads.schedule[_local3].templates); } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("templates")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].templates = createTemplatesObject(_local4, _arg1.ads.overlays.templates); } else { _arg1.ads.schedule[_local3].regions[_local4][_local6].templates = createTemplatesObject(_local4); }; } else { _arg1.ads.schedule[_local3].regions[_local4][_local6].templates = createTemplatesObject(_local4); }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("width")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].width = _arg1.ads.schedule[_local3].width; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("width")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].width = _arg1.ads.overlays.width; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("height")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].height = _arg1.ads.schedule[_local3].height; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("height")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].height = _arg1.ads.overlays.height; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("acceptedAdTypes")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].acceptedAdTypes = _arg1.ads.schedule[_local3].acceptedAdTypes; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("acceptedAdTypes")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].acceptedAdTypes = _arg1.ads.overlays.acceptedAdTypes; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("alwaysMatch")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].alwaysMatch = _arg1.ads.schedule[_local3].alwaysMatch; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("alwaysMatch")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].alwaysMatch = _arg1.ads.overlays.alwaysMatch; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("enableScaling")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].enableScaling = _arg1.ads.schedule[_local3].enableScaling; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("enableScaling")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].enableScaling = _arg1.ads.overlays.enableScaling; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("enforceRecommendedSizing")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].enforceRecommendedSizing = _arg1.ads.schedule[_local3].enforceRecommendedSizing; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("enforceRecommendedSizing")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].enforceRecommendedSizing = _arg1.ads.overlays.enforceRecommendedSizing; }; }; }; if (_arg1.ads.schedule[_local3].hasOwnProperty("keepVisibleAfterClick")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].keepVisibleAfterClick = _arg1.ads.schedule[_local3].keepVisibleAfterClick; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("keepVisibleAfterClick")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].keepVisibleAfterClick = _arg1.ads.overlays.keepVisibleAfterClick; }; }; }; if (_local4 == "html5"){ if (_arg1.ads.schedule[_local3].hasOwnProperty("overlay")){ if ((_arg1.ads.schedule[_local3].overlay is Boolean)){ _arg1.ads.schedule[_local3].regions[_local4][_local6].overlay = _arg1.ads.schedule[_local3].overlay; } else { if ((_arg1.ads.schedule[_local3].overlay is Object)){ if (_arg1.ads.schedule[_local3].overlay.hasOwnProperty("html5")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].overlay = _arg1.ads.schedule[_local3].overlay.html5; }; }; }; } else { if (_arg1.ads.hasOwnProperty("overlays")){ if (_arg1.ads.overlays.hasOwnProperty("overlay")){ if ((_arg1.ads.overlays.overlay is Boolean)){ _arg1.ads.schedule[_local3].regions[_local4][_local6].overlay = _arg1.ads.overlays..overlay; } else { if ((_arg1.ads.overlays.overlay is Object)){ if (_arg1.ads.overlays.overlay.hasOwnProperty("html5")){ _arg1.ads.schedule[_local3].regions[_local4][_local6].overlay = _arg1.ads.overlays.overlay.html5; }; }; }; }; } else { if (_arg1.ads.schedule[_local3].regions[_local4][_local6].hasOwnProperty("overlay") == false){ _arg1.ads.schedule[_local3].regions[_local4][_local6].overlay = true; }; }; }; } else { _arg1.ads.schedule[_local3].regions[_local4][_local6].overlay = true; }; _local6++; }; _local4 = "html5"; _local5++; }; }; _local3++; }; }; }; }; return (_arg1); } protected static function createRegionObject(_arg1:Object):Object{ var _local2:Object; var _local3:String; if ((_arg1 is String)){ return ({image:_arg1, text:_arg1, html:_arg1, swf:_arg1, vpaid:_arg1, iframe:_arg1, script:_arg1}); }; _local2 = {image:"auto:bottom", text:"auto:bottom", html:"auto:bottom", swf:"auto:bottom", vpaid:"auto:bottom", iframe:"auto:bottom", script:"auto:bottom"}; if (_arg1 != null){ for (_local3 in _arg1) { _local2[_local3] = _arg1[_local3]; }; }; return (_local2); } } }//package org.openvideoads.vast.config
Section 127
//AdNoticeDisplayEvent (org.openvideoads.vast.events.AdNoticeDisplayEvent) package org.openvideoads.vast.events { import flash.events.*; public class AdNoticeDisplayEvent extends Event { protected var _notice:Object;// = null protected var _duration:int;// = 0 public static const HIDE:String = "hide-notice"; public static const DISPLAY:String = "display-notice"; public static const TICK:String = "tick-notice"; public function AdNoticeDisplayEvent(_arg1:String, _arg2:Object=null, _arg3:int=0, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); if (_arg2 != null){ _notice = _arg2; }; _duration = _arg3; } public function set notice(_arg1:Object):void{ _notice = _arg1; } public function hasNotice():Boolean{ return (!((_notice == null))); } public function get duration():int{ return (_duration); } public function get notice():Object{ return (_notice); } override public function clone():Event{ return (new AdNoticeDisplayEvent(type, _notice, _duration, bubbles, cancelable)); } public function set duration(_arg1:int):void{ _duration = _arg1; } } }//package org.openvideoads.vast.events
Section 128
//AdSlotLoadEvent (org.openvideoads.vast.events.AdSlotLoadEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.schedule.ads.*; import flash.events.*; public class AdSlotLoadEvent extends Event { protected var _adSlot:AdSlot;// = null protected var _nestedEvent:Event;// = null public static const LOADED:String = "adslot-load-success"; public static const LOAD_DEFERRED:String = "adslot-load-deferred"; public static const LOAD_TIMEOUT:String = "adslot-load-timeout"; public static const LOAD_ERROR:String = "adslot-load-error"; public function AdSlotLoadEvent(_arg1:String, _arg2:AdSlot, _arg3:Event=null, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); _nestedEvent = _arg3; _adSlot = _arg2; } public function get adSlot():AdSlot{ return (_adSlot); } public function adSlotHasLinearAds():Boolean{ if (_adSlot != null){ return (_adSlot.hasLinearAd()); }; return (false); } public function hasNestedEvent():Boolean{ return (!((_nestedEvent == null))); } public function get nestedEvent():Event{ return (_nestedEvent); } public function hasAdSlot():Boolean{ return (!((_adSlot == null))); } override public function toString():String{ if (_nestedEvent != null){ return (_nestedEvent.toString()); }; if (_adSlot != null){ return (_adSlot.toString()); }; return ("no data"); } } }//package org.openvideoads.vast.events
Section 129
//AdTagEvent (org.openvideoads.vast.events.AdTagEvent) package org.openvideoads.vast.events { import flash.events.*; public class AdTagEvent extends Event { protected var _requestInfo; public static const CALL_STARTED:String = "adcall-started"; public static const CALL_FAILOVER:String = "adcall-failover"; public static const CALL_COMPLETE:String = "adcall-complete"; public function AdTagEvent(_arg1:String, _arg2, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _requestInfo = _arg2; } public function includesLinearAds():Boolean{ if (_requestInfo != null){ if (_requestInfo.masterTag != null){ return (_requestInfo.masterTag.includesLinearAds()); }; }; return (false); } public function calledOnDemand():Boolean{ if (_requestInfo != null){ if (_requestInfo.masterTag != null){ return (_requestInfo.masterTag.callOnDemand); }; }; return (false); } public function get requestInfo(){ return (_requestInfo); } } }//package org.openvideoads.vast.events
Section 130
//CompanionAdDisplayEvent (org.openvideoads.vast.events.CompanionAdDisplayEvent) package org.openvideoads.vast.events { import flash.events.*; import org.openvideoads.vast.model.*; public class CompanionAdDisplayEvent extends NonLinearAdDisplayEvent { protected var _content:String;// = null protected var _divID:String;// = null public static const DISPLAY:String = "display-companion"; public static const HIDE:String = "hide-companion"; public function CompanionAdDisplayEvent(_arg1:String, _arg2:CompanionAd, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg2, _arg3, _arg4); } public function get divID():String{ return (_divID); } public function contentIsHTML():Boolean{ return (true); } public function get companionAd():CompanionAd{ return ((this.nonLinearVideoAd as CompanionAd)); } public function set content(_arg1:String):void{ _content = _arg1; } public function set divID(_arg1:String):void{ _divID = _arg1; } public function get content():String{ return (_content); } override public function clone():Event{ var _local1:CompanionAdDisplayEvent = new CompanionAdDisplayEvent(type, (nonLinearVideoAd as CompanionAd), bubbles, cancelable); _local1.divID = _divID; _local1.content = _content; return (_local1); } public function contentIsSWF():Boolean{ return (false); } } }//package org.openvideoads.vast.events
Section 131
//LinearAdDisplayEvent (org.openvideoads.vast.events.LinearAdDisplayEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.schedule.ads.*; import flash.events.*; import org.openvideoads.vast.model.*; public class LinearAdDisplayEvent extends Event { protected var _adSlot:AdSlot;// = null public static const SKIPPED:String = "linear-ad-skipped"; public static const STARTED:String = "linear-ad-started"; public static const COMPLETE:String = "linear-ad-complete"; public static const CLICK_THROUGH:String = "linear-ad-click-through"; public function LinearAdDisplayEvent(_arg1:String, _arg2:AdSlot, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _adSlot = _arg2; } public function set adSlot(_arg1:AdSlot):void{ _adSlot = _arg1; } public function get linearVideoAd():LinearVideoAd{ if (_adSlot != null){ return (_adSlot.videoAd.linearVideoAd); }; return (null); } public function get ad():LinearVideoAd{ return (this.linearVideoAd); } } }//package org.openvideoads.vast.events
Section 132
//NonLinearAdDisplayEvent (org.openvideoads.vast.events.NonLinearAdDisplayEvent) package org.openvideoads.vast.events { import flash.events.*; import org.openvideoads.vast.model.*; public class NonLinearAdDisplayEvent extends Event { protected var _nonLinearVideoAd:NonLinearVideoAd;// = null public function NonLinearAdDisplayEvent(_arg1:String, _arg2:NonLinearVideoAd, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _nonLinearVideoAd = _arg2; } public function isVPAIDAd():Boolean{ if (hasAd()){ return (nonLinearVideoAd.isInteractive()); }; return (false); } public function set nonLinearVideoAd(_arg1:NonLinearVideoAd):void{ _nonLinearVideoAd = nonLinearVideoAd; } public function get nonLinearVideoAd():NonLinearVideoAd{ return (_nonLinearVideoAd); } public function hasAd():Boolean{ return (!((nonLinearVideoAd == null))); } } }//package org.openvideoads.vast.events
Section 133
//NonLinearSchedulingEvent (org.openvideoads.vast.events.NonLinearSchedulingEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.schedule.ads.*; import flash.events.*; public class NonLinearSchedulingEvent extends Event { protected var _adSlot:AdSlot;// = null public static const SCHEDULE:String = "schedule-non-linear"; public function NonLinearSchedulingEvent(_arg1:String, _arg2:AdSlot, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _adSlot = _arg2; } public function get adSlot():AdSlot{ return (_adSlot); } public function set adSlot(_arg1:AdSlot):void{ _adSlot = _arg1; } } }//package org.openvideoads.vast.events
Section 134
//OVAControlBarEvent (org.openvideoads.vast.events.OVAControlBarEvent) package org.openvideoads.vast.events { import flash.events.*; public class OVAControlBarEvent extends Event { public static const ENABLE:String = "ova-control-bar-enable"; public static const DISABLE:String = "ova-control-bar-disable"; public static const HIDE:String = "ova-control-bar-hide"; public static const SHOW:String = "ova-control-bar-show"; public function OVAControlBarEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return (new OVAControlBarEvent(type, bubbles, cancelable)); } } }//package org.openvideoads.vast.events
Section 135
//OverlayAdDisplayEvent (org.openvideoads.vast.events.OverlayAdDisplayEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.schedule.ads.*; import flash.events.*; import org.openvideoads.vast.model.*; import org.openvideoads.vast.config.groupings.*; public class OverlayAdDisplayEvent extends NonLinearAdDisplayEvent { protected var _adSlot:AdSlot;// = null protected var _originalMouseEvent:MouseEvent;// = null protected var _region:AdSlotRegionConfig;// = null public static const CLOSE_CLICKED:String = "overlay-close-clicked"; public static const DISPLAY_NON_OVERLAY:String = "display-non-overlay"; public static const DISPLAY:String = "display-overlay"; public static const CLICKED:String = "overlay-clicked"; public static const HIDE_NON_OVERLAY:String = "hide-non-overlay"; public static const DISPLAY_MODE_HTML5:String = "html5"; public static const DISPLAY_MODE_FLASH:String = "flash"; public static const HIDE:String = "hide-overlay"; public function OverlayAdDisplayEvent(_arg1:String, _arg2:NonLinearVideoAd, _arg3:AdSlot, _arg4:AdSlotRegionConfig=null, _arg5:MouseEvent=null, _arg6:Boolean=false, _arg7:Boolean=false){ super(_arg1, _arg2, _arg6, _arg7); _adSlot = _arg3; _region = _arg4; _originalMouseEvent = _arg5; } public function get adSlot():AdSlot{ return (_adSlot); } override public function clone():Event{ return (new OverlayAdDisplayEvent(type, nonLinearVideoAd, _adSlot, _region, _originalMouseEvent, bubbles, cancelable)); } public function set originalMouseEvent(_arg1:MouseEvent):void{ _originalMouseEvent = _arg1; } public function get originalMouseEvent():MouseEvent{ return (_originalMouseEvent); } public function get region():AdSlotRegionConfig{ return (_region); } override public function toString():String{ if (nonLinearVideoAd != null){ return (((((((((((((("resourceType: " + nonLinearVideoAd.resourceType) + ", ") + "creativeType: ") + nonLinearVideoAd.creativeType) + ", ") + "displayMode; ") + displayMode) + ", ") + "width: ") + nonLinearVideoAd.width) + ", ") + "height: ") + nonLinearVideoAd.height)); }; return ("no ad"); } public function get displayMode():String{ if (_region != null){ return (_region.displayMode); }; return (OverlayAdDisplayEvent.DISPLAY_MODE_FLASH); } } }//package org.openvideoads.vast.events
Section 136
//SeekerBarEvent (org.openvideoads.vast.events.SeekerBarEvent) package org.openvideoads.vast.events { import flash.events.*; public class SeekerBarEvent extends Event { protected var _turnOn:Boolean;// = false public static const TOGGLE:String = "toggle"; public function SeekerBarEvent(_arg1:String, _arg2:Boolean, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); _turnOn = _arg2; } public function turnOff():Boolean{ return (!(turnOn())); } public function turnOn():Boolean{ return (_turnOn); } override public function clone():Event{ return (new SeekerBarEvent(type, _turnOn, bubbles, cancelable)); } } }//package org.openvideoads.vast.events
Section 137
//StreamSchedulingEvent (org.openvideoads.vast.events.StreamSchedulingEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.schedule.*; import flash.events.*; public class StreamSchedulingEvent extends Event { protected var _scheduleIndex:int;// = -1 protected var _stream:Stream;// = null public static const REMOVE:String = "remove-stream"; public static const SCHEDULE:String = "schedule-stream"; public function StreamSchedulingEvent(_arg1:String, _arg2:int, _arg3:Stream, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); _scheduleIndex = _arg2; _stream = _arg3; } public function set stream(_arg1:Stream):void{ _stream = _arg1; } public function set scheduleIndex(_arg1:int):void{ _scheduleIndex = _arg1; } public function get stream():Stream{ return (_stream); } public function get scheduleIndex():int{ return (_scheduleIndex); } } }//package org.openvideoads.vast.events
Section 138
//TrackingPointEvent (org.openvideoads.vast.events.TrackingPointEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.tracking.*; import flash.events.*; public class TrackingPointEvent extends Event { protected var _data:Object;// = null public static const LINEAR_AD_Q1:String = "Q1"; public static const SHOW_STARTED:String = "BS"; public static const SET:String = "tp-set"; public static const SHOW_COMPLETE:String = "ES"; public static const FIRED:String = "tp-fired"; public static const LINEAR_AD_HW:String = "HW"; public static const LINEAR_AD_Q3:String = "Q3"; public static const LINEAR_AD_COMPLETE:String = "EA"; public static const LINEAR_AD_STARTED:String = "BA"; public function TrackingPointEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); if (_arg2 != null){ _data = _arg2; }; } public function isAdCompleteEvent():Boolean{ return ((eventType == LINEAR_AD_COMPLETE)); } public function hasData():Boolean{ return (!((_data == null))); } public function isAdStartEvent():Boolean{ return ((eventType == LINEAR_AD_STARTED)); } public function get data():Object{ return (_data); } override public function toString():String{ return (_data.toString()); } public function get eventType():String{ if (hasTrackingPoint()){ return (trackingPoint.type); }; return (null); } public function get trackingPoint():TrackingPoint{ return ((_data as TrackingPoint)); } public function set data(_arg1:Object):void{ _data = _arg1; } override public function clone():Event{ return (new TrackingPointEvent(type, _data, bubbles, cancelable)); } public function hasTrackingPoint():Boolean{ return (((!((_data == null))) && ((data is TrackingPoint)))); } } }//package org.openvideoads.vast.events
Section 139
//VideoAdDisplayEvent (org.openvideoads.vast.events.VideoAdDisplayEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.*; import org.openvideoads.vast.model.*; public class VideoAdDisplayEvent { private var _height:int;// = -1 private var _width:int;// = -1 private var _customData:Object; private var _controller:VASTController;// = null private var _nonLinearAd:NonLinearVideoAd;// = null public function VideoAdDisplayEvent(_arg1:VASTController=null, _arg2:int=-1, _arg3:int=-1, _arg4:Object=null){ _customData = new Object(); super(); _controller = _arg1; _width = _arg2; _height = _arg3; if (_arg4 != null){ _customData = _arg4; }; } public function get customData():Object{ return (_customData); } public function get ad():NonLinearVideoAd{ return (_nonLinearAd); } public function set customData(_arg1:Object):void{ _customData = _arg1; } public function hasAd():Boolean{ return (!((_nonLinearAd == null))); } public function get width():int{ return (_width); } public function set height(_arg1:int):void{ _height = _arg1; } public function set controller(_arg1:VASTController):void{ _controller = _arg1; } public function set width(_arg1:int):void{ _width = _arg1; } public function get controller():VASTController{ return (_controller); } public function set ad(_arg1:NonLinearVideoAd):void{ _nonLinearAd = _arg1; } public function get height():int{ return (_height); } } }//package org.openvideoads.vast.events
Section 140
//VPAIDAdDisplayEvent (org.openvideoads.vast.events.VPAIDAdDisplayEvent) package org.openvideoads.vast.events { import org.openvideoads.vast.schedule.ads.*; import flash.events.*; public class VPAIDAdDisplayEvent extends Event { protected var _adSlot:AdSlot;// = null protected var _data;// = null public static const VIDEO_AD_MIDPOINT:String = "ova-video-ad-midpoint"; public static const NON_LINEAR_COMPLETE:String = "ova-vpaid-nl-complete"; public static const LINEAR_LOADING:String = "ova-vpaid-linear-loading"; public static const LINEAR_CLICK_THRU:String = "ova-linear-click-thru"; public static const VIDEO_AD_START:String = "ova-video-ad-start"; public static const VIDEO_AD_FIRST_QUARTILE:String = "ova-video-ad-first-quartile"; public static const LINEAR_COMPLETE:String = "ova-vpaid-linear-complete"; public static const LINEAR_USER_ACCEPT_INVITATION:String = "ova-vpaid-linear-user-accept-invitation"; public static const NON_LINEAR_ERROR:String = "ova-vpaid-nl-error"; public static const NON_LINEAR_TIME_CHANGE:String = "ova-vpaid-nl-time-change"; public static const NON_LINEAR_EXPANDED_CHANGE:String = "ova-vpaid-nl-expanded-change"; public static const LINEAR_START:String = "ova-vpaid-linear-start"; public static const NON_LINEAR_USER_ACCEPT_INVITATION:String = "ova-vpaid-nl-user-accept-invitation"; public static const VIDEO_AD_THIRD_QUARTILE:String = "ova-video-ad-third-quartile"; public static const NON_LINEAR_USER_CLOSE:String = "ova-vpaid-nl-user-close"; public static const NON_LINEAR_LINEAR_CHANGE:String = "ova-vpaid-nl-linear-change"; public static const LINEAR_USER_CLOSE:String = "ova-vpaid-linear-user-close"; public static const LINEAR_TIME_CHANGE:String = "ova-vpaid-linear-time-change"; public static const NON_LINEAR_USER_MINIMIZE:String = "ova-vpaid-nl-user-minimize"; public static const NON_LINEAR_LOADED:String = "ova-vpaid-nl-loaded"; public static const LINEAR_ERROR:String = "ova-vpaid-linear-error"; public static const NON_LINEAR_IMPRESSION:String = "ova-vpaid-nl-impression"; public static const NON_LINEAR_LOADING:String = "nl-loading"; public static const LINEAR_LOADED:String = "ova-vpaid-linear-loaded"; public static const LINEAR_EXPANDED_CHANGE:String = "ova-vpaid-linear-expanded-change"; public static const LINEAR_IMPRESSION:String = "ova-vpaid-linear-impression"; public static const LINEAR_LINEAR_CHANGE:String = "ova-vpaid-linear-linear-change"; public static const VIDEO_AD_COMPLETE:String = "ova-video-ad-complete"; public static const NON_LINEAR_CLICK_THRU:String = "ova-vpaid-nl-click-thru"; public static const LINEAR_USER_MINIMIZE:String = "ova-vpaid-linear-user-minimize"; public static const NON_LINEAR_START:String = "ova-vpaid-nl-start"; public function VPAIDAdDisplayEvent(_arg1:String, _arg2:AdSlot, _arg3=null, _arg4:Boolean=false, _arg5:Boolean=false){ super(_arg1, _arg4, _arg5); _adSlot = _arg2; _data = _arg3; } public function get adSlot():AdSlot{ return (_adSlot); } public function hasData():Boolean{ return (!((_data == null))); } public function get data(){ return (_data); } override public function clone():Event{ return (new VPAIDAdDisplayEvent(type, adSlot, data, bubbles, cancelable)); } } }//package org.openvideoads.vast.events
Section 141
//AdNetworkResource (org.openvideoads.vast.model.AdNetworkResource) package org.openvideoads.vast.model { import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; public class AdNetworkResource extends NetworkResource { protected var _streamers:Array;// = null protected var _parsedNetConnectionAddress:String;// = null protected var _matchingStreamerDeclaration:AdStreamerConfig;// = null protected var _parsedFilename:String;// = null public function AdNetworkResource(_arg1:String=null, _arg2:String=null, _arg3:String=null){ super(_arg1, _arg2, _arg3); } override public function get netConnectionAddress():String{ var _local1:String; if (_parsedNetConnectionAddress != null){ return (_parsedNetConnectionAddress); }; if (hasMatchingStreamerDeclaration()){ return (_matchingStreamerDeclaration.netConnectionAddress); }; _local1 = super.netConnectionAddress; if (_local1 != null){ return (_local1); }; return (deriveDefaultNetConnectionAddress()); } public function set streamers(_arg1:Array):void{ _streamers = _arg1; _matchingStreamerDeclaration = null; } public function getDecoratedRTMPFilename():String{ var _local1:String; var _local2:Array; var _local3:int; if (isRTMP()){ if (_parsedFilename == null){ doLog(("Parsing RTMP Linear Ad URL " + _url), Debuggable.DEBUG_CONFIG); if (hasMatchingStreamerDeclaration()){ _parsedFilename = _matchingStreamerDeclaration.formDecoratedRTMPFilename(_url, _mimeType); doLog(("RTMP filename has been derived using a Streamer declaration - filename is " + _parsedFilename), Debuggable.DEBUG_CONFIG); } else { if (hasMP4FileMarker()){ _parsedFilename = getFilename("mp4:"); doLog(("RTMP filename has been derived using an MP4 marker - filename is " + _parsedFilename), Debuggable.DEBUG_CONFIG); } else { if (hasFLVFileMarker()){ _parsedFilename = getFilename("flv:"); _parsedFilename = _parsedFilename.replace(new RegExp("flv:", "g"), ""); doLog((("RTMP filename has been derived using an FLV marker - filename is " + _parsedFilename) + " ('flv:' marker has been stripped)"), Debuggable.DEBUG_CONFIG); } else { _local1 = _url.substr((_url.indexOf("rtmp://") + 7)); _local2 = _local1.split("/"); if (_local2.length > 2){ _parsedFilename = ""; _local3 = 2; while (_local3 < _local2.length) { _parsedFilename = (_parsedFilename + ("/" + _local2[_local3])); _local3++; }; _parsedFilename = _parsedFilename.substr(1); if (((((((isMimeType("video/x-mp4")) || (isMimeType("video/mp4")))) || (isMimeType("mp4")))) || (hasFileExtension(".mp4")))){ _parsedFilename = ("mp4:" + _parsedFilename); } else { if (((((((isMimeType("video/x-flv")) || (isMimeType("video/flv")))) || (isMimeType("flv")))) || (hasFileExtension(".flv")))){ _parsedFilename = _parsedFilename.replace(new RegExp("\\.flv", "g"), ""); }; }; } else { _parsedFilename = _url; }; doLog(("RTMP filename has been determined by default rule - filename is " + _parsedFilename), Debuggable.DEBUG_CONFIG); }; }; }; }; return (_parsedFilename); }; return (null); } protected function hasMatchingStreamerDeclaration():Boolean{ var _local1:int; if (_url != null){ if (_matchingStreamerDeclaration == null){ if (_streamers != null){ _local1 = 0; while (_local1 < _streamers.length) { if (_url.indexOf(AdStreamerConfig(_streamers[_local1]).netConnectionAddress) > -1){ doLog(("A matching streamer declaration found - netConnectionAddress is " + AdStreamerConfig(_streamers[_local1]).netConnectionAddress), Debuggable.DEBUG_CONFIG); _matchingStreamerDeclaration = AdStreamerConfig(_streamers[_local1]); return (true); }; _local1++; }; }; }; } else { _matchingStreamerDeclaration = null; }; return (false); } public function hasStreamerDefinitions():Boolean{ return (!((_streamers == null))); } protected function deriveDefaultNetConnectionAddress():String{ var _local1:String; var _local2:Array; if (isRTMP()){ _local1 = _url.substr((_url.indexOf("rtmp://") + 7)); _local2 = _local1.split("/"); if (_local2.length > 2){ _parsedNetConnectionAddress = ((("rtmp://" + _local2[0]) + "/") + _local2[1]); doLog(("RTMP NetConnectionAddress has been determined by default rule - address is " + _parsedNetConnectionAddress), Debuggable.DEBUG_CONFIG); return (_parsedNetConnectionAddress); }; }; return (null); } } }//package org.openvideoads.vast.model
Section 142
//CompanionAd (org.openvideoads.vast.model.CompanionAd) package org.openvideoads.vast.model { import org.openvideoads.vast.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; public class CompanionAd extends NonLinearVideoAd { protected var _activeDivID:String;// = null protected var _formedCode:String;// = null protected var _previousDivContent:String;// = "" protected var _divIndex:int;// = -1 protected var _altText:String;// = null public function CompanionAd(_arg1:VideoAd=null){ _parentAdContainer = _arg1; super(); } public function get divIndex():int{ return (_divIndex); } public function set divIndex(_arg1:int):void{ _divIndex = _arg1; } public function set previousDivContent(_arg1:String):void{ _previousDivContent = _arg1; } public function get activeDivID():String{ return (_activeDivID); } override public function stop(_arg1:VideoAdDisplayEvent, _arg2=null):void{ if (_arg1.controller.onHideCompanionAd(new CompanionAdDisplayEvent(CompanionAdDisplayEvent.HIDE, this))){ triggerTrackingEvent(TrackingEvent.EVENT_STOP); }; } public function suitableForDisplayInDIV(_arg1:Object):Boolean{ var _local2:Boolean; var _local3:Boolean; if (((!((_arg1.resourceType == undefined))) && ((_arg1.creativeType == undefined)))){ doLog(((((("Refining companion matching to " + _arg1.width) + "x") + _arg1.height) + " and resourceType:") + _arg1.resourceType), Debuggable.DEBUG_DISPLAY_EVENTS); _local3 = matchesSizeAndResourceType(_arg1.width, _arg1.height, _arg1.resourceType); } else { if (_arg1.index != undefined){ doLog(((((("Refining companion matching to " + _arg1.width) + "x") + _arg1.height) + " and index:") + _arg1.index), Debuggable.DEBUG_DISPLAY_EVENTS); _local3 = matchesSizeAndIndex(_arg1.width, _arg1.height, _arg1.index); } else { if (((!((_arg1.creativeType == undefined))) && (!((_arg1.resoruceType == undefined))))){ doLog(((((((("Refining companion matching to " + _arg1.width) + "x") + _arg1.height) + " and creativeType: ") + _arg1.creativeType) + " resourceType:") + _arg1.resourceType), Debuggable.DEBUG_DISPLAY_EVENTS); _local3 = matchesSizeAndTypes(_arg1.width, _arg1.height, _arg1.creativeType, _arg1.resourceType); } else { _local3 = matchesSize(_arg1.width, _arg1.height); }; }; }; if (_local3){ _local2 = true; doLog(((((("Found a match for " + _arg1.width) + ",") + _arg1.height) + " - id of matching DIV is ") + _arg1.id), Debuggable.DEBUG_DISPLAY_EVENTS); }; return (_local2); } public function set activeDivID(_arg1:String):void{ _activeDivID = _arg1; } public function isDisplayed():Boolean{ return (!((_activeDivID == null))); } public function getDisplayCode(_arg1:Array, _arg2:Boolean=false, _arg3:String="companion", _arg4:Boolean=false):String{ var _local5:String; var _local6:String; if ((((((_formedCode == null)) || (isFlash()))) || (!((_arg1 == null))))){ _local5 = ""; if (isHtml()){ doLog((((("CompanionAd (" + this.uid) + ") - content is a HTML codeblock... ") + clickThroughs.length) + " click through URL described"), Debuggable.DEBUG_DISPLAY_EVENTS); if (((hasClickThroughURL()) && (!(StringUtils.beginsWith(codeBlock, "<A "))))){ _local5 = (("<a href=\"" + clickThroughs[0].qualifiedHTTPUrl) + "\" target=\"_blank\">"); _local5 = (_local5 + codeBlock); _local5 = (_local5 + "</a>"); } else { _local5 = codeBlock; }; } else { if (((isImage()) || (onlyStaticResourceTypeDeclared()))){ doLog((((((("CompanionAd (" + this.uid) + ") - content is an IMG (") + url.url) + ") ...") + clickThroughs.length) + " click through URL described"), Debuggable.DEBUG_DISPLAY_EVENTS); if (hasClickThroughURL()){ _local5 = (("<a href=\"" + clickThroughs[0].qualifiedHTTPUrl) + "\" target=\"_blank\">"); _local5 = (_local5 + (("<img src=\"" + url.url) + "\" border=\"0\"/>")); _local5 = (_local5 + "</a>"); } else { _local5 = (_local5 + (("<img src=\"" + url.url) + "\" border=\"0\"/>")); }; } else { if (isScript()){ if (hasCode()){ doLog((("CompanionAd (" + this.uid) + ") - content is a <SCRIPT> codeblock..."), Debuggable.DEBUG_DISPLAY_EVENTS); _local5 = codeBlock; } else { if (hasUrl()){ doLog((((("CompanionAd (" + this.uid) + ") - content is a <SCRIPT> based url (") + url.url) + ") ..."), Debuggable.DEBUG_DISPLAY_EVENTS); _local5 = (_local5 + (("<script type=\"text/javascript\" src=\"" + url.url) + "\"></script>")); } else { doLog((("CompanionAd (" + this.uid) + ") - Ignoring script type for companion - no URL or codeblock provided"), Debuggable.DEBUG_DISPLAY_EVENTS); }; }; } else { if (isFlash()){ if (hasCode()){ doLog((("CompanionAd (" + this.uid) + ") - content is a flash codeblock ..."), Debuggable.DEBUG_DISPLAY_EVENTS); _local5 = codeBlock; } else { doLog((((("CompanionAd (" + this.uid) + ") - content is a SWF url (") + url.url) + ") based companion OBJECT/EMBED tags..."), Debuggable.DEBUG_DISPLAY_EVENTS); _local5 = buildSWFObjectCode(_arg1); }; } else { if (isIFrame()){ if (hasUrl()){ doLog((((("CompanionAd (" + this.uid) + ") - content is an IFRAME (") + url.url) + ") ..."), Debuggable.DEBUG_DISPLAY_EVENTS); _local6 = ""; if (this.hasWidth()){ _local6 = (_local6 + ((" width=\"" + this.width) + "\"")); }; if (this.hasHeight()){ _local6 = (_local6 + ((" height=\"" + this.height) + "\"")); }; _local5 = (((("<iframe src=\"" + url.url) + "\" hspace=0 vspace=0 frameborder=0 marginheight=0 marginwidth=0 scrolling=no") + _local6) + ">"); _local5 = (_local5 + " <p>Your browser does not support iframes.</p>"); _local5 = (_local5 + "</iframe>"); } else { doLog((("CompanionAd (" + this.uid) + ") - Ignoring IFRAME type for companion - no URL provided"), Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog(((((("CompanionAd (" + this.uid) + ") - Unknown resource type ") + resourceType) + ", creativeType is ") + creativeType), Debuggable.DEBUG_DISPLAY_EVENTS); }; }; }; }; }; _formedCode = _local5; }; return (_formedCode); } override public function clone(_arg1=null){ var _local2:CompanionAd = super.clone(new CompanionAd(parentAdContainer)); _local2.altText = _altText; _local2.previousDivContent = _previousDivContent; _local2.activeDivID = _activeDivID; _local2.divIndex = _divIndex; _local2.adParameters = _adParameters; return (_local2); } public function registerDisplay(_arg1:String, _arg2:String):void{ _activeDivID = _arg1; _previousDivContent = _arg2; } override public function start(_arg1:VideoAdDisplayEvent, _arg2=null):void{ if (_arg1.controller.onDisplayCompanionAd(new CompanionAdDisplayEvent(CompanionAdDisplayEvent.DISPLAY, this))){ triggerTrackingEvent(TrackingEvent.EVENT_CREATIVE_VIEW); triggerTrackingEvent(TrackingEvent.EVENT_START); }; } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {id:_id, adId:_adID, uid:_uid, divId:_activeDivID, altText:_altText, width:_width, height:_height, resourceType:_resourceType, creativeType:_creativeType, codeBlock:(hasCode()) ? codeBlock : null, url:(hasUrl()) ? url.url : null}; return (_local1); } protected function buildFlashVarsString():String{ var _local1:String; if (hasAdParameters()){ _local1 = _adParameters; }; if (hasClickThroughURL()){ if (_local1 != null){ _local1 = ((((((((("&clickTag=" + escape(this.firstClickThrough())) + "&") + "clickTAG=") + escape(this.firstClickThrough())) + "&") + "clicktag=") + escape(this.firstClickThrough())) + "&") + _local1); } else { _local1 = ((((((("clickTag=" + escape(this.firstClickThrough())) + "&") + "clickTAG=") + escape(this.firstClickThrough())) + "&") + "clicktag=") + escape(this.firstClickThrough())); }; }; return (_local1); } protected function buildSWFObjectCode(_arg1:Array, _arg2:Boolean=true):String{ var _local7:int; var _local3 = ""; var _local4 = ""; if (this.hasWidth()){ _local4 = (_local4 + ((" width=\"" + this.width) + "\"")); }; if (this.hasHeight()){ _local4 = (_local4 + ((" height=\"" + this.height) + "\"")); }; _local3 = (((("<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"" + _local4) + " id=\"companion-") + this.index) + "\">"); _local3 = (_local3 + (("<param name=\"movie\" value=\"" + url.url) + "\">")); _local3 = (_local3 + "<param name=\"allowScriptAccess\" value=\"always\">"); var _local5 = ""; if (_arg1 != null){ if (_arg1.length > 0){ _local7 = 0; while (_local7 < _arg1.length) { if (((!((_arg1[_local7].name == undefined))) && (!((_arg1[_local7].value == undefined))))){ _local3 = (_local3 + (((("<param name=\"" + _arg1[_local7].name) + "\" value=\"") + _arg1[_local7].value) + "\">")); _local5 = (_local5 + ((((" " + _arg1[_local7].name) + "=\"") + _arg1[_local7].value) + "\"")); }; _local7++; }; }; }; var _local6:String = buildFlashVarsString(); if (_arg2){ if (_local6 != null){ _local3 = (_local3 + (("<param name=\"FlashVars\" value=\"" + _local6) + "\"/>")); _local3 = (_local3 + (((((((((("<embed name=\"companion-" + this.index) + "\" src=\"") + url.url) + "\"") + _local4) + " allowScriptAccess=\"always\" allowFullScreen=\"true\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" flashvars=\"") + _local6) + "\"") + _local5) + "></embed>")); } else { _local3 = (_local3 + (((((((("<embed name=\"companion-" + this.index) + "\" src=\"") + url.url) + "\"") + _local4) + " allowScriptAccess=\"always\" allowFullScreen=\"true\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"") + _local5) + "></embed>")); }; } else { if (_local6 != null){ _local3 = (_local3 + (("<param name=\"FlashVars\" value=\"" + _local6) + "\"/>")); }; }; _local3 = (_local3 + "</object>"); return (_local3); } public function set altText(_arg1:String):void{ _altText = _arg1; } public function getParentAdUID():String{ if (_parentAdContainer != null){ return (_parentAdContainer.uid); }; return (null); } public function get altText():String{ return (_altText); } public function matches(_arg1:CompanionAd):Boolean{ if (_arg1 != null){ if (this == _arg1){ return (true); }; return (((((((((_arg1.isVAST2) && (this.isVAST2))) && (!((this.id == null))))) && (!(StringUtils.isEmpty(this.id))))) && ((_arg1.id == this.id)))); }; return (false); } public function deregisterDisplay():void{ _activeDivID = null; } public function get previousDivContent():String{ return (_previousDivContent); } } }//package org.openvideoads.vast.model
Section 143
//Impression (org.openvideoads.vast.model.Impression) package org.openvideoads.vast.model { import org.openvideoads.util.*; public class Impression extends NetworkResource { public function Impression(_arg1:String, _arg2:String){ super(_arg1, _arg2); } override public function toJSObject():Object{ var _local1:Object = super.toJSObject(); _local1.eventType = "impression"; return (_local1); } public function unload():void{ super.close(); } } }//package org.openvideoads.vast.model
Section 144
//LinearVideoAd (org.openvideoads.vast.model.LinearVideoAd) package org.openvideoads.vast.model { import org.openvideoads.base.*; import org.openvideoads.util.*; public class LinearVideoAd extends TrackedVideoAd { protected var _mediaFiles:Array; protected var _selectedMediaFile:MediaFile;// = null protected var _duration:String; public function LinearVideoAd(){ _mediaFiles = new Array(); super(); } public function isEmpty():Boolean{ return ((_mediaFiles.length == 0)); } public function filterLinearAdMediaFileByMimeType(_arg1:Array):void{ var _local3:Array; var _local2:int; while (_local2 < _mediaFiles.length) { if (_mediaFiles[_local2].isPermittedMimeType(_arg1) == false){ _local3 = _mediaFiles.splice(_local2, 1); doLog(("Excluded media based on mime type - " + MediaFile(_local3[0]).url.url), Debuggable.DEBUG_VAST_TEMPLATE); } else { _local2++; }; }; } public function setDurationFromSeconds(_arg1:int):void{ _duration = Timestamp.secondsToTimestamp(_arg1); doLog(("Linear video ad duration has been changed to " + _duration), Debuggable.DEBUG_CONFIG); } protected function mediaFilesToJSObjectArray():Array{ var _local2:int; var _local1:Array = new Array(); if (_mediaFiles != null){ _local2 = 0; while (_local2 < _mediaFiles.length) { _local1.push(_mediaFiles[_local2].toJSObject()); _local2++; }; }; return (_local1); } override public function get duration():String{ return (_duration); } public function shouldMaintainAspectRatio(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):Boolean{ var _local7:MediaFile; if (_selectedMediaFile == null){ _local7 = getMediaFileToPlay(_arg1, _arg2, _arg3, _arg4, _arg5); if (_arg6){ _selectedMediaFile = _local7; } else { if (_local7 != null){ return (_local7.maintainAspectRatio); }; }; }; if (_selectedMediaFile != null){ return (_selectedMediaFile.maintainAspectRatio); }; return (true); } public function isInteractive(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):Boolean{ var _local7:MediaFile; if (_selectedMediaFile == null){ _local7 = getMediaFileToPlay(_arg1, _arg2, _arg3, _arg4, _arg5); if (_arg6){ _selectedMediaFile = _local7; } else { if (_local7 != null){ return (_local7.isInteractive()); }; }; }; if (_selectedMediaFile != null){ return (_selectedMediaFile.isInteractive()); }; return (false); } public function getRatedMediaFile(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):MediaFile{ return (getSpecificallyRatedMediaFile(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function canScale(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):Boolean{ var _local7:MediaFile; if (_selectedMediaFile == null){ _local7 = getMediaFileToPlay(_arg1, _arg2, _arg3, _arg4, _arg5); if (_arg6){ _selectedMediaFile = _local7; } else { if (_local7 != null){ return (_local7.scale); }; }; }; if (_selectedMediaFile != null){ return (_selectedMediaFile.scale); }; return (false); } public function getMinimumRatedMediaFile(_arg1:String, _arg2="any", _arg3:int=-1, _arg4:int=-1, _arg5:Boolean=false):MediaFile{ var _local7:int; var _local8:int; doLog(((((("Searching for linear ad with LOW bitrate matching type: " + _arg2) + ", width: ") + _arg3) + ", height: ") + _arg4), Debuggable.DEBUG_SEGMENT_FORMATION); var _local6:MediaFile; if (((!((_mediaFiles == null))) && ((_mediaFiles.length > 0)))){ _local7 = 99999999; _local8 = 0; while (_local8 < _mediaFiles.length) { if ((((_arg3 == -1)) && ((_arg4 == -1)))){ if (_mediaFiles[_local8].bitRate < _local7){ _local6 = _mediaFiles[_local8]; _local7 = _mediaFiles[_local8].bitRate; }; } else { if ((((_arg3 == -1)) && ((_arg4 > -1)))){ if (_arg4 == _mediaFiles[_local8].height){ if (_mediaFiles[_local8].bitRate < _local7){ _local6 = _mediaFiles[_local8]; _local7 = _mediaFiles[_local8].bitRate; }; }; } else { if ((((_arg3 > -1)) && ((_mediaFiles[_local8].width == _arg3)))){ if (_mediaFiles[_local8].bitRate < _local7){ _local6 = _mediaFiles[_local8]; _local7 = _mediaFiles[_local8].bitRate; }; }; }; }; _local8++; }; }; if (_local6 != null){ doLog(((((("Matched a minimum rate media file with the parameters - bitrate: " + _local6.bitRate) + ", width: ") + _local6.width) + ", height: ") + _local6.height), Debuggable.DEBUG_SEGMENT_FORMATION); } else { doLog("Unable to match a minimum rate media file - null returned", Debuggable.DEBUG_SEGMENT_FORMATION); }; return (_local6); } public function getSpecificallyRatedMediaFile(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):MediaFile{ var _local7:MediaFile; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:Array; if (((!((_mediaFiles == null))) && ((_mediaFiles.length > 0)))){ doLog(((((((((((("Searching for linear ad (" + _mediaFiles.length) + " available) SPECIFICALLY matching delivery: ") + _arg1) + ", mime type: ") + _arg2) + ", bitrate: ") + _arg3) + ", width: ") + _arg4) + ", height: ") + _arg5), Debuggable.DEBUG_SEGMENT_FORMATION); _local7 = null; _local8 = -1; _local9 = -1; _local10 = -1; _local11 = -1; if ((((_arg3 is String)) && (!((_arg3 == null))))){ if (_arg3.indexOf("-") > -1){ _local13 = String(_arg3).split("-"); if (_local13.length == 2){ _local10 = parseInt(_local13[0]); _local11 = parseInt(_local13[1]); }; } else { _local11 = parseInt(_arg3); _local10 = _local11; }; }; _local12 = 0; for (;_local12 < _mediaFiles.length;_local12++) { //unresolved if if (((_mediaFiles[_local12].hasBitRate()) && ((_local10 > -1)))){ if ((((_local10 <= _mediaFiles[_local12].bitRate)) && ((_mediaFiles[_local12].bitRate <= _local11)))){ } else { continue; }; }; }; if (_local7 != null){ doLog(((((((("Matched '" + _local7.url.url) + "' - bitrate: ") + _local7.bitRate) + ", width: ") + _local7.width) + ", height: ") + _local7.height), Debuggable.DEBUG_SEGMENT_FORMATION); } else { doLog("Could not match a media file for the given search parameters", Debuggable.DEBUG_SEGMENT_FORMATION); }; return (_local7); }; doLog("No media files recorded - unable to match", Debuggable.DEBUG_SEGMENT_FORMATION); return (null); } public function addMediaFile(_arg1:MediaFile):void{ var _local2:Array; if (_arg1.isProgressive()){ _local2 = [_arg1]; _mediaFiles = _local2.concat(_mediaFiles); } else { _mediaFiles.push(_arg1); }; } override public function toJSObject():Object{ var _local1:Object = super.toJSObject(); _local1.duration = _duration; _local1.mediaFiles = mediaFilesToJSObjectArray(); return (_local1); } public function getStreamToPlay(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):AdNetworkResource{ var _local7:MediaFile; if (_selectedMediaFile == null){ _local7 = getMediaFileToPlay(_arg1, _arg2, _arg3, _arg4, _arg5); if (_arg6){ _selectedMediaFile = _local7; } else { if (_local7 != null){ return (_local7.url); }; }; }; if (_selectedMediaFile != null){ return (_selectedMediaFile.url); }; return (null); } public function getMediumRatedMediaFile(_arg1:String, _arg2="any", _arg3:int=-1, _arg4:int=-1, _arg5:Boolean=false):MediaFile{ var _local7:int; var _local8:int; var _local9:Array; var _local10:int; var _local11:int; var _local12:int; doLog(((((("Searching for linear ad with MEDIUM rated bitrate matching type: " + _arg2) + ", width: ") + _arg3) + ", height: ") + _arg4), Debuggable.DEBUG_SEGMENT_FORMATION); var _local6:MediaFile; if (((!((_mediaFiles == null))) && ((_mediaFiles.length > 0)))){ _local7 = -1; _local8 = 9999999; _local9 = new Array(); _local10 = 0; while (_local10 < _mediaFiles.length) { if ((((_arg3 == -1)) && ((_arg4 == -1)))){ if (_mediaFiles[_local10].bitRate > _local7){ _local7 = _mediaFiles[_local10].bitRate; _local6 = _mediaFiles[_local10]; }; if (_mediaFiles[_local10].bitRate < _local8){ _local8 = _mediaFiles[_local10].bitRate; }; _local9.push(_local10); } else { if ((((_arg3 == -1)) && ((_arg4 > -1)))){ if (_arg4 == _mediaFiles[_local10].height){ if (_mediaFiles[_local10].bitRate > _local7){ _local7 = _mediaFiles[_local10].bitRate; _local6 = _mediaFiles[_local10]; }; if (_mediaFiles[_local10].bitRate < _local8){ _local8 = _mediaFiles[_local10].bitRate; }; _local9.push(_local10); }; } else { if ((((_arg3 > -1)) && ((_mediaFiles[_local10].width == _arg3)))){ if (_mediaFiles[_local10].bitRate > _local7){ _local7 = _mediaFiles[_local10].bitRate; _local6 = _mediaFiles[_local10]; }; if (_mediaFiles[_local10].bitRate < _local8){ _local8 = _mediaFiles[_local10].bitRate; }; _local9.push(_local10); }; }; }; _local10++; }; if ((((_local7 > -1)) && ((_local8 < 9999999)))){ _local11 = (_local8 + ((_local7 - _local8) / 2)); _local12 = 0; while (_local12 < _local9.length) { if ((((_mediaFiles[_local9[_local12]].bitRate > _local8)) && ((_mediaFiles[_local9[_local12]].bitRate <= _local11)))){ if (((((_local11 - _local6.bitRate) < 0)) || (((_local11 - _mediaFiles[_local9[_local12]].bitRate) < (_local11 - _local6.bitRate))))){ _local6 = _mediaFiles[_local9[_local12]]; } else { _local6 = _mediaFiles[_local9[_local12]]; }; }; _local12++; }; }; }; if (_local6 != null){ doLog(((((("Matched a medium rate media file with the parameters - bitrate: " + _local6.bitRate) + ", width: ") + _local6.width) + ", height: ") + _local6.height), Debuggable.DEBUG_SEGMENT_FORMATION); } else { doLog("Unable to match a medium rate media file - null returned", Debuggable.DEBUG_SEGMENT_FORMATION); }; return (_local6); } public function set duration(_arg1:String):void{ _duration = _arg1; } public function getMaximumRatedMediaFile(_arg1:String, _arg2="any", _arg3:int=-1, _arg4:int=-1, _arg5:Boolean=false):MediaFile{ var _local7:int; var _local8:int; doLog(((((("Searching for linear ad with HIGH bitrate matching type: " + _arg2) + ", width: ") + _arg3) + ", height: ") + _arg4), Debuggable.DEBUG_SEGMENT_FORMATION); var _local6:MediaFile; if (((!((_mediaFiles == null))) && ((_mediaFiles.length > 0)))){ _local7 = -1; _local8 = 0; while (_local8 < _mediaFiles.length) { if ((((_arg3 == -1)) && ((_arg4 == -1)))){ if (_mediaFiles[_local8].bitRate > _local7){ _local6 = _mediaFiles[_local8]; _local7 = _mediaFiles[_local8].bitRate; }; } else { if ((((_arg3 == -1)) && ((_arg4 > -1)))){ if (_arg4 == _mediaFiles[_local8].height){ if (_mediaFiles[_local8].bitRate > _local7){ _local6 = _mediaFiles[_local8]; _local7 = _mediaFiles[_local8].bitRate; }; }; } else { if ((((_arg3 > -1)) && ((_mediaFiles[_local8].width == _arg3)))){ if (_mediaFiles[_local8].bitRate > _local7){ _local6 = _mediaFiles[_local8]; _local7 = _mediaFiles[_local8].bitRate; }; }; }; }; _local8++; }; }; if (_local6 != null){ doLog(((((("Matched a maximum rate media file with the parameters - bitrate: " + _local6.bitRate) + ", width: ") + _local6.width) + ", height: ") + _local6.height), Debuggable.DEBUG_SEGMENT_FORMATION); } else { doLog("Unable to match a maximum rate media file - null returned", Debuggable.DEBUG_SEGMENT_FORMATION); }; return (_local6); } public function clicked():void{ triggerTrackingEvent(TrackingEvent.EVENT_ACCEPT); fireClickTracking(); } public function mediaFileCount():int{ if (hasMediaFiles()){ return (_mediaFiles.length); }; return (0); } public function get mediaFiles():Array{ return (_mediaFiles); } public function hasMediaFiles():Boolean{ if (_mediaFiles == null){ return (false); }; return ((_mediaFiles.length > 0)); } public function lastSelectedMediaFile():MediaFile{ return (_selectedMediaFile); } public function resetSelectedMediaCache():void{ _selectedMediaFile = null; } public function getMediaFileToPlay(_arg1:String, _arg2="any", _arg3=-1, _arg4:int=-1, _arg5:int=-1, _arg6:Boolean=false):MediaFile{ var _local7:MediaFile; if ((((_arg3 is String)) && (!((_arg3 == null))))){ _local7 = null; if (_arg3 != null){ switch (_arg3.toUpperCase()){ case "HIGH": return (getMaximumRatedMediaFile(_arg1, _arg2, _arg4, _arg5)); case "MEDIUM": return (getMediumRatedMediaFile(_arg1, _arg2, _arg4, _arg5)); case "LOW": return (getMinimumRatedMediaFile(_arg1, _arg2, _arg4, _arg5)); default: return (getRatedMediaFile(_arg1, _arg2, _arg3, _arg4, _arg5)); }; }; return (getRatedMediaFile(_arg1, _arg2, -1, _arg4, _arg5)); }; return (getRatedMediaFile(_arg1, _arg2, _arg3, _arg4, _arg5)); } public function set mediaFiles(_arg1:Array):void{ _mediaFiles = _arg1; } override public function unload():void{ var _local1:int; if (hasMediaFiles()){ _local1 = 0; while (_local1 < _mediaFiles.length) { _mediaFiles[_local1].unload(); _local1++; }; }; } } }//package org.openvideoads.vast.model
Section 145
//MediaFile (org.openvideoads.vast.model.MediaFile) package org.openvideoads.vast.model { import org.openvideoads.base.*; import org.openvideoads.util.*; public class MediaFile extends Debuggable { protected var _url:AdNetworkResource;// = null protected var _bandwidth:String; protected var _id:String; protected var _width:String; protected var _maintainAspectRatio:Boolean;// = true protected var _scale:Boolean;// = false protected var _parentAd:TrackedVideoAd;// = null protected var _height:String; protected var _bitRate:int;// = -1 protected var _adParameters:String;// = null protected var _delivery:String; protected var _apiFramework:String;// = null protected var _mimeType:String; public function isProgressive():Boolean{ if (_delivery != null){ return ((_delivery.toUpperCase() == "PROGRESSIVE")); }; return (false); } public function get delivery():String{ return (_delivery); } public function get apiFramework():String{ return (_apiFramework); } public function set apiFramework(_arg1:String):void{ _apiFramework = _arg1; } public function get bitRate():int{ return (_bitRate); } public function get maintainAspectRatio():Boolean{ return (_maintainAspectRatio); } public function set maintainAspectRatio(_arg1):void{ if (_arg1 != null){ _maintainAspectRatio = StringUtils.validateAsBoolean(_arg1); }; } public function hasBitRate():Boolean{ return ((_bitRate > -1)); } public function get duration():String{ if (_parentAd != null){ return (_parentAd.duration); }; return ("00:00:00"); } public function get mimeType():String{ return (_mimeType); } public function set bitRate(_arg1:int):void{ _bitRate = _arg1; } public function get id():String{ return (_id); } public function set scale(_arg1):void{ if (_arg1 != null){ _scale = StringUtils.validateAsBoolean(_arg1); }; } public function set width(_arg1:String):void{ _width = _arg1; } public function hasAdParameters():Boolean{ return (!(StringUtils.isEmpty(_adParameters))); } public function durationAsInt():int{ return (0); } public function set mimeType(_arg1:String):void{ _mimeType = _arg1; } public function get height():String{ return (_height); } public function get bandwidth():String{ return (_bandwidth); } public function set id(_arg1:String):void{ _id = _arg1; } public function isPermittedMimeType(_arg1:Array):Boolean{ if ((((hasMimeType() == false)) || ((_arg1 == null)))){ return (true); }; var _local2:int; while (_local2 < _arg1.length) { if (StringUtils.matchesIgnoreCase(_mimeType, _arg1[_local2])){ return (true); }; _local2++; }; return (false); } public function hasAPIFramework():Boolean{ return (!((_apiFramework == null))); } public function isDeliveryType(_arg1:String):Boolean{ if (_arg1 == null){ return (true); }; return ((((_arg1.toUpperCase() == "ANY")) || ((_delivery.toUpperCase() == _arg1.toUpperCase())))); } public function hasMimeType():Boolean{ return (!((_mimeType == null))); } public function get scale():Boolean{ return (_scale); } public function get width():String{ return (_width); } public function isStreaming():Boolean{ if (_delivery != null){ return ((_delivery.toUpperCase() == "STREAMING")); }; return (false); } public function set height(_arg1:String):void{ _height = _arg1; } public function set url(_arg1:AdNetworkResource):void{ _url = _arg1; } public function isInteractive():Boolean{ if (hasAPIFramework()){ if (StringUtils.matchesIgnoreCase(_apiFramework, "VPAID")){ if (hasMimeType()){ return (((StringUtils.matchesIgnoreCase(_mimeType, "APPLICATION/X-SHOCKWAVE-FLASH")) || (StringUtils.matchesIgnoreCase(_mimeType, "SWF")))); }; if (_url != null){ return ((_url.isStream() == false)); }; }; }; return (false); } public function set parentAd(_arg1:TrackedVideoAd):void{ _parentAd = _arg1; } public function isMimeType(_arg1):Boolean{ if (_arg1 == null){ return (true); }; if ((_arg1 is Array)){ return (isPermittedMimeType(_arg1)); }; return ((((_arg1.toUpperCase() == "ANY")) || ((_mimeType.toUpperCase() == _arg1.toUpperCase())))); } public function set delivery(_arg1:String):void{ _delivery = _arg1; } public function set bandwidth(_arg1:String):void{ _bandwidth = _arg1; } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {id:_id, uid:_uid, bandwidth:_bandwidth, delivery:_delivery, scale:_scale, maintainAspectRatio:_maintainAspectRatio, mimeType:_mimeType, bitRate:_bitRate, width:_width, height:_height, apiFramework:_apiFramework, urlId:((_url)!=null) ? _url.id : null, url:((_url)!=null) ? _url.url : null, adParameters:((_adParameters)!=null) ? escape(_adParameters) : null}; return (_local1); } public function get adParameters():String{ return (_adParameters); } public function get url():AdNetworkResource{ return (_url); } public function set adParameters(_arg1:String):void{ _adParameters = _arg1; } public function get parentAd():TrackedVideoAd{ return (_parentAd); } public function unload():void{ } } }//package org.openvideoads.vast.model
Section 146
//NonLinearFlashAd (org.openvideoads.vast.model.NonLinearFlashAd) package org.openvideoads.vast.model { import org.openvideoads.regions.view.*; public class NonLinearFlashAd extends NonLinearVideoAd implements FlashMedia { public function get recommendedHeight():int{ return (_height); } override public function clicked():void{ if (isInteractive()){ } else { super.clicked(); }; } public function get recommendedWidth():int{ return (_width); } public function get swfURL():String{ if (hasCode()){ return (_codeBlock); }; return (_url.getQualifiedStreamAddress()); } public function shouldMaintainAspectRatio():Boolean{ return (this.maintainAspectRatio); } override public function close():void{ super.close(); } override public function get content():String{ return (swfURL); } public function signalLoadError(_arg1:String):void{ } } }//package org.openvideoads.vast.model
Section 147
//NonLinearHtmlAd (org.openvideoads.vast.model.NonLinearHtmlAd) package org.openvideoads.vast.model { public class NonLinearHtmlAd extends NonLinearVideoAd { override public function get content():String{ return (html); } public function get html():String{ return (_codeBlock); } } }//package org.openvideoads.vast.model
Section 148
//NonLinearIFrameAd (org.openvideoads.vast.model.NonLinearIFrameAd) package org.openvideoads.vast.model { public class NonLinearIFrameAd extends NonLinearVideoAd { override public function contentType():String{ return ("IFRAME"); } } }//package org.openvideoads.vast.model
Section 149
//NonLinearImageAd (org.openvideoads.vast.model.NonLinearImageAd) package org.openvideoads.vast.model { public class NonLinearImageAd extends NonLinearVideoAd { override public function get content():String{ return (imageURL); } public function get imageURL():String{ if (_codeBlock != null){ return (_codeBlock); }; if (hasUrl()){ return (_url.getQualifiedStreamAddress()); }; return (""); } } }//package org.openvideoads.vast.model
Section 150
//NonLinearScriptAd (org.openvideoads.vast.model.NonLinearScriptAd) package org.openvideoads.vast.model { public class NonLinearScriptAd extends NonLinearVideoAd { override public function contentType():String{ return ("SCRIPT"); } } }//package org.openvideoads.vast.model
Section 151
//NonLinearTextAd (org.openvideoads.vast.model.NonLinearTextAd) package org.openvideoads.vast.model { import flash.xml.*; public class NonLinearTextAd extends NonLinearVideoAd { protected var _callToActionTitle:String;// = null protected var _title:String;// = null protected var _description:String;// = null override public function set codeBlock(_arg1:String):void{ _codeBlock = "<TextAd>"; _codeBlock = (_codeBlock + _arg1); _codeBlock = (_codeBlock + "</TextAd>"); parse(); } protected function parse():void{ var _local1:XML = new XML(_codeBlock); if (_local1.length() > 0){ if (_local1.Title != undefined){ _title = _local1.Title.text(); }; if (_local1.Description != undefined){ _description = _local1.Description.text(); }; if (_local1.CallToAction != undefined){ _callToActionTitle = _local1.CallToAction.text(); }; }; } public function get callToActionTitle():String{ return (_callToActionTitle); } override public function rawContentAsObject():Object{ return ({type:"TEXT", format:"TEXT", content:{title:title, description:description, callToActionTitle:callToActionTitle}}); } public function get title():String{ return (_title); } public function get description():String{ return (_description); } } }//package org.openvideoads.vast.model
Section 152
//NonLinearVideoAd (org.openvideoads.vast.model.NonLinearVideoAd) package org.openvideoads.vast.model { import org.openvideoads.vast.events.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; public class NonLinearVideoAd extends TrackedVideoAd { protected var _codeBlock:String; protected var _loaded:Boolean;// = false protected var _activeDisplayRegion:AdSlotRegionConfig;// = null protected var _height:int;// = -1 protected var _resourceType:String; protected var _adParameters:String;// = null protected var _resourceWidth:Number;// = -1 protected var _expandedHeight:int;// = -1 protected var _creativeType:String; protected var _nonLinearClickTrackingExtensions:Array; protected var _expandedWidth:int;// = -1 protected var _url:NetworkResource; protected var _width:int;// = -1 protected var _apiFramework:String; protected var _resourceHeight:Number;// = -1 public function NonLinearVideoAd(){ _nonLinearClickTrackingExtensions = new Array(); super(); } public function stop(_arg1:VideoAdDisplayEvent, _arg2=null):void{ triggerTrackingEvent(TrackingEvent.EVENT_COMPLETE); if (_arg1.controller != null){ _arg1.controller.onHideNonLinearAd(new OverlayAdDisplayEvent(OverlayAdDisplayEvent.HIDE, this, _arg1.customData.adSlot, activeDisplayRegion)); }; activeDisplayRegion = null; } public function get apiFramework():String{ return (_apiFramework); } public function get loaded():Boolean{ return (_loaded); } public function set apiFramework(_arg1:String):void{ _apiFramework = _arg1; } public function deriveScoreBasedOnEstimatedSizeAndAcceptedAdTypes(_arg1:int, _arg2:int, _arg3:Array):int{ if (matchesAcceptedAdTypes(_arg3)){ if (scale == false){ if (isText()){ return (0); }; if ((((_height > _arg2)) || ((_width > _arg1)))){ return (-1); }; if (_width > 0){ return ((_arg1 - _width)); }; return (-1); } else { return (0); }; }; return (-1); } public function set creativeType(_arg1:String):void{ _creativeType = ((_arg1)!=null) ? _arg1.toUpperCase() : _arg1; } public function hasExpandedWidth():Boolean{ return ((_expandedWidth > -1)); } public function set expandedWidth(_arg1):void{ if (typeof(_arg1) == "string"){ _expandedWidth = parseInt(_arg1); } else { _expandedWidth = _arg1; }; } public function hasAccompanyingVideoAd():Boolean{ if (parentAdContainer != null){ return (parentAdContainer.hasLinearAd()); }; return (false); } public function onlyStaticResourceTypeDeclared():Boolean{ return (((isStaticResourceType()) && ((hasCreativeType() == false)))); } public function get height():int{ return (_height); } public function getContentFormat():String{ if (hasUrl()){ return ("URL"); }; return ("CODE"); } public function hasAdParameters():Boolean{ return (!((_adParameters == null))); } public function matchesSizeAndIndex(_arg1:int, _arg2:int, _arg3:int):Boolean{ if (matchesSize(_arg1, _arg2)){ return ((_arg3 == _index)); }; return (false); } public function getRawContent():String{ if (hasUrl()){ return (_url.url); }; return (_codeBlock); } public function clicked():void{ fireNonLinearClickTrackingExtensions(); triggerTrackingEvent(TrackingEvent.EVENT_ACCEPT); } public function get expandedHeight():int{ return (_expandedHeight); } public function hasCreativeType():Boolean{ return (!((_creativeType == null))); } public function isEmpty():Boolean{ return (((!(hasUrl())) && (!(hasCode())))); } public function set height(_arg1):void{ if (typeof(_arg1) == "string"){ _height = parseInt(_arg1); } else { _height = _arg1; }; } public function set codeBlock(_arg1:String):void{ _codeBlock = _arg1; } public function isImage():Boolean{ return (((isStaticResourceType()) && (isImageCreativeType()))); } public function getContent():String{ if (hasActiveDisplayRegion()){ return (_activeDisplayRegion.getTemplateBasedOnAdType(contentType()).getContent(this)); }; return (""); } public function hasWidth():Boolean{ return ((_width > -1)); } public function getActiveDisplayRegionID():String{ if (hasActiveDisplayRegion()){ return (_activeDisplayRegion.getRegionIDBasedOnAdType(contentType())); }; return ("auto:bottom"); } public function isInteractive():Boolean{ return (false); } public function contentType():String{ if (isFlash()){ if (isInteractive()){ return ("VPAID"); }; return ("SWF"); }; if (isHtml()){ return ("HTML"); }; if (isText()){ return ("TEXT"); }; if (isIFrame()){ return ("IFRAME"); }; if (isScript()){ return ("SCRIPT"); }; return ("IMAGE"); } public function markAsLoading():void{ _loaded = false; } public function hasHeight():Boolean{ return ((_height > -1)); } public function clearActiveDisplayRegion():void{ activeDisplayRegion = null; } public function get creativeMimeType():String{ return (_creativeType); } public function isIFrame():Boolean{ return (isIFrameResourceType()); } public function get resourceType():String{ return (_resourceType); } public function rawContentAsObject():Object{ return ({type:contentType(), format:(hasCode()) ? "CODE" : "URL", content:content}); } override public function toJSObject():Object{ var _local1:Object = super.toJSObject(); _local1.width = _width; _local1.height = _height; _local1.expandedWidth = _expandedWidth; _local1.expandedHeight = _expandedHeight; _local1.scale = _scale; _local1.resourceType = _resourceType; _local1.creativeType = _creativeType; _local1.apiFramework = _apiFramework; _local1.url = ((_url)!=null) ? _url.url : ""; _local1.codeblock = _codeBlock; return (_local1); } public function matchesSizeAndResourceType(_arg1:int, _arg2:int, _arg3:String):Boolean{ if (matchesSize(_arg1, _arg2)){ if (((!((_arg3 == null))) && (!((_resourceType == null))))){ return ((_resourceType.toUpperCase() == _arg3.toUpperCase())); }; }; return (false); } override public function clone(_arg1=null){ var _local2:NonLinearVideoAd; if (_arg1 == null){ _local2 = new NonLinearVideoAd(); } else { _local2 = _arg1; }; _local2.width = _width; _local2.height = _height; _local2.expandedWidth = _expandedWidth; _local2.expandedHeight = _expandedHeight; _local2.recommendedMinDuration = _recommendedMinDuration; _local2.resourceType = _resourceType; _local2.creativeType = _creativeType; _local2.apiFramework = _apiFramework; _local2.url = _url; _local2.codeBlock = _codeBlock; _local2.scale = _scale; _local2.addNonLinearClickTrackingExtensionItems(_nonLinearClickTrackingExtensions); return (super.clone(_local2)); } public function get adParameters():String{ return (_adParameters); } public function start(_arg1:VideoAdDisplayEvent, _arg2=null):void{ activeDisplayRegion = _arg2; triggerTrackingEvent(TrackingEvent.EVENT_CREATIVE_VIEW); triggerTrackingEvent(TrackingEvent.EVENT_START); if (_arg1.controller != null){ _arg1.controller.onDisplayNonLinearAd(new OverlayAdDisplayEvent(OverlayAdDisplayEvent.DISPLAY, this, _arg1.customData.adSlot, _arg2)); }; } public function hasUrl():Boolean{ if (_url != null){ return (_url.hasUrl()); }; return (false); } public function get url():NetworkResource{ return (_url); } public function isText():Boolean{ return (isTextResourceType()); } public function get content():String{ if (hasCode()){ return (_codeBlock); }; if (hasUrl()){ return (_url.getQualifiedStreamAddress()); }; return (""); } public function isImageCreativeType():Boolean{ return ((((((((((((((((creativeType == "IMAGE/JPEG")) || ((creativeType == "JPEG")))) || ((creativeType == "IMAGE/JPG")))) || ((creativeType == "JPG")))) || ((creativeType == "IMAGE/GIF")))) || ((creativeType == "GIF")))) || ((creativeType == "IMAGE/PNG")))) || ((creativeType == "PNG")))); } public function fireNonLinearClickTrackingExtensions():void{ var _local1:int; if (hasNonLinearClickTrackingExtensions()){ _local1 = 0; while (_local1 < _nonLinearClickTrackingExtensions.length) { _nonLinearClickTrackingExtensions[_local1].call(); _local1++; }; }; } public function isTextResourceType():Boolean{ if (_resourceType != null){ return ((_resourceType.toUpperCase() == "TEXT")); }; return (false); } public function hasExpandedHeight():Boolean{ return ((_expandedHeight > -1)); } public function set expandedHeight(_arg1):void{ if (typeof(_arg1) == "string"){ _expandedHeight = parseInt(_arg1); } else { _expandedHeight = _arg1; }; } public function get creativeType():String{ var _local1:int; if (_creativeType != null){ _local1 = _creativeType.indexOf("/"); if ((((_local1 > -1)) && (((_local1 + 1) < _creativeType.length)))){ return (_creativeType.substr((_local1 + 1))); }; }; return (_creativeType); } public function get expandedWidth():int{ return (_expandedWidth); } public function addNonLinearClickTrackingExtensionItems(_arg1:Array):void{ if (_arg1 != null){ _nonLinearClickTrackingExtensions = _nonLinearClickTrackingExtensions.concat(_arg1); }; } public function set width(_arg1):void{ if (typeof(_arg1) == "string"){ _width = parseInt(_arg1); } else { _width = _arg1; }; } public function matchesSizeAndAcceptedAdTypes(_arg1:int, _arg2:int, _arg3:Array):Boolean{ if (matchesAcceptedAdTypes(_arg3)){ return (matchesSize(_arg1, _arg2)); }; return (false); } public function isScript():Boolean{ return (((isScriptResourceType()) || (((isStaticResourceType()) && (isScriptCreativeType()))))); } public function get codeBlock():String{ return (_codeBlock); } public function isSWFCreativeType():Boolean{ if (creativeType != null){ return ((((((((creativeType.toUpperCase() == "APPLICATION/SWF")) || ((creativeType.toUpperCase() == "SWF")))) || ((creativeType.toUpperCase() == "APPLICATION/X-SHOCKWAVE-FLASH")))) || ((creativeType.toUpperCase() == "X-SHOCKWAVE-FLASH")))); }; return (false); } public function isScriptResourceType():Boolean{ if (_resourceType != null){ return ((_resourceType.toUpperCase() == "SCRIPT")); }; return (false); } public function isTextCreativeType():Boolean{ if (creativeType != null){ return ((creativeType.toUpperCase() == "TEXT")); }; return (false); } public function addNonLinearClickExtension(_arg1:NetworkResource):void{ _nonLinearClickTrackingExtensions.push(_arg1); } public function hasCode():Boolean{ if (_codeBlock != null){ return ((StringUtils.trim(_codeBlock).length > 0)); }; return (false); } public function isPermittedCreativeType(_arg1:Array):Boolean{ if (_creativeType == null){ return (true); }; var _local2:int; while (_local2 < _arg1.length) { if (StringUtils.matchesIgnoreCase(_creativeType, _arg1[_local2])){ return (true); }; _local2++; }; return (false); } public function matchesAcceptedAdTypes(_arg1:Array):Boolean{ if (_arg1 != null){ if (_arg1.length > 0){ return ((_arg1.indexOf(contentType()) > -1)); }; }; return (true); } public function isExpandable():Boolean{ return (((hasExpandedWidth()) && (hasExpandedHeight()))); } public function isStaticResourceType():Boolean{ if (_resourceType != null){ return ((_resourceType.toUpperCase() == "STATIC")); }; return (false); } public function markAsLoaded():void{ _loaded = true; } public function isScriptCreativeType():Boolean{ if (creativeType != null){ return ((((creativeType.toUpperCase() == "TEXT/JAVASCRIPT")) || ((creativeType.toUpperCase() == "JAVASCRIPT")))); }; return (false); } public function matchesSize(_arg1:int, _arg2:int):Boolean{ if ((((_arg1 == -1)) && ((_arg2 == -1)))){ return (true); }; if (_arg1 == -1){ return ((_arg2 == _height)); }; if (_arg1 == _width){ return ((_arg2 == _height)); }; return (false); } public function get width():int{ return (_width); } public function hasAPIFramework():Boolean{ return (!(StringUtils.isEmpty(_apiFramework))); } public function set resourceType(_arg1:String):void{ _resourceType = ((_arg1)!=null) ? _arg1.toUpperCase() : _arg1; } public function set adParameters(_arg1:String):void{ _adParameters = _arg1; } public function hasNonLinearClickTrackingExtensions():Boolean{ return ((_nonLinearClickTrackingExtensions.length > 0)); } public function isIFrameResourceType():Boolean{ if (_resourceType != null){ return ((_resourceType.toUpperCase() == "IFRAME")); }; return (false); } public function set url(_arg1:NetworkResource):void{ _url = _arg1; } public function set activeDisplayRegion(_arg1:AdSlotRegionConfig):void{ _activeDisplayRegion = _arg1; } public function matchesSizeAndTypes(_arg1:int, _arg2:int, _arg3:String, _arg4:String=null):Boolean{ if (matchesSize(_arg1, _arg2)){ if (((!((_arg3 == null))) && (!((_creativeType == null))))){ return ((((_creativeType.toUpperCase() == _arg3.toUpperCase())) && ((_resourceType.toUpperCase() == _arg4.toUpperCase())))); }; return ((_resourceType.toUpperCase() == _arg4.toUpperCase())); }; return (false); } public function isFlash():Boolean{ return (((isStaticResourceType()) && (isSWFCreativeType()))); } public function get activeDisplayRegion():AdSlotRegionConfig{ return (_activeDisplayRegion); } public function isHtml():Boolean{ return (((isHtmlResourceType()) || (((isStaticResourceType()) && (isHTMLCreativeType()))))); } public function hasActiveDisplayRegion():Boolean{ return (!((_activeDisplayRegion == null))); } public function get enforceRecommendedSizing():Boolean{ if (hasActiveDisplayRegion()){ return (_activeDisplayRegion.enforceRecommendedSizing); }; return (false); } public function close():void{ triggerTrackingEvent(TrackingEvent.EVENT_CLOSE); } public function isHtmlResourceType():Boolean{ if (_resourceType != null){ return ((_resourceType.toUpperCase() == "HTML")); }; return (false); } public function isHTMLCreativeType():Boolean{ if (creativeType != null){ return ((((creativeType.toUpperCase() == "HTML")) || ((creativeType.toUpperCase() == "TEXT/HTML")))); }; return (false); } override public function unload():void{ var _local1:int; super.unload(); if (hasNonLinearClickTrackingExtensions()){ _local1 = 0; while (_local1 < _nonLinearClickTrackingExtensions.length) { NetworkResource(_nonLinearClickTrackingExtensions[_local1]).close(); _local1++; }; }; } } }//package org.openvideoads.vast.model
Section 153
//TrackedVideoAd (org.openvideoads.vast.model.TrackedVideoAd) package org.openvideoads.vast.model { import org.openvideoads.base.*; import org.openvideoads.util.*; import flash.external.*; public class TrackedVideoAd extends Debuggable { protected var _canFireEventAPICalls:Boolean;// = false protected var _parentAdContainer:VideoAd;// = null protected var _customClicks:Array; protected var _extendedClickTracking:Array; protected var _id:String; protected var _isVAST2:Boolean;// = false protected var _maintainAspectRatio:Boolean;// = false protected var _recommendedMinDuration:int;// = -1 protected var _scale:Boolean;// = false protected var _trackingEvents:Array; protected var _index:int;// = -1 protected var _adID:String; protected var _clickTracking:Array; protected var _canFireAPICalls:Boolean;// = true protected var _clickThroughs:Array; public function TrackedVideoAd(){ _trackingEvents = new Array(); _clickThroughs = new Array(); _clickTracking = new Array(); _extendedClickTracking = new Array(); _customClicks = new Array(); super(); doLog(("Instantiated: UID is " + _uid), Debuggable.DEBUG_VAST_TEMPLATE); } public function addTrackingEvent(_arg1:TrackingEvent):void{ _trackingEvents.push(_arg1); } public function set adID(_arg1:String):void{ _adID = _arg1; } public function firstClickThrough():String{ if (hasClickThroughs()){ return (_clickThroughs[0].qualifiedHTTPUrl); }; return (null); } public function set customClicks(_arg1:Array):void{ _customClicks = _arg1; } public function get maintainAspectRatio():Boolean{ return (_maintainAspectRatio); } public function hasClickThroughs():Boolean{ return ((_clickThroughs.length > 0)); } protected function fireEventAPICall(... _args){ var args = _args; if (((ExternalInterface.available) && (canFireEventAPICalls))){ try { doLog((("Firing API call " + args[0]) + "()"), Debuggable.DEBUG_JAVASCRIPT); try { return (ExternalInterface.call(args[0], args[1])); } catch(e:Error) { doLog(((("Exception making external call (" + args[0]) + ") - ") + e)); }; } catch(e:Error) { doLog(((("Exception making external call (" + args[0]) + ") - ") + e)); }; }; } public function getClickThroughURLString():String{ if (hasClickThroughs()){ return (_clickThroughs[0].qualifiedUrl); }; return (null); } public function get canFireEventAPICalls():Boolean{ return (_canFireEventAPICalls); } public function set maintainAspectRatio(_arg1):void{ _maintainAspectRatio = StringUtils.validateAsBoolean(_arg1); } public function hasClickThroughURL():Boolean{ return ((_clickThroughs.length > 0)); } public function set uid(_arg1:String):void{ _uid = uid; } public function get canFireAPICalls():Boolean{ return (_canFireAPICalls); } public function get id():String{ return (_id); } public function set scale(_arg1):void{ _scale = StringUtils.validateAsBoolean(_arg1); } public function set index(_arg1:int):void{ _index = _arg1; } public function set canFireEventAPICalls(_arg1:Boolean):void{ _canFireEventAPICalls = _arg1; } public function set parentAdContainer(_arg1:VideoAd):void{ _parentAdContainer = _arg1; } public function addClickTrackingItems(_arg1:Array):void{ if (_arg1 != null){ _clickTracking = _clickTracking.concat(_arg1); }; } public function get recommendedMinDuration():int{ return (_recommendedMinDuration); } public function get duration():String{ return (Timestamp.secondsToTimestamp(_recommendedMinDuration)); } public function get trackingEvents():Array{ return (_trackingEvents); } public function getTrackingEventList():Array{ var _local2:int; var _local1:Array = new Array(); if (hasTrackingEvents()){ _local2 = 0; while (_local2 < _trackingEvents.length) { _local1.push({type:_trackingEvents[_local2].eventType, urls:_trackingEvents[_local2].getURLList()}); _local2++; }; }; return (_local1); } public function set id(_arg1:String):void{ _id = _arg1; } public function customClickCount():int{ return (_customClicks.length); } public function hasExtendedClickTracking():Boolean{ if (_extendedClickTracking != null){ return ((_extendedClickTracking.length > 0)); }; return (false); } public function addClickTrack(_arg1:NetworkResource):void{ _clickTracking.push(_arg1); } public function set clickTracking(_arg1:Array):void{ _clickTracking = _arg1; } public function set canFireAPICalls(_arg1:Boolean):void{ _canFireAPICalls = _arg1; } public function get customClicks():Array{ return (_customClicks); } public function addCustomClick(_arg1:NetworkResource):void{ _customClicks.push(_arg1); } public function get parentAdContainer():VideoAd{ return (_parentAdContainer); } public function fireClickTracking():void{ var _local1:int; if (hasClickTracking()){ _local1 = 0; while (_local1 < _clickTracking.length) { _clickTracking[_local1].call(); fireEventAPICall("onClickTrackingEvent", _clickTracking[_local1].toJSObject()); _local1++; }; }; } public function get scale():Boolean{ return (_scale); } public function get index():int{ return (_index); } public function addClickThroughs(_arg1:Array):void{ if (_clickThroughs != null){ _clickThroughs.concat(_arg1); } else { _clickThroughs = _arg1; }; } public function set recommendedMinDuration(_arg1):void{ if (typeof(_arg1) == "string"){ _recommendedMinDuration = parseInt(_arg1); } else { _recommendedMinDuration = _arg1; }; } public function fireCustomClickTracking():void{ var _local1:int; if (hasCustomClickTracking()){ _local1 = 0; while (_local1 < _customClicks.length) { _customClicks[_local1].call(); fireEventAPICall("onCustomClickTrackingEvent", _customClicks[_local1].toJSObject()); _local1++; }; }; } public function triggerTrackingEvent(_arg1:String):void{ var _local2:int; var _local3:TrackingEvent; if (((!((_trackingEvents == null))) && (!((_arg1 == null))))){ _local2 = 0; while (_local2 < _trackingEvents.length) { _local3 = _trackingEvents[_local2]; if (_local3.eventType != null){ if (_local3.eventType.toUpperCase() == _arg1.toUpperCase()){ _local3.execute(); fireEventAPICall("onTrackingEvent", _local3.toJSObject()); }; }; _local2++; }; }; } public function addTrackingEventItems(_arg1:Array):void{ _trackingEvents = _trackingEvents.concat(_arg1); } public function get clickTracking():Array{ return (_clickTracking); } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {adId:_adID, id:_id, uid:_uid, trackingEvents:ArrayUtils.convertToJSObjectArray(_trackingEvents), clickThroughs:ArrayUtils.convertToJSObjectArray(_clickThroughs), clickTracking:ArrayUtils.convertToJSObjectArray(_clickTracking), customClicks:ArrayUtils.convertToJSObjectArray(_customClicks), scale:_scale, maintainAspectRatio:_maintainAspectRatio, recommendedMinDuration:_recommendedMinDuration, index:_index, isVAST2:_isVAST2}; return (_local1); } public function getClickThroughURLArray():Array{ var _local2:int; var _local1:Array = new Array(); if (hasClickThroughs()){ _local2 = 0; while (_local2 < _clickThroughs.length) { _local1.push(_clickThroughs[_local2].qualifiedHTTPUrl); _local2++; }; }; return (_local1); } public function hasRecommendedMinDuration():Boolean{ return ((_recommendedMinDuration > -1)); } public function set trackingEvents(_arg1:Array):void{ _trackingEvents = _arg1; } public function hasTrackingEvents():Boolean{ return ((_trackingEvents.length > 0)); } public function set clickThroughs(_arg1:Array):void{ _clickThroughs = _arg1; } public function addClickThrough(_arg1:NetworkResource):void{ _clickThroughs.push(_arg1); } public function clickTrackingCount():int{ return (_clickTracking.length); } public function clickThroughCount():int{ return (_clickThroughs.length); } public function getDurationAsInt():int{ return (Timestamp.timestampToSeconds(duration)); } public function clone(_arg1=null){ var _local2:TrackedVideoAd; var _local3:TrackingEvent; var _local4:NetworkResource; var _local5:NetworkResource; var _local6:NetworkResource; if (_arg1 == null){ _local2 = new TrackedVideoAd(); } else { _local2 = _arg1; }; _local2.id = _id; _local2.uid = _uid; _local2.adID = _adID; _local2.parentAdContainer = _parentAdContainer; _local2.scale = _scale; _local2.maintainAspectRatio = _maintainAspectRatio; _local2.recommendedMinDuration = _recommendedMinDuration; _local2.index = _index; _local2.isVAST2 = _isVAST2; for each (_local3 in _trackingEvents) { _local2.addTrackingEvent(_local3.clone()); }; for each (_local4 in _clickThroughs) { _local2.addClickThrough(_local4.clone()); }; for each (_local5 in _clickTracking) { _local2.addClickTrack(_local5.clone()); }; for each (_local6 in _customClicks) { _local2.addCustomClick(_local6.clone()); }; return (_local2); } public function get clickThroughs():Array{ return (_clickThroughs); } public function set isVAST2(_arg1:Boolean):void{ _isVAST2 = _arg1; } public function addCustomClickTrackingItems(_arg1:Array):void{ if (_arg1 != null){ _customClicks = _customClicks.concat(_arg1); }; } public function hasCustomClickTracking():Boolean{ return ((_customClicks.length > 0)); } public function get isVAST2():Boolean{ return (_isVAST2); } public function hasClickTracking():Boolean{ return ((_clickTracking.length > 0)); } public function get adID():String{ return (_adID); } public function unload():void{ var _local1:int; var _local2:int; var _local3:int; if (hasClickTracking()){ _local1 = 0; while (_local1 < _clickTracking.length) { NetworkResource(_clickTracking[_local1]).close(); _local1++; }; }; if (hasCustomClickTracking()){ _local2 = 0; while (_local2 < _customClicks.length) { NetworkResource(_customClicks[_local2]).close(); _local2++; }; }; if (hasExtendedClickTracking()){ _local3 = 0; while (_local3 < _extendedClickTracking.length) { NetworkResource(_extendedClickTracking[_local3]).close(); _local3++; }; }; } } }//package org.openvideoads.vast.model
Section 154
//TrackingEvent (org.openvideoads.vast.model.TrackingEvent) package org.openvideoads.vast.model { import org.openvideoads.base.*; import org.openvideoads.util.*; public class TrackingEvent extends Debuggable { private var _urls:Array; private var _alwaysFire:Boolean;// = false private var _eventType:String; private var _lastFired:Number;// = -1 public static const EVENT_REPLAY:String = "replay"; public static const EVENT_1STQUARTILE:String = "firstQuartile"; public static const EVENT_PAUSE:String = "pause"; public static const EVENT_RESUME:String = "resume"; public static const EVENT_CLOSE:String = "close"; public static const EVENT_UNMUTE:String = "unmute"; public static const EVENT_COLLAPSE:String = "collapse"; public static const EVENT_COMPLETE:String = "complete"; public static const EVENT_3RDQUARTILE:String = "thirdQuartile"; public static const EVENT_STOP:String = "stop"; public static const EVENT_MIDPOINT:String = "midpoint"; public static const EVENT_FULLSCREEN:String = "fullscreen"; public static const EVENT_CREATIVE_VIEW:String = "creativeView"; public static const EVENT_ACCEPT:String = "acceptInvitation"; public static const TRIGGER_FIRE_DELAY_MILLISECONDS:Number = 5000; public static const EVENT_REWIND:String = "rewind"; public static const EVENT_START:String = "start"; public static const EVENT_MUTE:String = "mute"; public static const EVENT_EXPAND:String = "expand"; public function TrackingEvent(_arg1:String=null, _arg2:NetworkResource=null, _arg3:Boolean=false){ _urls = new Array(); super(); _eventType = _arg1; _alwaysFire = _arg3; if (_arg2 != null){ addURL(_arg2); }; } public function set eventType(_arg1:String):void{ _eventType = _arg1; } public function set urls(_arg1:Array):void{ _urls = _arg1; } public function get urls():Array{ return (_urls); } public function addURL(_arg1:NetworkResource):void{ _urls.push(_arg1); } public function get eventType():String{ return (_eventType); } public function getURLList():Array{ var _local2:int; var _local1:Array = new Array(); if (_urls != null){ _local2 = 0; while (_local2 < _urls.length) { _local1.push(NetworkResource(_urls[_local2]).url); _local2++; }; }; return (_local1); } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {uid:_uid, eventType:_eventType, urls:ArrayUtils.convertToJSObjectArray(_urls), alwaysFire:_alwaysFire}; return (_local1); } public function execute():void{ doLog(("Firing tracking event - " + eventType), Debuggable.DEBUG_TRACKING_EVENTS); var _local1:int; while (_local1 < _urls.length) { urls[_local1].call(); _local1++; }; } public function clone():TrackingEvent{ var _local1:TrackingEvent = new TrackingEvent(_eventType, null, _alwaysFire); _local1.urls = _urls; return (_local1); } public function unload():void{ var _local1:int; if (_urls != null){ _local1 = 0; while (_local1 < _urls.length) { urls[_local1].close(); _local1++; }; }; } } }//package org.openvideoads.vast.model
Section 155
//VideoAd (org.openvideoads.vast.model.VideoAd) package org.openvideoads.vast.model { import org.openvideoads.vast.events.*; import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.regions.view.*; import flash.external.*; public class VideoAd extends Debuggable { protected var _canFireEventAPICalls:Boolean;// = false protected var _error:String; protected var _linearVideoAd:LinearVideoAd;// = null protected var _nonLinearVideoAds:Array; protected var _preferredSelectionCriteria:Object;// = null protected var _description:String; protected var _wrapper:WrappedVideoAdV1;// = null protected var _sequenceId:String; protected var _inlineAdId:String;// = null protected var _survey:String; protected var _adId:String;// = null protected var _adSystem:String; protected var _canFireAPICalls:Boolean;// = true protected var _extensions:Array; protected var _id:String; protected var _adTitle:String; protected var _creativeId:String; protected var _impressions:Array; protected var _trackingEvents:Array; protected var _companionAds:Array; protected var _indexCounters:Array; protected var _impressionsFired:Boolean;// = false public static const AD_TYPE_NON_LINEAR:String = "non-linear"; public static const AD_TYPE_UNKNOWN:String = "unknown"; public static const AD_TYPE_COMPANION:String = "companion"; public static const AD_TYPE_VPAID_LINEAR:String = "linear-vpaid"; public static const AD_TYPE_LINEAR:String = "linear"; public static const AD_TYPE_VPAID_NON_LINEAR:String = "non-linear-vpaid"; public function VideoAd(){ _impressions = new Array(); _trackingEvents = new Array(); _nonLinearVideoAds = new Array(); _companionAds = new Array(); _indexCounters = new Array(); _extensions = new Array(); super(); } public function parseCompanions(_arg1:XML):void{ var _local4:XML; var _local5:CompanionAd; var _local6:XMLList; var _local7:XML; var _local8:int; doLog("Parsing V1.X CompanionAd tags...", Debuggable.DEBUG_VAST_TEMPLATE); var _local2:XMLList = _arg1.CompanionAds.children(); var _local3:int; doLog((_local2.length() + " companions specified"), Debuggable.DEBUG_VAST_TEMPLATE); clearIndexCounters(); _local3 = 0; while (_local3 < _local2.length()) { _local4 = _local2[_local3]; _local5 = new CompanionAd(this); _local5.id = _local4.@id; _local5.width = _local4.@width; _local5.height = _local4.@height; _local5.index = createIndex(_local5.width, _local5.height); if (_local4.@resourceType != undefined){ _local5.resourceType = _local4.@resourceType; } else { _local5.resourceType = "static"; }; if (_local4.@creativeType != undefined){ _local5.creativeType = _local4.@creativeType; }; if (_local4.URL != undefined){ _local5.url = new NetworkResource(null, _local4.URL.text()); }; if (_local4.Code != undefined){ _local5.codeBlock = _local4.Code.text(); }; if (_local4.AltText != undefined){ _local5.altText = _local4.AltText.text(); }; if (_local4.AdParameters != undefined){ _local5.adParameters = _local4.AdParameters.text(); doLog("Companion Ad has adParameters set", Debuggable.DEBUG_VAST_TEMPLATE); }; if (_local4.CompanionClickThrough != undefined){ doLog("Parsing V1.X Companion ClickThrough tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = _local4.CompanionClickThrough; doLog((_local6.length() + " Companion ClickThroughs detected"), Debuggable.DEBUG_VAST_TEMPLATE); _local8 = 0; while (_local8 < _local6.length()) { _local7 = _local6[_local8]; if (_local7.URL != undefined){ _local5.addClickThrough(new NetworkResource(_local7.@id, _local7.URL.text())); }; _local8++; }; }; this.addCompanionAd(_local5); _local3++; }; } public function addTrackingEvent(_arg1:TrackingEvent):void{ _trackingEvents.push(_arg1); } public function get companionAds():Array{ return (_companionAds); } public function triggerCreativeViewEvents():void{ _triggerTrackingEvent(TrackingEvent.EVENT_CREATIVE_VIEW); } public function get error():String{ return (_error); } public function hasTrackingEvents():Boolean{ return ((_trackingEvents.length > 0)); } public function addNonLinearVideoAd(_arg1:NonLinearVideoAd):void{ _arg1.parentAdContainer = this; _nonLinearVideoAds.push(_arg1); } public function canFireEventAPICalls():Boolean{ return (_canFireEventAPICalls); } public function set error(_arg1:String):void{ _error = _arg1; } public function isCompanion():Boolean{ return (((((!(isLinear())) && (!(isNonLinear())))) && (hasCompanionAds()))); } public function set impressions(_arg1:Array):void{ _impressions = _arg1; } public function processAdCompleteEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_COMPLETE); fireAPICall("onLinearAdFinish", toJSObject()); } public function set companionAds(_arg1:Array):void{ _companionAds = _arg1; } public function get linearVideoAd():LinearVideoAd{ return (_linearVideoAd); } public function get id():String{ return (_id); } public function get firstNonLinearVideoAd():NonLinearVideoAd{ if (hasNonLinearAds()){ return (_nonLinearVideoAds[0]); }; return (null); } protected function isAcceptableLinearAdMediaFileMimeType(_arg1:String, _arg2:AdServerConfig):Boolean{ if (_arg2 != null){ return (_arg2.isAcceptedLinearAdMimeType(_arg1)); }; return (true); } public function get extensions():Array{ return (_extensions); } public function set wrapper(_arg1:WrappedVideoAdV1):void{ _wrapper = _arg1; } public function parseExtensions(_arg1:XML):void{ var _local4:XML; var _local5:XMLList; var _local6:Array; var _local7:int; var _local8:int; var _local2:XMLList = _arg1.Extensions.children(); doLog((("Parsing V1.0 extension tags (" + _local2.length()) + ") - The only tags supported at this time are: type='NonLinearClickTracking'"), Debuggable.DEBUG_VAST_TEMPLATE); var _local3:int; while (_local3 < _local2.length()) { _local4 = _local2[_local3]; if (_local4.@type == "NonLinearClickTracking"){ if (_local4.ClickTracking != undefined){ doLog((("Have " + _local4.ClickTracking.children().length()) + " non-linear click tracking extensions specified"), Debuggable.DEBUG_VAST_TEMPLATE); _local5 = _local4.ClickTracking.children(); _local6 = new Array(); _local7 = 0; while (_local7 < _local5.length()) { if (!StringUtils.isEmpty(_local5[_local7].text())){ _local6.push(new NetworkResource(_local5[_local7].@id, _local5[_local7].text())); }; _local7++; }; _local8 = 0; while (_local8 < _nonLinearVideoAds.length) { NonLinearVideoAd(_nonLinearVideoAds[_local8]).addNonLinearClickTrackingExtensionItems(_local6); _local8++; }; doLog((((("Added " + _local6.length) + " click tracking extensions to ") + _nonLinearVideoAds.length) + " non-linear ads"), Debuggable.DEBUG_ALWAYS); }; }; _local3++; }; } public function get creativeId():String{ return (_creativeId); } public function getDurationGivenRecommendation(_arg1:int):int{ var _local2:int = duration; if ((((_local2 == 0)) && ((_arg1 > 0)))){ return (_arg1); }; return (_local2); } public function isWrapperTemplateAd():Boolean{ return (isEmpty()); } public function set extensions(_arg1:Array):void{ if (_arg1 != null){ _extensions = _arg1; } else { _extensions = new Array(); }; } public function canFireAPICalls():Boolean{ return (_canFireAPICalls); } public function getPreferredBitrate(){ if (_preferredSelectionCriteria != null){ if (_preferredSelectionCriteria.hasOwnProperty("bitrate")){ return (_preferredSelectionCriteria.bitrate); }; }; return (-1); } public function get adSystem():String{ return (_adSystem); } public function set id(_arg1:String):void{ _id = _arg1; } public function setLinearAdDurationFromSeconds(_arg1:int):void{ if (_linearVideoAd != null){ _linearVideoAd.setDurationFromSeconds(_arg1); } else { doLog("ERROR: Cannot change the duration for this linear ad - it does not have a linear ad attached", Debuggable.DEBUG_CONFIG); }; } public function addImpressions(_arg1:Array):void{ _impressions = _impressions.concat(_arg1); } public function set linearVideoAd(_arg1:LinearVideoAd):void{ _arg1.parentAdContainer = this; _linearVideoAd = _arg1; } public function addClickTrackingItems(_arg1:Array):void{ if (_linearVideoAd != null){ _linearVideoAd.addClickTrackingItems(_arg1); }; } public function set adId(_arg1:String):void{ _adId = _arg1; } public function getImpressionList():Array{ var _local2:int; var _local1:Array = new Array(); if (hasImpressions()){ _local2 = 0; while (_local2 < _impressions.length) { _local1.push(NetworkResource(_impressions[_local2]).url); _local2++; }; }; return (_local1); } public function processFullScreenExitAdEvent():void{ fireAPICall("onLinearAdFullscreenExit", toJSObject()); } public function processFirstQuartileCompleteAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_1STQUARTILE); fireAPICall("onLinearAdFirstQuartileComplete", toJSObject()); } protected function _triggerTrackingEvent(_arg1:String, _arg2:String=null):void{ var _local4:TrackingEvent; var _local3:int; while (_local3 < _trackingEvents.length) { _local4 = _trackingEvents[_local3]; if (_local4.eventType == _arg1){ _local4.execute(); fireEventAPICall("onTrackingEvent", _local4.toJSObject()); }; _local3++; }; } public function parseTrackingEvents(_arg1:XML):void{ var _local2:XMLList; var _local3:int; var _local4:XML; var _local5:TrackingEvent; var _local6:XMLList; var _local7:int; var _local8:XML; doLog("Parsing V1.X TrackingEvent tags...", Debuggable.DEBUG_VAST_TEMPLATE); if (((!((_arg1.TrackingEvents == null))) && (!((_arg1.TrackingEvents.children() == null))))){ _local2 = _arg1.TrackingEvents.children(); doLog((_local2.length() + " tracking events specified"), Debuggable.DEBUG_VAST_TEMPLATE); _local3 = 0; while (_local3 < _local2.length()) { _local4 = _local2[_local3]; _local5 = new TrackingEvent(_local4.@event); _local6 = _local4.children(); _local7 = 0; while (_local7 < _local6.length()) { _local8 = _local6[_local7]; _local5.addURL(new NetworkResource(_local8.@id, _local8.text())); _local7++; }; this.addTrackingEvent(_local5); _local3++; }; }; } protected function createIndex(_arg1:int, _arg2:int):int{ var _local3:int; while (_local3 < _indexCounters.length) { if ((((_indexCounters[_local3].width == _arg1)) && ((_indexCounters[_local3].height == _arg2)))){ _indexCounters[_local3].index = (_indexCounters[_local3].index + 1); return (_indexCounters[_local3].index); }; _local3++; }; _indexCounters.push({width:_arg1, height:_arg2, index:0}); return (0); } public function isFromAdSystem(_arg1:String):Boolean{ return (StringUtils.matchesIgnoreCase(_adSystem, "OPENX")); } public function split():Array{ var _local2:VideoAd; var _local1:Array = new Array(); if (((hasLinearAd()) && (hasNonLinearAds()))){ _local2 = new VideoAd(); _local2.inlineAdId = _inlineAdId; _local2.adId = _adId; _local2.sequenceId = _sequenceId; _local2.creativeId = _creativeId; _local2.adSystem = _adSystem; _local2.adTitle = _adTitle; _local2.description = _description; _local2.survey = _survey; _local2.error = _error; _local2.impressions = _impressions; _local2.trackingEvents = _trackingEvents; _local2.companionAds = _companionAds; _local2.extensions = _extensions; _local2.setCanFireAPICalls(_canFireAPICalls); _local2.setCanFireEventAPICalls(_canFireEventAPICalls); _local2.nonLinearVideoAds = _nonLinearVideoAds; this.nonLinearVideoAds = new Array(); _local1.push(this); _local1.push(_local2); } else { _local1.push(this); }; return (_local1); } public function hasEmptyLinearAd():Boolean{ if (linearVideoAd != null){ return (linearVideoAd.isEmpty()); }; return (true); } public function isEmpty():Boolean{ if (isLinear()){ return (hasEmptyLinearAd()); }; if (isNonLinear()){ return (hasEmptyNonLinearAds()); }; if (isCompanionOnlyAd()){ }; return (true); } public function triggerTrackingEvent(_arg1:String, _arg2:String=null):void{ _triggerTrackingEvent(_arg1, _arg2); } public function addCompanionAds(_arg1:Array):void{ _companionAds = _companionAds.concat(_arg1); } public function hasExtensions():Boolean{ return ((_extensions.length > 0)); } public function isNonLinear():Boolean{ return (hasNonLinearAds()); } public function set nonLinearVideoAds(_arg1:Array):void{ var _local2:NonLinearVideoAd; if (_arg1 != null){ for each (_local2 in _arg1) { addNonLinearVideoAd(_local2); }; }; _nonLinearVideoAds = _arg1; } public function isInteractive():Boolean{ if (isLinear()){ return (_linearVideoAd.isInteractive(getPreferredDeliveryType(), getPreferredMimeType(), getPreferredBitrate(), getPreferredWidth(), getPreferredHeight(), hasPreferredSelectionCriteria())); }; if (hasNonLinearAds()){ return (NonLinearVideoAd(_nonLinearVideoAds[0]).isInteractive()); }; return (false); } public function get survey():String{ return (_survey); } public function set creativeId(_arg1:String):void{ _creativeId = _arg1; } public function shouldMaintainAspectRatio():Boolean{ if (_linearVideoAd != null){ return (_linearVideoAd.shouldMaintainAspectRatio(getPreferredDeliveryType(), getPreferredMimeType(), getPreferredBitrate(), getPreferredWidth(), getPreferredHeight(), hasPreferredSelectionCriteria())); }; return (false); } public function setCanFireAPICalls(_arg1:Boolean):void{ _canFireAPICalls = _arg1; } public function set trackingEvents(_arg1:Array):void{ _trackingEvents = _arg1; } public function canScale():Boolean{ if (_linearVideoAd != null){ return (_linearVideoAd.canScale(getPreferredDeliveryType(), getPreferredMimeType(), getPreferredBitrate(), getPreferredWidth(), getPreferredHeight(), hasPreferredSelectionCriteria())); }; return (false); } public function companionCount():int{ if (_companionAds != null){ return (_companionAds.length); }; return (0); } public function set adSystem(_arg1:String):void{ _adSystem = _arg1; } public function getStreamToPlay():AdNetworkResource{ if (((isLinear()) || (((isNonLinear()) && (!((_linearVideoAd == null))))))){ return (_linearVideoAd.getStreamToPlay(getPreferredDeliveryType(), getPreferredMimeType(), getPreferredBitrate(), getPreferredWidth(), getPreferredHeight(), hasPreferredSelectionCriteria())); }; return (null); } public function processReplayAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_REPLAY); fireAPICall("onLinearAdReplay", toJSObject()); } public function processThirdQuartileCompleteAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_3RDQUARTILE); fireAPICall("onLinearAdThirdQuartileComplete", toJSObject()); } public function belongsToInlineAd(_arg1:String):Boolean{ return ((_inlineAdId == _arg1)); } public function processResumeAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_RESUME); fireAPICall("onLinearAdResume", toJSObject()); } public function processPauseAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_PAUSE); fireAPICall("onLinearAdPause", toJSObject()); } public function injectAllTrackingData(_arg1:VideoAd):VideoAd{ return (_arg1); } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {id:_id, uid:_uid, adId:_adId, inlineAdId:_inlineAdId, type:this.adType, adSystem:_adSystem, adTitle:_adTitle, description:_description, survey:_survey, impressions:ArrayUtils.convertToJSObjectArray(_impressions), trackingEvents:ArrayUtils.convertToJSObjectArray(_trackingEvents), linearAd:linearAdToJSObject(), nonLinearAds:nonLinearAdsToJSObjects(), companionAds:companionAdsToJSObjects(), sequenceId:_sequenceId, creativeId:_creativeId, extensions:_extensions}; return (_local1); } public function triggerForcedImpressionConfirmations(_arg1:Boolean=false):void{ var _local2:int; var _local3:NetworkResource; if (((_arg1) || (!(_impressionsFired)))){ doLog(((((("Firing " + _impressions.length) + " impressions forcibly for video ad '") + this.id) + "' - ") + this.uid), Debuggable.DEBUG_TRACKING_EVENTS); _local2 = 0; while (_local2 < _impressions.length) { _local3 = _impressions[_local2]; _local3.call(); fireEventAPICall("onImpressionEvent", _local3.toJSObject(), true); _local2++; }; _impressionsFired = true; } else { doLog("Not forcing impressions to fire - already fired once!", Debuggable.DEBUG_TRACKING_EVENTS); }; } protected function clearActiveDisplayRegions():void{ var _local1:int; while (_local1 < _nonLinearVideoAds.length) { _nonLinearVideoAds[_local1].clearActiveDisplayRegion(); _local1++; }; } public function set sequenceId(_arg1:String):void{ _sequenceId = _arg1; } public function parseNonLinears(_arg1:XML, _arg2:int=-1):void{ var _local5:XML; var _local6:NonLinearVideoAd; var _local7:XMLList; var _local8:XML; var _local9:int; doLog("Parsing V1.X NonLinearAd tags...", Debuggable.DEBUG_VAST_TEMPLATE); var _local3:XMLList = _arg1.NonLinearAds.children(); var _local4:int; doLog((_local3.length() + " non-linear ads specified"), Debuggable.DEBUG_VAST_TEMPLATE); _local4 = 0; while (_local4 < _local3.length()) { _local5 = _local3[_local4]; _local6 = null; switch (_local5.@resourceType.toUpperCase()){ case "HTML": doLog("Creating NonLinearHtmlAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearHtmlAd(); break; case "TEXT": doLog("Creating NonLinearTextAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearTextAd(); break; case "SCRIPT": doLog("Creating NonLinearScriptAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearScriptAd(); break; case "IFRAME": doLog("Creating NonLinearIFrameAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearIFrameAd(); break; case "STATIC": if (((!((_local5.@creativeType == undefined))) && (!((_local5.@creativeType == null))))){ switch (_local5.@creativeType.toUpperCase()){ case "IMAGE/JPEG": case "JPEG": case "IMAGE/GIF": case "GIF": case "IMAGE/PNG": case "PNG": doLog("Creating NonLinearImageAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearImageAd(); break; case "APPLICATION/X-SHOCKWAVE-FLASH": case "SWF": if (StringUtils.matchesIgnoreCase(_local5.@apiFramework, "VPAID")){ doLog("Creating VPAIDNonLinearAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new VPAIDNonLinearAd(); } else { doLog("Creating NonLinearFlashAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearFlashAd(); }; break; case "SCRIPT": case "JAVASCRIPT": case "TEXT/JAVASCRIPT": case "TEXT/SCRIPT": _local6 = new NonLinearScriptAd(); break; default: doLog("Creating NonLinearVideoAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = new NonLinearVideoAd(); }; } else { _local6 = new NonLinearVideoAd(); }; break; default: _local6 = new NonLinearVideoAd(); }; _local6.canFireAPICalls = _canFireAPICalls; _local6.canFireEventAPICalls = _canFireEventAPICalls; _local6.index = _arg2; _local6.id = _local5.@id; _local6.width = _local5.@width; _local6.height = _local5.@height; if (_local5.@expandedWidth != undefined){ _local6.expandedWidth = _local5.@expandedWidth; }; if (_local5.@expandedHeight != undefined){ _local6.expandedHeight = _local5.@expandedHeight; }; _local6.resourceType = _local5.@resourceType; _local6.creativeType = _local5.@creativeType; _local6.apiFramework = _local5.@apiFramework; _local6.maintainAspectRatio = _local5.@maintainAspectRatio; _local6.scale = _local5.@scalable; if (_local5.URL != undefined){ _local6.url = new NetworkResource(null, _local5.URL.text()); }; if (_local5.Code != undefined){ _local6.codeBlock = _local5.Code.text(); }; if (_local5.NonLinearClickThrough != undefined){ _local7 = _local5.NonLinearClickThrough.children(); _local9 = 0; while (_local9 < _local7.length()) { _local8 = _local7[_local9]; _local6.addClickThrough(new NetworkResource(_local8.@id, _local8.text())); _local9++; }; }; this.addNonLinearVideoAd(_local6); _local4++; }; } public function getPreferredMimeType(){ if (_preferredSelectionCriteria != null){ if (_preferredSelectionCriteria.hasOwnProperty("mimeType")){ return (_preferredSelectionCriteria.mimeType); }; }; return ("any"); } public function processFullScreenAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_FULLSCREEN); fireAPICall("onLinearAdFullscreen", toJSObject()); } protected function fireAPICall(... _args){ var args = _args; if (((ExternalInterface.available) && (canFireAPICalls()))){ try { doLog((("Firing API call " + args[0]) + "()"), Debuggable.DEBUG_API); switch (args.length){ case 1: return (ExternalInterface.call(args[0])); case 2: return (ExternalInterface.call(args[0], args[1])); case 3: return (ExternalInterface.call(args[0], args[1], args[2])); default: return (ExternalInterface.call(args[0], args[1], args[2], args[3])); }; } catch(e:Error) { doLog(((("Exception making external call (" + args[0]) + ") - ") + e), Debuggable.DEBUG_API); }; }; } public function triggerImpressionConfirmations(_arg1:Boolean=false):void{ var _local2:int; var _local3:NetworkResource; if (((_arg1) || (!(_impressionsFired)))){ _local2 = 0; while (_local2 < _impressions.length) { _local3 = _impressions[_local2]; _local3.call(); fireEventAPICall("onImpressionEvent", _local3.toJSObject(), false); _local2++; }; }; _impressionsFired = true; } public function processUnmuteAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_UNMUTE); fireAPICall("onLinearAdUnmute", toJSObject()); } public function processStopNonLinearAdEvent(_arg1:VideoAdDisplayEvent):void{ var _local2:int; while (_local2 < _nonLinearVideoAds.length) { if (_nonLinearVideoAds[_local2].hasActiveDisplayRegion()){ _nonLinearVideoAds[_local2].stop(_arg1); }; _local2++; }; } public function hasEmptyNonLinearAds():Boolean{ var _local1:Boolean; var _local2:int; if (hasNonLinearAds()){ _local1 = true; _local2 = 0; while (_local2 < _nonLinearVideoAds.length) { if (_nonLinearVideoAds[_local2].isEmpty() == false){ _local1 = false; }; _local2++; }; return (_local1); }; return (false); } public function get impressions():Array{ return (_impressions); } public function processStartAdEvent():void{ if (hasNonLinearAds() == false){ triggerImpressionConfirmations(); }; triggerCreativeViewEvents(); _triggerTrackingEvent(TrackingEvent.EVENT_START); fireAPICall("onLinearAdStart", toJSObject()); } public function setPreferredSelectionCriteria(_arg1:Object):void{ _preferredSelectionCriteria = _arg1; } public function hasImpressions():Boolean{ return ((_impressions.length > 0)); } public function get wrapper():WrappedVideoAdV1{ return (_wrapper); } public function get duration():int{ if (_linearVideoAd != null){ return (Timestamp.timestampToSeconds(_linearVideoAd.duration)); }; if (hasNonLinearAds()){ if (_nonLinearVideoAds[0].hasRecommendedMinDuration()){ return (_nonLinearVideoAds[0].recommendedMinDuration); }; }; return (0); } public function setCanFireEventAPICalls(_arg1:Boolean):void{ _canFireEventAPICalls = _arg1; } public function hasWrapper():Boolean{ return (!((_wrapper == null))); } public function processHitMidpointAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_MIDPOINT); fireAPICall("onLinearAdMidPointComplete", toJSObject()); } protected function clearIndexCounters():void{ _indexCounters = new Array(); } public function isCompanionOnlyAd():Boolean{ if (hasCompanionAds()){ return ((((hasLinearAd() == false)) && ((hasNonLinearAds() == false)))); }; return (false); } public function nonLinearAdsToJSObjects():Array{ var _local2:int; var _local1:Array = new Array(); if (hasNonLinearAds()){ _local2 = 0; while (_local2 < _nonLinearVideoAds.length) { _local1.push(_nonLinearVideoAds[_local2].toJSObject()); _local2++; }; }; return (_local1); } public function addImpression(_arg1:NetworkResource):void{ _impressions.push(_arg1); } public function get adId():String{ return (_adId); } public function get nonLinearVideoAds():Array{ return (_nonLinearVideoAds); } public function linearAdToJSObject():Object{ if (hasLinearAd()){ return (_linearVideoAd.toJSObject()); }; return (""); } protected function hasNonLinearAdsAvailableForDisplay(_arg1:Array):int{ var _local2:int; while (_local2 < _nonLinearVideoAds.length) { if ((((_nonLinearVideoAds[_local2].hasActiveDisplayRegion() == false)) && (_nonLinearVideoAds[_local2].matchesAcceptedAdTypes(_arg1)))){ return (_local2); }; _local2++; }; return (-1); } public function set inlineAdId(_arg1:String):void{ _inlineAdId = _arg1; } public function get trackingEvents():Array{ return (_trackingEvents); } public function set survey(_arg1:String):void{ _survey = _arg1; } public function hasNonLinearAds():Boolean{ return ((_nonLinearVideoAds.length > 0)); } public function getPreferredDeliveryType():String{ if (_preferredSelectionCriteria != null){ if (_preferredSelectionCriteria.hasOwnProperty("deliveryType")){ return (_preferredSelectionCriteria.deliveryType); }; }; return ("any"); } public function getPreferredWidth(){ if (_preferredSelectionCriteria != null){ if (_preferredSelectionCriteria.hasOwnProperty("width")){ return (_preferredSelectionCriteria.width); }; }; return (-1); } public function get sequenceId():String{ return (_sequenceId); } public function hasCompanionAds():Boolean{ return ((_companionAds.length > 0)); } public function getFlashMediaToPlay(_arg1:Number, _arg2:Number, _arg3:Boolean=false):FlashMedia{ var _local4:int; var _local5:int; var _local6:int; var _local7:int; if (isLinear()){ return ((_linearVideoAd.getMediaFileToPlay(null, ["APPLICATION/X-SHOCKWAVE-FLASH", "SWF"], -1, _arg1, _arg2, _arg3) as FlashMedia)); }; if (hasNonLinearAds()){ if (_nonLinearVideoAds.length == 1){ if ((_nonLinearVideoAds[0] is NonLinearFlashAd)){ return (_nonLinearVideoAds[0]); }; } else { _local4 = -1; _local5 = -1; _local6 = -1; _local7 = 0; while (_local7 < _nonLinearVideoAds.length) { if ((_nonLinearVideoAds[_local7] is NonLinearFlashAd)){ if ((((_nonLinearVideoAds[_local7].width == _arg1)) && ((_nonLinearVideoAds[_local7].height == _arg2)))){ return (_nonLinearVideoAds[_local7]); }; _local6 = (Math.abs((_nonLinearVideoAds[_local7].width - _arg1)) + Math.abs((_nonLinearVideoAds[_local7].height - _arg2))); if ((((_local5 == -1)) || ((_local6 < _local5)))){ _local4 = _local7; _local5 = _local6; }; }; _local7++; }; if (_local4 > -1){ return (_nonLinearVideoAds[_local4]); }; }; }; return (null); } public function getMatchingCompanions(_arg1:Array):Array{ var _local2:Array; var _local3:Array; var _local4:int; var _local5:int; if (((!((_arg1 == null))) && (hasCompanionAds()))){ _local2 = new Array(); _local3 = new Array(); _local4 = 0; while (_local4 < _arg1.length) { _local5 = 0; while (_local5 < _companionAds.length) { if (_local3.indexOf(_companionAds[_local5]) == -1){ if (_companionAds[_local5].suitableForDisplayInDIV(_arg1[_local4])){ _local3.push({div:_arg1[_local4], companion:_companionAds[_local5]}); }; }; _local5++; }; _local4++; }; return (_local3); }; return (new Array()); } public function parseLinears(_arg1:XML, _arg2:int=-1, _arg3:AdServerConfig=null):void{ var _local8:XMLList; var _local9:XML; var _local10:int; var _local11:XMLList; var _local12:XML; var _local13:MediaFile; var _local14:XML; doLog("Parsing V1.X Linear Ad tags...", Debuggable.DEBUG_VAST_TEMPLATE); var _local4:LinearVideoAd = new LinearVideoAd(); var _local5 = ""; var _local6 = ""; _local4.adID = _arg1.Video.AdID; _local4.index = _arg2; _local4.canFireAPICalls = _canFireAPICalls; _local4.canFireEventAPICalls = _canFireEventAPICalls; var _local7:String; if (_arg1.Video.VideoLength != undefined){ _local7 = _arg1.Video.VideoLength; } else { if (_arg1.Video.Duration != undefined){ _local7 = _arg1.Video.Duration; }; }; if (_local7 != null){ if (Timestamp.validate(_local7)){ _local4.duration = _local7; } else { _local4.duration = Timestamp.secondsStringToTimestamp(_local7); doLog(("Duration has been specified in non-compliant manner (hh:mm:ss) - assuming seconds - converted to: " + _local4.duration), Debuggable.DEBUG_VAST_TEMPLATE); }; }; if (_arg1.Video.AdParameters != undefined){ if (!StringUtils.isEmpty(_arg1.Video.AdParameters.@apiFramework)){ _local5 = _arg1.Video.AdParameters.@apiFramework; _local6 = _arg1.Video.AdParameters.text(); doLog((("Have recorded an apiFramework ('" + _local5) + "') and ad parameters for this video ad"), Debuggable.DEBUG_VAST_TEMPLATE); } else { doLog("Cannot record ad parameters for this video ad - apiFramework not specified", Debuggable.DEBUG_VAST_TEMPLATE); }; }; if (_arg1.Video.VideoClicks != undefined){ _local10 = 0; if (_arg1.Video.VideoClicks.ClickThrough.children().length() > 0){ doLog("Parsing V1.X VideoClicks ClickThrough tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local8 = _arg1.Video.VideoClicks.ClickThrough.children(); _local10 = 0; while (_local10 < _local8.length()) { _local9 = _local8[_local10]; if (!StringUtils.isEmpty(_local9.text())){ _local4.addClickThrough(new NetworkResource(_local9.@id, _local9.text())); }; _local10++; }; }; if (_arg1.Video.VideoClicks.ClickTracking.children().length() > 0){ doLog("Parsing V1.X VideoClicks ClickTracking tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local8 = _arg1.Video.VideoClicks.ClickTracking.children(); _local10 = 0; while (_local10 < _local8.length()) { _local9 = _local8[_local10]; if (!StringUtils.isEmpty(_local9.text())){ _local4.addClickTrack(new NetworkResource(_local9.@id, _local9.text())); }; _local10++; }; }; if (_arg1.Video.VideoClicks.CustomClick.children().length() > 0){ doLog("Parsing V1.X VideoClicks CustomClick tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local8 = _arg1.Video.CustomClick.ClickTracking.children(); _local10 = 0; while (_local10 < _local8.length()) { _local9 = _local8[_local10]; if (!StringUtils.isEmpty(_local9.text())){ _local4.addCustomClick(new NetworkResource(_local9.@id, _local9.text())); }; _local10++; }; }; }; if (_arg1.Video.MediaFiles != undefined){ _local11 = _arg1.Video.MediaFiles.children(); _local10 = 0; while (_local10 < _local11.length()) { _local12 = _local11[_local10]; if (_local12.children().length() > 0){ if (isAcceptableLinearAdMediaFileMimeType(_local12.@type, _arg3)){ _local13 = (StringUtils.matchesIgnoreCase(_local5, "VPAID")) ? new VPAIDMediaFile() : new MediaFile(); _local13.id = _local12.@id; _local13.bandwidth = _local12.@bandwidth; _local13.delivery = _local12.@delivery; _local13.mimeType = _local12.@type; _local13.bitRate = int(_local12.@bitrate); _local13.width = _local12.@width; _local13.height = _local12.@height; _local13.scale = _local12.@scalable; _local13.maintainAspectRatio = _local12.@maintainAspectRatio; _local13.apiFramework = _local5; _local13.adParameters = _local6; _local13.parentAd = _local4; _local14 = _local12.children()[0]; _local13.url = new AdNetworkResource(_local14.@id, _local14.text(), _local12.@type); _local4.addMediaFile(_local13); } else { doLog((((("Excluding '" + _local12.text()) + "' as mime type '") + _local12.@type) + "' is to be filtered out"), Debuggable.DEBUG_VAST_TEMPLATE); }; } else { doLog((("Excluding MediaFile '" + _local12.text()) + "' because it is an empty declaration"), Debuggable.DEBUG_VAST_TEMPLATE); }; _local10++; }; doLog((_local4.mediaFileCount() + " V1.X MediaFiles added to the linear video ad"), Debuggable.DEBUG_VAST_TEMPLATE); }; this.linearVideoAd = _local4; } public function processStopCompanionAdEvent(_arg1:VideoAdDisplayEvent):void{ var _local2:int; if (_arg1.controller.displayingCompanions()){ _local2 = 0; while (_local2 < _companionAds.length) { _companionAds[_local2].stop(_arg1); _local2++; }; } else { doLog("Ignoring request to stop a companion - no companions are configured on this page", Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function hasPreferredSelectionCriteria():Boolean{ return (!((_preferredSelectionCriteria == null))); } public function filterLinearAdMediaFileByMimeType(_arg1:Array):void{ if (_linearVideoAd != null){ _linearVideoAd.filterLinearAdMediaFileByMimeType(_arg1); }; } public function resetImpressions():void{ _impressionsFired = false; } public function companionAdsToJSObjects():Array{ var _local2:int; var _local1:Array = new Array(); if (hasCompanionAds()){ _local2 = 0; while (_local2 < _companionAds.length) { _local1.push(_companionAds[_local2].toJSObject()); _local2++; }; }; return (_local1); } public function hasAds(_arg1:Boolean=false):Boolean{ if (_arg1){ return (((((hasLinearAd()) || (hasNonLinearAds()))) || (hasImpressions()))); }; return ((((hasEmptyLinearAd() == false)) || (((hasNonLinearAds()) && ((hasEmptyNonLinearAds() == false)))))); } public function getPreferredHeight(){ if (_preferredSelectionCriteria != null){ if (_preferredSelectionCriteria.hasOwnProperty("height")){ return (_preferredSelectionCriteria.height); }; }; return (-1); } public function addCustomClickTrackingItems(_arg1:Array):void{ if (_linearVideoAd != null){ _linearVideoAd.addCustomClickTrackingItems(_arg1); }; } public function parseImpressions(_arg1:XML):void{ var _local2:XMLList; var _local3:int; doLog("Parsing V1.X impression tags...", Debuggable.DEBUG_VAST_TEMPLATE); if (((!((_arg1.Impression == null))) && (!((_arg1.Impression.children() == null))))){ _local2 = _arg1.Impression.children(); _local3 = 0; while (_local3 < _local2.length()) { this.addImpression(new Impression(_local2[_local3].@id, _local2[_local3])); _local3++; }; }; doLog((_impressions.length + " impressions recorded"), Debuggable.DEBUG_VAST_TEMPLATE); } public function processStartNonLinearAdEvent(_arg1:VideoAdDisplayEvent):void{ var _local2:String; var _local3:int; var _local4:int; var _local5:int; var _local6:Boolean; var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; if (_arg1.customData != null){ if (_arg1.customData.adSlot != null){ clearActiveDisplayRegions(); _local2 = _arg1.customData.adSlot.preferredDisplayMode; _local3 = 0; _local4 = 0; while (_local4 < 2) { if (_arg1.customData.adSlot.hasRegions(_local2)){ _local5 = 0; while ((((_local5 < _arg1.customData.adSlot.regions[_local2].length)) && ((((AdSlot(_arg1.customData.adSlot).hasLimitedDisplayCount() == false)) || (((AdSlot(_arg1.customData.adSlot).hasLimitedDisplayCount()) && ((_local3 < AdSlot(_arg1.customData.adSlot).maxDisplayCount)))))))) { if (_arg1.customData.adSlot.regions[_local2][_local5].enable){ _local6 = false; _local7 = 0; if (_arg1.customData.adSlot.regions[_local2][_local5].hasSize()){ doLog(((((((("Searching for a non-linear ad that matches " + _local2.toUpperCase()) + " region at index ") + _local5) + " - size is ") + _arg1.customData.adSlot.regions[_local2][_local5].width) + "x") + _arg1.customData.adSlot.regions[_local2][_local5].height), Debuggable.DEBUG_DISPLAY_EVENTS); _local7 = 0; while ((((_local7 < _nonLinearVideoAds.length)) && (!(_local6)))) { if (_nonLinearVideoAds[_local7].hasActiveDisplayRegion() == false){ if (_nonLinearVideoAds[_local7].matchesSizeAndAcceptedAdTypes(_arg1.customData.adSlot.regions[_local2][_local5].width, _arg1.customData.adSlot.regions[_local2][_local5].height, _arg1.customData.adSlot.regions[_local2][_local5].acceptedAdTypes)){ _local6 = true; _local3++; doLog((((("Non-linear ad at index " + _local7) + " of type ") + _nonLinearVideoAds[_local7].contentType()) + " matches based on size - triggering display"), Debuggable.DEBUG_DISPLAY_EVENTS); _nonLinearVideoAds[_local7].start(_arg1, _arg1.customData.adSlot.regions[_local2][_local5]); triggerImpressionConfirmations(); }; }; _local7++; }; if (!_local6){ _local8 = hasNonLinearAdsAvailableForDisplay(_arg1.customData.adSlot.regions[_local2][_local5].acceptedAdTypes); if ((((_local8 > -1)) && (_arg1.customData.adSlot.regions[_local2][_local5].alwaysMatch))){ doLog(((((("Although we couldn't get a direct match, forcing match to index 0 because 'alwaysMatch' is true - type is " + _nonLinearVideoAds[_local8].contentType()) + ", size is ") + _nonLinearVideoAds[_local11].width) + "x") + _nonLinearVideoAds[_local11].height), Debuggable.DEBUG_DISPLAY_EVENTS); _local3++; _nonLinearVideoAds[_local8].start(_arg1, _arg1.customData.adSlot.regions[_local2][_local5]); triggerImpressionConfirmations(); } else { doLog(((((("Cannot find a non-linear ad that matches the " + _local2) + " region sized ") + _arg1.customData.adSlot.regions[_local2][_local5].width) + "x") + _arg1.customData.adSlot.regions[_local2][_local5].height), Debuggable.DEBUG_DISPLAY_EVENTS); }; }; } else { doLog((((("Searching for a non-linear ad that matches " + _local2.toUpperCase()) + " region at index ") + _local5) + " - no size declared - OVA estimating best size"), Debuggable.DEBUG_DISPLAY_EVENTS); _local9 = 0; _local10 = -1; _local11 = -1; _local7 = 0; while (_local7 < _nonLinearVideoAds.length) { if (_nonLinearVideoAds[_local7].hasActiveDisplayRegion() == false){ _local9 = _nonLinearVideoAds[_local7].deriveScoreBasedOnEstimatedSizeAndAcceptedAdTypes(_arg1.controller.playerWidth, _arg1.controller.playerHeight, _arg1.customData.adSlot.regions[_local2][_local5].acceptedAdTypes); if (_local9 < 0){ } else { if (_local9 == 0){ doLog((((("Non-linear ad at index " + _local7) + " of type ") + _nonLinearVideoAds[_local7].contentType()) + " matches based on estimated size - exact width match"), Debuggable.DEBUG_DISPLAY_EVENTS); _local11 = _local7; break; } else { if ((((_local11 == -1)) || ((_local9 < _local10)))){ _local10 = _local9; _local11 = _local7; }; }; }; }; _local7++; }; if ((((((_nonLinearVideoAds.length > 0)) && ((_local11 == -1)))) && (_arg1.customData.adSlot.regions[_local2][_local5].alwaysMatch))){ _local11 = hasNonLinearAdsAvailableForDisplay(_arg1.customData.adSlot.regions[_local2][_local5].acceptedAdTypes); doLog("Although we couldn't get a direct match, trying to force match because 'alwaysMatch' is true", Debuggable.DEBUG_DISPLAY_EVENTS); }; if (_local11 > -1){ doLog(((((("Best estimated match is non-linear at index " + _local11) + " - size is ") + _nonLinearVideoAds[_local11].width) + "x") + _nonLinearVideoAds[_local11].height), Debuggable.DEBUG_DISPLAY_EVENTS); _local3++; _nonLinearVideoAds[_local11].start(_arg1, _arg1.customData.adSlot.regions[_local2][_local5]); triggerImpressionConfirmations(); } else { doLog("OVA unable to find a matching non-linear ad using estimation rules", Debuggable.DEBUG_DISPLAY_EVENTS); }; }; }; _local5++; }; }; _local2 = ((_local2)=="flash") ? "html5" : "flash"; _local4++; }; }; return; }; } public function get inlineAdId():String{ return (_inlineAdId); } public function hasMultipleAdUnits():Boolean{ return (((hasLinearAd()) && (hasNonLinearAds()))); } public function addTrackingEventItems(_arg1:Array):void{ _trackingEvents = _trackingEvents.concat(_arg1); } public function processStopAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_STOP); fireAPICall("onLinearAdStop", toJSObject()); } public function hasLinearAd():Boolean{ if (_linearVideoAd != null){ return ((_linearVideoAd.isEmpty() == false)); }; return (false); } public function set adTitle(_arg1:String):void{ _adTitle = _arg1; } public function processStartCompanionAdEvent(_arg1:VideoAdDisplayEvent):void{ var _local2:int; if (_arg1.controller.displayingCompanions()){ _local2 = 0; while (_local2 < _companionAds.length) { _companionAds[_local2].start(_arg1); _local2++; }; } else { doLog("Ignoring request to start a companion - no companions are configured on this page", Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function addCompanionAd(_arg1:CompanionAd):void{ _companionAds.push(_arg1); } public function isLinear():Boolean{ return (((!((_linearVideoAd == null))) && (!(isNonLinear())))); } public function hasClickTracking():Boolean{ if (hasLinearAd()){ return (_linearVideoAd.hasClickTracking()); }; return (false); } public function get adTitle():String{ return (_adTitle); } public function processMuteAdEvent():void{ _triggerTrackingEvent(TrackingEvent.EVENT_MUTE); fireAPICall("onLinearAdMute", toJSObject()); } public function set description(_arg1:String):void{ _description = _arg1; } public function get baseImpressions():Array{ return (_impressions); } protected function fireEventAPICall(... _args){ var args = _args; if (((ExternalInterface.available) && (canFireEventAPICalls()))){ try { doLog((("Firing Event API call " + args[0]) + "()"), Debuggable.DEBUG_API); switch (args.length){ case 1: return (ExternalInterface.call(args[0])); case 2: return (ExternalInterface.call(args[0], args[1])); case 3: return (ExternalInterface.call(args[0], args[1], args[2])); default: return (ExternalInterface.call(args[0], args[1], args[2], args[3])); }; } catch(e:Error) { doLog(((("Exception making external call (" + args[0]) + ") - ") + e)); }; }; } public function get description():String{ return (_description); } public function get adType():String{ if (isLinear()){ if (isInteractive()){ return (AD_TYPE_VPAID_LINEAR); }; return (AD_TYPE_LINEAR); } else { if (isNonLinear()){ if (isInteractive()){ return (AD_TYPE_VPAID_NON_LINEAR); }; return (AD_TYPE_NON_LINEAR); } else { if (isCompanion()){ return (AD_TYPE_COMPANION); }; }; }; return (AD_TYPE_LINEAR); } public function unload():void{ var _local1:int; var _local2:int; var _local3:int; var _local4:int; if (hasAds()){ if (hasLinearAd()){ _linearVideoAd.unload(); }; if (hasNonLinearAds()){ _local1 = 0; while (_local1 < _nonLinearVideoAds.length) { _nonLinearVideoAds[_local1].unload(); _local1++; }; }; }; if (hasImpressions()){ _local2 = 0; while (_local2 < _impressions.length) { _impressions[_local2].unload(); _local2++; }; }; if (hasTrackingEvents()){ _local3 = 0; while (_local3 < _trackingEvents.length) { _trackingEvents[_local3].unload(); _local3++; }; }; if (hasCompanionAds()){ _local4 = 0; while (_local4 < _companionAds.length) { _companionAds[_local4].unload(); _local4++; }; }; } } }//package org.openvideoads.vast.model
Section 156
//VideoAdServingTemplate (org.openvideoads.vast.model.VideoAdServingTemplate) package org.openvideoads.vast.model { import org.openvideoads.vast.server.request.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import flash.net.*; import org.openvideoads.vast.server.request.injected.*; import flash.utils.*; import flash.xml.*; public class VideoAdServingTemplate extends AdServerTemplate implements TemplateLoadListener { protected var _indexCounters:Array; public static const PARSE_NON_LINEARS:String = "NON-LINEAR"; public static const PARSE_ALL:String = "ALL"; public static const PARSE_LINEARS:String = "LINEAR"; public function VideoAdServingTemplate(_arg1:TemplateLoadListener=null, _arg2:AdServerRequest=null, _arg3:Boolean=false, _arg4:Array=null){ _indexCounters = new Array(); super(_arg1, _arg2, _arg3, _arg4); } protected function parseAdSpecs_V2(_arg1:XMLList):void{ var _local3:XMLList; doLog((("Parsing a V2.0 VAST response - " + _arg1.length()) + " ads in the template..."), Debuggable.DEBUG_VAST_TEMPLATE); var _local2:int; while (_local2 < _arg1.length()) { _local3 = _arg1[_local2].attribute("id"); if (_arg1[_local2].children().length() == 1){ parseAdResponse_V2(_local2, _local3[0], _arg1[_local2]); } else { doLog((("No InLine tag found for Ad - " + _local3[0]) + " - ignoring this entry"), Debuggable.DEBUG_VAST_TEMPLATE); }; _local2++; }; doLog("Parsing DONE", Debuggable.DEBUG_VAST_TEMPLATE); } public function onAdCallStarted(_arg1:AdServerRequest):void{ if (_listener != null){ _listener.onAdCallStarted(_arg1); }; } private function parseInlineAd_V1_X(_arg1:int, _arg2:String, _arg3:XML, _arg4:String="ALL"):VideoAd{ var _local5:VideoAd; doLog(((("Parsing 1.X INLINE Ad record at position " + _arg1) + " with ID ") + _arg2), Debuggable.DEBUG_VAST_TEMPLATE); doLog((("Ad has " + _arg3.children().length()) + " attributes defined"), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg3.children().length() > 0){ _local5 = new VideoAd(); if (_listener != null){ _local5.setCanFireAPICalls(_listener.canFireAPICalls()); _local5.setCanFireEventAPICalls(_listener.canFireEventAPICalls()); }; _local5.adSystem = _arg3.AdSystem; _local5.adTitle = _arg3.AdTitle; _local5.adId = _arg2; _local5.description = _arg3.Description; _local5.survey = _arg3.Survey; _local5.error = _arg3.Error; _local5.parseImpressions(_arg3); _local5.parseTrackingEvents(_arg3); doLog(((("Created new VideoAd(): " + _local5.uid) + ", parent Template: ") + _uid), Debuggable.DEBUG_VAST_TEMPLATE); if ((((((_arg4 == PARSE_LINEARS)) || ((_arg4 == PARSE_ALL)))) && (!((_arg3.Video == undefined))))){ _local5.parseLinears(_arg3, -1, getAdServerConfig()); }; if ((((((_arg4 == PARSE_NON_LINEARS)) || ((_arg4 == PARSE_ALL)))) && (!((_arg3.NonLinearAds == undefined))))){ _local5.parseNonLinears(_arg3); }; if (_arg3.CompanionAds != undefined){ _local5.parseCompanions(_arg3); }; _local5.parseExtensions(_arg3); if (replacingAdIds()){ _local5.id = getReplacementAdId((_local5.isNonLinear()) ? "non-linear" : "linear"); doLog((((((("Have replaced the received Ad ID '" + _arg2) + "' with ") + _local5.id) + " (") + _arg1) + ")"), Debuggable.DEBUG_VAST_TEMPLATE); } else { _local5.id = _arg2; }; doLog((("Parsing V1.X ad record " + _arg2) + " done"), Debuggable.DEBUG_VAST_TEMPLATE); return (_local5); } else { doLog((("No tags found for Ad " + _arg2) + " - ignoring this entry"), Debuggable.DEBUG_VAST_TEMPLATE); }; return (null); } public function onTemplateLoadDeferred(_arg1:Event):void{ signalTemplateLoadDeferred(uid, _arg1); } private function parseWrappedAd_V2(_arg1:int, _arg2:String, _arg3:XML):WrappedVideoAdServingTemplateV2{ doLog(((("Parsing 2.0 XML Wrapper Ad record at position " + _arg1) + " with ID ") + _arg2), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg3.children().length() > 0){ return (new WrappedVideoAdServingTemplateV2(_arg1, _arg2, _arg3, this)); }; doLog((("No tags found for Wrapper " + _arg2) + " - ignoring this entry"), Debuggable.DEBUG_VAST_TEMPLATE); return (null); } private function parseImpressions_V2(_arg1:XML):Array{ var _local3:XMLList; var _local4:XML; var _local2:Array = new Array(); if (_arg1.Impression != null){ _local3 = _arg1.Impression; doLog((("Parsing V2.0 impression tags - " + _local3.length()) + " impressions specified..."), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local4 in _local3) { _local2.push(new Impression(_local4.@id, _local4.text())); }; }; return (_local2); } protected function parseCompanionAds_V2(_arg1:XMLList):Array{ var _local3:XML; var _local4:CompanionAd; var _local5:XMLList; var _local6:XML; var _local7:int; var _local8:XMLList; var _local9:int; var _local10:XML; var _local11:TrackingEvent; var _local12:XMLList; var _local2:Array = new Array(); if (_arg1.length() > 0){ doLog((("Parsing V2.0 CompanionAd tags - " + _arg1.children().length()) + " companions specified"), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local3 in _arg1.children()) { _local4 = new CompanionAd(); _local4.isVAST2 = true; _local4.id = _local3.@id; _local4.width = _local3.@width; _local4.height = _local3.@height; _local4.index = createIndex(_local4.width, _local4.height); if (_local3.StaticResource != undefined){ _local4.creativeType = _local3.StaticResource.@creativeType; _local4.resourceType = "STATIC"; _local4.url = new NetworkResource(null, _local3.StaticResource.text()); doLog(((((((((("Static companion ad (" + _local4.uid) + ") [") + _local4.width) + ",") + _local4.height) + "] - creativeType: ") + _local4.creativeType) + " - ") + _local3.StaticResource.text()), Debuggable.DEBUG_VAST_TEMPLATE); } else { if (_local3.IFrameResource != undefined){ _local4.creativeType = "STATIC"; _local4.resourceType = "IFRAME"; _local4.url = new NetworkResource(null, _local3.IFrameResource.text()); doLog(((((((((("iFrame companion ad (" + _local4.uid) + ") [") + _local4.width) + ",") + _local4.height) + "] - creativeType: ") + _local4.creativeType) + " - ") + _local3.IFrameResource.text()), Debuggable.DEBUG_VAST_TEMPLATE); } else { if (_local3.HTMLResource != undefined){ _local4.creativeType = "TEXT"; _local4.resourceType = "HTML"; _local4.codeBlock = _local3.HTMLResource.text(); doLog(((((((((("HTML companion ad (" + _local4.uid) + ") [") + _local4.width) + ",") + _local4.height) + "] - creativeType: ") + _local4.creativeType) + " - ") + _local4.codeBlock), Debuggable.DEBUG_VAST_TEMPLATE); }; }; }; if (_local3.CompanionClickThrough != undefined){ doLog("Parsing V2.0 Companion ClickThrough tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local5 = _local3.CompanionClickThrough; doLog((_local5.length() + " Companion ClickThroughs detected"), Debuggable.DEBUG_VAST_TEMPLATE); _local7 = 0; while (_local7 < _local5.length()) { _local6 = _local5[_local7]; _local4.addClickThrough(new NetworkResource(_local6.@id, _local6.text())); _local7++; }; }; if (_local3.AltText != undefined){ _local4.altText = _local3.AltText.text(); }; if (_local3.AdParameters != undefined){ _local4.adParameters = _local3.AdParameters.text(); doLog("Companion Ad has adParameters set", Debuggable.DEBUG_VAST_TEMPLATE); }; if (_local3.TrackingEvents != undefined){ doLog("Parsing V2.0 Companion TrackingEvent tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local8 = _local3.TrackingEvents.children(); doLog((_local8.length() + " Companion tracking events detected"), Debuggable.DEBUG_VAST_TEMPLATE); _local9 = 0; while (_local9 < _local8.length()) { _local10 = _local8[_local9]; _local11 = new TrackingEvent(_local10.@event); _local12 = _local10.children(); _local11.addURL(new NetworkResource(_local8[_local9].@event, _local8[_local9].text())); _local4.addTrackingEvent(_local11); _local9++; }; }; _local2.push(_local4); }; }; return (_local2); } public function canFireEventAPICalls():Boolean{ if (_listener != null){ return (_listener.canFireEventAPICalls()); }; return (false); } protected function createVideoAd_V2(_arg1:String, _arg2:XML, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String):VideoAd{ var _local8:VideoAdV2 = new VideoAdV2(); if (replacingAdIds()){ _local8.id = getReplacementAdId(_arg5); } else { _local8.id = _arg1; }; _local8.containerAdId = _arg7; _local8.inlineAdId = _arg6; _local8.adId = _arg1; _local8.creativeId = _arg3; _local8.sequenceId = _arg4; _local8.adSystem = _arg2.AdSystem; _local8.adTitle = _arg2.AdTitle; _local8.description = _arg2.Description; _local8.survey = _arg2.Survey; _local8.error = _arg2.Error; if (_listener != null){ _local8.setCanFireAPICalls(_listener.canFireAPICalls()); _local8.setCanFireEventAPICalls(_listener.canFireEventAPICalls()); }; doLog(((((((((((((((("Created new VideoAdV2(" + _arg5) + ", ") + _local8.uid) + ") adId: '") + _local8.adId) + "', creativeID: '") + _arg3) + "', sequenceID: '") + _arg4) + "' - internal ID set as '") + _local8.id) + "', containerAdID: '") + _local8.containerAdId) + "', parent Template: ") + _uid), Debuggable.DEBUG_VAST_TEMPLATE); return (_local8); } override protected function getReplacementAdId(_arg1:String):String{ var _local2:Object; if (_replacementAdIds != null){ for each (_local2 in _replacementAdIds) { if ((((((_local2.slotType == _arg1)) || (((_local2.slotType + "-vpaid") == _arg1)))) && ((_local2.assigned == false)))){ _local2.assigned = true; return (_local2.id); }; }; }; return ((_arg1 + ":not-scheduled")); } private function parseWrappedAd_V1_X(_arg1:int, _arg2:String, _arg3:XML):WrappedVideoAdV1{ doLog(((("Parsing 1.X XML Wrapper Ad record at position " + _arg1) + " with ID ") + _arg2), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg3.children().length() > 0){ return (new WrappedVideoAdV1(getReplacementAdIdObjectAtPosition(_arg1), _arg3, this, getMasterAdServerConfig())); }; doLog((("No tags found for Wrapper " + _arg2) + " - ignoring this entry"), Debuggable.DEBUG_VAST_TEMPLATE); return (null); } override protected function templateLoaded(_arg1:Event):void{ doLog((("Loaded " + ((_xmlLoader is InjectedLoader)) ? InjectedLoader(_xmlLoader).getBytesLoaded() : _xmlLoader.bytesLoaded) + " bytes for the VAST template - now parsing it..."), Debuggable.DEBUG_VAST_TEMPLATE); _templateData = _xmlLoader.transformedData; doLog(_templateData, Debuggable.DEBUG_VAST_TEMPLATE); parseFromRawData(_templateData); if (this.hasAds()){ doLog((((("VAST Template (" + _uid) + ") parsing complete - have ") + _ads.length) + " ads from the ad server - signaling complete"), Debuggable.DEBUG_VAST_TEMPLATE); _dataLoaded = true; super.templateLoaded(_arg1); return; }; doLog((("VAST Template (" + _uid) + ") parsing complete - no ads found in this response (but it may be a wrapper)"), Debuggable.DEBUG_VAST_TEMPLATE); _dataLoaded = true; super.templateLoaded(_arg1); } public function canFireAPICalls():Boolean{ if (_listener != null){ return (_listener.canFireAPICalls()); }; return (false); } override protected function errorHandler(_arg1:Event):void{ doLog(("Load error: " + _arg1.toString()), Debuggable.DEBUG_FATAL); signalTemplateLoadError(_uid, _arg1); } private function cloneCompanions(_arg1:Array, _arg2:VideoAd):Array{ var _local4:CompanionAd; var _local5:CompanionAd; var _local3:Array = new Array(); for each (_local5 in _arg1) { _local4 = _local5.clone(); _local4.parentAdContainer = _arg2; _local3.push(_local4); }; return (_local3); } override protected function timeoutHandler(_arg1:Event):void{ doLog("Load has timed out - the ad server took too long to respond", Debuggable.DEBUG_ALWAYS); signalTemplateLoadTimeout(_uid, _arg1); } private function joinCompanions(_arg1:Array, _arg2:Array):Array{ if (_arg1 == null){ _arg1 = new Array(); }; if (_arg2 == null){ return (_arg1); }; return (_arg1.concat(_arg2)); } private function parseExtensions_V2(_arg1:XML):Object{ var _local5:XMLList; var _local6:XML; var _local7:Object; var _local2:Array = new Array(); var _local3:Array = new Array(); if (_arg1.Extensions != null){ _local5 = _arg1.Extensions.children(); doLog((("Parsing V2.0 extension tags - " + _local5.length()) + " extensions specified..."), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local6 in _local5) { if (_local6.@type == "ad_playtype"){ doLog("Detected an adtech 'playtype' extension - adding it to the impression list", Debuggable.DEBUG_VAST_TEMPLATE); _local3.push(new Impression("ad_playtype", _local6.children().toXMLString())); } else { _local7 = new Object(); _local7.label = ((_local6.@type)!=null) ? new String(_local6.@type) : "undefined"; _local7.text = _local6.children().toXMLString(); _local2.push(_local7); }; }; }; var _local4:Object = {extensions:_local2, impressions:_local3}; return (_local4); } public function parseFromRawData(_arg1):void{ var xmlData:XML; var tagName:String; var rawData = _arg1; if (rawData != null){ XML.ignoreWhitespace = true; try { xmlData = new XML(rawData); if (xmlData != null){ doLog(("Number of video ad serving templates returned = " + xmlData.length()), Debuggable.DEBUG_VAST_TEMPLATE); if (xmlData.length() > 0){ tagName = xmlData.name(); if (tagName != null){ if (tagName.indexOf("VAST") > -1){ if ((((((xmlData.attribute("version") == "2.0")) || ((xmlData.attribute("version") == "2.0.0")))) || ((xmlData.attribute("version") == "2.0.1")))){ parseAdSpecs_V2(xmlData.Ad); } else { doLog((("Version " + xmlData.attribute("version")) + " of VAST is not currently supported.")); }; } else { if (tagName.indexOf("VideoAdServingWrapper") > -1){ } else { if (((!((xmlData.Video == undefined))) || (!((xmlData.NonLinearAds == undefined))))){ parseAdSpecs_pre_V1_0(xmlData); } else { parseAdSpecs_V1_X(xmlData.children()); }; }; }; } else { doLog("VAST response is not a valid XML response - ignoring response", Debuggable.DEBUG_FATAL); }; } else { doLog("VAST response does not seem to have any tags - ignoring response", Debuggable.DEBUG_FATAL); }; } else { doLog("Cannot parse the XML Response - XML object is null - ignoring response", Debuggable.DEBUG_FATAL); }; } catch(errObject:Error) { doLog((("XML Parsing exception ('" + errObject.toString()) + "') - tag structure is non-compliant - ignoring response"), Debuggable.DEBUG_FATAL); }; } else { doLog("Null VAST response - ignoring response", Debuggable.DEBUG_FATAL); }; } protected function createIndex(_arg1:int, _arg2:int):int{ var _local3:int; while (_local3 < _indexCounters.length) { if ((((_indexCounters[_local3].width == _arg1)) && ((_indexCounters[_local3].height == _arg2)))){ _indexCounters[_local3].index = (_indexCounters[_local3].index + 1); return (_indexCounters[_local3].index); }; _local3++; }; _indexCounters.push({width:_arg1, height:_arg2, index:0}); return (0); } public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ if (_listener != null){ _listener.onAdCallComplete(_arg1, _arg2); }; } public function get analyticsProcessor():AnalyticsProcessor{ if (_listener != null){ return (_listener.analyticsProcessor); }; return (null); } public function getFirstAd():VideoAd{ if (_ads != null){ if (_ads.length > 0){ return (_ads[0]); }; }; return (null); } private function parseAdResponse_V2(_arg1:int, _arg2:String, _arg3:XML):void{ if (_arg3 != null){ doLog((((("Parsing ad record at position " + _arg1) + " with ID '") + _arg2) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg3.InLine != undefined){ parseInlineAd_V2(_arg1, _arg2, _arg3.children()[0]); } else { if (_arg3.Wrapper != undefined){ parseWrappedAd_V2(_arg1, _arg2, _arg3.children()[0]); } else { doLog("Top level Ad tag does not seem to be either InLine or Wrapper - ignoring this part of the response", Debuggable.DEBUG_VAST_TEMPLATE); }; }; }; } override public function filterLinearAdMediaFileByMimeType(_arg1:Array):void{ doLog("Filtering linear video ad media files by specific mime types...", Debuggable.DEBUG_VAST_TEMPLATE); var _local2:int; while (_local2 < _ads.length) { if (VideoAd(_ads[_local2]).isLinear()){ VideoAd(_ads[_local2]).filterLinearAdMediaFileByMimeType(_arg1); }; _local2++; }; } public function onTemplateLoadError(_arg1:Event):void{ signalTemplateLoadError(uid, _arg1); } override protected function loadTemplateData(_arg1:AdServerRequest):void{ if (_arg1 != null){ doLog(((("Loading VAST data from " + _arg1.serverType()) + " - request is ") + _arg1.formRequest()), Debuggable.DEBUG_VAST_TEMPLATE); super.loadTemplateData(_arg1); } else { doLog("Cannot load the VAST ad data - no request provided", Debuggable.DEBUG_VAST_TEMPLATE); }; } private function parseAdSpecs_pre_V1_0(_arg1:XML):void{ doLog("Parsing a pre V1.0 VAST response - ...", Debuggable.DEBUG_VAST_TEMPLATE); var _local2:VideoAd = parseInlineAd_V1_X(0, "no-id", _arg1, PARSE_LINEARS); if (_local2 != null){ addVideoAd(_local2); }; _local2 = parseInlineAd_V1_X(1, "no-id", _arg1, PARSE_NON_LINEARS); if (_local2 != null){ addVideoAd(_local2); }; doLog("Parsing DONE", Debuggable.DEBUG_VAST_TEMPLATE); } private function parseAdSpecs_V1_X(_arg1:XMLList):void{ var _local3:XMLList; var _local4:VideoAd; var _local5:Array; var _local6:String; var _local7:String; var _local8:VideoAd; doLog((("Parsing a V1.X VAST response - " + _arg1.length()) + " ads in the template..."), Debuggable.DEBUG_VAST_TEMPLATE); var _local2:int; while (_local2 < _arg1.length()) { _local3 = _arg1[_local2].attribute("id"); if (_arg1[_local2].children().length() == 1){ _local4 = parseAdResponse_V1_X(_local2, _local3[0], _arg1[_local2]); if (_local4 != null){ if (_local4.isFromAdSystem("OpenX")){ doLog("Leaving the contents of the Video Ad untouched - the response is a VAST1 OpenX response so multiple ad units can mean click-to-play", Debuggable.DEBUG_VAST_TEMPLATE); addVideoAd(_local4); } else { if (mustEnsureSingleAdUnitRecordedPerInlineAd() == false){ doLog("ensureSingleAdUnitRecordedPerVideoAd has been set to 'false' - leaving Video Ad untouched", Debuggable.DEBUG_VAST_TEMPLATE); addVideoAd(_local4); } else { if (_local4.hasMultipleAdUnits()){ _local5 = _local4.split(); _local6 = _local4.id; _local7 = getReplacementAdIdType(_local6); doLog((("This ad has multiple ad units (linear and non-linears) recorded - as it's not OpenX served, it will be split into " + _local5.length) + " separate video ads"), Debuggable.DEBUG_VAST_TEMPLATE); doLog((((("Parent ad ID ('" + _local6) + "') type is '") + _local7) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local8 in _local5) { if ((((_local7 == "linear")) && (_local8.isLinear()))){ _local8.id = _local6; _local7 = null; } else { if ((((_local7 == "non-linear")) && (_local8.isNonLinear()))){ _local8.id = _local6; _local7 = null; } else { _local8.id = getReplacementAdId((_local8.isNonLinear()) ? "non-linear" : "linear"); }; }; addVideoAd(_local8); }; doLog((_local5.length + " separate VideoAds created from the aggregated original"), Debuggable.DEBUG_VAST_TEMPLATE); } else { doLog("Leaving the contents of the Video Ad untouched - it does not have multiple valid ad units (linear and non-linear) within it", Debuggable.DEBUG_VAST_TEMPLATE); addVideoAd(_local4); }; }; }; }; } else { doLog((("No InLine tag found for Ad - " + _local3[0]) + " - ignoring this entry"), Debuggable.DEBUG_VAST_TEMPLATE); }; _local2++; }; doLog("Parsing DONE", Debuggable.DEBUG_VAST_TEMPLATE); } protected function getReplacementAdIdObjectAtPosition(_arg1:int):Object{ if (_replacementAdIds != null){ if (_arg1 < _replacementAdIds.length){ return (_replacementAdIds[_arg1]); }; }; return ({id:"no-id-found", slotType:"unknown", assigned:false}); } protected function parseNonLinearAds_V2(_arg1:XMLList):Array{ var _local3:XML; var _local4:int; var _local5:Array; var _local6:String; var _local7:XML; var _local8:NonLinearVideoAd; var _local9:String; var _local10:XML; var _local11:XMLList; var _local12:int; var _local13:XML; var _local14:TrackingEvent; var _local15:XMLList; var _local16:NonLinearVideoAd; var _local2:Array = new Array(); if (_arg1.length() > 0){ doLog((("Parsing V2.0 NonLinearAd tags - " + _arg1.length()) + " ads specified..."), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local3 in _arg1) { _arg1 = _local3.children(); _local4 = 0; _local5 = null; _local6 = null; _local4 = 0; while (_local4 < _arg1.length()) { if (_arg1[_local4].name() == "NonLinear"){ _local7 = _arg1[_local4]; _local8 = null; _local9 = ((_local7.@id)!=undefined) ? _local7.@id : ("" + _local4); if (((!((_local7.StaticResource == undefined))) && (!((_local7.StaticResource == null))))){ if (((!((_local7.StaticResource.@creativeType == undefined))) && (!((_local7.StaticResource.@creativeType == null))))){ switch (_local7.StaticResource.@creativeType.toUpperCase()){ case "IMAGE/JPEG": case "JPEG": case "IMAGE/GIF": case "GIF": case "IMAGE/PNG": case "PNG": _local8 = new NonLinearImageAd(); break; case "APPLICATION/X-SHOCKWAVE-FLASH": case "SWF": if (StringUtils.matchesIgnoreCase(_local7.@apiFramework, "VPAID")){ doLog("Creating VPAIDNonLinearAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local8 = new VPAIDNonLinearAd(); } else { doLog("Creating NonLinearFlashAd()", Debuggable.DEBUG_VAST_TEMPLATE); _local8 = new NonLinearFlashAd(); }; break; case "SCRIPT": case "JAVASCRIPT": case "TEXT/JAVASCRIPT": case "TEXT/SCRIPT": _local8 = new NonLinearScriptAd(); break; default: _local8 = new NonLinearVideoAd(); }; _local8.resourceType = "static"; _local8.creativeType = _local7.StaticResource.@creativeType; doLog((((("Parsing static NonLinear Ad (" + _local9) + ") of creative type ") + _local8.creativeType) + " ..."), Debuggable.DEBUG_VAST_TEMPLATE); } else { _local8 = new NonLinearVideoAd(); }; } else { if (((!((_local7.HTMLResource == undefined))) && (!((_local7.HTMLResource == null))))){ if (StringUtils.beginsWith(_local7.HTMLResource.text(), "<script ")){ _local8 = new NonLinearScriptAd(); doLog((("Parsing HTMLResource NonLinear Ad (" + _local9) + ") that is a script ..."), Debuggable.DEBUG_VAST_TEMPLATE); } else { doLog((("Parsing HTMLResource NonLinear Ad (" + _local9) + ") that is a HTML code block ..."), Debuggable.DEBUG_VAST_TEMPLATE); _local8 = new NonLinearHtmlAd(); _local8.resourceType = "static"; _local8.creativeType = "html"; }; } else { if (_local7.IFrameResource != undefined){ doLog((("Parsing IFrameResource NonLinear Ad (" + _local9) + ") ..."), Debuggable.DEBUG_VAST_TEMPLATE); _local8 = new NonLinearIFrameAd(); _local8.resourceType = "iframe"; _local8.creativeType = "html"; } else { doLog((("No resource type declared for non-linear ad '" + _local9) + "' - but that's ok if this ad is wrapped"), Debuggable.DEBUG_VAST_TEMPLATE); _local8 = new NonLinearVideoAd(); }; }; }; _local8.index = _local4; _local8.id = _local9; _local8.width = _local7.@width; _local8.height = _local7.@height; _local8.apiFramework = _local7.@apiFramework; if (_local7.@expandedWidth != undefined){ _local8.expandedWidth = _local7.@expandedWidth; }; if (_local7.@expandedHeight != undefined){ _local8.expandedHeight = _local7.@expandedHeight; }; _local8.scale = _local7.@scalable; _local8.maintainAspectRatio = _local7.@maintainAspectRatio; if (_local7.AdParameters != undefined){ doLog("Nested AdParameters are recorded for this non-linear ad", Debuggable.DEBUG_VAST_TEMPLATE); _local8.adParameters = _local7.AdParameters; }; if (_listener != null){ _local8.canFireAPICalls = _listener.canFireAPICalls(); _local8.canFireEventAPICalls = _listener.canFireEventAPICalls(); }; if (_local7.@minSuggestedDuration != undefined){ if (Timestamp.validate(_local7.@minSuggestedDuration)){ _local8.recommendedMinDuration = Timestamp.timestampToSecondsString(_local7.@minSuggestedDuration); doLog((((("MinSuggestedDuration converted from '" + _local7.@minSuggestedDuration) + "' to '") + _local8.recommendedMinDuration) + "' seconds"), Debuggable.DEBUG_VAST_TEMPLATE); } else { _local8.recommendedMinDuration = _local7.@minSuggestedDuration; }; }; if ((_local8 is NonLinearIFrameAd)){ if (_local7.IFrameResource != undefined){ _local8.url = new NetworkResource(null, _local7.IFrameResource.text()); }; }; if ((_local8 is NonLinearHtmlAd)){ if (_local7.HTMLResource != undefined){ _local8.codeBlock = _local7.HTMLResource.text(); }; }; if ((_local8 is NonLinearScriptAd)){ if (_local7.HTMLResource != undefined){ _local8.codeBlock = _local7.HTMLResource.text(); } else { if (_local7.StaticResource != undefined){ _local8.url = new NetworkResource(null, _local7.StaticResource.text()); }; }; } else { if (_local7.StaticResource != undefined){ _local8.url = new NetworkResource(null, _local7.StaticResource.text()); }; }; if (_local7.NonLinearClickThrough != undefined){ for each (_local10 in _local7.NonLinearClickThrough) { if (!StringUtils.isEmpty(_local10.text())){ _local8.addClickThrough(new NetworkResource(null, _local10.text())); }; }; doLog((_local8.clickThroughCount() + " NonLinear ClickThroughs recorded"), Debuggable.DEBUG_VAST_TEMPLATE); }; _local2.push(_local8); } else { if (_arg1[_local4].name() == "TrackingEvents"){ doLog("Parsing V2.0 Non-Linear TrackingEvent tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local11 = _arg1[_local4].children(); doLog((_local11.length() + " Non-Linear tracking events detected"), Debuggable.DEBUG_VAST_TEMPLATE); _local5 = new Array(); _local12 = 0; while (_local12 < _local11.length()) { _local13 = _local11[_local12]; _local14 = new TrackingEvent(_local13.@event); _local15 = _local13.children(); _local14.addURL(new NetworkResource(_local11[_local12].@event, _local11[_local12].text())); _local5.push(_local14); _local12++; }; } else { if (_arg1[_local4].name() == "AdParameters"){ doLog("AdParameters are recorded for this non-linear ad", Debuggable.DEBUG_VAST_TEMPLATE); _local6 = _arg1[_local4]; } else { doLog((_arg1[_local4].name() + " tags currently not supported for non-linear ads"), Debuggable.DEBUG_VAST_TEMPLATE); }; }; }; _local4++; }; if (((!((_local5 == null))) || (!((_local6 == null))))){ if (_local5 != null){ doLog((((("Attaching " + _local5.length) + " NonLinear tracking events to ") + _local2.length) + " non-linear ads..."), Debuggable.DEBUG_VAST_TEMPLATE); }; if (_local6 != null){ doLog((("Attaching AdParameters to " + _local2.length) + " non-linear ads..."), Debuggable.DEBUG_VAST_TEMPLATE); }; for each (_local16 in _local2) { if (_local5 != null){ _local16.trackingEvents = clone(_local5); }; if (_local6 != null){ _local16.adParameters = _local6; }; }; }; }; }; return (_local2); } private function parseAdResponse_V1_X(_arg1:int, _arg2:String, _arg3:XML):VideoAd{ doLog(((("Parsing a V1.X ad record at position " + _arg1) + " with ID ") + _arg2), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg3.InLine != undefined){ return (parseInlineAd_V1_X(_arg1, _arg2, _arg3.children()[0], PARSE_ALL)); }; if (_arg3.Wrapper != undefined){ return (parseWrappedAd_V1_X(_arg1, _arg2, _arg3.children()[0])); }; return (null); } protected function clone(_arg1:Object){ var _local2:Array; var _local3:*; var _local4:ByteArray; if (_arg1 != null){ if ((_arg1 is Array)){ _local2 = new Array(); for each (_local3 in _arg1) { _local2.push(_local3.clone()); }; return (_local2); } else { _local4 = new ByteArray(); _local4.writeObject(_arg1); _local4.position = 0; return (_local4.readObject()); }; }; return (null); } public function onTemplateLoaded(_arg1:AdServerTemplate):void{ doLog((((_uid + " has been notified that a template (") + _arg1.uid) + ") has loaded."), Debuggable.DEBUG_VAST_TEMPLATE); if ((_arg1 is WrappedVideoAdServingTemplateV2)){ merge(_arg1, true, true); } else { merge(_arg1); }; signalTemplateLoaded(_arg1.uid); } public function onTemplateLoadTimeout(_arg1:Event):void{ signalTemplateLoadTimeout(uid, _arg1); } protected function parseLinearAds_V2(_arg1:XMLList):Array{ var _local3:XML; var _local4:LinearVideoAd; var _local5:String; var _local6:XMLList; var _local7:XML; var _local8:XML; var _local9:XML; var _local10:XMLList; var _local11:MediaFile; var _local12:int; var _local13:XML; var _local14:String; var _local15:NetworkResource; var _local16:XMLList; var _local17:int; var _local18:XML; var _local19:TrackingEvent; var _local20:XMLList; var _local2:Array = new Array(); if (_arg1.length() > 0){ doLog((("Parsing V2.0 Linear Ad tags - " + _arg1.length()) + " ads specified..."), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local3 in _arg1) { _local4 = new LinearVideoAd(); _local5 = null; _local4.index = _arg1.length(); if (Timestamp.validate(_local3.Duration)){ _local4.duration = _local3.Duration; } else { _local4.duration = Timestamp.secondsStringToTimestamp(_local3.Duration); doLog(("Duration has been specified in non-compliant manner (hh:mm:ss) - assuming seconds - converted to: " + _local4.duration), Debuggable.DEBUG_VAST_TEMPLATE); }; if (_listener != null){ _local4.canFireAPICalls = _listener.canFireAPICalls(); _local4.canFireEventAPICalls = _listener.canFireEventAPICalls(); }; if (_local3.AdParameters != undefined){ _local5 = _local3.AdParameters; doLog("Have recorded AdParameters for this Linear video ad", Debuggable.DEBUG_VAST_TEMPLATE); } else { _local5 = null; }; if (_local3.VideoClicks != undefined){ if (_local3.VideoClicks.ClickThrough != undefined){ doLog("Parsing V2.0 Linear VideoClicks.ClickThrough tags...", Debuggable.DEBUG_VAST_TEMPLATE); for each (_local7 in _local3.VideoClicks.ClickThrough) { if (!StringUtils.isEmpty(_local7.text())){ _local4.addClickThrough(new NetworkResource(_local7.@id, _local7.text())); }; }; doLog((_local4.clickThroughCount() + " Linear ClickThroughs recorded"), Debuggable.DEBUG_VAST_TEMPLATE); }; if (_local3.VideoClicks.ClickTracking != undefined){ doLog("Parsing V2.0 Linear VideoClicks.ClickTracking tags...", Debuggable.DEBUG_VAST_TEMPLATE); for each (_local8 in _local3.VideoClicks.ClickTracking) { if (!StringUtils.isEmpty(_local8.text())){ _local4.addClickTrack(new NetworkResource(_local8.@id, _local8.text())); }; }; doLog((_local4.clickTrackingCount() + " Linear ClickTracking events recorded"), Debuggable.DEBUG_VAST_TEMPLATE); }; if (_local3.VideoClicks.CustomClick != undefined){ doLog("Parsing V2.0 Linear VideoClicks.CustomClick tags...", Debuggable.DEBUG_VAST_TEMPLATE); for each (_local9 in _local3.VideoClicks.CustomClick) { if (!StringUtils.isEmpty(_local9.text())){ _local4.addCustomClick(new NetworkResource(_local9.@id, _local9.text())); }; }; doLog((_local4.customClickCount() + " Linear CustomClicks recorded"), Debuggable.DEBUG_VAST_TEMPLATE); }; }; if (_local3.MediaFiles != undefined){ doLog("Parsing V2.0 Linear MediaFiles tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local10 = _local3.MediaFiles.children(); doLog((_local10.length() + " Linear media files detected"), Debuggable.DEBUG_VAST_TEMPLATE); _local12 = 0; while (_local12 < _local10.length()) { _local11 = null; _local13 = _local10[_local12]; if (StringUtils.isEmpty(_local13.text()) == false){ if (isAcceptableLinearAdMediaFileMimeType(_local13.@type)){ if (StringUtils.matchesIgnoreCase(_local13.@apiFramework, "VPAID")){ if (_local13.@type != undefined){ _local14 = _local13.@type; if (((StringUtils.matchesIgnoreCase(_local14, "APPLICATION/X-SHOCKWAVE-FLASH")) || (StringUtils.matchesIgnoreCase(_local14, "SWF")))){ _local11 = new VPAIDMediaFile(); }; } else { _local15 = new NetworkResource(_local13.@id, _local13.text()); if (!_local15.isStream()){ _local11 = new VPAIDMediaFile(); }; }; }; if (_local11 == null){ _local11 = new MediaFile(); }; _local11.id = _local13.@id; _local11.bandwidth = _local13.@bandwidth; _local11.delivery = _local13.@delivery; _local11.mimeType = _local13.@type; _local11.bitRate = int(_local13.@bitrate); _local11.width = _local13.@width; _local11.height = _local13.@height; _local11.scale = _local13.@scalable; _local11.maintainAspectRatio = _local13.@maintainAspectRatio; _local11.apiFramework = _local13.@apiFramework; if (_local5 != null){ _local11.adParameters = _local5; }; _local11.url = new AdNetworkResource(_local13.@id, _local13.text(), _local13.@type); _local11.parentAd = _local4; _local4.addMediaFile(_local11); } else { doLog((((("Excluding '" + _local13.text()) + "' as mime type '") + _local13.@type) + "' is to be filtered out"), Debuggable.DEBUG_VAST_TEMPLATE); }; } else { doLog((("Excluding MediaFile '" + _local13.text()) + "' because it is an empty declaration"), Debuggable.DEBUG_VAST_TEMPLATE); }; _local12++; }; doLog((_local4.mediaFileCount() + " mediaFiles added"), Debuggable.DEBUG_VAST_TEMPLATE); }; if (((!((_local3.TrackingEvents == undefined))) && (!((_local3.TrackingEvents.children() == null))))){ doLog("Parsing V2.0 Linear TrackingEvent tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local16 = _local3.TrackingEvents.children(); _local17 = 0; while (_local17 < _local16.length()) { _local18 = _local16[_local17]; _local19 = new TrackingEvent(_local18.@event); _local20 = _local18.children(); _local19.addURL(new NetworkResource(_local16[_local17].@event, _local16[_local17].text())); _local4.addTrackingEvent(_local19); _local17++; }; doLog((_local4.trackingEvents.length + " Linear tracking events recorded"), Debuggable.DEBUG_VAST_TEMPLATE); }; _local2.push(_local4); }; }; return (_local2); } override public function load(_arg1:AdServerRequest, _arg2:Boolean=false):void{ if (_arg1 != null){ if (!_arg2){ masterAdRequest = _arg1; registerLoader(_uid); }; if ((_arg1 is InjectedVASTAdRequest)){ doLog("Loading VAST response directly from the injected configuration", Debuggable.DEBUG_VAST_TEMPLATE); _xmlLoader = new InjectedLoader(); _xmlLoader.addEventListener(Event.COMPLETE, templateLoaded); InjectedLoader(_xmlLoader).process(_arg1.formRequest()); } else { loadTemplateData(_arg1); }; }; } protected function parseInlineAd_V2(_arg1:int, _arg2:String, _arg3:XML):Array{ var _local7:Object; var _local8:XMLList; var _local9:Array; var _local10:int; var _local11:Object; var _local12:VideoAd; var _local13:XMLList; var _local14:int; var _local15:Array; var _local16:Array; var _local17:Array; var _local18:XML; var _local19:String; var _local20:String; var _local21:String; var _local22:VideoAd; var _local23:LinearVideoAd; var _local4:Array = new Array(); var _local5:Array = new Array(); var _local6:String = ObjectUtils.createUID(); doLog((((((("Parsing V2.0 INLINE Ad record at position " + _arg1) + " with Template AdID '") + _arg2) + "' - assigned internal inline ad id '") + _local6) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); doTrace(_arg3, Debuggable.DEBUG_VAST_TEMPLATE); if (_arg3.children().length() > 0){ _local7 = parseExtensions_V2(_arg3); _local5 = _local7.extensions; _local4 = parseImpressions_V2(_arg3); if (_local7.impressions.length > 0){ _local4 = _local4.concat(_local7.impressions); }; _local8 = _arg3.Creatives; if (_local8 != null){ doLog((("Parsing V2.0 creatives blocks - " + _local8.length()) + " block of creatives defined ..."), Debuggable.DEBUG_VAST_TEMPLATE); _local9 = new Array(); _local10 = 0; while (_local10 < _local8.length()) { _local13 = _local8[_local10].Creative; if (_local13 != null){ doLog((((("Parsing V2.0 creative block (" + _local10) + ") - this block has ") + _local13.length()) + " elements ..."), Debuggable.DEBUG_VAST_TEMPLATE); _local14 = 1; _local15 = new Array(); _local16 = new Array(); _local17 = new Array(); for each (_local18 in _local13) { _local19 = _local18.attribute("AdID"); _local20 = _local18.attribute("id"); _local21 = _local18.attribute("sequence"); doLog((((((("Parsing V2.0 creative (" + _local14) + ") creativeID '") + _local20) + "' SequenceID '") + _local21) + "' ..."), Debuggable.DEBUG_VAST_TEMPLATE); resetCompanionIndexCounters(); _local15 = parseLinearAds_V2(_local18.Linear); _local16 = parseNonLinearAds_V2(_local18.NonLinearAds); _local17 = parseCompanionAds_V2(_local18.CompanionAds); _local22 = null; for each (_local23 in _local15) { _local22 = createVideoAd_V2(_local19, _arg3, _local20, _local21, VideoAd.AD_TYPE_LINEAR, _local6, _arg2); if (_local4.length > 0){ _local22.impressions = _local4; }; if (_local5.length > 0){ _local22.extensions = _local5; }; _local22.linearVideoAd = _local23; if (_local17.length > 0){ _local22.companionAds = cloneCompanions(_local17, _local22); doLog((((("Have attached " + _local17.length) + " companions to linear ad '") + _local22.id) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); }; addVideoAd(_local22); }; if (_local16.length > 0){ _local22 = createVideoAd_V2(_local19, _arg3, _local20, _local21, VideoAd.AD_TYPE_NON_LINEAR, _local6, _arg2); if (_local4.length > 0){ _local22.impressions = _local4; }; if (_local5.length > 0){ _local22.extensions = _local5; }; _local22.nonLinearVideoAds = _local16; if (_local17.length > 0){ _local22.companionAds = cloneCompanions(_local17, _local22); doLog((((("Have attached " + _local17.length) + " companions to non-linear ad '") + _local22.id) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); }; addVideoAd(_local22); }; if ((((((((_local15.length == 0)) && ((_local16.length == 0)))) && ((_local17.length > 0)))) || (false))){ _local22 = createVideoAd_V2(_local19, _arg3, _local20, _local21, VideoAd.AD_TYPE_COMPANION, _local6, _arg2); if (_local4.length > 0){ _local22.impressions = _local4; }; if (_local5.length > 0){ _local22.extensions = _local5; }; _local22.companionAds = _local17; addVideoAd(_local22); _local9.push({adId:_local19, creativeId:_local20, sequenceId:_local21, companions:_local17}); }; if ((((((((((_local15.length == 0)) && ((_local16.length == 0)))) && ((_local17.length == 0)))) && ((hasAds(true) == false)))) && ((_local4.length > 0)))){ _local22 = createVideoAd_V2(_local19, _arg3, _local20, _local21, VideoAd.AD_TYPE_LINEAR, _local6, _arg2); _local22.impressions = _local4; addVideoAd(_local22); }; _local14++; }; }; _local10++; }; doLog((("Companion matching PASS 1 - attach ownerless companions (" + _local9.length) + ") to creatives within video ad that don't already have companions"), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local11 in _local9) { for each (_local12 in _ads) { if (_local12.belongsToInlineAd(_local6)){ if (((!((_local12.adType == VideoAd.AD_TYPE_COMPANION))) && (!(_local12.hasCompanionAds())))){ if (((StringUtils.isEmpty(_local11.creativeId)) && (StringUtils.isEmpty(_local11.sequenceId)))){ doLog((((((((((("Attaching companions PASS 1 (sequence: '" + _local11.sequenceId) + "', creativeID: '") + _local11.creativeId) + "', AdID: '") + _local11.adId) + "') to video ad '") + _local12.adType) + ": ") + _local12.id) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); _local12.companionAds = joinCompanions(_local12.companionAds, cloneCompanions(_local11.companions, _local12)); doLog(("Updated companion count is now " + _local12.companionCount()), Debuggable.DEBUG_VAST_TEMPLATE); }; }; }; }; }; doLog((("Companion matching PASS 2 - match up companions (" + _local9.length) + ") based on sequence or creative ID"), Debuggable.DEBUG_VAST_TEMPLATE); for each (_local11 in _local9) { for each (_local12 in _ads) { if (_local12.belongsToInlineAd(_local6)){ if (_local12.adType != VideoAd.AD_TYPE_COMPANION){ if (((((!((_local12.sequenceId == null))) && ((_local12.sequenceId == _local11.sequenceId)))) || (((!((_local12.creativeId == null))) && ((_local12.creativeId == _local11.creativeId)))))){ doLog((((((((((("Attaching companions PASS 2 (sequence: '" + _local11.sequenceId) + "', creativeID: '") + _local11.creativeId) + "', AdID: '") + _local11.adId) + "') to video ad '") + _local12.adType) + ": ") + _local12.id) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); _local12.companionAds = joinCompanions(_local12.companionAds, cloneCompanions(_local11.companions, _local12)); doLog(("Updated companion count is now " + _local12.companionCount()), Debuggable.DEBUG_VAST_TEMPLATE); }; }; }; }; }; }; } else { doLog((("No tags found for Ad '" + _local19) + "' - ignoring this entry"), Debuggable.DEBUG_VAST_TEMPLATE); }; return (_local4); } public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ if (_listener != null){ _listener.onAdCallFailover(_arg1, _arg2); }; } protected function resetCompanionIndexCounters():void{ _indexCounters = new Array(); } protected function getReplacementAdIdType(_arg1:String):String{ var _local2:Object; if (_replacementAdIds != null){ for each (_local2 in _replacementAdIds) { if (_local2.id == _arg1){ return (_local2.slotType); }; }; }; return (null); } public function toString():String{ var _local1:String; var _local2:int; if (hasAds()){ _local1 = "["; _local2 = 0; while (_local2 < _ads.length) { _local1 = (_local1 + (_ads[_local2].toString() + ",")); _local2++; }; return ((_local1 + "]")); }; return ("VideoAdServingTemplate.toString(): No ads to print out"); } } }//package org.openvideoads.vast.model
Section 157
//VideoAdV2 (org.openvideoads.vast.model.VideoAdV2) package org.openvideoads.vast.model { import org.openvideoads.base.*; public class VideoAdV2 extends VideoAd { protected var _containerAdId:String; override public function injectAllTrackingData(_arg1:VideoAd):VideoAd{ var _local2:int; doLog(((((((((("Injecting general impression and tracking events from V2 VideoAd template '" + this.id) + "' ") + this.uid) + " into an actual ") + ((_arg1 is VideoAdV2)) ? "V2" : "V1") + " VideoAd '") + _arg1.id) + "' ") + _arg1.uid), Debuggable.DEBUG_VAST_TEMPLATE); _arg1.addImpressions(_impressions); _arg1.addTrackingEventItems(_trackingEvents); if (_linearVideoAd != null){ if ((_arg1 is VideoAdV2)){ doLog(((("Injecting linear video tracking events from V2 VideoAd " + _linearVideoAd.uid) + " into V2 VideoAd ") + _arg1.linearVideoAd.uid), Debuggable.DEBUG_VAST_TEMPLATE); _arg1.linearVideoAd.addTrackingEventItems(_linearVideoAd.trackingEvents); _arg1.linearVideoAd.addClickTrackingItems(_linearVideoAd.clickTracking); _arg1.linearVideoAd.addCustomClickTrackingItems(_linearVideoAd.customClicks); } else { doLog(((("Injecting linear video tracking events from V2 VideoAd " + _linearVideoAd.uid) + " into V1 VideoAd ") + _arg1.linearVideoAd.uid), Debuggable.DEBUG_VAST_TEMPLATE); _arg1.addTrackingEventItems(_linearVideoAd.trackingEvents); _arg1.addClickTrackingItems(_linearVideoAd.clickTracking); _arg1.addCustomClickTrackingItems(_linearVideoAd.customClicks); }; }; if (hasNonLinearAds()){ _local2 = 0; while (_local2 < _nonLinearVideoAds.length) { if (_local2 < _arg1.nonLinearVideoAds.length){ doLog(((("Injecting V2 non-linear video tracking events from " + _nonLinearVideoAds[_local2].uid) + " into ") + _arg1.nonLinearVideoAds[_local2].uid), Debuggable.DEBUG_VAST_TEMPLATE); _arg1.nonLinearVideoAds[_local2].addTrackingEventItems(_nonLinearVideoAds[_local2].trackingEvents); }; _local2++; }; }; if (hasCompanionAds()){ }; return (_arg1); } override protected function _triggerTrackingEvent(_arg1:String, _arg2:String=null):void{ if (isLinear()){ _linearVideoAd.triggerTrackingEvent(_arg1); super._triggerTrackingEvent(_arg1, _arg2); } else { if (isNonLinear()){ } else { if (isCompanion()){ } else { doLog((((("FATAL: Unable to fire tracking events for VideoAd (" + this.id) + ", ") + this.adId) + ") - ad type unknown"), Debuggable.DEBUG_FATAL); }; }; }; } public function hasLinearTrackingEvents():Boolean{ if (hasLinearAd()){ return (_linearVideoAd.hasTrackingEvents()); }; return (false); } override public function get trackingEvents():Array{ if (isLinear()){ return (_linearVideoAd.trackingEvents); }; return (new Array()); } override public function hasTrackingEvents():Boolean{ return (((hasLinearTrackingEvents()) || (hasNonLinearTrackingEvents()))); } public function hasNonLinearTrackingEvents():Boolean{ var _local1:int; if (hasNonLinearAds()){ _local1 = 0; while (_local1 < _nonLinearVideoAds.length) { if (_nonLinearVideoAds[_local1].hasTrackingEvents()){ return (true); }; _local1++; }; }; return (false); } public function set containerAdId(_arg1:String):void{ _containerAdId = _arg1; } public function get containerAdId():String{ return (_containerAdId); } } }//package org.openvideoads.vast.model
Section 158
//VPAIDMediaFile (org.openvideoads.vast.model.VPAIDMediaFile) package org.openvideoads.vast.model { import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.regions.view.*; import org.openvideoads.vast.overlay.*; import org.openvideoads.vpaid.*; import flash.utils.*; public class VPAIDMediaFile extends MediaFile implements VPAIDPlayback, FlashMedia { protected var _onAdErrorHandler:Function; protected var _vpaidVersion:String;// = null protected var _onVideoThirdQuartileHandler:Function; protected var _onImpressionHandler:Function; protected var _timeoutTimer:Timer;// = null protected var _onAdCompleteHandler:Function; protected var _onAdLinearChangeHandler:Function; protected var _enforceRecommendedSizing:Boolean;// = false protected var _onPlayingHandler:Function; protected var _externalAPICallHandler:Function;// = null protected var _maxDurationTimeoutEnabled:Boolean;// = false protected var _onAdStartHandler:Function; protected var _activeOverlay:OverlayView;// = null protected var _onPausedHandler:Function; protected var _onMinimizeHandler:Function; protected var _onVideoCompleteHandler:Function; protected var _onRemainingTimeChangeHandler:Function; protected var _onAdExpandedChangeHandler:Function; protected var _onVideoMidpointHandler:Function; protected var _running:Boolean;// = false protected var _onClickThruHandler:Function; protected var _adTerminated:Boolean;// = false protected var _onLoadedHandler:Function; protected var _onUserAcceptInvitationHandler:Function; protected var _maxDurationTimeoutInSeconds:int;// = 65 protected var _onVideoFirstQuartileHandler:Function; protected var _onVideoStartHandler:Function; protected var _vpaidWrapper:VPAIDWrapper;// = null protected var _onCloseHandler:Function; protected var _resourceLoaded:Boolean;// = false public function signalLoadError(_arg1:String):void{ callbackOnError(_arg1); } public function get loaded():Boolean{ return (_resourceLoaded); } protected function triggerClickTracking():void{ doLog("VPAIDMediaFile::triggerClickTracking() - firing click tracking urls", Debuggable.DEBUG_VPAID); if (_parentAd != null){ _parentAd.fireClickTracking(); }; } public function registerAsVPAID(_arg1:VPAIDWrapper):Boolean{ var _local2:String; if (_arg1 != null){ _vpaidWrapper = _arg1; _vpaidVersion = (_vpaidWrapper.isV110()) ? "1.1.0" : (_vpaidWrapper.isV100()) ? "1.0.0" : null; _local2 = null; if (_vpaidVersion == "1.0.0"){ doLog("VPAID 1.0.0 Ad loaded - interface not supported", Debuggable.DEBUG_VPAID); _local2 = _vpaidWrapper.initVPAIDVersion("1.0.0"); } else { if (_vpaidVersion == "1.1.0"){ _local2 = _vpaidWrapper.handshakeVersion("1.1.0"); doLog(("VPAID 1.1.0 Ad loaded - VPAID version handshake reports VPAID Ad version as " + _local2), Debuggable.DEBUG_VPAID); _vpaidWrapper.addEventListener(VPAIDEvent.AdLoaded, onVPAIDAdLoaded); _vpaidWrapper.addEventListener(VPAIDEvent.AdStarted, onVPAIDAdStarted); _vpaidWrapper.addEventListener(VPAIDEvent.AdStopped, onVPAIDAdStopped); _vpaidWrapper.addEventListener(VPAIDEvent.AdLinearChange, onVPAIDAdLinearChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdExpandedChange, onVPAIDAdExpandedChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdRemainingTimeChange, onVPAIDAdRemainingTimeChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdVolumeChange, onVPAIDAdVolumeChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdImpression, onVPAIDAdImpression); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoStart, onVPAIDAdVideoStart); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoFirstQuartile, onVPAIDAdVideoFirstQuartile); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoMidpoint, onVPAIDAdVideoMidpoint); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoThirdQuartile, onVPAIDAdVideoThirdQuartile); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoComplete, onVPAIDAdVideoComplete); _vpaidWrapper.addEventListener(VPAIDEvent.AdClickThru, onVPAIDAdClickThru); _vpaidWrapper.addEventListener(VPAIDEvent.AdUserAcceptInvitation, onVPAIDAdUserAcceptInvitation); _vpaidWrapper.addEventListener(VPAIDEvent.AdUserClose, onVPAIDAdUserClose); _vpaidWrapper.addEventListener(VPAIDEvent.AdPaused, onVPAIDAdPaused); _vpaidWrapper.addEventListener(VPAIDEvent.AdPlaying, onVPAIDAdPlaying); _vpaidWrapper.addEventListener(VPAIDEvent.AdLog, onVPAIDAdLog); _vpaidWrapper.addEventListener(VPAIDEvent.AdError, onVPAIDAdError); return (true); }; doLog((("VPAID Ad Loaded but it does not have a valid VPAID API version (reporting as '" + _vpaidVersion) + "') - ignoring completely"), Debuggable.DEBUG_VPAID); }; }; return (false); } override public function unload():void{ doLog("Unloading the Linear VPAID resource...", Debuggable.DEBUG_VPAID); if (isRunning()){ doLog("The VPAID Ad is still running sending stop() before unloading the resource", Debuggable.DEBUG_VPAID); _adTerminated = true; _vpaidWrapper.stopAd(); }; removeListeners(); if (hasActiveOverlay()){ _activeOverlay.clearDisplayContent(); closeActiveOverlay(); }; _vpaidWrapper = null; } public function enableMaxDurationTimeout():void{ _maxDurationTimeoutEnabled = true; } public function startVPAID(_arg1:Number=-1, _arg2:Number=-1, _arg3:String="normal", _arg4:Boolean=false, _arg5:String=null):void{ var environmentVars:String; var width = _arg1; var height = _arg2; var mode = _arg3; var passReferrer = _arg4; var referrer = _arg5; if (_vpaidWrapper != null){ _adTerminated = false; if (_vpaidVersion == "1.1.0"){ environmentVars = ""; if (passReferrer){ if (referrer != null){ environmentVars = ("referrer=" + referrer); doLog((("Passing in the referrer manually as '" + referrer) + "' to the VPAID ad via the environmentVars"), Debuggable.DEBUG_VPAID); } else { try { referrer = BrowserUtils.getReferrer(true); environmentVars = ("referrer=" + referrer); doLog((("Passing in the referrer automatically as '" + referrer) + "' to the VPAID ad via the environmentVars"), Debuggable.DEBUG_VPAID); } catch(e:Error) { }; }; }; doLog(((((((((("Initialising the VPAID ad with width:" + Math.floor(width)) + ", height:") + Math.floor(height)) + ", mode:") + mode) + ", bitrate:400, parameters:") + adParameters) + ", environment vars:") + environmentVars), Debuggable.DEBUG_VPAID); try { _vpaidWrapper.initAd(Math.floor(width), Math.floor(height), mode, 400, ((adParameters)==null) ? "" : adParameters, ((environmentVars)==null) ? "" : environmentVars); startTimeoutTimer(); } catch(e:Error) { callbackOnError(("Exception generated in VPAID.initAd() - aborting - " + e.message)); }; }; }; } public function registerVideoCompleteHandler(_arg1:Function):void{ _onVideoCompleteHandler = _arg1; } public function getOverlay():OverlayView{ return (_activeOverlay); } protected function onVPAIDAdVideoThirdQuartile(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoThirdQuartile event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_3RDQUARTILE); fireExternalAPICall(VPAIDEvent.AdVideoThirdQuartile); callbackOnVideoThirdQuartile(); } protected function removeListeners():void{ if (_vpaidWrapper != null){ _vpaidWrapper.removeEventListener(VPAIDEvent.AdLoaded, onVPAIDAdLoaded); _vpaidWrapper.removeEventListener(VPAIDEvent.AdStarted, onVPAIDAdStarted); _vpaidWrapper.removeEventListener(VPAIDEvent.AdStopped, onVPAIDAdStopped); _vpaidWrapper.removeEventListener(VPAIDEvent.AdLinearChange, onVPAIDAdLinearChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdExpandedChange, onVPAIDAdExpandedChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdRemainingTimeChange, onVPAIDAdRemainingTimeChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVolumeChange, onVPAIDAdVolumeChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdImpression, onVPAIDAdImpression); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoStart, onVPAIDAdVideoStart); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoFirstQuartile, onVPAIDAdVideoFirstQuartile); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoMidpoint, onVPAIDAdVideoMidpoint); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoThirdQuartile, onVPAIDAdVideoThirdQuartile); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoComplete, onVPAIDAdVideoComplete); _vpaidWrapper.removeEventListener(VPAIDEvent.AdClickThru, onVPAIDAdClickThru); _vpaidWrapper.removeEventListener(VPAIDEvent.AdUserAcceptInvitation, onVPAIDAdUserAcceptInvitation); _vpaidWrapper.removeEventListener(VPAIDEvent.AdUserClose, onVPAIDAdUserClose); _vpaidWrapper.removeEventListener(VPAIDEvent.AdPaused, onVPAIDAdPaused); _vpaidWrapper.removeEventListener(VPAIDEvent.AdPlaying, onVPAIDAdPlaying); _vpaidWrapper.removeEventListener(VPAIDEvent.AdLog, onVPAIDAdLog); _vpaidWrapper.removeEventListener(VPAIDEvent.AdError, onVPAIDAdError); }; } protected function onVPAIDAdPlaying(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdPlaying event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_RESUME); startTimeoutTimer(); fireExternalAPICall(VPAIDEvent.AdPlaying); callbackOnPlaying(); } protected function callbackOnLoaded():void{ if (_onLoadedHandler != null){ _onLoadedHandler(new VPAIDEvent(VPAIDEvent.AdLoaded)); }; } public function get recommendedWidth():int{ if (_width != null){ return (parseInt(_width)); }; return (-1); } protected function callbackOnImpression():void{ if (_onImpressionHandler != null){ _onImpressionHandler(new VPAIDEvent(VPAIDEvent.AdImpression)); }; } public function registerVideoFirstQuartileHandler(_arg1:Function):void{ _onVideoFirstQuartileHandler = _arg1; } protected function callbackOnVideoComplete():void{ if (_onVideoCompleteHandler != null){ _onVideoCompleteHandler(new VPAIDEvent(VPAIDEvent.AdVideoComplete)); }; } public function registerVideoMidpointHandler(_arg1:Function):void{ _onVideoMidpointHandler = _arg1; } public function resume():void{ if (_vpaidWrapper != null){ _vpaidWrapper.resumeAd(); }; } protected function fireExternalAPICall(_arg1:String, _arg2:Object=null):void{ if (_externalAPICallHandler != null){ _externalAPICallHandler(new VPAIDEvent(_arg1, _arg2)); }; } public function disableMaxDurationTimeout():void{ _maxDurationTimeoutEnabled = false; } public function isRunning():Boolean{ return (((!((_vpaidWrapper == null))) && (_running))); } protected function onVPAIDAdLog(_arg1):void{ if (_arg1 != null){ if (_arg1.data != null){ if ((_arg1.data is String)){ doLog(("VPAIDMediaFile::VPAID.AdLog - " + _arg1.data), Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdLog, _arg1.data); return; }; if ((_arg1.data is Object)){ doLog(("VPAIDMediaFile::VPAID.AdLog - " + _arg1.data.message), Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdLog, _arg1.data); return; }; doLog("VPAIDMediaFile::VPAID.AdLog - can't work out how to print out the VPAID log message", Debuggable.DEBUG_VPAID); } else { doLog("VPAIDMediaFile::VPAID.AdLog - no data supplied in log event", Debuggable.DEBUG_VPAID); }; } else { doLog("VPAIDMediaFile::VPAID.AdLog - no event supplied to logging call", Debuggable.DEBUG_VPAID); }; fireExternalAPICall(VPAIDEvent.AdLog); } protected function callbackOnVideoMidpoint():void{ if (_onVideoMidpointHandler != null){ _onVideoMidpointHandler(new VPAIDEvent(VPAIDEvent.AdVideoMidpoint)); }; } public function registerVideoStartHandler(_arg1:Function):void{ _onVideoStartHandler = _arg1; } protected function triggerTrackingEvent(_arg1:String):void{ if (_parentAd != null){ if (_parentAd.parentAdContainer != null){ if (_parentAd.parentAdContainer.hasWrapper()){ _parentAd.parentAdContainer.wrapper.triggerTrackingEvent(_arg1); } else { _parentAd.parentAdContainer.triggerTrackingEvent(_arg1); }; }; }; } public function setMaxDurationTimeout(_arg1:int):void{ _maxDurationTimeoutInSeconds = _arg1; } public function closeActiveOverlay():void{ if (hasActiveOverlay()){ _activeOverlay.hide(); _activeOverlay = null; }; } protected function onVPAIDAdVideoComplete(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoComplete event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_COMPLETE); fireExternalAPICall(VPAIDEvent.AdVideoComplete); callbackOnVideoComplete(); } public function registerUserAcceptInvitationHandler(_arg1:Function):void{ _onUserAcceptInvitationHandler = _arg1; } override public function isInteractive():Boolean{ return (true); } public function registerRemainingTimeChangeHandler(_arg1:Function):void{ _onRemainingTimeChangeHandler = _arg1; } public function get recommendedHeight():int{ if (_height != null){ return (parseInt(_height)); }; return (-1); } protected function callbackOnClose():void{ if (_onCloseHandler != null){ _onCloseHandler(new VPAIDEvent(VPAIDEvent.AdUserClose)); }; } public function isInNonLinearMode():Boolean{ if (isRunning()){ return ((((_vpaidWrapper.adLinear == false)) && ((_vpaidWrapper.adExpanded == false)))); }; return (false); } protected function onVPAIDAdUserClose(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdUserClose event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_CLOSE); fireExternalAPICall(VPAIDEvent.AdUserClose); callbackOnClose(); } public function registerErrorHandler(_arg1:Function):void{ _onAdErrorHandler = _arg1; } protected function callbackOnError(_arg1:String):void{ _running = false; if (_onAdErrorHandler != null){ _onAdErrorHandler(new VPAIDEvent(VPAIDEvent.AdError, _arg1)); }; } public function markAsLoading():void{ _resourceLoaded = false; } public function registerExpandedChangeHandler(_arg1:Function):void{ _onAdExpandedChangeHandler = _arg1; } public function registerOnPausedHandler(_arg1:Function):void{ _onPausedHandler = _arg1; } protected function onVPAIDAdStarted(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdStarted event received", Debuggable.DEBUG_VPAID); callbackOnStart(); triggerTrackingEvent(TrackingEvent.EVENT_START); fireExternalAPICall(VPAIDEvent.AdStarted); } protected function triggerImpressionConfirmations():void{ if (_parentAd != null){ if (_parentAd.parentAdContainer != null){ if (_parentAd.parentAdContainer.hasWrapper()){ _parentAd.parentAdContainer.wrapper.triggerImpressionConfirmations(); }; _parentAd.parentAdContainer.triggerImpressionConfirmations(); }; }; } protected function callbackOnComplete(_arg1:String):void{ _running = false; if (_onAdCompleteHandler != null){ _onAdCompleteHandler(new VPAIDEvent(_arg1, {terminated:_adTerminated})); }; } protected function callbackOnVideoThirdQuartile():void{ if (_onVideoThirdQuartileHandler != null){ _onVideoThirdQuartileHandler(new VPAIDEvent(VPAIDEvent.AdVideoThirdQuartile)); }; } public function registerCloseHandler(_arg1:Function):void{ _onCloseHandler = _arg1; } protected function callbackOnPaused():void{ if (_onPausedHandler != null){ _onPausedHandler(new VPAIDEvent(VPAIDEvent.AdPaused)); }; } public function setOverlay(_arg1:OverlayView):void{ _activeOverlay = _arg1; } protected function onVPAIDAdExpandedChange(_arg1):void{ doLog((("VPAIDMediaFile::VPAID.AdExpandedChange event received (adExpanded == " + _vpaidWrapper.adExpanded) + ")"), Debuggable.DEBUG_VPAID); if (_vpaidWrapper.adExpanded){ triggerTrackingEvent(TrackingEvent.EVENT_EXPAND); } else { triggerTrackingEvent(TrackingEvent.EVENT_COLLAPSE); }; if (_onAdExpandedChangeHandler != null){ _onAdExpandedChangeHandler(new VPAIDEvent(VPAIDEvent.AdExpandedChange, {expanded:_vpaidWrapper.adExpanded, linearPlayback:_vpaidWrapper.adLinear})); }; } protected function callbackOnPlaying():void{ if (_onPlayingHandler != null){ _onPlayingHandler(new VPAIDEvent(VPAIDEvent.AdPlaying)); }; } public function getVPAID():IVPAID{ if (_vpaidWrapper != null){ return (_vpaidWrapper); }; return (null); } public function get swfURL():String{ if (_url != null){ return (_url.url); }; return (null); } protected function onVPAIDAdVideoFirstQuartile(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoFirstQuartile event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_1STQUARTILE); fireExternalAPICall(VPAIDEvent.AdVideoFirstQuartile); callbackOnVideoFirstQuartile(); } public function registerVideoThirdQuartileHandler(_arg1:Function):void{ _onVideoThirdQuartileHandler = _arg1; } protected function onVPAIDAdRemainingTimeChange(_arg1):void{ var _local2:Number = _vpaidWrapper.adRemainingTime; doLog((("VPAIDMediaFile::VPAID.AdRemainingTimeChange event received (adRemainingTime == " + _local2) + ")"), Debuggable.DEBUG_VPAID); if (_onRemainingTimeChangeHandler != null){ _onRemainingTimeChangeHandler(new VPAIDEvent(VPAIDEvent.AdRemainingTimeChange, _local2)); }; } protected function onVPAIDAdLinearChange(_arg1):void{ doLog((("VPAIDMediaFile::VPAID.AdLinearChange event received (adLinear == " + _vpaidWrapper.adLinear) + ")"), Debuggable.DEBUG_VPAID); if (_onAdLinearChangeHandler != null){ _onAdLinearChangeHandler(new VPAIDEvent(VPAIDEvent.AdLinearChange, _vpaidWrapper.adLinear)); }; } public function registerImpressionHandler(_arg1:Function):void{ _onImpressionHandler = _arg1; } public function registerLoadedHandler(_arg1:Function):void{ _onLoadedHandler = _arg1; } protected function onVPAIDAdVideoMidpoint(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoMidpoint event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_MIDPOINT); fireExternalAPICall(VPAIDEvent.AdVideoMidpoint); callbackOnVideoMidpoint(); } protected function onVPAIDAdVideoStart(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoStart event received", Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdVideoStart); callbackOnVideoStart(); } public function toRuntimeStateJSObject():Object{ if (_vpaidWrapper != null){ return (_vpaidWrapper.toRuntimeStateJSObject()); }; return (new Object()); } public function registerMinimizeHandler(_arg1:Function):void{ _onMinimizeHandler = _arg1; } public function stopTimeoutTimer(_arg1:TimerEvent=null):void{ var e = _arg1; if (_timeoutTimer != null){ doLog(("VPAIDMediaFile::stopTimeoutTimer() - timer " + ((e)==null) ? "aborted - no longer required" : "stopped - timeout triggered"), Debuggable.DEBUG_VPAID); _timeoutTimer.stop(); _timeoutTimer = null; if (e != null){ try { _vpaidWrapper.stopAd(); callbackOnError("Timeout triggered on VPAID Ad startup - also for safety, tried to forcibly stop the VPAID ad before firing this error"); } catch(e:Error) { callbackOnError(("Timeout timer triggered - forcing stop on exception generated from VPAID.stopAd() - " + e.message)); }; }; }; } public function registerCompleteHandler(_arg1:Function):void{ _onAdCompleteHandler = _arg1; } protected function onVPAIDAdVolumeChange(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVolumeChange event received", Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdVolumeChange, _arg1.data); } public function registerOnPlayingHandler(_arg1:Function):void{ _onPlayingHandler = _arg1; } public function registerExternalAPICallHandler(_arg1:Function):void{ _externalAPICallHandler = _arg1; } public function registerLinearChangeHandler(_arg1:Function):void{ _onAdLinearChangeHandler = _arg1; } protected function callbackOnVideoFirstQuartile():void{ if (_onVideoFirstQuartileHandler != null){ _onVideoFirstQuartileHandler(new VPAIDEvent(VPAIDEvent.AdVideoFirstQuartile)); }; } public function markAsLoaded():void{ _resourceLoaded = true; } public function registerClickThruHandler(_arg1:Function):void{ _onClickThruHandler = _arg1; } protected function onVPAIDAdError(_arg1):void{ stopTimeoutTimer(); var _local2:String = ((_arg1.data)!=null) ? ((_arg1.data.message)!=undefined) ? _arg1.data.message : _arg1.data : "no error message provided"; doLog(("VPAIDMediaFile::VPAID.AdError event received - " + _local2), Debuggable.DEBUG_VPAID); callbackOnError(_local2); } protected function callbackOnMinimize():void{ if (_onMinimizeHandler != null){ _onMinimizeHandler(new VPAIDEvent(VPAIDEvent.AdUserMinimize)); }; } public function resize(_arg1:Number, _arg2:Number, _arg3:String):void{ if (_vpaidWrapper != null){ _vpaidWrapper.resizeAd(_arg1, _arg2, _arg3); }; } protected function callbackOnStart():void{ _running = true; if (_onAdStartHandler != null){ _onAdStartHandler(new VPAIDEvent(VPAIDEvent.AdStarted)); }; } protected function onVPAIDAdStopped(_arg1):void{ stopTimeoutTimer(); doLog("VPAIDMediaFile::VPAID.AdStopped event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_STOP); callbackOnComplete(VPAIDEvent.AdStopped); } protected function onVPAIDAdImpression(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdImpression event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_CREATIVE_VIEW); triggerImpressionConfirmations(); fireExternalAPICall(VPAIDEvent.AdImpression); callbackOnImpression(); } protected function callbackOnClickThru():void{ if (_onClickThruHandler != null){ _onClickThruHandler(new VPAIDEvent(VPAIDEvent.AdClickThru)); }; } public function registerStartHandler(_arg1:Function):void{ _onAdStartHandler = _arg1; } protected function onVPAIDAdUserMinimize(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdUserMinimize event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_COLLAPSE); fireExternalAPICall(VPAIDEvent.AdUserMinimize); callbackOnMinimize(); } protected function callbackOnUserAcceptInvitation():void{ if (_onUserAcceptInvitationHandler != null){ _onUserAcceptInvitationHandler(new VPAIDEvent(VPAIDEvent.AdUserAcceptInvitation)); }; } protected function onVPAIDAdClickThru(_arg1):void{ var event = _arg1; try { if (((!((event.data == undefined))) && (!((event.data == null))))){ if (((event.data.playerHandles) && (!(StringUtils.isEmpty(event.data.url))))){ doLog(("VPAIDMediaFile::VPAID.AdClickThru event received - VPAID ad has requested browser to open click through URL " + event.data.url), Debuggable.DEBUG_VPAID); PopupWindow.openWindow(event.data.url, "_blank"); } else { doLog(((("VPAIDMediaFile::VPAID.AdClickThru event received - VPAID ad must be handling click through because data.playerHandles == " + event.data.playerHandles) + " and data.url == ") + event.data.url), Debuggable.DEBUG_VPAID); }; } else { doLog("VPAIDMediaFile::VPAID.AdClickThru event received - VPAID ad internally opening click through URL", Debuggable.DEBUG_VPAID); }; } catch(e:Error) { }; triggerClickTracking(); fireExternalAPICall(VPAIDEvent.AdClickThru); callbackOnClickThru(); } protected function startTimeoutTimer():void{ var _local1:int; if (_maxDurationTimeoutEnabled){ if (_timeoutTimer == null){ _local1 = ((_parentAd)!=null) ? ((_parentAd.getDurationAsInt())>0) ? _parentAd.getDurationAsInt() : _maxDurationTimeoutInSeconds : _maxDurationTimeoutInSeconds; if (_local1 > 0){ if (_timeoutTimer != null){ stopTimeoutTimer(); }; _timeoutTimer = new Timer((_local1 * 1000), 2); _timeoutTimer.addEventListener(TimerEvent.TIMER, stopTimeoutTimer); _timeoutTimer.start(); doLog((("VPAIDMediaFile::startTimeoutTimer() - timer started - timeout set at " + _local1) + " seconds"), Debuggable.DEBUG_VPAID); } else { doLog("VPAIDMediaFile::startTimeoutTimer() - cannot set timeout timer - no duration specified for this ad", Debuggable.DEBUG_VPAID); }; } else { doLog("VPAIDMediaFile::startTimeoutTimer() - ignoring request to set timeout time - timer is already active", Debuggable.DEBUG_VPAID); }; } else { doLog("VPAIDMediaFile::startTimeoutTimer() - not setting a max duration timeout timer - disabled in config", Debuggable.DEBUG_VPAID); }; } protected function callbackOnVideoStart():void{ if (_onVideoStartHandler != null){ _onVideoStartHandler(new VPAIDEvent(VPAIDEvent.AdVideoStart)); }; } public function set enforceRecommendedSizing(_arg1:Boolean):void{ _enforceRecommendedSizing = _arg1; } protected function onVPAIDAdUserAcceptInvitation(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdUserAcceptInvitation event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_ACCEPT); fireExternalAPICall(VPAIDEvent.AdUserAcceptInvitation); callbackOnUserAcceptInvitation(); } protected function onVPAIDAdPaused(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdPaused event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_PAUSE); stopTimeoutTimer(); fireExternalAPICall(VPAIDEvent.AdPaused); callbackOnPaused(); } public function pause():void{ if (_vpaidWrapper != null){ _vpaidWrapper.pauseAd(); }; } public function hasActiveOverlay():Boolean{ return (!((_activeOverlay == null))); } protected function onVPAIDAdLoaded(_arg1):void{ var event = _arg1; doLog("VPAIDMediaFile::VPAID.AdLoaded event received - starting Ad", Debuggable.DEBUG_VPAID); try { fireExternalAPICall(VPAIDEvent.AdLoaded); _vpaidWrapper.startAd(); callbackOnLoaded(); } catch(e:Error) { callbackOnError(("Exception generated in VPAID.startAd() - aborting - " + e.message)); }; } public function get enforceRecommendedSizing():Boolean{ return (_enforceRecommendedSizing); } } }//package org.openvideoads.vast.model
Section 159
//VPAIDNonLinearAd (org.openvideoads.vast.model.VPAIDNonLinearAd) package org.openvideoads.vast.model { import org.openvideoads.vast.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.overlay.*; import org.openvideoads.vpaid.*; public class VPAIDNonLinearAd extends NonLinearFlashAd implements VPAIDPlayback { protected var _onAdErrorHandler:Function; protected var _vpaidVersion:String;// = null protected var _adIsInLinearMode:Boolean;// = false protected var _onVideoThirdQuartileHandler:Function; protected var _onImpressionHandler:Function; protected var _onAdCompleteHandler:Function; protected var _onAdLinearChangeHandler:Function; protected var _maxDurationTimeoutEnabled:Boolean;// = false protected var _externalAPICallHandler:Function;// = null protected var _onPlayingHandler:Function; protected var _onPausedHandler:Function; protected var _onAdStartHandler:Function; protected var _activeOverlay:OverlayView;// = null protected var _onMinimizeHandler:Function; protected var _onVideoCompleteHandler:Function; protected var _onAdExpandedChangeHandler:Function; protected var _onRemainingTimeChangeHandler:Function; protected var _onVideoMidpointHandler:Function; protected var _running:Boolean;// = false protected var _onClickThruHandler:Function; protected var _adTerminated:Boolean;// = false protected var _stopped:Boolean;// = false protected var _onUserAcceptInvitationHandler:Function; protected var _maxDurationTimeoutInSeconds:int;// = 65 protected var _onLoadedHandler:Function; protected var _onVideoFirstQuartileHandler:Function; protected var _onVideoStartHandler:Function; protected var _vpaidWrapper:VPAIDWrapper;// = null protected var _onCloseHandler:Function; override public function signalLoadError(_arg1:String):void{ callbackOnError(_arg1); } public function enableMaxDurationTimeout():void{ _maxDurationTimeoutEnabled = true; } public function registerAsVPAID(_arg1:VPAIDWrapper):Boolean{ var _local2:String; if (_arg1 != null){ _vpaidWrapper = _arg1; _vpaidVersion = (_vpaidWrapper.isV110()) ? "1.1.0" : (_vpaidWrapper.isV100()) ? "1.0.0" : null; _local2 = null; if (_vpaidVersion == "1.0.0"){ doLog("VPAID 1.0.0 Ad loaded - interface not supported", Debuggable.DEBUG_VPAID); _local2 = _vpaidWrapper.initVPAIDVersion("1.0.0"); } else { if (_vpaidVersion == "1.1.0"){ _local2 = _vpaidWrapper.handshakeVersion("1.1.0"); doLog(("VPAID 1.1.0 Ad loaded - VPAID version handshake reports VPAID Ad version as " + _local2), Debuggable.DEBUG_VPAID); _vpaidWrapper.addEventListener(VPAIDEvent.AdLoaded, onVPAIDAdLoaded); _vpaidWrapper.addEventListener(VPAIDEvent.AdStarted, onVPAIDAdStarted); _vpaidWrapper.addEventListener(VPAIDEvent.AdStopped, onVPAIDAdStopped); _vpaidWrapper.addEventListener(VPAIDEvent.AdLinearChange, onVPAIDAdLinearChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdExpandedChange, onVPAIDAdExpandedChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdRemainingTimeChange, onVPAIDAdRemainingTimeChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdVolumeChange, onVPAIDAdVolumeChange); _vpaidWrapper.addEventListener(VPAIDEvent.AdImpression, onVPAIDAdImpression); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoStart, onVPAIDAdVideoStart); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoFirstQuartile, onVPAIDAdVideoFirstQuartile); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoMidpoint, onVPAIDAdVideoMidpoint); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoThirdQuartile, onVPAIDAdVideoThirdQuartile); _vpaidWrapper.addEventListener(VPAIDEvent.AdVideoComplete, onVPAIDAdVideoComplete); _vpaidWrapper.addEventListener(VPAIDEvent.AdClickThru, onVPAIDAdClickThru); _vpaidWrapper.addEventListener(VPAIDEvent.AdUserAcceptInvitation, onVPAIDAdUserAcceptInvitation); _vpaidWrapper.addEventListener(VPAIDEvent.AdUserClose, onVPAIDAdUserClose); _vpaidWrapper.addEventListener(VPAIDEvent.AdPaused, onVPAIDAdPaused); _vpaidWrapper.addEventListener(VPAIDEvent.AdPlaying, onVPAIDAdPlaying); _vpaidWrapper.addEventListener(VPAIDEvent.AdLog, onVPAIDAdLog); _vpaidWrapper.addEventListener(VPAIDEvent.AdError, onVPAIDAdError); return (true); }; doLog((("VPAID Ad Loaded but it does not have a valid VPAID API version (reporting as '" + _vpaidVersion) + "') - ignoring completely"), Debuggable.DEBUG_VPAID); }; }; _stopped = true; return (false); } public function startVPAID(_arg1:Number=-1, _arg2:Number=-1, _arg3:String="normal", _arg4:Boolean=false, _arg5:String=null):void{ var environmentVars:String; var width = _arg1; var height = _arg2; var mode = _arg3; var passReferrer = _arg4; var referrer = _arg5; if (_vpaidWrapper != null){ _adTerminated = false; if (_vpaidVersion == "1.1.0"){ environmentVars = ""; if (passReferrer){ if (referrer != null){ environmentVars = ("referrer=" + referrer); doLog((("Passing in the referrer manually as '" + referrer) + "' to the VPAID ad via the environmentVars"), Debuggable.DEBUG_VPAID); } else { try { referrer = BrowserUtils.getReferrer(true); environmentVars = ("referrer=" + referrer); doLog((("Passing in the referrer automatically '" + referrer) + "' to the VPAID ad via the environmentVars"), Debuggable.DEBUG_VPAID); } catch(e:Error) { }; }; }; _vpaidWrapper.initAd(Math.floor(width), Math.floor(height), mode, 400, ((adParameters)==null) ? "" : adParameters, ((environmentVars)==null) ? "" : environmentVars); } else { doLog((("Non-linear VPAID version '" + _vpaidVersion) + "' is not handled by OVA at present"), Debuggable.DEBUG_VPAID); }; }; } public function getOverlay():OverlayView{ return (_activeOverlay); } protected function removeListeners():void{ if (_vpaidWrapper != null){ _vpaidWrapper.removeEventListener(VPAIDEvent.AdLoaded, onVPAIDAdLoaded); _vpaidWrapper.removeEventListener(VPAIDEvent.AdStarted, onVPAIDAdStarted); _vpaidWrapper.removeEventListener(VPAIDEvent.AdStopped, onVPAIDAdStopped); _vpaidWrapper.removeEventListener(VPAIDEvent.AdLinearChange, onVPAIDAdLinearChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdExpandedChange, onVPAIDAdExpandedChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdRemainingTimeChange, onVPAIDAdRemainingTimeChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVolumeChange, onVPAIDAdVolumeChange); _vpaidWrapper.removeEventListener(VPAIDEvent.AdImpression, onVPAIDAdImpression); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoStart, onVPAIDAdVideoStart); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoFirstQuartile, onVPAIDAdVideoFirstQuartile); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoMidpoint, onVPAIDAdVideoMidpoint); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoThirdQuartile, onVPAIDAdVideoThirdQuartile); _vpaidWrapper.removeEventListener(VPAIDEvent.AdVideoComplete, onVPAIDAdVideoComplete); _vpaidWrapper.removeEventListener(VPAIDEvent.AdClickThru, onVPAIDAdClickThru); _vpaidWrapper.removeEventListener(VPAIDEvent.AdUserAcceptInvitation, onVPAIDAdUserAcceptInvitation); _vpaidWrapper.removeEventListener(VPAIDEvent.AdUserClose, onVPAIDAdUserClose); _vpaidWrapper.removeEventListener(VPAIDEvent.AdPaused, onVPAIDAdPaused); _vpaidWrapper.removeEventListener(VPAIDEvent.AdPlaying, onVPAIDAdPlaying); _vpaidWrapper.removeEventListener(VPAIDEvent.AdLog, onVPAIDAdLog); _vpaidWrapper.removeEventListener(VPAIDEvent.AdError, onVPAIDAdError); }; } public function registerVideoCompleteHandler(_arg1:Function):void{ _onVideoCompleteHandler = _arg1; } protected function onVPAIDAdVideoThirdQuartile(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoThirdQuartile event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_3RDQUARTILE); fireExternalAPICall(VPAIDEvent.AdVideoThirdQuartile); callbackOnVideoThirdQuartile(); } protected function callbackOnLoaded():void{ if (_onLoadedHandler != null){ _onLoadedHandler(new VPAIDEvent(VPAIDEvent.AdLoaded)); }; } public function setMaxDurationTimeout(_arg1:int):void{ _maxDurationTimeoutInSeconds = _arg1; } protected function callbackOnImpression():void{ if (_onImpressionHandler != null){ _onImpressionHandler(new VPAIDEvent(VPAIDEvent.AdImpression)); }; } public function registerVideoFirstQuartileHandler(_arg1:Function):void{ _onVideoFirstQuartileHandler = _arg1; } protected function callbackOnVideoComplete():void{ if (_onVideoCompleteHandler != null){ _onVideoCompleteHandler(new VPAIDEvent(VPAIDEvent.AdVideoComplete)); }; } public function registerVideoMidpointHandler(_arg1:Function):void{ _onVideoMidpointHandler = _arg1; } public function resume():void{ if (_vpaidWrapper != null){ _vpaidWrapper.resumeAd(); }; } public function isRunning():Boolean{ return (((haveLoadedVPAIDResource()) && (_running))); } protected function fireExternalAPICall(_arg1:String, _arg2:Object=null):void{ if (_externalAPICallHandler != null){ _externalAPICallHandler(new VPAIDEvent(_arg1, _arg2)); }; } public function disableMaxDurationTimeout():void{ _maxDurationTimeoutEnabled = false; } protected function onVPAIDAdLog(_arg1):void{ if (_arg1 != null){ if (_arg1.data != null){ if ((_arg1.data is String)){ doLog(("VPAIDMediaFile::VPAID.AdLog - " + _arg1.data), Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdLog, _arg1.data); return; }; if ((_arg1.data is Object)){ doLog(("VPAIDMediaFile::VPAID.AdLog - " + _arg1.data.message), Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdLog, _arg1.data); return; }; doLog("VPAIDMediaFile::VPAID.AdLog - can't work out how to print out the VPAID log message", Debuggable.DEBUG_VPAID); } else { doLog("VPAIDMediaFile::VPAID.AdLog - no data supplied in log event", Debuggable.DEBUG_VPAID); }; } else { doLog("VPAIDMediaFile::VPAID.AdLog - no event supplied to logging call", Debuggable.DEBUG_VPAID); }; fireExternalAPICall(VPAIDEvent.AdLog); } protected function callbackOnVideoMidpoint():void{ if (_onVideoMidpointHandler != null){ _onVideoMidpointHandler(new VPAIDEvent(VPAIDEvent.AdVideoMidpoint)); }; } public function isStopped():Boolean{ return (_stopped); } public function registerVideoStartHandler(_arg1:Function):void{ _onVideoStartHandler = _arg1; } protected function onVPAIDAdPlaying(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdPlaying event received", Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdPlaying); callbackOnPlaying(); } override public function triggerTrackingEvent(_arg1:String):void{ if (_parentAdContainer != null){ super.triggerTrackingEvent(_arg1); if (_parentAdContainer.hasWrapper()){ _parentAdContainer.wrapper.triggerTrackingEvent(_arg1); } else { _parentAdContainer.triggerTrackingEvent(_arg1); }; }; } protected function onVPAIDAdVideoComplete(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoComplete event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_COMPLETE); fireExternalAPICall(VPAIDEvent.AdVideoComplete); callbackOnVideoComplete(); } override public function isInteractive():Boolean{ return (true); } public function registerUserAcceptInvitationHandler(_arg1:Function):void{ _onUserAcceptInvitationHandler = _arg1; } protected function callbackOnComplete(_arg1:String):void{ unload(); _running = false; if (_onAdCompleteHandler != null){ _onAdCompleteHandler(new VPAIDEvent(_arg1, {terminated:_adTerminated})); }; } protected function callbackOnClose():void{ if (_onCloseHandler != null){ _onCloseHandler(new VPAIDEvent(VPAIDEvent.AdUserClose)); }; } protected function onVPAIDAdUserClose(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdUserClose event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_CLOSE); fireExternalAPICall(VPAIDEvent.AdUserClose); callbackOnClose(); } public function closeActiveOverlay():void{ if (hasActiveOverlay()){ _activeOverlay.hide(); _activeOverlay = null; }; } public function registerErrorHandler(_arg1:Function):void{ _onAdErrorHandler = _arg1; } public function registerExpandedChangeHandler(_arg1:Function):void{ _onAdExpandedChangeHandler = _arg1; } override public function start(_arg1:VideoAdDisplayEvent, _arg2=null):void{ if (_arg1.controller != null){ activeDisplayRegion = _arg2; _arg1.controller.onDisplayNonLinearAd(new OverlayAdDisplayEvent(OverlayAdDisplayEvent.DISPLAY, this, _arg1.customData.adSlot, _arg2)); }; } public function registerRemainingTimeChangeHandler(_arg1:Function):void{ _onRemainingTimeChangeHandler = _arg1; } protected function callbackOnError(_arg1:String):void{ unload(); _running = false; if (_onAdErrorHandler != null){ _onAdErrorHandler(new VPAIDEvent(VPAIDEvent.AdError, _arg1)); }; } public function registerCloseHandler(_arg1:Function):void{ _onCloseHandler = _arg1; } protected function onVPAIDAdVideoFirstQuartile(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoFirstQuartile event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_1STQUARTILE); fireExternalAPICall(VPAIDEvent.AdVideoFirstQuartile); callbackOnVideoFirstQuartile(); } public function registerOnPausedHandler(_arg1:Function):void{ _onPausedHandler = _arg1; } protected function triggerImpressionConfirmations():void{ if (_parentAdContainer != null){ if (_parentAdContainer.hasWrapper()){ _parentAdContainer.wrapper.triggerImpressionConfirmations(); }; _parentAdContainer.triggerImpressionConfirmations(); }; } protected function callbackOnPaused():void{ if (_onPausedHandler != null){ _onPausedHandler(new VPAIDEvent(VPAIDEvent.AdPaused)); }; } protected function callbackOnVideoThirdQuartile():void{ if (_onVideoThirdQuartileHandler != null){ _onVideoThirdQuartileHandler(new VPAIDEvent(VPAIDEvent.AdVideoThirdQuartile)); }; } protected function onVPAIDAdExpandedChange(_arg1):void{ doLog((("VPAIDMediaFile::VPAID.AdExpandedChange event received (adExpanded == " + _vpaidWrapper.adExpanded) + ")"), Debuggable.DEBUG_VPAID); if (_vpaidWrapper.adExpanded){ triggerTrackingEvent(TrackingEvent.EVENT_EXPAND); } else { triggerTrackingEvent(TrackingEvent.EVENT_COLLAPSE); }; if (_onAdExpandedChangeHandler != null){ _onAdExpandedChangeHandler(new VPAIDEvent(VPAIDEvent.AdExpandedChange, {expanded:_vpaidWrapper.adExpanded, linearPlayback:_vpaidWrapper.adLinear})); }; } protected function callbackOnPlaying():void{ if (_onPlayingHandler != null){ _onPlayingHandler(new VPAIDEvent(VPAIDEvent.AdPlaying)); }; } public function getVPAID():IVPAID{ if (_vpaidWrapper != null){ return (_vpaidWrapper); }; return (null); } public function setOverlay(_arg1:OverlayView):void{ _activeOverlay = _arg1; } protected function triggerClickTracking():void{ doLog("VPAIDNonLinearAd::triggerClickTracking() - firing click tracking urls", Debuggable.DEBUG_VPAID); this.fireClickTracking(); } public function registerVideoThirdQuartileHandler(_arg1:Function):void{ _onVideoThirdQuartileHandler = _arg1; } protected function onVPAIDAdRemainingTimeChange(_arg1):void{ var _local2:Number = _vpaidWrapper.adRemainingTime; doLog((("VPAIDMediaFile::VPAID.AdRemainingTimeChange event received (adRemainingTime == " + _local2) + ")"), Debuggable.DEBUG_VPAID); if (_onRemainingTimeChangeHandler != null){ _onRemainingTimeChangeHandler(new VPAIDEvent(VPAIDEvent.AdRemainingTimeChange, _local2)); }; } public function toRuntimeStateJSObject():Object{ if (_vpaidWrapper != null){ return (_vpaidWrapper.toRuntimeStateJSObject()); }; return (new Object()); } public function registerImpressionHandler(_arg1:Function):void{ _onImpressionHandler = _arg1; } public function registerLoadedHandler(_arg1:Function):void{ _onLoadedHandler = _arg1; } protected function onVPAIDAdVideoMidpoint(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoMidpoint event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_MIDPOINT); fireExternalAPICall(VPAIDEvent.AdVideoMidpoint); callbackOnVideoMidpoint(); } protected function onVPAIDAdError(_arg1):void{ var _local2:String = ((_arg1.data)!=null) ? ((_arg1.data.message)!=undefined) ? _arg1.data.message : _arg1.data : "no error message provided"; doLog(("VPAIDMediaFile::VPAID.AdError event received - " + _local2), Debuggable.DEBUG_VPAID); callbackOnError(_local2); } protected function onVPAIDAdVideoStart(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVideoStart event received", Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdVideoStart); callbackOnVideoStart(); } public function registerMinimizeHandler(_arg1:Function):void{ _onMinimizeHandler = _arg1; } public function registerCompleteHandler(_arg1:Function):void{ _onAdCompleteHandler = _arg1; } protected function onVPAIDAdVolumeChange(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdVolumeChange event received", Debuggable.DEBUG_VPAID); fireExternalAPICall(VPAIDEvent.AdVolumeChange, _arg1.data); } public function registerOnPlayingHandler(_arg1:Function):void{ _onPlayingHandler = _arg1; } public function registerExternalAPICallHandler(_arg1:Function):void{ _externalAPICallHandler = _arg1; } public function registerLinearChangeHandler(_arg1:Function):void{ _onAdLinearChangeHandler = _arg1; } protected function callbackOnVideoFirstQuartile():void{ if (_onVideoFirstQuartileHandler != null){ _onVideoFirstQuartileHandler(new VPAIDEvent(VPAIDEvent.AdVideoFirstQuartile)); }; } public function registerClickThruHandler(_arg1:Function):void{ _onClickThruHandler = _arg1; } protected function callbackOnMinimize():void{ if (_onMinimizeHandler != null){ _onMinimizeHandler(new VPAIDEvent(VPAIDEvent.AdUserMinimize)); }; } public function registerStartHandler(_arg1:Function):void{ _onAdStartHandler = _arg1; } public function resize(_arg1:Number, _arg2:Number, _arg3:String):void{ if (_vpaidWrapper != null){ _vpaidWrapper.resizeAd(_arg1, _arg2, _arg3); }; } protected function callbackOnStart():void{ _running = true; if (_onAdStartHandler != null){ _onAdStartHandler(new VPAIDEvent(VPAIDEvent.AdStarted)); }; } protected function onVPAIDAdStopped(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdStopped event received", Debuggable.DEBUG_VPAID); _stopped = true; triggerTrackingEvent(TrackingEvent.EVENT_STOP); callbackOnComplete(VPAIDEvent.AdStopped); } protected function onVPAIDAdStarted(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdStarted event received", Debuggable.DEBUG_VPAID); _stopped = false; callbackOnStart(); triggerTrackingEvent(TrackingEvent.EVENT_START); fireExternalAPICall(VPAIDEvent.AdStarted); } protected function callbackOnClickThru():void{ if (_onClickThruHandler != null){ _onClickThruHandler(new VPAIDEvent(VPAIDEvent.AdClickThru)); }; } protected function onVPAIDAdClickThru(_arg1):void{ var event = _arg1; try { if (((!((event.data == undefined))) && (!((event.data == null))))){ if (((event.data.playerHandles) && (!(StringUtils.isEmpty(event.data.url))))){ doLog(("VPAIDMediaFile::VPAID.AdClickThru event received - VPAID ad has requested browser to open click through URL " + event.data.url), Debuggable.DEBUG_VPAID); PopupWindow.openWindow(event.data.url, "_blank"); }; } else { doLog("VPAIDMediaFile::VPAID.AdClickThru event received - VPAID ad internally opening click through URL", Debuggable.DEBUG_VPAID); }; } catch(e:Error) { }; triggerClickTracking(); fireExternalAPICall(VPAIDEvent.AdClickThru); callbackOnClickThru(); } protected function onVPAIDAdLinearChange(_arg1):void{ doLog((("VPAIDMediaFile::VPAID.AdLinearChange event received (adLinear == " + _vpaidWrapper.adLinear) + ")"), Debuggable.DEBUG_VPAID); if (_onAdLinearChangeHandler != null){ _onAdLinearChangeHandler(new VPAIDEvent(VPAIDEvent.AdLinearChange, _vpaidWrapper.adLinear)); }; } protected function callbackOnUserAcceptInvitation():void{ if (_onUserAcceptInvitationHandler != null){ _onUserAcceptInvitationHandler(new VPAIDEvent(VPAIDEvent.AdUserAcceptInvitation)); }; } public function haveLoadedVPAIDResource():Boolean{ return (!((_vpaidWrapper == null))); } protected function onVPAIDAdImpression(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdImpression event received", Debuggable.DEBUG_VPAID); triggerImpressionConfirmations(); triggerTrackingEvent(TrackingEvent.EVENT_CREATIVE_VIEW); fireExternalAPICall(VPAIDEvent.AdImpression); callbackOnImpression(); } protected function callbackOnVideoStart():void{ if (_onVideoStartHandler != null){ _onVideoStartHandler(new VPAIDEvent(VPAIDEvent.AdVideoStart)); }; } public function hasActiveOverlay():Boolean{ return (!((_activeOverlay == null))); } protected function onVPAIDAdUserMinimize(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdUserMinimize event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_COLLAPSE); fireExternalAPICall(VPAIDEvent.AdUserMinimize); callbackOnMinimize(); } protected function onVPAIDAdUserAcceptInvitation(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdUserAcceptInvitation event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_ACCEPT); fireExternalAPICall(VPAIDEvent.AdUserAcceptInvitation); callbackOnUserAcceptInvitation(); } protected function onVPAIDAdPaused(_arg1):void{ doLog("VPAIDMediaFile::VPAID.AdPaused event received", Debuggable.DEBUG_VPAID); triggerTrackingEvent(TrackingEvent.EVENT_PAUSE); fireExternalAPICall(VPAIDEvent.AdPaused); callbackOnPaused(); } public function pause():void{ if (_vpaidWrapper != null){ _vpaidWrapper.pauseAd(); }; } protected function onVPAIDAdLoaded(_arg1):void{ var event = _arg1; doLog("VPAIDMediaFile::VPAID.AdLoaded event received - starting Ad", Debuggable.DEBUG_VPAID); try { fireExternalAPICall(VPAIDEvent.AdLoaded); _vpaidWrapper.startAd(); } catch(e:Error) { callbackOnError(("Exception generated in VPAID.startAd() - aborting - " + e.message)); }; } override public function unload():void{ if (haveLoadedVPAIDResource()){ if (isStopped() == false){ doLog("Unloading the Non-Linear VPAID resource - stopping the ad first...", Debuggable.DEBUG_VPAID); _adTerminated = true; _vpaidWrapper.stopAd(); } else { doLog("Unloading the Non-Linear VPAID resource - ad already stopped", Debuggable.DEBUG_VPAID); }; removeListeners(); if (hasActiveOverlay()){ _activeOverlay.clearDisplayContent(); closeActiveOverlay(); }; _vpaidWrapper = null; super.unload(); }; } } }//package org.openvideoads.vast.model
Section 160
//VPAIDPlayback (org.openvideoads.vast.model.VPAIDPlayback) package org.openvideoads.vast.model { import org.openvideoads.vast.overlay.*; import org.openvideoads.vpaid.*; public interface VPAIDPlayback { function registerVideoStartHandler(_arg1:Function):void; function resume():void; function startVPAID(_arg1:Number=-1, _arg2:Number=-1, _arg3:String="normal", _arg4:Boolean=false, _arg5:String=null):void; function registerStartHandler(_arg1:Function):void; function getVPAID():IVPAID; function registerAsVPAID(_arg1:VPAIDWrapper):Boolean; function setOverlay(_arg1:OverlayView):void; function registerExternalAPICallHandler(_arg1:Function):void; function closeActiveOverlay():void; function enableMaxDurationTimeout():void; function registerVideoThirdQuartileHandler(_arg1:Function):void; function registerVideoCompleteHandler(_arg1:Function):void; function registerRemainingTimeChangeHandler(_arg1:Function):void; function registerUserAcceptInvitationHandler(_arg1:Function):void; function toRuntimeStateJSObject():Object; function registerExpandedChangeHandler(_arg1:Function):void; function getOverlay():OverlayView; function registerLoadedHandler(_arg1:Function):void; function registerErrorHandler(_arg1:Function):void; function registerMinimizeHandler(_arg1:Function):void; function registerVideoMidpointHandler(_arg1:Function):void; function setMaxDurationTimeout(_arg1:int):void; function registerImpressionHandler(_arg1:Function):void; function registerClickThruHandler(_arg1:Function):void; function registerVideoFirstQuartileHandler(_arg1:Function):void; function hasActiveOverlay():Boolean; function disableMaxDurationTimeout():void; function registerLinearChangeHandler(_arg1:Function):void; function resize(_arg1:Number, _arg2:Number, _arg3:String):void; function isRunning():Boolean; function pause():void; function registerCloseHandler(_arg1:Function):void; function registerCompleteHandler(_arg1:Function):void; function unload():void; } }//package org.openvideoads.vast.model
Section 161
//WrappedVideoAdServingTemplateV2 (org.openvideoads.vast.model.WrappedVideoAdServingTemplateV2) package org.openvideoads.vast.model { import org.openvideoads.vast.server.request.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.vast.server.request.wrapped.*; public class WrappedVideoAdServingTemplateV2 extends VideoAdServingTemplate { protected var _normalAds:Array; protected var _vastAdTag:String;// = null protected var _adSystem:String;// = null protected var _wrapperImpressions:Array; protected var _templateAds:Array; protected var _parentTemplate:VideoAdServingTemplate; protected var _originalAdId:Object;// = null protected var _id:String;// = null protected var _wrapperAds:Array; public function WrappedVideoAdServingTemplateV2(_arg1:int, _arg2:String=null, _arg3:XML=null, _arg4:VideoAdServingTemplate=null){ _wrapperAds = new Array(); _templateAds = new Array(); _normalAds = new Array(); _wrapperImpressions = new Array(); super(_arg4, null); _parentTemplate = _arg4; _originalAdId = _arg2; if (_arg3 != null){ initialise(_arg1, _arg3, _arg2); }; } override public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ _parentTemplate.onAdCallComplete(_arg1, _arg2); } override public function onAdCallStarted(_arg1:AdServerRequest):void{ _parentTemplate.onAdCallStarted(_arg1); } protected function recordTemplateAndNormalAds():void{ var _local1:int; if (_ads != null){ _templateAds = new Array(); _normalAds = new Array(); _local1 = 0; while (_local1 < _ads.length) { if (_ads[_local1].isWrapperTemplateAd()){ _templateAds.push(_ads[_local1]); } else { _normalAds.push(_ads[_local1]); }; _local1++; }; _templateAds = _templateAds.reverse(); _normalAds = _normalAds.reverse(); }; _ads = new Array(); doLog((((((("recordTemplateAndNormalAds(" + _uid) + ") has ") + _templateAds.length) + " template ads, ") + _normalAds.length) + " normal ads"), Debuggable.DEBUG_VAST_TEMPLATE); } public function set id(_arg1:String):void{ _id = id; } override public function onTemplateLoadError(_arg1:Event):void{ _parentTemplate.signalTemplateLoadError(uid, _arg1); } public function get vastAdTag():String{ return (_vastAdTag); } private function getIndexOfNextNonLinearAd(_arg1:Array):int{ var _local2:int; if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { if (_arg1[_local2] != null){ if (_arg1[_local2].isNonLinear()){ return (_local2); }; }; _local2++; }; }; return (-1); } override protected function createVideoAd_V2(_arg1:String, _arg2:XML, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String):VideoAd{ return (super.createVideoAd_V2(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7)); } public function set vastAdTag(_arg1:String):void{ _vastAdTag = _arg1; } override public function onTemplateLoaded(_arg1:AdServerTemplate):void{ doLog((((_uid + " has been notified that a template (") + _arg1.uid) + ") has loaded."), Debuggable.DEBUG_VAST_TEMPLATE); _ads = _arg1.getMergedAds(); signalTemplateLoaded(_arg1.uid); } override protected function templateLoaded(_arg1:Event):void{ doLog((((("Template (" + _uid) + "): Loaded ") + _xmlLoader.bytesLoaded) + " bytes for the VAST template"), Debuggable.DEBUG_VAST_TEMPLATE); _templateData = _xmlLoader.data; doLog(_templateData, Debuggable.DEBUG_VAST_TEMPLATE); parseFromRawData(_templateData); fireTemplateLoadedTracking(); signalTemplateLoaded(_uid); } private function getIndexOfNextCompanionAd(_arg1:Array):int{ var _local2:int; if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { if (_arg1[_local2] != null){ if (_arg1[_local2].isCompanionOnlyAd()){ return (_local2); }; }; _local2++; }; }; return (-1); } public function set adSystem(_arg1:String):void{ _adSystem = _arg1; } override public function getMergedAds():Array{ var _local3:int; var _local4:VideoAd; var _local5:int; var _local1:Array = new Array(); if (_templateAds != null){ doLog((((((("getMergedAds(" + _uid) + ") has ") + _templateAds.length) + " template ads and ") + _ads.length) + " normal ads"), Debuggable.DEBUG_VAST_TEMPLATE); _local4 = null; _local5 = 0; while (_local5 < _templateAds.length) { if (_templateAds[_local5].isLinear()){ _local3 = getIndexOfNextLinearAd(_ads); if (_local3 > -1){ _local4 = _templateAds[_local5].injectAllTrackingData(_ads[_local3]); if (((((!((_local4 == null))) && ((VideoAd(_ads[_local3]).hasCompanionAds() == false)))) && (VideoAd(_templateAds[_local5]).hasCompanionAds()))){ doLog((("Adding " + VideoAd(_templateAds[_local5]).companionCount()) + " companions from the wrapper template ad to the linear ad from the wrapped tag"), Debuggable.DEBUG_VAST_TEMPLATE); _local4.addCompanionAds(VideoAd(_templateAds[_local5]).companionAds); }; _local1.push(_local4); _ads[_local3] = null; } else { _local1.push(_templateAds[_local5]); }; } else { if (_templateAds[_local5].isNonLinear()){ _local3 = getIndexOfNextNonLinearAd(_ads); if (_local3 > -1){ _local4 = _templateAds[_local5].injectAllTrackingData(_ads[_local3]); if (((((!((_local4 == null))) && ((VideoAd(_ads[_local3]).hasCompanionAds() == false)))) && (VideoAd(_templateAds[_local5]).hasCompanionAds()))){ doLog((("Adding " + VideoAd(_templateAds[_local5]).companionCount()) + " companions from the wrapper template ad to the non-linear ad from the wrapped tag"), Debuggable.DEBUG_VAST_TEMPLATE); _local4.addCompanionAds(VideoAd(_templateAds[_local5]).companionAds); }; _local1.push(_local4); _ads[_local3] = null; } else { _local1.push(_templateAds[_local5]); }; } else { if (VideoAd(_templateAds[_local5]).isCompanionOnlyAd()){ _local3 = getIndexOfNextCompanionAd(_ads); if (_local3 > -1){ _local1.push(_templateAds[_local5].injectAllTrackingData(_ads[_local3])); _ads[_local3] = null; }; } else { _local1.push(_templateAds[_local5]); }; }; }; _local5++; }; }; var _local2:int; while (_local2 < _ads.length) { if (_ads[_local2] != null){ if (_wrapperImpressions.length > 0){ _ads[_local2].addImpressions(_wrapperImpressions); }; _local1.push(_ads[_local2]); }; _local2++; }; if (_normalAds != null){ _local1 = _local1.concat(_normalAds); }; doLog((((("getMergedAds(" + _uid) + ") returning ") + _local1.length) + " ads"), Debuggable.DEBUG_VAST_TEMPLATE); return (_local1); } override protected function errorHandler(_arg1:Event):void{ doLog(((("Template (" + uid) + "): Load error: ") + _arg1.toString()), Debuggable.DEBUG_FATAL); _parentTemplate.signalTemplateLoadError(uid, _arg1); } public function get id():String{ return (_id); } public function get adSystem():String{ return (_adSystem); } public function hasVASTAdTag():Boolean{ return (((!((_vastAdTag == null))) && ((StringUtils.isEmpty(_vastAdTag) == false)))); } override public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ _parentTemplate.onAdCallFailover(_arg1, _arg2); } override public function hasAds(_arg1:Boolean=false):Boolean{ if (_ads == null){ return (false); }; return ((((_ads.length + _templateAds.length) + _normalAds.length) > 0)); } protected function initialise(_arg1:int, _arg2:XML, _arg3:String):void{ var _local4:AdServerConfig; doLog((((("Wrapped V2 Template (" + _uid) + ") XML response has ") + _arg2.children().length()) + " attributes defined - see trace"), Debuggable.DEBUG_VAST_TEMPLATE); doTrace(_arg2, Debuggable.DEBUG_VAST_TEMPLATE); id = _arg2.adId; adSystem = _arg2.AdSystem; if (_arg2.VASTAdTagURI != undefined){ vastAdTag = _arg2.VASTAdTagURI.text(); } else { if (_arg2.VASTAdTagURL != undefined){ doLog("Oops - a non-complaint VAST2 wrapper was returned - the Ad Tag is specified in a <VASTAdTagURL> tagset instead of <VASTAdTagURI> - adjusting accordingly", Debuggable.DEBUG_VAST_TEMPLATE); if (_arg2.VASTAdTagURL.URL != undefined){ vastAdTag = _arg2.VASTAdTagURL.URL.text(); } else { vastAdTag = _arg2.VASTAdTagURL.text(); }; }; }; _wrapperImpressions = parseInlineAd_V2(_arg1, _arg3, _arg2); recordTemplateAndNormalAds(); if (hasVASTAdTag()){ _local4 = null; if (_parentTemplate != null){ _parentTemplate.registerLoader(_uid); _local4 = _parentTemplate.getMasterAdServerConfig(); }; load(new WrappedAdServerRequest(vastAdTag, _local4)); } else { doLog((("Not loading the wrapped VAST ad tag as the URL is blank '" + vastAdTag) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); }; } private function getIndexOfNextLinearAd(_arg1:Array):int{ var _local2:int; if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { if (_arg1[_local2] != null){ if (_arg1[_local2].isLinear()){ return (_local2); }; }; _local2++; }; }; return (-1); } } }//package org.openvideoads.vast.model
Section 162
//WrappedVideoAdV1 (org.openvideoads.vast.model.WrappedVideoAdV1) package org.openvideoads.vast.model { import org.openvideoads.vast.events.*; import org.openvideoads.vast.server.request.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.regions.view.*; import org.openvideoads.vast.server.request.wrapped.*; public class WrappedVideoAdV1 extends VideoAd implements TemplateLoadListener { protected var _masterAdServerConfig:AdServerConfig;// = null protected var _vastAdTag:String;// = null protected var _vastContainer:VideoAdServingTemplate;// = null protected var _wrapperCustomClicks:Array; protected var _wrappedVideoAd:VideoAd;// = null protected var _template:VideoAdServingTemplate;// = null protected var _wrapperClickTracking:Array; protected var _originalAdId:Object;// = null public function WrappedVideoAdV1(_arg1:Object, _arg2:XML=null, _arg3:VideoAdServingTemplate=null, _arg4:AdServerConfig=null){ _wrapperClickTracking = new Array(); _wrapperCustomClicks = new Array(); super(); _originalAdId = _arg1; _vastContainer = _arg3; _masterAdServerConfig = _arg4; doLog(((("Created new WrappedVideoAd: " + _uid) + ", parent Template: ") + ((_arg3)!=null) ? _arg3.uid : "no UID"), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg2 != null){ initialise(_arg2); }; } public function onAdCallStarted(_arg1:AdServerRequest):void{ _vastContainer.onAdCallStarted(_arg1); } override public function get companionAds():Array{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.companionAds); }; return (super.companionAds); } public function get vastAdTag():String{ return (_vastAdTag); } public function parseVideoClicks(_arg1:XML):void{ var _local2:XMLList; var _local3:XML; var _local4:int; if (_arg1.VideoClicks != undefined){ if (_arg1.VideoClicks.ClickTracking != undefined){ _local4 = 0; if (_arg1.VideoClicks.ClickTracking.children().length() > 0){ doLog("Parsing V1 Wrapper VideoClicks ClickTracking tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local2 = _arg1.VideoClicks.ClickTracking.children(); _local4 = 0; while (_local4 < _local2.length()) { _local3 = _local2[_local4]; if (!StringUtils.isEmpty(_local3.text())){ addClickTrack(new NetworkResource(_local3.@id, _local3.text())); }; _local4++; }; }; }; if (_arg1.VideoClicks.CustomClick != undefined){ if (_arg1.VideoClicks.CustomClick.children().length() > 0){ doLog("Parsing V1 Wrapper VideoClicks CustomClick tags...", Debuggable.DEBUG_VAST_TEMPLATE); _local2 = _arg1.CustomClick.ClickTracking.children(); _local4 = 0; while (_local4 < _local2.length()) { _local3 = _local2[_local4]; if (!StringUtils.isEmpty(_local3.text())){ addCustomClick(new NetworkResource(_local3.@id, _local3.text())); }; _local4++; }; }; }; }; } override public function get duration():int{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.duration); }; return (super.duration); } override public function get error():String{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.error); }; return (super.error); } override public function get linearVideoAd():LinearVideoAd{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.linearVideoAd); }; return (super.linearVideoAd); } override public function processHitMidpointAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processHitMidpointAdEvent(); }; super.processHitMidpointAdEvent(); } override public function setPreferredSelectionCriteria(_arg1:Object):void{ _preferredSelectionCriteria = _arg1; if (_wrappedVideoAd != null){ _wrappedVideoAd.setPreferredSelectionCriteria(_arg1); }; } override public function get firstNonLinearVideoAd():NonLinearVideoAd{ if (hasReplacementVideoAd()){ if (hasNonLinearAds()){ return (_wrappedVideoAd.firstNonLinearVideoAd); }; return (null); } else { }; return (!NULL!); } public function set vastAdTag(_arg1:String):void{ _vastAdTag = _arg1; } override public function canFireEventAPICalls():Boolean{ if (_vastContainer != null){ return (_vastContainer.canFireEventAPICalls()); }; return (false); } override public function addClickTrackingItems(_arg1:Array):void{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.addClickTrackingItems(_arg1)); }; } public function addClickTrack(_arg1:NetworkResource):void{ _wrapperClickTracking.push(_arg1); } override public function processStartAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processStartAdEvent(); }; super.processStartAdEvent(); } override public function get nonLinearVideoAds():Array{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.nonLinearVideoAds); }; return (super.nonLinearVideoAds); } override public function canFireAPICalls():Boolean{ if (_vastContainer != null){ return (_vastContainer.canFireAPICalls()); }; return (false); } override public function get id():String{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.id); }; if (_originalAdId != null){ if (_originalAdId.hasOwnProperty("id")){ return (_originalAdId.id); }; }; return (_id); } override public function processFullScreenAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processFullScreenAdEvent(); }; super.processFullScreenAdEvent(); } public function hasVASTAdTag():Boolean{ return (((!((_vastAdTag == null))) && ((StringUtils.isEmpty(_vastAdTag) == false)))); } override public function set id(_arg1:String):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.id = _arg1; }; _id = _arg1; } override public function hasNonLinearAds():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.hasNonLinearAds()); }; return (super.hasNonLinearAds()); } public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ _vastContainer.onAdCallComplete(_arg1, _arg2); } public function get analyticsProcessor():AnalyticsProcessor{ if (_vastContainer != null){ return (_vastContainer.analyticsProcessor); }; return (null); } override public function processAdCompleteEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processAdCompleteEvent(); }; super.processAdCompleteEvent(); } public function addCustomClick(_arg1:NetworkResource):void{ _wrapperCustomClicks.push(_arg1); } protected function initialise(_arg1:XML):void{ doLog((("XML response has " + _arg1.children().length()) + " attributes defined - see trace"), Debuggable.DEBUG_VAST_TEMPLATE); doTrace(_arg1, Debuggable.DEBUG_VAST_TEMPLATE); id = _arg1.adId; adSystem = _arg1.AdSystem; if (_arg1.VASTAdTagURL.URL != undefined){ vastAdTag = _arg1.VASTAdTagURL.URL.text(); }; parseImpressions(_arg1); parseTrackingEvents(_arg1); parseVideoClicks(_arg1); if (hasVASTAdTag()){ loadVASTFromWrappedAdServer(); } else { doLog((("Not loading the wrapped VAST ad tag as the URL is blank '" + vastAdTag) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); }; } override public function addCustomClickTrackingItems(_arg1:Array):void{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.addCustomClickTrackingItems(_arg1)); }; } override public function processReplayAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processReplayAdEvent(); }; super.processReplayAdEvent(); } override public function getImpressionList():Array{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.getImpressionList()); }; return (new Array()); } override public function hasCompanionAds():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.hasCompanionAds()); }; return (super.hasCompanionAds()); } public function hasReplacementVideoAd():Boolean{ return (!((_wrappedVideoAd == null))); } override public function isNonLinear():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.isNonLinear()); }; return (super.isNonLinear()); } public function onTemplateLoadError(_arg1:Event):void{ doLog(("ERROR obtaining VAST data for original ad " + _originalAdId.id)); Debuggable.DEBUG_VAST_TEMPLATE; _vastContainer.signalTemplateLoadError(_uid, _arg1); } override public function triggerTrackingEvent(_arg1:String, _arg2:String=null):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.triggerTrackingEvent(_arg1); }; super.triggerTrackingEvent(_arg1); } override public function processStopNonLinearAdEvent(_arg1:VideoAdDisplayEvent):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processStopNonLinearAdEvent(_arg1); }; super.processStopNonLinearAdEvent(_arg1); } public function loadVASTFromWrappedAdServer():void{ var _local1:WrappedAdServerRequest; var _local2:Array; if (_vastAdTag != null){ if (_vastContainer != null){ _vastContainer.registerLoader(_uid); }; _local1 = new WrappedAdServerRequest(_vastAdTag, _masterAdServerConfig); _local2 = new Array(); _local2.push(_originalAdId); _template = new VideoAdServingTemplate(this, _local1, true, _local2); } else { doLog("Request to load ad from wrapped ad server has been ignored - no vastAdTag provided in wrapper XML", Debuggable.DEBUG_VAST_TEMPLATE); }; } override public function getFlashMediaToPlay(_arg1:Number, _arg2:Number, _arg3:Boolean=false):FlashMedia{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.getFlashMediaToPlay(_arg1, _arg2, _arg3)); }; return (super.getFlashMediaToPlay(_arg1, _arg2, _arg3)); } override public function processResumeAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processResumeAdEvent(); }; super.processResumeAdEvent(); } override public function shouldMaintainAspectRatio():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.shouldMaintainAspectRatio()); }; return (super.shouldMaintainAspectRatio()); } override public function canScale():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.canScale()); }; return (super.canScale()); } override public function isInteractive():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.isInteractive()); }; return (super.isInteractive()); } override public function processThirdQuartileCompleteAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processThirdQuartileCompleteAdEvent(); }; super.processThirdQuartileCompleteAdEvent(); } override public function setLinearAdDurationFromSeconds(_arg1:int):void{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.setLinearAdDurationFromSeconds(_arg1)); }; return (super.setLinearAdDurationFromSeconds(_arg1)); } public function onTemplateLoaded(_arg1:AdServerTemplate):void{ doLog((((_uid + " has been notified that a template (") + _arg1.uid) + ") has loaded. Wrapped Ad is set to the first ad in the returned template"), Debuggable.DEBUG_VAST_TEMPLATE); _wrappedVideoAd = _template.getFirstAd(); if (_wrappedVideoAd != null){ _wrappedVideoAd.addClickTrackingItems(_wrapperClickTracking); _wrappedVideoAd.addCustomClickTrackingItems(_wrapperCustomClicks); _wrappedVideoAd.setCanFireEventAPICalls(((_vastContainer)!=null) ? _vastContainer.canFireEventAPICalls() : this.canFireEventAPICalls()); _wrappedVideoAd.wrapper = this; } else { doLog("Cannot record parent clicks - template has not returned an ad", Debuggable.DEBUG_VAST_TEMPLATE); }; _vastContainer.signalTemplateLoaded(_uid); } override public function processStopAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processStopAdEvent(); }; super.processStopAdEvent(); } override public function processStartNonLinearAdEvent(_arg1:VideoAdDisplayEvent):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processStartNonLinearAdEvent(_arg1); }; super.triggerImpressionConfirmations(); } public function onTemplateLoadTimeout(_arg1:Event):void{ doLog(("TIMEOUT obtaining VAST data for original ad " + _originalAdId.id)); Debuggable.DEBUG_VAST_TEMPLATE; _vastContainer.signalTemplateLoadTimeout(uid, _arg1); } override public function toJSObject():Object{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.toJSObject()); }; return (super.toJSObject()); } override public function getStreamToPlay():AdNetworkResource{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.getStreamToPlay()); }; return (super.getStreamToPlay()); } override public function processStartCompanionAdEvent(_arg1:VideoAdDisplayEvent):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processStartCompanionAdEvent(_arg1); }; super.processStartCompanionAdEvent(_arg1); } override public function isLinear():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.isLinear()); }; return (super.isLinear()); } override public function processPauseAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processPauseAdEvent(); }; super.processPauseAdEvent(); } override public function hasLinearAd():Boolean{ if (hasReplacementVideoAd()){ return (_wrappedVideoAd.hasLinearAd()); }; return (super.hasLinearAd()); } override public function triggerForcedImpressionConfirmations(_arg1:Boolean=false):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.triggerForcedImpressionConfirmations(_arg1); }; super.triggerForcedImpressionConfirmations(); } override public function processStopCompanionAdEvent(_arg1:VideoAdDisplayEvent):void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processStopCompanionAdEvent(_arg1); }; super.processStopCompanionAdEvent(_arg1); } override public function processMuteAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processMuteAdEvent(); }; super.processMuteAdEvent(); } public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ _vastContainer.onAdCallFailover(_arg1, _arg2); } override public function processFirstQuartileCompleteAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processFirstQuartileCompleteAdEvent(); }; super.processFirstQuartileCompleteAdEvent(); } override public function processUnmuteAdEvent():void{ if (hasReplacementVideoAd()){ _wrappedVideoAd.processUnmuteAdEvent(); }; super.processUnmuteAdEvent(); } public function onTemplateLoadDeferred(_arg1:Event):void{ doLog(("DEFERRED obtaining VAST data for original ad " + _originalAdId.id)); Debuggable.DEBUG_VAST_TEMPLATE; _vastContainer.signalTemplateLoadDeferred(uid, _arg1); } } }//package org.openvideoads.vast.model
Section 163
//HtmlSkipAdButton (org.openvideoads.vast.overlay.button.skip.HtmlSkipAdButton) package org.openvideoads.vast.overlay.button.skip { import org.openvideoads.vast.config.groupings.*; import org.openvideoads.regions.config.*; public class HtmlSkipAdButton extends SkipAdRegionViewConfig { public function HtmlSkipAdButton(_arg1:SkipAdConfig=null){ super(_arg1.region, {id:"reserved-skip-ad-button-image", verticalAlign:5, horizontalAlign:"right", width:((_arg1.width)>0) ? _arg1.width : 70, height:((_arg1.height)>0) ? _arg1.height : 20, backgroundColor:"transparent", clickable:true, closeButton:new CloseButtonConfig({enabled:false}), keepAfterClick:false, image:null, swf:null, html:_arg1.html}); } } }//package org.openvideoads.vast.overlay.button.skip
Section 164
//LoadableImageSkipAdButton (org.openvideoads.vast.overlay.button.skip.LoadableImageSkipAdButton) package org.openvideoads.vast.overlay.button.skip { import flash.display.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.regions.config.*; import flash.net.*; public class LoadableImageSkipAdButton extends SkipAdRegionViewConfig { public function LoadableImageSkipAdButton(_arg1:SkipAdConfig=null){ super(_arg1.region, {id:"reserved-skip-ad-button-image", verticalAlign:5, horizontalAlign:"right", width:((_arg1.width)>0) ? _arg1.width : 70, height:((_arg1.height)>0) ? _arg1.height : 20, backgroundColor:"transparent", clickable:true, closeButton:new CloseButtonConfig({enabled:false}), keepAfterClick:false, image:new Loader(), swf:null, html:null}); image.load(new URLRequest(_arg1.image)); image.x = 0; image.y = 0; } } }//package org.openvideoads.vast.overlay.button.skip
Section 165
//NormalButtonBitmap (org.openvideoads.vast.overlay.button.skip.NormalButtonBitmap) package org.openvideoads.vast.overlay.button.skip { import flash.display.*; public final class NormalButtonBitmap extends Bitmap { public function NormalButtonBitmap():void{ } } }//package org.openvideoads.vast.overlay.button.skip
Section 166
//SkipAdButtonDisplayEvent (org.openvideoads.vast.overlay.button.skip.SkipAdButtonDisplayEvent) package org.openvideoads.vast.overlay.button.skip { import flash.events.*; public class SkipAdButtonDisplayEvent extends Event { protected var _region:String;// = null protected var _callbackMethod:Function;// = null protected var _resource:String;// = null public static const DISPLAY:String = "display-skip-button"; public static const HIDE:String = "hide-skip-button"; public function SkipAdButtonDisplayEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Function=null, _arg5:Boolean=false, _arg6:Boolean=false){ super(_arg1, _arg5, _arg6); _region = _arg2; _resource = _arg3; _callbackMethod = _arg4; } public function isImageButton():Boolean{ return (true); } public function get callbackMethod():Function{ return (_callbackMethod); } public function get resource():String{ return (_resource); } public function get region():String{ return (_region); } public function isFlashButton():Boolean{ return (false); } override public function clone():Event{ return (new SkipAdButtonDisplayEvent(type, _region, _resource, _callbackMethod, bubbles, cancelable)); } } }//package org.openvideoads.vast.overlay.button.skip
Section 167
//SkipAdButtonView (org.openvideoads.vast.overlay.button.skip.SkipAdButtonView) package org.openvideoads.vast.overlay.button.skip { import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.overlay.*; import org.openvideoads.regions.*; import org.openvideoads.regions.config.*; public class SkipAdButtonView extends OverlayView { protected var _active:Boolean;// = false protected var _callbackMethod:Function;// = null public function SkipAdButtonView(_arg1:RegionController, _arg2:RegionViewConfig, _arg3:DisplayProperties, _arg4:int=-1, _arg5:int=-1){ super(_arg1, _arg2, _arg3); if (_arg2.hasImage()){ if (((_arg2.imageIsBitmap()) || (_arg2.imageIsLoader()))){ this.alpha = 0.8; this.addChild(_arg2.image); }; } else { if (_arg2.hasSWF()){ doLog("SWF Skip Ad button not supported.", Debuggable.DEBUG_DISPLAY_EVENTS); }; }; } override protected function onClick(_arg1:MouseEvent):void{ doLog("SkipAdButtonView: ON CLICK", Debuggable.DEBUG_MOUSE_EVENTS); if (_callbackMethod != null){ _callbackMethod(); }; } public function activate():void{ _active = true; show(); } public function deactivate():void{ _active = false; hide(); } public function registerOnClick(_arg1:Function):void{ _callbackMethod = _arg1; } override protected function onMouseOut(_arg1:MouseEvent):void{ doLog("SkipAdButtonView: MOUSE OUT!", Debuggable.DEBUG_MOUSE_EVENTS); this.alpha = 0.8; } override protected function onMouseOver(_arg1:MouseEvent):void{ doLog("SkipAdButtonView: MOUSE OVER!", Debuggable.DEBUG_MOUSE_EVENTS); this.alpha = 1; } public function get active():Boolean{ return (_active); } } }//package org.openvideoads.vast.overlay.button.skip
Section 168
//SkipAdRegionViewConfig (org.openvideoads.vast.overlay.button.skip.SkipAdRegionViewConfig) package org.openvideoads.vast.overlay.button.skip { import org.openvideoads.regions.config.*; public class SkipAdRegionViewConfig extends RegionViewConfig { public function SkipAdRegionViewConfig(_arg1:Object, _arg2:Object){ var _local3:Object = {}; if (_arg1 == null){ _local3 = _arg2; } else { _local3 = {id:((_arg1.id)!=undefined) ? _arg1.id : _arg2.id, verticalAlign:((_arg1.verticalAlign)!=undefined) ? _arg1.verticalAlign : _arg2.verticalAlign, horizontalAlign:((_arg1.horizontalAlign)!=undefined) ? _arg1.horizontalAlign : _arg2.horizontalAlign, width:((_arg1.width)!=undefined) ? _arg1.width : _arg2.width, height:((_arg1.height)!=undefined) ? _arg1.height : _arg2.height, backgroundColor:((_arg1.backgroundColor)!=undefined) ? _arg1.backgroundColor : _arg2.backgroundColor, clickable:((_arg1.clickable)!=undefined) ? _arg1.clickable : _arg2.clickable, closeButton:((_arg1.closeButton)!=undefined) ? _arg1.closeButton : _arg2.closeButton, keepAfterClick:((_arg1.keepAfterClick)!=undefined) ? _arg1.keepAfterClick : _arg2.keepAfterClick, image:((_arg1.image)!=undefined) ? _arg1.image : _arg2.image, swf:((_arg1.swf)!=undefined) ? _arg1.swf : _arg2.swf, html:((_arg1.html)!=undefined) ? _arg1.html : _arg2.html, autoHide:false}; if (_arg1.styleSheetAddress != undefined){ _local3.styleSheetAddress = _arg1.styleSheetAddress; }; if (_arg1.style != undefined){ _local3.style = _arg1.style; }; if (_arg1.border != undefined){ _local3.border = _arg1.border; }; if (_arg1.borderRadius != undefined){ _local3.borderRadius = _arg1.borderRadius; }; if (_arg1.borderWidth != undefined){ _local3.borderWidth = _arg1.borderWidth; }; if (_arg1.borderColor != undefined){ _local3.borderColor = _arg1.borderColor; }; if (_arg1.background != undefined){ _local3.background = _arg1.background; }; if (_arg1.backgroundGradient != undefined){ _local3.backgroundGradient = _arg1.backgroundGradient; }; if (_arg1.backgroundImage != undefined){ _local3.backgroundImage = _arg1.backgroundImage; }; if (_arg1.backgroundRepeat != undefined){ _local3.backgroundRepeat = _arg1.backgroundRepeat; }; if (_arg1.backgroundColor != undefined){ _local3.backgroundColor = _arg1.backgroundColor; }; if (_arg1.opacity != undefined){ _local3.opacity = _arg1.opacity; }; if (_arg1.padding != undefined){ _local3.padding = _arg1.padding; }; if (_arg1.canScale != undefined){ _local3.canScale = _arg1.canScale; }; if (_arg1.scaleRate != undefined){ _local3.scaleRate = _arg1.scaleRate; }; if (_arg1.autoHide != undefined){ _local3.autoHide = _arg1.autoHide; }; }; super(_local3); } } }//package org.openvideoads.vast.overlay.button.skip
Section 169
//StandardImageSkipAdButton (org.openvideoads.vast.overlay.button.skip.StandardImageSkipAdButton) package org.openvideoads.vast.overlay.button.skip { import flash.display.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.regions.config.*; public class StandardImageSkipAdButton extends SkipAdRegionViewConfig { public function StandardImageSkipAdButton(_arg1:SkipAdConfig=null){ var _local2:Bitmap; _local2 = new NormalButtonBitmap(); super(_arg1.region, {id:"reserved-skip-ad-button-image", verticalAlign:5, horizontalAlign:"right", width:70, height:20, backgroundColor:"transparent", clickable:true, closeButton:new CloseButtonConfig({enabled:false}), keepAfterClick:false, image:_local2, swf:null, html:null}); } } }//package org.openvideoads.vast.overlay.button.skip
Section 170
//AdNotice (org.openvideoads.vast.overlay.AdNotice) package org.openvideoads.vast.overlay { import org.openvideoads.base.*; import org.openvideoads.regions.view.*; import flash.utils.*; public class AdNotice extends Debuggable { protected var _timer:Timer;// = null protected var _noticeRegion:RegionView;// = null protected var _noticeTemplate:String;// = null protected var _duration:int;// = 0 public function AdNotice(_arg1:String, _arg2:int, _arg3:RegionView){ _noticeTemplate = _arg1; _duration = _arg2; _noticeRegion = _arg3; } protected function clearNotice():void{ if (_timer != null){ _timer.stop(); _timer = null; }; if (_noticeRegion != null){ _noticeRegion.hide(); }; } public function hide():void{ clearNotice(); } protected function startNoticeTimer():void{ if (_noticeRegion != null){ tickCountdownNotice(_duration); }; } protected function filloutTemplate(_arg1:String, _arg2:int):String{ var _local3:RegExp = new RegExp(_arg1, "g"); return (_noticeTemplate.replace(_local3, _arg2)); } protected function displayStandardNotice():void{ if (_noticeRegion != null){ _noticeRegion.hideCloseButton(); _noticeRegion.html = filloutTemplate("_seconds_", _duration); _noticeRegion.visible = true; }; } public function tickCountdownNotice(_arg1:int):void{ if (_noticeRegion != null){ _noticeRegion.hideCloseButton(); _noticeRegion.html = filloutTemplate("_countdown_", _arg1); _noticeRegion.visible = true; }; } public function show():void{ if (isCountdownNotice()){ startNoticeTimer(); } else { displayStandardNotice(); }; } protected function isCountdownNotice():Boolean{ if (_noticeTemplate != null){ return ((_noticeTemplate.indexOf("_countdown_") > -1)); }; return (false); } } }//package org.openvideoads.vast.overlay
Section 171
//ClickThroughCallToActionView (org.openvideoads.vast.overlay.ClickThroughCallToActionView) package org.openvideoads.vast.overlay { import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.regions.view.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.regions.*; import org.openvideoads.regions.config.*; import flash.utils.*; public class ClickThroughCallToActionView extends OverlayView { protected var _animator:Animator;// = null protected var _callToActionSign:TextSign; protected var _originalAlpha:Number;// = 0 protected var _timeoutTimer:Timer;// = null protected static var _TIMEOUT:Number = 3000; public function ClickThroughCallToActionView(_arg1:RegionController, _arg2:RegionViewConfig, _arg3:ClickSignConfig, _arg4:DisplayProperties){ super(_arg1, _arg2, _arg4); _animator = new Animator(); _callToActionSign = new TextSign(_arg3, _arg4); _callToActionSign.visible = false; _originalAlpha = this.alpha; addChild(_callToActionSign); setChildIndex(_callToActionSign, (this.numChildren - 1)); } override protected function onMouseOver(_arg1:MouseEvent):void{ doLog("ClickableMouseOverOverlayView: MOUSE OVER!", Debuggable.DEBUG_MOUSE_EVENTS); _animator.stop(); this.alpha = _originalAlpha; startTimer(); _callToActionSign.visible = true; } protected function stopTimer():void{ if (_timeoutTimer != null){ _timeoutTimer.stop(); }; _timeoutTimer = null; } override protected function onMouseOut(_arg1:MouseEvent):void{ doLog("ClickableMouseOverOverlayView: MOUSE OUT!", Debuggable.DEBUG_MOUSE_EVENTS); _animator.stop(); stopTimer(); _callToActionSign.visible = false; } override protected function onClick(_arg1:MouseEvent):void{ doLog("ClickableMouseOverOverlayView: ON CLICK", Debuggable.DEBUG_MOUSE_EVENTS); _animator.stop(); stopTimer(); (_controller as OverlayController).onLinearAdClickThroughCallToActionViewClicked(activeAdSlot); } protected function startTimer():void{ if (!timerActive()){ _timeoutTimer = new Timer(_TIMEOUT, 1); _timeoutTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimer); _timeoutTimer.start(); }; } protected function onTimer(_arg1:TimerEvent):void{ var timerEvent = _arg1; _animator.fade(this, {alpha:0, rate:50, times:15, onComplete:function ():void{ _callToActionSign.visible = false; }}); _timeoutTimer = null; } override public function resize(_arg1:DisplayProperties=null):void{ super.resize(_arg1); if (_callToActionSign != null){ _callToActionSign.resize(_arg1); }; } protected function timerActive():Boolean{ return (!((_timeoutTimer == null))); } } }//package org.openvideoads.vast.overlay
Section 172
//OverlayController (org.openvideoads.vast.overlay.OverlayController) package org.openvideoads.vast.overlay { import org.openvideoads.vast.events.*; import org.openvideoads.vast.schedule.ads.*; import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.util.*; import org.openvideoads.regions.view.*; import org.openvideoads.vast.model.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vpaid.*; import org.openvideoads.regions.*; import org.openvideoads.regions.config.*; import org.openvideoads.vast.overlay.button.skip.*; public class OverlayController extends RegionController { protected var _mouseTrackerRegion:ClickThroughCallToActionView;// = null protected var _skipAdButtonRegion:SkipAdButtonView;// = null protected var _pausingClickForMoreInfoRegion:Boolean;// = false protected var _activeVPAIDMedia:VPAIDPlayback;// = null protected var _activeAdNotice:AdNotice;// = null protected var _vastController:VASTController; protected static const DEFAULT_TEXT_OVERLAY_STYLES:String = ((".title { font-family: \"sans-serif\"; font-size: 18pt; font-style: bold; color:#FAF8CC; leading:5px; } " + ".description { font-family: \"sans-serif\"; font-size: 15pt; leading:3px; } ") + ".callToActionTitle { font-family: \"sans-serif\"; font-size: 15pt; font-style: bold; color:#FBB917; }"); public function OverlayController(_arg1:VASTController, _arg2:DisplayProperties, _arg3:RegionsConfigGroup){ _vastController = _arg1; super(_arg2, _arg3); } public function hideAllOverlays():void{ if (hasActiveVPAIDMedia()){ if (_activeVPAIDMedia.hasActiveOverlay()){ hideAllRegionsExceptNamed([_activeVPAIDMedia.getOverlay()]); return; }; }; hideAllRegions(); } public function clearOverlay(_arg1:String):void{ var _local2:OverlayView = (getRegion(_arg1) as OverlayView); if (_local2 != null){ doLog(("Hiding region with ID " + _arg1), Debuggable.DEBUG_DISPLAY_EVENTS); _local2.hide(); _local2.unloadFlashMedia(); _local2.clearActiveAdSlot(); } else { doLog((("Could not find region with ID " + _arg1) + " - hide request ignored"), Debuggable.DEBUG_DISPLAY_EVENTS); }; } protected function hasActiveVPAIDMedia():Boolean{ return (!((_activeVPAIDMedia == null))); } override public function onRegionCloseClicked(_arg1:RegionView):void{ _vastController.onOverlayCloseClicked((_arg1 as OverlayView)); } override public function onRegionClicked(_arg1:RegionView, _arg2:MouseEvent):void{ _vastController.onOverlayClicked((_arg1 as OverlayView), _arg2); } public function pauseActiveVPAIDAd():void{ if (_activeVPAIDMedia != null){ _activeVPAIDMedia.pause(); }; } public function resumeLinearAdRegions():void{ doLog("Resuming linear ad mouse over region", Debuggable.DEBUG_DISPLAY_EVENTS); if (_pausingClickForMoreInfoRegion){ _mouseTrackerRegion.show(); _pausingClickForMoreInfoRegion = false; }; if (((_vastController.canSkipOnLinearAd()) && (!((_skipAdButtonRegion == null))))){ if (_skipAdButtonRegion.active){ _skipAdButtonRegion.show(); }; }; if (_activeAdNotice != null){ _activeAdNotice.show(); }; } protected function createAutoRegionForNonLinearAd(_arg1:AdSlot, _arg2:NonLinearVideoAd, _arg3:String="bottom", _arg4:CloseButtonConfig=null):OverlayView{ var _local5:Number = -1; var _local6:Number = -1; var _local7:Number = -1; var _local8:Number = -1; var _local9:String; if (_arg2.isInteractive()){ _local5 = _arg2.width; _local6 = _arg2.height; if (_arg2.isExpandable()){ _local7 = _arg2.expandedWidth; _local8 = _arg2.expandedHeight; doLog((((((((((("Overlay will be displayed using an expandable AUTO region (" + _local5) + "x") + _local6) + " expanding to ") + _local7) + "x") + _local8) + " - ") + _arg3) + " alignment)"), Debuggable.DEBUG_DISPLAY_EVENTS); } else { doLog((((((("Overlay will be displayed using an AUTO region (" + _local5) + "x") + _local6) + " - ") + _arg3) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { if (_arg2.activeDisplayRegion.hasSize()){ _local5 = _arg2.activeDisplayRegion.width; _local6 = _arg2.activeDisplayRegion.height; doLog(((("AUTO region will have a hard coded size - " + _local5) + "x") + _local6), Debuggable.DEBUG_DISPLAY_EVENTS); } else { _local5 = determineNonLinearRegionWidth(_arg2.width); _local6 = determineNonLinearRegionHeight(_arg2.height); doLog((((((("Overlay will be displayed using an AUTO region (" + _local5) + "x") + _local6) + " - ") + _arg3) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); }; _local9 = (((_arg2.isText()) || (_arg2.isHtml()))) ? "5 5 5 5" : null; }; return ((createAutoRegion(_arg2.uid, _local5, _local6, _arg3, _arg4, true, DEFAULT_TEXT_OVERLAY_STYLES, _local9, _local7, _local8, _arg2.scale, !(_arg2.isInteractive())) as OverlayView)); } protected function closeActiveVPAIDMedia():void{ if (_activeVPAIDMedia != null){ _activeVPAIDMedia.unload(); _activeVPAIDMedia = null; }; } protected function determineNonLinearRegionHeight(_arg1:int):int{ if (_displayProperties != null){ if (_displayProperties.displayHeight < _arg1){ return (_displayProperties.displayHeight); }; }; return (_arg1); } public function closeActiveVPAIDAds():void{ closeActiveVPAIDMedia(); } public function playVPAIDMedia(_arg1:VPAIDPlayback, _arg2:AdSlot, _arg3:Object, _arg4:Boolean=false, _arg5:Number=-1, _arg6:Boolean=false, _arg7:Boolean=true):void{ var adIsLinear:Boolean; var vpaidMedia = _arg1; var adSlot = _arg2; var eventCallbackFunctions = _arg3; var muteOnStartup = _arg4; var playerVolume = _arg5; var reduceVPAIDAdHeightByBottomMargin = _arg6; var enableScaling = _arg7; if (vpaidMedia != null){ if (((adSlot.isNonLinear()) && ((enableScaling == false)))){ doLog("Turning off VPAID overlay scaling - set as 'false' in the OVA configuration", Debuggable.DEBUG_CONFIG); NonLinearVideoAd(vpaidMedia).scale = false; }; adIsLinear = adSlot.isLinear(); if (hasActiveVPAIDMedia()){ closeActiveVPAIDMedia(); }; _activeVPAIDMedia = vpaidMedia; if (adSlot.config.vpaidMaxDurationTimeoutEnabled()){ vpaidMedia.setMaxDurationTimeout(adSlot.config.vpaidMaxDurationTimeout); vpaidMedia.enableMaxDurationTimeout(); } else { vpaidMedia.disableMaxDurationTimeout(); }; vpaidMedia.registerStartHandler(function (_arg1:VPAIDEvent=null):void{ adSlot.actionCompanionAdStart(); if (eventCallbackFunctions.onStart != undefined){ eventCallbackFunctions.onStart(_arg1); }; if (_vastController != null){ _vastController.fireAPICall("onVPAIDAdStart", adSlot.videoAd.toJSObject(), vpaidMedia.toRuntimeStateJSObject()); }; }); vpaidMedia.registerErrorHandler(function (_arg1:VPAIDEvent=null):void{ clearOverlay(_vastController.config.getLinearVPAIDRegionID()); adSlot.actionCompanionAdEnd(); if (eventCallbackFunctions.onError != undefined){ eventCallbackFunctions.onError(_arg1); }; if (_vastController != null){ _vastController.fireAPICall("onVPAIDAdError", adSlot.videoAd.toJSObject(), vpaidMedia.toRuntimeStateJSObject()); }; }); vpaidMedia.registerCompleteHandler(function (_arg1:VPAIDEvent=null):void{ if (_vastController != null){ _vastController.fireAPICall("onVPAIDAdComplete", adSlot.videoAd.toJSObject(), vpaidMedia.toRuntimeStateJSObject()); }; clearOverlay(_vastController.config.getLinearVPAIDRegionID()); adSlot.actionCompanionAdEnd(); if (eventCallbackFunctions.onComplete != undefined){ eventCallbackFunctions.onComplete(_arg1); }; }); vpaidMedia.registerExpandedChangeHandler(function (_arg1:VPAIDEvent=null):void{ if (_arg1 != null){ if (_activeVPAIDMedia != null){ if (_activeVPAIDMedia.getOverlay() != null){ if (adIsLinear){ if ((_arg1.data is Object)){ if ((((_arg1.data.expanded == false)) && ((_arg1.data.linearPlayback == false)))){ _activeVPAIDMedia.getOverlay().minimize(); } else { _activeVPAIDMedia.getOverlay().restore(); }; }; } else { if (NonLinearVideoAd(_activeVPAIDMedia).isExpandable()){ if ((_arg1.data is Object)){ if (_arg1.data.expanded){ _activeVPAIDMedia.getOverlay().expand(); } else { _activeVPAIDMedia.getOverlay().contract(); }; }; }; }; }; }; }; if (eventCallbackFunctions.onExpandedChange != undefined){ eventCallbackFunctions.onExpandedChange(_arg1); }; if (_vastController != null){ _vastController.fireAPICall("onVPAIDAdExpandedChange", adSlot.videoAd.toJSObject(), vpaidMedia.toRuntimeStateJSObject()); }; }); vpaidMedia.registerLinearChangeHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onLinearChange != undefined){ eventCallbackFunctions.onLinearChange(_arg1); }; if (_vastController != null){ _vastController.fireAPICall("onVPAIDAdLinearChange", adSlot.videoAd.toJSObject(), vpaidMedia.toRuntimeStateJSObject()); }; }); vpaidMedia.registerRemainingTimeChangeHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onRemainingTimeChange != undefined){ eventCallbackFunctions.onRemainingTimeChange(_arg1); }; if (_vastController != null){ _vastController.fireAPICall("onVPAIDAdRemainingTimeChange", adSlot.videoAd.toJSObject(), vpaidMedia.toRuntimeStateJSObject()); }; }); vpaidMedia.registerClickThruHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onClickThru != undefined){ eventCallbackFunctions.onClickThru(_arg1); }; }); vpaidMedia.registerCloseHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onUserClose != undefined){ eventCallbackFunctions.onUserClose(_arg1); }; }); vpaidMedia.registerImpressionHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onImpression != undefined){ eventCallbackFunctions.onImpression(_arg1); }; }); vpaidMedia.registerLoadedHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onLoaded != undefined){ eventCallbackFunctions.onLoaded(_arg1); }; }); vpaidMedia.registerMinimizeHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.userMinimize != undefined){ eventCallbackFunctions.onUserMinimize(_arg1); }; }); vpaidMedia.registerUserAcceptInvitationHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onUserAcceptInvitation != undefined){ eventCallbackFunctions.onUserAcceptInvitation(_arg1); }; }); vpaidMedia.registerVideoStartHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onVideoAdStart != undefined){ eventCallbackFunctions.onVideoAdStart(_arg1); }; }); vpaidMedia.registerVideoFirstQuartileHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onVideoAdFirstQuartile != undefined){ eventCallbackFunctions.onVideoAdFirstQuartile(_arg1); }; }); vpaidMedia.registerVideoMidpointHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onVideoAdMidpoint != undefined){ eventCallbackFunctions.onVideoAdMidpoint(_arg1); }; }); vpaidMedia.registerVideoThirdQuartileHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onVideoAdThirdQuartile != undefined){ eventCallbackFunctions.onVideoAdThirdQuartile(_arg1); }; }); vpaidMedia.registerVideoCompleteHandler(function (_arg1:VPAIDEvent=null):void{ if (eventCallbackFunctions.onVideoAdComplete != undefined){ eventCallbackFunctions.onVideoAdComplete(_arg1); }; }); vpaidMedia.registerExternalAPICallHandler(function (_arg1:VPAIDEvent=null):void{ if (((!((_vastController == null))) && (!((_arg1 == null))))){ _vastController.fireAPICall(("onVPAID" + _arg1.type), adSlot.videoAd.toJSObject(), ((_arg1.data)!=null) ? _arg1.data : vpaidMedia.toRuntimeStateJSObject()); }; }); if (adIsLinear){ doLog((("Linear VPAID ad using region '" + _vastController.config.getLinearVPAIDRegionID()) + "'"), Debuggable.DEBUG_VPAID); _activeVPAIDMedia.setOverlay((getRegion(_vastController.config.getLinearVPAIDRegionID()) as OverlayView)); } else { if (NonLinearVideoAd(vpaidMedia).isExpandable()){ _activeVPAIDMedia.setOverlay(createAutoRegionForNonLinearAd(adSlot, NonLinearVideoAd(vpaidMedia), "bottom", new CloseButtonConfig({enabled:false}))); } else { doLog((("Non expandable Non Linear VPAID ad using region '" + _vastController.config.getNonLinearVPAIDRegionID()) + "'"), Debuggable.DEBUG_VPAID); _activeVPAIDMedia.setOverlay((getRegion(_vastController.config.getNonLinearVPAIDRegionID()) as OverlayView)); }; }; if (_activeVPAIDMedia.getOverlay() != null){ if (eventCallbackFunctions.onLoading != undefined){ eventCallbackFunctions.onLoading(); }; this.setChildIndex(_activeVPAIDMedia.getOverlay(), (this.numChildren - 1)); _activeVPAIDMedia.getOverlay().activeAdSlot = adSlot; _activeVPAIDMedia.getOverlay().loadFlashMedia((vpaidMedia as FlashMedia), _vastController.config.adsConfig.vpaidConfig, _vastController.config.adsConfig.allowDomains, false, muteOnStartup, reduceVPAIDAdHeightByBottomMargin, adIsLinear, playerVolume); } else { if (eventCallbackFunctions.onError != undefined){ eventCallbackFunctions.onError(new VPAIDEvent(VPAIDEvent.AdError, "Could not create the overlay region")); }; }; } else { if (eventCallbackFunctions.onError != undefined){ eventCallbackFunctions.onError(new VPAIDEvent(VPAIDEvent.AdError, "Could not find a suitable Flash Ad in this Ad Slot")); }; }; } public function disableLinearAdMouseOverRegion():void{ doLog("Disabling linear ad mouse over region", Debuggable.DEBUG_DISPLAY_EVENTS); _mouseTrackerRegion.activeAdSlot = null; _mouseTrackerRegion.hide(); _pausingClickForMoreInfoRegion = false; } public function tickAdNotice(_arg1:AdNoticeDisplayEvent):void{ if (_activeAdNotice == null){ showAdNotice(_arg1); } else { _activeAdNotice.tickCountdownNotice(_arg1.duration); }; } public function pauseLinearAdRegions():void{ doLog("Pausing linear ad mouse over region", Debuggable.DEBUG_DISPLAY_EVENTS); if (_mouseTrackerRegion.visible){ _mouseTrackerRegion.hide(); _pausingClickForMoreInfoRegion = true; }; if (((_vastController.canSkipOnLinearAd()) && (!((_skipAdButtonRegion == null))))){ _skipAdButtonRegion.hide(); }; if (_activeAdNotice != null){ _activeAdNotice.hide(); }; } public function enableLinearAdMouseOverRegion(_arg1:AdSlot):void{ doLog("Enabling linear ad mouse over region", Debuggable.DEBUG_DISPLAY_EVENTS); _mouseTrackerRegion.activeAdSlot = _arg1; _mouseTrackerRegion.show(); _pausingClickForMoreInfoRegion = false; } public function hasActiveVPAIDAd():Boolean{ return (!((_activeVPAIDMedia == null))); } public function hasActiveLinearMouseOverRegion():Boolean{ return (_mouseTrackerRegion.visible); } public function getActiveVPAIDAd():IVPAID{ if (_activeVPAIDMedia != null){ return (_activeVPAIDMedia.getVPAID()); }; return (null); } public function displayNonLinearAd(_arg1:OverlayAdDisplayEvent):void{ var _local3:NonLinearVideoAd; var _local4:OverlayView; var _local5:String; var _local6:String; var _local7:String; var _local2:AdSlot = _arg1.adSlot; if (_local2 != null){ doLog(("Attempting to display overlay ad at ad slot index " + _local2.key), Debuggable.DEBUG_DISPLAY_EVENTS); _local3 = _arg1.nonLinearVideoAd; if (_local3.hasActiveDisplayRegion()){ if (_local3.isInteractive()){ doLog("Oops, this shouldn't happen - OverlayController.displayNonLinearOverlayAd() has a VPAID ad to play - ignoring ad", Debuggable.DEBUG_DISPLAY_EVENTS); return; }; _local4 = null; _local5 = _arg1.nonLinearVideoAd.getActiveDisplayRegionID(); if (regionIsAuto(_local5)){ _local4 = createAutoRegionForNonLinearAd(_local2, _local3, getAutoRegionAlignment(_local5)); } else { _local4 = (getRegion(_local5) as OverlayView); if (_local4 != null){ doLog((("Displaying overlay in a 'type' based region '" + _local4.id) + "'"), Debuggable.DEBUG_DISPLAY_EVENTS); } else { doLog((("Could not get a handle on a region called '" + _local5) + "' - creating an auto region"), Debuggable.DEBUG_DISPLAY_EVENTS); _local4 = createAutoRegionForNonLinearAd(_local2, _local3, getAutoRegionAlignment(_local5)); }; }; if (_local4 != null){ _local4.hide(); _local4.activeAdSlot = _local2; _local4.autoHide = !(_arg1.nonLinearVideoAd.activeDisplayRegion.keepVisibleAfterClick); _local4.scalable = _arg1.nonLinearVideoAd.activeDisplayRegion.enableScaling; if (_local3.isFlash()){ _local4.loadFlashMedia((_local3 as FlashMedia), _vastController.config.adsConfig.vpaidConfig, _vastController.config.adsConfig.allowDomains, (_local3.hasClickThroughURL()) ? true : _local3.hasAccompanyingVideoAd()); } else { if ((((((_local3 is NonLinearImageAd)) && (_local3.scale))) && (_arg1.nonLinearVideoAd.activeDisplayRegion.enableScaling))){ doLog(((("Displaying image overlay as scalable sprite - original size is " + _local3.width) + "x") + _local3.height), Debuggable.DEBUG_DISPLAY_EVENTS); _local4.loadScalableNonLinearImage((_local3 as NonLinearImageAd), (_arg1.nonLinearVideoAd.activeDisplayRegion.hasWidthSpecified()) ? _arg1.nonLinearVideoAd.activeDisplayRegion.width : _vastController.playerWidth, (_arg1.nonLinearVideoAd.activeDisplayRegion.hasHeightSpecified()) ? _arg1.nonLinearVideoAd.activeDisplayRegion.height : _vastController.playerHeight, _arg1.nonLinearVideoAd.activeDisplayRegion.hasSize(), _vastController.config.adsConfig.allowDomains); } else { doLog((("Displaying " + _local3.contentType()) + " overlay via HTML tags... "), Debuggable.DEBUG_DISPLAY_EVENTS); _local6 = null; _local7 = _arg1.nonLinearVideoAd.getContent(); if (_local3.hasClickThroughURL()){ _local6 = (("<a href=\"" + _local3.clickThroughs[0].url) + "\" target=\"_blank\">"); _local6 = (_local6 + _local7); _local6 = (_local6 + "</a>"); } else { _local6 = _local7; }; _local4.html = _local6; }; }; _local4.show(); } else { _local3.clearActiveDisplayRegion(); doLog("Could not create a region to display the non-linear ad", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("Cannot display the non-linear ad - does not have an active region declared", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("Cannot show the non linear ad - no ad slot attached to OverlayDisplayEvent", Debuggable.DEBUG_DISPLAY_EVENTS); }; } public function deactivateLinearAdSkipButton(_arg1:SkipAdButtonDisplayEvent):void{ doLog(("Hiding the linear ad skip button housed in region " + _arg1.region), Debuggable.DEBUG_DISPLAY_EVENTS); if (_skipAdButtonRegion != null){ _skipAdButtonRegion.deactivate(); }; } public function hideAllAdMessages():void{ hideAdNotice(); if (_skipAdButtonRegion != null){ _skipAdButtonRegion.hide(); }; disableLinearAdMouseOverRegion(); } public function onLinearAdClickThroughCallToActionViewClicked(_arg1:AdSlot):void{ _vastController.onLinearAdClickThroughCallToActionViewClicked(_arg1); } public function playVPAIDAd(_arg1:AdSlot, _arg2:Object, _arg3:Boolean=false, _arg4:Number=-1, _arg5:Boolean=false, _arg6:Boolean=true):void{ _arg1.markForRefresh(); if (_arg1.isInteractive()){ closeActiveVPAIDAds(); if (_arg1.isLinear()){ playVPAIDMedia((_arg1.getFlashMediaToPlay(displayWidth, displayHeight, true) as VPAIDPlayback), _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } else { playVPAIDMedia((_arg1.getNonLinearVideoAd() as VPAIDPlayback), _arg1, _arg2, _arg3, _arg4, false, _arg6); }; } else { _arg2.onError(new VPAIDEvent(VPAIDEvent.AdError, "Ad is not a VPAID SWF")); }; } public function resumeActiveVPAIDAd():void{ if (_activeVPAIDMedia != null){ _activeVPAIDMedia.resume(); }; } protected function determineNonLinearRegionWidth(_arg1:int):int{ if (_displayProperties != null){ if (_displayProperties.displayWidth < _arg1){ return (_displayProperties.displayWidth); }; }; return (_arg1); } override protected function newRegion(_arg1:RegionController, _arg2:RegionViewConfig, _arg3:DisplayProperties):RegionView{ return (new OverlayView(_arg1, _arg2, _arg3)); } override protected function createPredefinedRegion(_arg1:String):RegionView{ doLog((("Attempting to create a pre-defined region '" + _arg1) + "'"), Debuggable.DEBUG_REGION_FORMATION); var _local2:RegionViewConfig; switch (_arg1){ case "reserved-system-message": return (createRegionView(new RegionViewConfig({id:"reserved-system-message", verticalAlign:"bottom:-2", backgroundColor:getBackgroundColor("transparent"), height:20, width:"100pct", style:(".normaltext { font-family: \"sans-serif\"; font-size: 12pt; font-style: normal; color:#CCCCCC } " + ".smalltext { font-family: \"sans-serif\"; font-size: 10pt; color:#CCCCCC }"), closeButton:this.closeButtonConfig, useOverrideMargin:true}))); case "reserved-top": return (createRegionView(new RegionViewConfig({id:"reserved-top", verticalAlign:"top", width:"100pct", height:"50", closeButton:this.closeButtonConfig}))); case "reserved-fullscreen": return (createRegionView(new RegionViewConfig({id:"reserved-fullscreen", verticalAlign:0, horizontalAlign:0, width:"100pct", height:"100pct", backgroundColor:getBackgroundColor("#000000"), closeButton:this.closeButtonConfig}))); case "reserved-fullscreen-black-no-close-button-non-clickable": return (createRegionView(new RegionViewConfig({id:"reserved-fullscreen-black-no-close-button-non-clickable", verticalAlign:0, horizontalAlign:0, width:"100pct", height:"100pct", backgroundColor:getBackgroundColor("#000000"), clickable:false, closeButton:new CloseButtonConfig({enabled:false})}))); case "reserved-fullscreen-black-no-close-button-non-clickable-minimize-rules": return (createRegionView(new RegionViewConfig({id:"reserved-fullscreen-black-no-close-button-non-clickable-minimize-rules", verticalAlign:0, horizontalAlign:0, width:"100pct", height:"100pct", backgroundColor:getBackgroundColor("#000000"), clickable:false, closeButton:new CloseButtonConfig({enabled:false}), minimizedHeight:"controls-ypos-when-visible-all-modes"}))); case "reserved-fullscreen-black-no-close-button-non-clickable-with-cb-height": return (createRegionView(new RegionViewConfig({id:"reserved-fullscreen-black-no-close-button-non-clickable-with-cb-height", verticalAlign:0, horizontalAlign:0, width:"100pct", height:"100pct", backgroundColor:getBackgroundColor("#000000"), clickable:false, closeButton:new CloseButtonConfig({enabled:false}), additionalHeight:"controls-height-when-normal", minimizedHeight:"controls-ypos-when-visible-fullscreen"}))); case "reserved-fullscreen-transparent-no-close-button-non-clickable": return (createRegionView(new RegionViewConfig({id:"reserved-fullscreen-black-no-close-button-non-clickable", verticalAlign:0, horizontalAlign:0, width:"100pct", height:"100pct", backgroundColor:getBackgroundColor("transparent"), clickable:true, closeButton:new CloseButtonConfig({enabled:false}), autoHide:false}))); case "reserved-fullscreen-transparent-no-close-button-non-clickable-bottom-margin-adjusted": return (createRegionView(new RegionViewConfig({id:"reserved-fullscreen-transparent-no-close-button-non-clickable-bottom-margin-adjusted", verticalAlign:0, horizontalAlign:0, width:"100pct", height:"100pct", backgroundColor:getBackgroundColor("transparent"), clickable:true, closeButton:new CloseButtonConfig({enabled:false}), autoHide:false}))); case "reserved-bottom-w100pct-h78px-000000-o50": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-w100pct-h78px-000000-o50", verticalAlign:"bottom", backgroundColor:getBackgroundColor("#000000"), opacity:0.5, width:"100pct", height:78, padding:"5 5 5 5", style:DEFAULT_TEXT_OVERLAY_STYLES, closeButton:this.closeButtonConfig}))); case "reserved-bottom-w100pct-h50px-000000-o50": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-w100pct-h50px-000000-o50", verticalAlign:"bottom", backgroundColor:getBackgroundColor("#000000"), opacity:0.5, width:"100pct", height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-w100pct-h50px-transparent-0m": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-w100pct-h50px-transparent-0m", verticalAlign:"bottom", backgroundColor:getBackgroundColor("transparent"), width:"100pct", height:50, padding:"-10 -10 -10 -10", closeButton:this.closeButtonConfig}))); case "reserved-bottom-w450px-h50px-000000-o50": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-w450px-h50px-000000-o50", verticalAlign:"bottom", backgroundColor:getBackgroundColor("#000000"), opacity:0.5, width:450, height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-w450px-h50px-transparent": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-w450px-h50px-transparent", verticalAlign:"bottom", backgroundColor:getBackgroundColor("transparent"), width:450, height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-w450px-h50px-transparent-0m": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-w450px-h50px-transparent-0m", verticalAlign:"bottom", backgroundColor:getBackgroundColor("transparent"), width:450, height:50, padding:"-10 -10 -10 -10", closeButton:this.closeButtonConfig}))); case "reserved-bottom-center-w450px-h50px-000000-o50": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-center-w450px-h50px-000000-o50", verticalAlign:"bottom", backgroundColor:getBackgroundColor("#000000"), horizontalAlign:"center", opacity:0.5, width:450, height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-center-w450px-h50px-transparent": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-center-w450px-h50px-transparent", verticalAlign:"bottom", horizontalAlign:"center", backgroundColor:getBackgroundColor("transparent"), width:450, height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-center-w450px-h50px-transparent-0m": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-center-w450px-h50px-transparent-0m", verticalAlign:"bottom", horizontalAlign:"center", backgroundColor:getBackgroundColor("transparent"), width:450, height:50, padding:"-10 -10 -10 -10", closeButton:this.closeButtonConfig}))); case "reserved-bottom-center-w300px-h50px-000000-o50": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-center-w300px-h50px-000000-o50", verticalAlign:"bottom", backgroundColor:getBackgroundColor("#000000"), horizontalAlign:"center", opacity:0.5, width:300, height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-center-w300px-h50px-transparent": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-center-w300px-h50px-transparent", verticalAlign:"bottom", horizontalAlign:"center", backgroundColor:getBackgroundColor("transparent"), width:300, height:50, closeButton:this.closeButtonConfig}))); case "reserved-bottom-center-w300px-h50px-transparent-0m": return (createRegionView(new RegionViewConfig({id:"reserved-bottom-center-w300px-h50px-transparent-0m", verticalAlign:"bottom", horizontalAlign:"center", backgroundColor:getBackgroundColor("transparent"), width:300, height:50, padding:"-10 -10 -10 -10", closeButton:this.closeButtonConfig}))); }; doLog((((("Pre-defined region '" + _arg1) + "' not found - returning default region '") + DEFAULT_REGION.id) + "'"), Debuggable.DEBUG_REGION_FORMATION); return (DEFAULT_REGION); } public function isVPAIDAdPlaying():Boolean{ if (_activeVPAIDMedia != null){ return (_activeVPAIDMedia.isRunning()); }; return (false); } public function showAdNotice(_arg1:AdNoticeDisplayEvent):void{ var _local2:RegionView; if (_arg1 != null){ if (_arg1.notice.region != undefined){ _local2 = getRegion(_arg1.notice.region); if (_local2 != null){ _activeAdNotice = new AdNotice(_arg1.notice.message, _arg1.duration, _local2); _activeAdNotice.show(); } else { doLog((("Cannot find the region '" + _arg1.notice.region) + "'")); }; }; }; } public function hideNonLinearAd(_arg1:OverlayAdDisplayEvent):void{ var _local3:NonLinearVideoAd; var _local4:String; var _local2:AdSlot = _arg1.adSlot; if (_local2 != null){ _local3 = _arg1.nonLinearVideoAd; _local4 = _arg1.nonLinearVideoAd.getActiveDisplayRegionID(); if (regionIsAuto(_local4)){ _local4 = _local3.uid; }; clearOverlay(_local4); }; } public function activateLinearAdSkipButton(_arg1:SkipAdButtonDisplayEvent):void{ doLog(("Activating the linear ad skip button housed in region " + _arg1.region), Debuggable.DEBUG_DISPLAY_EVENTS); if (_skipAdButtonRegion != null){ _skipAdButtonRegion.registerOnClick(_arg1.callbackMethod); _skipAdButtonRegion.activate(); setChildIndex(_skipAdButtonRegion, (numChildren - 1)); }; } public function hideAdNotice(_arg1:AdNoticeDisplayEvent=null):void{ if (_arg1 != null){ if (_arg1.notice.region != undefined){ if (_activeAdNotice != null){ _activeAdNotice.hide(); _activeAdNotice = null; }; }; } else { if (_activeAdNotice != null){ _activeAdNotice.hide(); _activeAdNotice = null; }; }; } override protected function createRegionViews():void{ var _local1:int; var _local2:RegionViewConfig; if (_vastController.config.visuallyCueLinearAdClickThrough){ _mouseTrackerRegion = new ClickThroughCallToActionView(this, new RegionViewConfig({id:"reserved-clickable-click-through", verticalAlign:0, horizontalAlign:0, scaleRate:0.75, width:"100pct", height:"100pct", clickable:true, closeButton:{enabled:false}, backgroundColor:getBackgroundColor("transparent"), autoHide:false}), _vastController.config.adsConfig.clickSignConfig, _displayProperties); _regionViews.push(_mouseTrackerRegion); addChild(_mouseTrackerRegion); setChildIndex(_mouseTrackerRegion, 0); }; DEFAULT_REGION = createRegionView(new RegionViewConfig({id:"reserved-bottom-w100pct-h50px-transparent", verticalAlign:"bottom", backgroundColor:getBackgroundColor("transparent"), width:"100pct", height:50, closeButton:this.closeButtonConfig})); if (_config != null){ if (_config.hasRegionDefinitions()){ _local1 = 0; while (_local1 < _config.regions.length) { createRegionView(_config.regions[_local1]); _local1++; }; }; }; if (_vastController.canSkipOnLinearAd()){ _local2 = null; if (_vastController.config.adsConfig.skipAdConfig.isHtmlButton()){ _local2 = new HtmlSkipAdButton(_vastController.config.adsConfig.skipAdConfig); doLog("Skip button is a HTML button", Debuggable.DEBUG_REGION_FORMATION); } else { if (_vastController.config.adsConfig.skipAdConfig.isStandardImageButton()){ _local2 = new StandardImageSkipAdButton(_vastController.config.adsConfig.skipAdConfig); doLog("Skip button is a standard image button", Debuggable.DEBUG_REGION_FORMATION); } else { if (_vastController.config.adsConfig.skipAdConfig.isCustomImageButton()){ _local2 = new LoadableImageSkipAdButton(_vastController.config.adsConfig.skipAdConfig); doLog(("Skip button is a custom image button - image is " + _vastController.config.adsConfig.skipAdConfig.image), Debuggable.DEBUG_REGION_FORMATION); }; }; }; if (_local2 != null){ doLog("Have created a region to to house the Linear 'Skip Ad' button", Debuggable.DEBUG_REGION_FORMATION); _skipAdButtonRegion = new SkipAdButtonView(this, _local2, _displayProperties, _vastController.config.adsConfig.skipAdConfig.width, _vastController.config.adsConfig.skipAdConfig.height); _regionViews.push(_skipAdButtonRegion); addChild(_skipAdButtonRegion); setChildIndex(_skipAdButtonRegion, 0); }; }; doLog((("Regions created - " + _regionViews.length) + " in total"), Debuggable.DEBUG_REGION_FORMATION); } } }//package org.openvideoads.vast.overlay
Section 173
//OverlayView (org.openvideoads.vast.overlay.OverlayView) package org.openvideoads.vast.overlay { import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.regions.view.*; import org.openvideoads.vast.model.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.regions.*; import org.openvideoads.regions.config.*; public class OverlayView extends RegionView { protected var _playerVolumeOnStartup:Number;// = -1 protected var _vpaidConfig:VPAIDConfig;// = null protected var _activeAdSlot:AdSlot;// = null protected var _muteOnStartup:Boolean;// = false protected var _isLinearAd:Boolean;// = false protected var _flashAd;// = null protected var _reduceVPAIDAdHeightByBottomMargin:Boolean;// = false public function OverlayView(_arg1:RegionController, _arg2:RegionViewConfig, _arg3:DisplayProperties){ super(_arg1, _arg2, _arg3); } public function unloadFlashMedia():void{ if (_flashAd != null){ _flashAd.unload(); _flashAd = null; }; } public function loadFlashMedia(_arg1:FlashMedia, _arg2:VPAIDConfig, _arg3:String, _arg4:Boolean=false, _arg5:Boolean=false, _arg6:Boolean=false, _arg7:Boolean=false, _arg8:Number=-1):void{ _flashAd = _arg1; _vpaidConfig = _arg2; _muteOnStartup = _arg5; _playerVolumeOnStartup = _arg8; _reduceVPAIDAdHeightByBottomMargin = _arg6; _isLinearAd = _arg7; if (_flashAd.isInteractive()){ scalable = (_arg7) ? _arg2.enableLinearScaling : _arg2.enableNonLinearScaling; doLog((((("Loading VPAID Ad into overlay '" + this.id) + "' - ") + (scalable) ? "scaling configured" : "scaling not configured") + " ..."), Debuggable.DEBUG_VPAID); loadFlashContent(_flashAd, _arg3, false); } else { doLog((("Displaying Non-VPAID Flash Ad into overlay '" + this.id) + "' ..."), Debuggable.DEBUG_VPAID); loadFlashContent(_flashAd, _arg3, _arg4); }; } override public function resize(_arg1:DisplayProperties=null):void{ super.resize(_arg1); if (_displayProperties != null){ if (((!((_flashAd == null))) && ((_flashAd is VPAIDPlayback)))){ _flashAd.resize(this.width, this.height, _displayProperties.displayMode); }; }; } public function get activeAdSlot():AdSlot{ return (_activeAdSlot); } override public function setHeight():Boolean{ var _local1:Number; if (((expanded) && (_config.hasExpandedSizing()))){ height = _config.expandedHeight; return (true); }; _local1 = height; if ((((expanded == false)) && (_config.hasMinimizedHeightBasedOnYPosForDisplayMode(_displayProperties.displayMode)))){ height = _config.calculateMinimizedHeight(_displayProperties); doLog((((((("Minimized height (" + height) + "px) calculated based on '") + _config.minimizedHeight) + "' for region '") + id) + "'"), Debuggable.DEBUG_REGION_FORMATION); return (!((height == _local1))); }; if ((_config.height is String)){ if (_config.height.toUpperCase().indexOf("BOTTOM-MARGIN-ADJUSTED") > -1){ height = _displayProperties.getMarginAdjustedHeight(_config.useOverrideMargin); doLog((((("Height 'bottom-margin-adjusted' to " + height) + " for region '") + id) + "'"), Debuggable.DEBUG_REGION_FORMATION); return (!((height == _local1))); }; }; return (super.setHeight()); } override public function setVerticalAlignment():Boolean{ var _local1:int; var _local2:Number; var _local3:Number; var _local4:Boolean; if ((((_config.verticalAlignPosition is String)) && (!((_config.verticalAlignPosition == null))))){ _local1 = (_displayProperties.displayHeight * scaleY); _local2 = y; _local3 = _displayProperties.getActiveMargin(_config.useOverrideMargin); _local4 = false; if (_config.verticalAlignPosition == "TOP"){ y = (0 + _config.verticalAlignOffset); _local4 = true; } else { if (_config.verticalAlignPosition == "BOTTOM"){ y = (((_local1 - height) - _local3) + _config.verticalAlignOffset); _local4 = true; } else { if (_config.verticalAlignPosition == "CENTER"){ y = ((((_local1 - height) - _local3) / 2) + _config.verticalAlignOffset); _local4 = true; } else { y = new Number(_config.verticalAlignPosition); y = (y + _config.verticalAlignOffset); _local4 = true; }; }; }; if (_local4){ doLog(((("Vertical alignment set to " + y) + " for region ") + id), Debuggable.DEBUG_REGION_FORMATION); return (!((y == _local2))); }; }; return (super.setVerticalAlignment()); } public function set activeAdSlot(_arg1:AdSlot):void{ _activeAdSlot = _arg1; } public function clearActiveAdSlot():void{ _activeAdSlot = null; } override protected function onFlashContentLoaded():void{ if (_flashAd != null){ if (_flashAd.isInteractive()){ if (_flashAd.registerAsVPAID(new VPAIDWrapper(_contentLoader.content, _muteOnStartup, _playerVolumeOnStartup))){ show(); _flashAd.startVPAID(this.width, this.height, ((_displayProperties)!=null) ? _displayProperties.displayMode : DisplayProperties.DISPLAY_NORMAL, ((_vpaidConfig)!=null) ? _vpaidConfig.supplyReferrer : false, ((_vpaidConfig)!=null) ? _vpaidConfig.referrer : null); } else { doLog("VPAID ad not registered - start aborted", Debuggable.DEBUG_VPAID); }; }; }; } public function loadScalableNonLinearImage(_arg1:NonLinearImageAd, _arg2:Number, _arg3:Number, _arg4:Boolean, _arg5:String):void{ if (_arg1 != null){ loadScalableImageContent(_arg1.imageURL, _arg1.width, _arg1.height, _arg2, _arg3, _arg4, _arg1.maintainAspectRatio, _arg5); }; } } }//package org.openvideoads.vast.overlay
Section 174
//VPAIDWrapper (org.openvideoads.vast.overlay.VPAIDWrapper) package org.openvideoads.vast.overlay { import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.vpaid.*; import flash.utils.*; public class VPAIDWrapper extends EventDispatcher implements IVPAID { protected var _currentHeight:int;// = -1 protected var _muteOnStartup:Boolean;// = false protected var _playerVolumeOnStartup:Number;// = -1 protected var _currentWidth:int;// = -1 protected var _ad; protected static const VPAID_PROVIDER_WRAPPED_WITH_GET_VPAID:String = "WRAPPED_WITH_GET_VPAID"; protected static const VPAID_PROVIDER_STANDARD:String = "STANDARD"; public function VPAIDWrapper(_arg1, _arg2:Boolean=false, _arg3:Number=-1){ _muteOnStartup = _arg2; _playerVolumeOnStartup = _arg3; switch (determineAdProvider(_arg1)){ case VPAID_PROVIDER_WRAPPED_WITH_GET_VPAID: _ad = _arg1.getVPAID(); doLog("VPAIDWrapper::constructor() - the VPAID ad provider uses a wrapper - accessing the ad SWF via _ad.getVPAID()", Debuggable.DEBUG_VPAID); break; default: _ad = _arg1; }; } public function get adRemainingTime():Number{ if (_ad != null){ return (_ad.adRemainingTime); }; return (0); } public function isV100():Boolean{ return (((adHasMethod(_ad, "initVPAIDVersion")) && (adHasMethod(_ad, "init")))); } override public function willTrigger(_arg1:String):Boolean{ if (_ad != null){ return (_ad.willTrigger(_arg1)); }; return (false); } public function toRuntimeStateJSObject():Object{ var _local1:Object = new Object(); _local1["adExpanded"] = this.adExpanded; _local1["adLinear"] = this.adLinear; _local1["adRemainingTime"] = this.adRemainingTime; _local1["adVolume"] = this.adVolume; return (_local1); } public function get adVolume():Number{ if (_ad != null){ return (_ad.adVolume); }; return (0); } public function startAd():void{ if (_ad != null){ if (_muteOnStartup){ doLog("Muting the VPAID Ad on startup", Debuggable.DEBUG_VPAID); _ad.adVolume = 0; } else { if (_playerVolumeOnStartup > -1){ doLog((("Setting VPAID Ad volume to player volume level '" + _playerVolumeOnStartup) + "'"), Debuggable.DEBUG_VPAID); _ad.adVolume = _playerVolumeOnStartup; }; }; _ad.startAd(); }; } public function get adLinear():Boolean{ if (_ad != null){ return (_ad.adLinear); }; return (false); } public function get adHeight():Number{ if (_ad != null){ return (_ad.height); }; return (0); } public function isV110():Boolean{ return (((adHasMethod(_ad, "handshakeVersion")) && (adHasMethod(_ad, "initAd")))); } public function collapseAd():void{ if (_ad != null){ _ad.collapseAd(); }; } protected function adHasMethod(_arg1, _arg2:String):Boolean{ var ad = _arg1; var methodName = _arg2; if (ad != null){ try { return (!((ad[methodName] == undefined))); } catch(e:Error) { doLog((("Exception thrown trying to determine if VPAID ad has " + methodName) + "() method"), Debuggable.DEBUG_VPAID); }; }; return (false); } public function set adVolume(_arg1:Number):void{ if (_ad != null){ _ad.adVolume = _arg1; }; } public function pauseAd():void{ if (_ad != null){ _ad.pauseAd(); }; } public function stopAd():void{ if (_ad != null){ _ad.stopAd(); }; } override public function dispatchEvent(_arg1:Event):Boolean{ if (_ad != null){ return (_ad.dispatchEvent(_arg1)); }; doLog("Unable to dispatch event - ad is null", Debuggable.DEBUG_VPAID); return (false); } public function resumeAd():void{ if (_ad != null){ _ad.resumeAd(); }; } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_ad != null){ _ad.removeEventListener(_arg1, _arg2, _arg3); } else { doLog((("Unable to removeEventListener('" + _arg1) + "') - ad is null"), Debuggable.DEBUG_VPAID); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_ad != null){ _ad.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } else { doLog((("Unable to addEventListener('" + _arg1) + "') - ad is null"), Debuggable.DEBUG_VPAID); }; } public function initAd(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Number, _arg5:String, _arg6:String):void{ var _local7:int; var _local8:int; if (_ad != null){ _local7 = parseInt(_arg1.toFixed(0)); _local8 = parseInt(_arg2.toFixed(0)); _currentWidth = _local7; _currentHeight = _local8; _ad.initAd(_local7, _local8, _arg3, _arg4, _arg5, _arg6); }; } protected function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } public function handshakeVersion(_arg1:String):String{ if (_ad != null){ return (_ad.handshakeVersion(_arg1)); }; return ("0.0.0"); } public function get adWidth():Number{ if (_ad != null){ return (_ad.width); }; return (0); } public function expandAd():void{ if (_ad != null){ _ad.expandAd(); }; } public function initVPAIDVersion(_arg1:String):String{ if (_ad != null){ return (_ad.initVPAIDVersion(_arg1)); }; return ("0.0.0"); } protected function determineAdProvider(_arg1):String{ var _local2:XML = describeType(_arg1); if (vpaidAdIsWrapped(_arg1, "getVPAID", _local2)){ return (VPAID_PROVIDER_WRAPPED_WITH_GET_VPAID); }; return (VPAID_PROVIDER_STANDARD); } protected function getAdClassPackage(_arg1):String{ var _local2:String = getQualifiedClassName(_arg1); if (_local2 != null){ return (_local2.substr(0, _local2.indexOf("::"))); }; return (""); } override public function hasEventListener(_arg1:String):Boolean{ if (_ad != null){ return (_ad.hasEventListener(_arg1)); }; return (false); } protected function vpaidAdIsWrapped(_arg1, _arg2:String, _arg3:XML=null):Boolean{ return (adHasMethod(_arg1, _arg2)); } public function resizeAd(_arg1:Number, _arg2:Number, _arg3:String):void{ var fixedWidth:int; var fixedHeight:int; var width = _arg1; var height = _arg2; var viewMode = _arg3; try { fixedWidth = parseInt(width.toFixed(0)); fixedHeight = parseInt(height.toFixed(0)); if (((!((_currentWidth == fixedWidth))) || (!((_currentHeight == fixedHeight))))){ _currentWidth = fixedWidth; _currentHeight = fixedHeight; _ad.resizeAd(fixedWidth, fixedHeight, viewMode); doLog((((((("VPAID ad has been resized to " + fixedWidth) + "x") + fixedHeight) + " - viewMode is '") + viewMode) + "'"), Debuggable.DEBUG_VPAID); }; } catch(e:Error) { doLog(("Exception in VPAIDWrapper::resizeAd() - " + e.message), Debuggable.DEBUG_VPAID); }; } public function get adExpanded():Boolean{ if (_ad != null){ return (_ad.adExpanded); }; return (false); } } }//package org.openvideoads.vast.overlay
Section 175
//MediaRSSPlaylist (org.openvideoads.vast.playlist.mrss.MediaRSSPlaylist) package org.openvideoads.vast.playlist.mrss { import org.openvideoads.vast.schedule.*; import org.openvideoads.base.*; import org.openvideoads.vast.playlist.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; public class MediaRSSPlaylist extends DefaultPlaylist { protected var _link:String;// = "Not available" protected var _title:String;// = "" protected var _description:String;// = "Not available" public function MediaRSSPlaylist(_arg1:StreamSequence=null, _arg2:ProvidersConfigGroup=null, _arg3:ProvidersConfigGroup=null){ super(_arg1, _arg2, _arg3); } override public function getModel():Array{ return (new Array()); } override public function newPlaylistItem():PlaylistItem{ return (new MediaRSSPlaylistItem()); } override public function loadFromString(_arg1:String):void{ var _local4:int; var _local5:XML; var _local6:MediaRSSPlaylistItem; var _local2:Namespace = new Namespace("http://search.yahoo.com/mrss/"); doLog("Parsing a MRSS playlist: ", Debuggable.DEBUG_PLAYLIST); XML.ignoreWhitespace = true; var _local3:XML = new XML(_arg1); doLog(_local3, Debuggable.DEBUG_PLAYLIST); if (_local3.length() > 0){ if (_local3.channel.description != null){ _description = _local3.channel.description.text(); }; if (_local3.channel.title != null){ _title = _local3.channel.title.text(); }; if (_local3.channel.link != null){ _link = _local3.channel.link.text(); }; _local4 = 0; while (_local4 < _local3.channel.item.length()) { _local5 = _local3.channel.item[_local4]; _local6 = new MediaRSSPlaylistItem(); _local6.description = _local5.description; _local6.guid = _local5.guid; _local6.link = _local5.link; _local6.publishDate = _local5.pubDate; _local6.url = _local5._local2::content.@url; _local6.mimeType = _local5._local2::content.@type; _local6.filename = _local5._local2::title; _local6.duration = Timestamp.secondsToTimestamp(_local5._local2::content.@duration); doLog((("Parsed playlist item " + _local4) + " - added"), Debuggable.DEBUG_PLAYLIST); _playlist.push(_local6); _local4++; }; doLog(this.toString(), Debuggable.DEBUG_PLAYLIST); } else { doLog("Parse failed: rawData is not an XML playlist", Debuggable.DEBUG_PLAYLIST); }; } override public function toString(_arg1:Boolean=false):String{ var _local2:String = new String(); _local2 = (_local2 + "<rss version=\"2.0\" xmlns:media=\"http://search.yahoo.com/mrss/\">"); _local2 = (_local2 + "<channel>"); _local2 = (_local2 + (("<description>" + _description) + "</description>")); _local2 = (_local2 + (("<title>" + _title) + "</title>")); _local2 = (_local2 + (("<link>" + _link) + "</link>")); var _local3:int; while (_local3 < _playlist.length) { _local2 = (_local2 + _playlist[_local3].toString(_arg1)); _local3++; }; _local2 = (_local2 + "</channel>"); _local2 = (_local2 + "</rss>"); return (_local2); } } }//package org.openvideoads.vast.playlist.mrss
Section 176
//MediaRSSPlaylistItem (org.openvideoads.vast.playlist.mrss.MediaRSSPlaylistItem) package org.openvideoads.vast.playlist.mrss { import org.openvideoads.vast.playlist.*; import org.openvideoads.util.*; public class MediaRSSPlaylistItem extends DefaultPlaylistItem { override public function toString(_arg1:Boolean=false):String{ var _local2:String = new String(); _local2 = (_local2 + "<item>"); _local2 = (_local2 + (("<title>" + title) + "</title>")); _local2 = (_local2 + (("<link>" + link) + "</link>")); _local2 = (_local2 + (("<description>" + description) + "</description>")); _local2 = (_local2 + (("<guid>" + guid) + "</guid>")); _local2 = (_local2 + (((((("<media:content url=\"" + url) + "\" duration=\"") + Timestamp.timestampToSeconds(duration)) + "\" type=\"") + mimeType) + "\"/>")); _local2 = (_local2 + (("<media:title>" + filename) + "</media:title>")); _local2 = (_local2 + (("<media:credit role=\"author\">" + getAuthor()) + "</media:credit>")); _local2 = (_local2 + "</item>"); return (_local2); } } }//package org.openvideoads.vast.playlist.mrss
Section 177
//SMILPlaylist (org.openvideoads.vast.playlist.smil.SMILPlaylist) package org.openvideoads.vast.playlist.smil { import org.openvideoads.vast.schedule.*; import org.openvideoads.base.*; import org.openvideoads.vast.playlist.*; import org.openvideoads.vast.config.groupings.*; public class SMILPlaylist extends DefaultPlaylist { public function SMILPlaylist(_arg1:StreamSequence=null, _arg2:ProvidersConfigGroup=null, _arg3:ProvidersConfigGroup=null){ super(_arg1, _arg2, _arg3); } override public function getModel():Array{ return (new Array()); } override public function loadFromString(_arg1:String):void{ doLog("Have retrieved the SMIL XML data - parsing to extract the final stream address and filename...", Debuggable.DEBUG_PLAYLIST); var _local2:XML = new XML(_arg1); addTrack(new SMILPlaylistItem(_local2.children()[0].children()[0].@base.toString(), _local2.children()[1].children()[0].@src.toString())); } override public function toString(_arg1:Boolean=false):String{ return (new String()); } } }//package org.openvideoads.vast.playlist.smil
Section 178
//SMILPlaylistItem (org.openvideoads.vast.playlist.smil.SMILPlaylistItem) package org.openvideoads.vast.playlist.smil { import org.openvideoads.vast.playlist.*; public class SMILPlaylistItem extends DefaultPlaylistItem { public function SMILPlaylistItem(_arg1:String=null, _arg2:String=null, _arg3:int=0, _arg4:String=null, _arg5:String=null){ if (_arg1 != null){ _url = _arg1; }; if (_arg2 != null){ _filename = _arg2; }; } } }//package org.openvideoads.vast.playlist.smil
Section 179
//DefaultPlaylist (org.openvideoads.vast.playlist.DefaultPlaylist) package org.openvideoads.vast.playlist { import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.schedule.ads.*; import flash.events.*; import org.openvideoads.base.*; import org.openvideoads.vast.config.groupings.*; import flash.net.*; import flash.xml.*; public class DefaultPlaylist extends Debuggable implements Playlist { protected var _rewound:Boolean;// = false protected var _xmlLoader:URLLoader;// = null protected var _playingTrackIndex:int;// = 0 protected var _loadListener:PlaylistLoadListener;// = null protected var _currentTrackIndex:int;// = 0 protected var _playlist:Array; protected var _rawXMLData:String;// = null public function DefaultPlaylist(_arg1:StreamSequence=null, _arg2:ProvidersConfigGroup=null, _arg3:ProvidersConfigGroup=null){ _playlist = new Array(); super(); loadFromSequence(_arg1, _arg2, _arg3); } public function previousTrackAsPlaylistString(_arg1:Boolean=false):String{ var _local2:String; _rewound = false; if (_playlist != null){ if (_currentTrackIndex >= 0){ if (_playlist[_currentTrackIndex].canPlay()){ _local2 = header(); _local2 = (_local2 + _playlist[_currentTrackIndex].toString(_arg1)); _playlist[_currentTrackIndex].markAsPlayed(); _local2 = (_local2 + footer()); _currentTrackIndex--; return (_local2); }; _currentTrackIndex--; return (previousTrackAsPlaylistString(_arg1)); }; }; return (null); } public function nextTrackAsPlaylistString(_arg1:Boolean=false, _arg2:Boolean=true):String{ var _local3:String; if (_playlist != null){ if ((((_currentTrackIndex > 0)) && (_arg2))){ _rewound = false; }; if (_currentTrackIndex < _playlist.length){ _playingTrackIndex = _currentTrackIndex; if (_playlist[_currentTrackIndex].canPlay()){ _local3 = header(); _local3 = (_local3 + _playlist[_currentTrackIndex].toString(_arg1)); _playlist[_currentTrackIndex].markAsPlayed(); _local3 = (_local3 + footer()); _currentTrackIndex++; return (_local3); }; _currentTrackIndex++; return (nextTrackAsPlaylistString(_arg1, false)); }; }; return (null); } public function nextTrackAsPlaylistItem(_arg1:Boolean=false, _arg2:Boolean=true):PlaylistItem{ if (_playlist != null){ if ((((_currentTrackIndex > 0)) && (_arg2))){ _rewound = false; }; if (_currentTrackIndex < _playlist.length){ _playingTrackIndex = _currentTrackIndex; if (_playlist[_currentTrackIndex].canPlay()){ _playlist[_currentTrackIndex].markAsPlayed(); _currentTrackIndex++; return (_playlist[(_currentTrackIndex - 1)]); }; _currentTrackIndex++; return (nextTrackAsPlaylistItem(_arg1, false)); }; }; return (null); } public function getTrackAtIndex(_arg1:int):PlaylistItem{ if (this.length > _arg1){ return (_playlist[_arg1]); }; return (null); } public function previousTrackAsPlaylistItem(_arg1:Boolean=false):PlaylistItem{ _rewound = false; if (_playlist != null){ if (_currentTrackIndex >= 0){ if (_playlist[_currentTrackIndex].canPlay()){ _playlist[_currentTrackIndex].markAsPlayed(); _currentTrackIndex--; return (_playlist[(_currentTrackIndex + 1)]); }; _currentTrackIndex--; return (previousTrackAsPlaylistItem(_arg1)); }; }; return (null); } public function get playingTrackIndex():int{ return (_playingTrackIndex); } public function loadFromSequence(_arg1:StreamSequence, _arg2:ProvidersConfigGroup, _arg3:ProvidersConfigGroup):void{ var _local4:int; var _local5:PlaylistItem; if (_arg1 != null){ _local4 = 0; while (_local4 < _arg1.length) { _local5 = newPlaylistItem(); _local5.index = _local4; _local5.stream = _arg1.streamAt(_local4); if ((_local5.stream is AdSlot)){ if (AdSlot(_local5.stream).isInteractive()){ } else { _local5.provider = (_local5.stream.isRTMP()) ? _arg3.rtmpProvider : _arg3.httpProvider; _local5.streamer = (_local5.stream.isRTMP()) ? _arg3.rtmpStreamer : _arg3.httpStreamer; }; _local5.providers = _arg3; } else { _local5.provider = (_local5.stream.isRTMP()) ? _arg2.rtmpProvider : _arg2.httpProvider; _local5.streamer = (_local5.stream.isRTMP()) ? _arg2.rtmpStreamer : _arg2.httpStreamer; _local5.providers = _arg2; }; _playlist.push(_local5); _local4++; }; }; } public function isFirstTrackIsInteractive():Boolean{ if (this.length > 0){ return (this.getTrackAtIndex(0).isInteractive()); }; return (false); } public function nextTrackAsPlaylistXML(_arg1:Boolean=false):XML{ var _local2:String = nextTrackAsPlaylistString(_arg1); if (_local2 != null){ return (new XML(_local2)); }; return (null); } public function get currentTrackIndex():int{ return (_currentTrackIndex); } protected function errorHandler(_arg1:Event):void{ doLog(("Error loading playlist XML: " + _arg1.toString()), Debuggable.DEBUG_PLAYLIST); notifyLoadListener(); } protected function notifyLoadListener():void{ if (_loadListener != null){ _loadListener.onPlaylistLoaded(this); }; } protected function header():String{ return (new String()); } public function loadFromURL(_arg1:String, _arg2:PlaylistLoadListener=null):void{ _loadListener = _arg2; doLog(("Loading XML based playlist from URL: " + _arg1), Debuggable.DEBUG_PLAYLIST); _xmlLoader = new URLLoader(); _xmlLoader.addEventListener(Event.COMPLETE, dataLoaded); _xmlLoader.addEventListener(ErrorEvent.ERROR, errorHandler); _xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); _xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _xmlLoader.load(new URLRequest(_arg1)); } public function currentTrackAsPlaylistXML(_arg1:int=-1, _arg2:Boolean=false):XML{ var _local3:int; var _local4:String; if (_playlist != null){ _local3 = ((_currentTrackIndex)>0) ? (_currentTrackIndex - 1) : 0; if (_local3 < _playlist.length){ if (_arg1 > -1){ _playlist[_local3].overrideStartTimeSeconds = _arg1; }; _local4 = header(); _local4 = (_local4 + _playlist[_local3].toString(_arg2)); _local4 = (_local4 + footer()); return (new XML(_local4)); }; }; return (null); } public function addTrack(_arg1:PlaylistItem):void{ _playlist.push(_arg1); } public function toXML(_arg1:Boolean=false):XML{ return (new XML(toString(_arg1))); } public function previousTrackAsPlaylistXML(_arg1:Boolean=false):XML{ var _local2:String = previousTrackAsPlaylistString(_arg1); if (_local2 != null){ return (new XML(_local2)); }; return (null); } protected function initialise():void{ _playlist = new Array(); _playingTrackIndex = 0; _currentTrackIndex = 0; _rewound = false; } public function toShortString(_arg1:Boolean=false):String{ return (toString(_arg1)); } public function rewound():Boolean{ return (_rewound); } public function newPlaylistItem():PlaylistItem{ return (new DefaultPlaylistItem()); } protected function footer():String{ return (new String()); } public function currentTrackAsPlaylistItem(_arg1:int=-1, _arg2:Boolean=false):PlaylistItem{ var _local3:int; if (_playlist != null){ _local3 = ((_currentTrackIndex)>0) ? (_currentTrackIndex - 1) : 0; if (_local3 < _playlist.length){ if (_arg1 > -1){ _playlist[_local3].overrideStartTimeSeconds = _arg1; }; return (_playlist[_local3]); }; }; return (null); } public function rewind():void{ var _local1:int; _currentTrackIndex = 0; _rewound = true; if (_playlist != null){ _local1 = 0; while (_local1 < _playlist.length) { _playlist[_local1].rewind(); _local1++; }; }; } protected function dataLoaded(_arg1:Event):void{ doLog((("Loaded " + _xmlLoader.bytesLoaded) + " bytes of playlist XML data"), Debuggable.DEBUG_PLAYLIST); doTrace(_xmlLoader, Debuggable.DEBUG_PLAYLIST); _rawXMLData = _xmlLoader.data; loadFromString(_rawXMLData); notifyLoadListener(); } public function playlist():Array{ return (_playlist); } public function reset():void{ var _local1:int; _currentTrackIndex = 0; if (_playlist != null){ _local1 = 0; while (_local1 < _playlist.length) { _playlist[_local1].reset(); _local1++; }; }; } public function loadFromString(_arg1:String):void{ } public function isFirstTrackIsHoldingClip():Boolean{ if (this.length > 0){ return (((getTrackAtIndex(0).loadOnDemand) && (getTrackAtIndex(0).requiresLoading()))); }; return (false); } public function get length():int{ return (_playlist.length); } public function toString(_arg1:Boolean=false):String{ var _local2:String = new String(); var _local3:int; while (_local3 < _playlist.length) { _local2 = (_local2 + _playlist[_local3].toString(_arg1)); _local3++; }; return (_local2); } public function getModel():Array{ return (_playlist); } public function updatePlaylistItem(_arg1:Stream, _arg2:int):void{ if ((((_arg2 >= 0)) && ((_arg2 < _playlist.length)))){ _playlist[_arg2].stream = _arg1; doLog((("The stream attached to playlist index " + _arg2) + " has been updated"), Debuggable.DEBUG_PLAYLIST); }; } public function toShowStreamsConfigArray():Array{ var _local1:Array = new Array(); var _local2:int; while (_local2 < _playlist.length) { _local1.push(_playlist[_local2].toShowStreamConfigObject()); _local2++; }; return (_local1); } } }//package org.openvideoads.vast.playlist
Section 180
//DefaultPlaylistItem (org.openvideoads.vast.playlist.DefaultPlaylistItem) package org.openvideoads.vast.playlist { import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.config.groupings.*; public class DefaultPlaylistItem extends Debuggable implements PlaylistItem { protected var _providers:ProvidersConfigGroup;// = null protected var _description:String;// = "Not available" protected var _provider:String;// = "http" protected var _title:String;// = "" protected var _filename:String;// = null protected var _guid:String;// = "Not available" protected var _overrideStartTimeSeconds:int;// = -1 protected var _streamer:String;// = null protected var _publishDate:String;// = "Not available" protected var _stream:Stream;// = null protected var _url:String;// = null protected var _index:int;// = -1 protected var _startTime:String;// = "00:00:00" protected var _link:String;// = "Not available" protected var _mimeType:String;// = null protected var _played:Boolean;// = false protected var _duration:String;// = "00:00:00" public function DefaultPlaylistItem(_arg1:int=-1){ _index = _arg1; } public function set stream(_arg1:Stream):void{ _stream = _arg1; _stream.relatedPlaylistItem = this; } public function getDurationAsSeconds():int{ if (_stream != null){ if ((_stream is AdSlot)){ return ((_stream as AdSlot).getAttachedLinearAdDurationAsInt()); }; return (_stream.getDurationAsInt()); //unresolved jump }; return (0); } public function set provider(_arg1:String):void{ _provider = _arg1; } public function isAd():Boolean{ return ((_stream is AdSlot)); } public function get description():String{ return (_description); } public function set filename(_arg1:String):void{ _filename = _arg1; } public function get loadOnDemand():Boolean{ if (_stream != null){ if ((_stream is AdSlot)){ return (AdSlot(_stream).loadOnDemand); }; }; return (false); } public function set guid(_arg1:String):void{ _guid = _arg1; } public function get filename():String{ return (_filename); } public function set mimeType(_arg1:String):void{ _mimeType = _arg1; } public function getQualifiedStreamAddress():String{ if (_stream != null){ return (_stream.getQualifiedStreamAddress()); }; if (url != null){ if (filename != null){ if (StringUtils.endsWith(StringUtils.trim(url), "/")){ if (!StringUtils.beginsWith(StringUtils.trim(filename), "/")){ return ((url + filename)); }; return ((url + StringUtils.trim(filename).substr(1))); } else { if (StringUtils.beginsWith(StringUtils.trim(filename), "/")){ return ((url + filename)); }; return (((url + "/") + filename)); }; }; return (StringUtils.trim(url)); } else { if (filename != null){ return (filename); }; }; return (null); } public function canPlay():Boolean{ if (playOnce){ return (!(played)); }; return (true); } public function set duration(_arg1:String):void{ _duration = _arg1; } public function get streamer():String{ return (_streamer); } public function getOriginalDurationAsSeconds():int{ if (_stream != null){ return (_stream.getOriginalDurationAsInt()); }; return (getDurationAsSeconds()); } public function set overrideStartTimeSeconds(_arg1:int):void{ _overrideStartTimeSeconds = _arg1; } public function toShortString(_arg1:Boolean=false):String{ return ((((("{ type: " + (isInteractive()) ? "interactive" : (isRTMP()) ? "rtmp" : "http") + ", ") + _stream.toShortString()) + " }")); } public function set providers(_arg1:ProvidersConfigGroup):void{ _providers = _arg1; } public function hasPreviewImage():Boolean{ return (!((getPreviewImage() == null))); } public function reset():void{ _played = false; } public function getStartTimeAsSeconds():int{ if (_stream != null){ if ((_stream is AdSlot)){ if (hasOverridingStartTime()){ return (_overrideStartTimeSeconds); }; return (0); } else { if (hasOverridingStartTime()){ return (_overrideStartTimeSeconds); }; return (_stream.getStartTimeAsSeconds()); }; }; if (hasOverridingStartTime()){ return (_overrideStartTimeSeconds); }; return (0); } public function get title():String{ return (_title); } public function set streamer(_arg1:String):void{ _streamer = _arg1; } public function get publishDate():String{ return (_publishDate); } public function isInteractive():Boolean{ if (_stream != null){ if ((_stream is AdSlot)){ return (AdSlot(_stream).isInteractive()); }; }; return (false); } public function toString(_arg1:Boolean=false):String{ return (((((((((((((((((((((((((((((((("{ type: " + (isInteractive()) ? "interactive" : (isRTMP()) ? "rtmp" : "http") + ", stream: (") + _stream) + ")") + ", played: ") + _played) + ", overrideStartTimeSeconds: ") + _overrideStartTimeSeconds) + ", provider: ") + _provider) + ", description: ") + _description) + ", title: ") + _title) + ", link: ") + _link) + ", guid: ") + _guid) + ", publishDate: ") + _publishDate) + ", startTime: ") + _startTime) + ", duration: ") + _duration) + ", url: ") + _url) + ", filename: ") + _filename) + ", mimeType: ") + _mimeType) + "}")); } public function get url():String{ if (_stream != null){ return (_stream.url); }; return (_url); } public function getFilename(_arg1:Boolean=true):String{ if (_stream != null){ if (_arg1){ return (_stream.streamName); }; return (_stream.streamNameWithoutPrefix); //unresolved jump }; return (_filename); } public function markForRefresh():void{ if (isAd()){ AdSlot(_stream).markForRefresh(); }; } public function get stream():Stream{ return (_stream); } public function getAuthor():String{ return ("Author not available"); } public function get guid():String{ return (_guid); } public function get mimeType():String{ return (_mimeType); } public function isRTMP():Boolean{ if (_stream != null){ return (_stream.isRTMP()); }; return (StringUtils.beginsWith(StringUtils.trim(_url), "rtmp://")); } public function markAsPlayed():void{ played = true; } public function get duration():String{ if (_stream != null){ return (_stream.durationToTimestamp()); }; return (_duration); } public function get providers():ProvidersConfigGroup{ return (_providers); } public function getStreamer():String{ if (_stream != null){ return (_stream.baseURL); }; return (null); } public function getStartTime():String{ if (_stream != null){ if ((_stream is AdSlot)){ if (hasOverridingStartTime()){ return (Timestamp.secondsToTimestamp(_overrideStartTimeSeconds)); }; return ("00:00:00"); } else { if (hasOverridingStartTime()){ return (Timestamp.secondsToTimestamp(_overrideStartTimeSeconds)); }; return (_stream.startTime); }; }; if (hasOverridingStartTime()){ return (Timestamp.secondsToTimestamp(_overrideStartTimeSeconds)); }; return (_startTime); } public function set index(_arg1:int):void{ _index = _arg1; } public function set played(_arg1:Boolean):void{ _played = _arg1; } public function requiresLoading():Boolean{ if (isAd()){ return (AdSlot(_stream).requiresLoading()); }; return (false); } public function sync():Boolean{ return (true); } public function set publishDate(_arg1:String):void{ _publishDate = _arg1; } public function rewind():void{ if (playOnce == false){ played = false; }; _overrideStartTimeSeconds = -1; } public function set title(_arg1:String):void{ _title = _arg1; } protected function hasStream():Boolean{ return (!((_stream == null))); } public function getType():String{ return ((isRTMP()) ? "rtmp" : "http"); } public function isHTTP():Boolean{ return (!(isRTMP())); } public function get adSlot():AdSlot{ return ((_stream as AdSlot)); } public function get index():int{ return (_index); } public function get playOnce():Boolean{ if (_stream != null){ return (_stream.playOnce); }; return (false); } public function hasOverridingStartTime():Boolean{ return ((_overrideStartTimeSeconds > -1)); } public function set url(_arg1:String):void{ _url = _arg1; } public function getPreviewImage():String{ if (_stream != null){ return (_stream.previewImage); }; return (null); } public function get played():Boolean{ return (_played); } public function set link(_arg1:String):void{ _link = _arg1; } public function get provider():String{ return (_provider); } public function toShowStreamConfigObject():Object{ var _local1:Object = new Object(); _local1.file = getQualifiedStreamAddress(); _local1.duration = duration; return (_local1); } public function get link():String{ return (_link); } public function getDurationAsSecondsString():String{ return (new String(getDurationAsSeconds())); } public function set description(_arg1:String):void{ _description = _arg1; } protected static function doLog(_arg1:String, _arg2:int=1):void{ Debuggable.getInstance().doLog(_arg1, _arg2); } protected static function doTrace(_arg1:Object, _arg2:int=1):void{ Debuggable.getInstance().doTrace(_arg1, _arg2); } } }//package org.openvideoads.vast.playlist
Section 181
//Playlist (org.openvideoads.vast.playlist.Playlist) package org.openvideoads.vast.playlist { import org.openvideoads.vast.schedule.*; public interface Playlist { function get currentTrackIndex():int; function loadFromString(_arg1:String):void; function rewind():void; function toXML(_arg1:Boolean=false):XML; function newPlaylistItem():PlaylistItem; function previousTrackAsPlaylistXML(_arg1:Boolean=false):XML; function currentTrackAsPlaylistXML(_arg1:int=0, _arg2:Boolean=false):XML; function previousTrackAsPlaylistString(_arg1:Boolean=false):String; function getTrackAtIndex(_arg1:int):PlaylistItem; function toString(_arg1:Boolean=false):String; function nextTrackAsPlaylistString(_arg1:Boolean=false, _arg2:Boolean=true):String; function updatePlaylistItem(_arg1:Stream, _arg2:int):void; function reset():void; function toShortString(_arg1:Boolean=false):String; function getModel():Array; function get playingTrackIndex():int; function isFirstTrackIsInteractive():Boolean; function nextTrackAsPlaylistXML(_arg1:Boolean=false):XML; function toShowStreamsConfigArray():Array; function get length():int; function loadFromURL(_arg1:String, _arg2:PlaylistLoadListener=null):void; } }//package org.openvideoads.vast.playlist
Section 182
//PlaylistController (org.openvideoads.vast.playlist.PlaylistController) package org.openvideoads.vast.playlist { import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vast.playlist.mrss.*; import org.openvideoads.vast.playlist.smil.*; public class PlaylistController { public static const PLAYLIST_FORMAT_DEFAULT:int = 1; public static const PLAYLIST_FORMAT_MEDIA:int = 5; public static const PLAYLIST_FORMAT_XSPF:int = 6; public static const PLAYLIST_FORMAT_RSS:int = 2; public static const PLAYLIST_FORMAT_XML:int = 3; public static const PLAYLIST_FORMAT_SMIL:int = 4; public static function getType(_arg1:String):int{ switch (_arg1.toUpperCase()){ case "SMIL": return (PLAYLIST_FORMAT_SMIL); case "MRSS": return (PLAYLIST_FORMAT_MEDIA); }; return (PLAYLIST_FORMAT_DEFAULT); } public static function createPlaylist(_arg1:StreamSequence, _arg2:int=1, _arg3:ProvidersConfigGroup=null, _arg4:ProvidersConfigGroup=null):Playlist{ switch (_arg2){ case PLAYLIST_FORMAT_SMIL: return (new SMILPlaylist(_arg1, _arg3, _arg4)); case PLAYLIST_FORMAT_MEDIA: return (new MediaRSSPlaylist(_arg1, _arg3, _arg4)); }; return (new DefaultPlaylist(_arg1, _arg3, _arg4)); } public static function getPlaylistObject(_arg1:int=1):Playlist{ switch (_arg1){ case PLAYLIST_FORMAT_SMIL: return (new SMILPlaylist()); case PLAYLIST_FORMAT_MEDIA: return (new MediaRSSPlaylist()); }; return (new DefaultPlaylist()); } } }//package org.openvideoads.vast.playlist
Section 183
//PlaylistItem (org.openvideoads.vast.playlist.PlaylistItem) package org.openvideoads.vast.playlist { import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.config.groupings.*; public interface PlaylistItem { function set stream(_arg1:Stream):void; function getAuthor():String; function getDurationAsSeconds():int; function set providers(_arg1:ProvidersConfigGroup):void; function get stream():Stream; function getQualifiedStreamAddress():String; function isRTMP():Boolean; function get loadOnDemand():Boolean; function get index():int; function get duration():String; function set filename(_arg1:String):void; function get filename():String; function get title():String; function getStartTime():String; function set streamer(_arg1:String):void; function getStartTimeAsSeconds():int; function set mimeType(_arg1:String):void; function get mimeType():String; function set url(_arg1:String):void; function isInteractive():Boolean; function set provider(_arg1:String):void; function getStreamer():String; function set index(_arg1:int):void; function reset():void; function get providers():ProvidersConfigGroup; function sync():Boolean; function toString(_arg1:Boolean=false):String; function get streamer():String; function requiresLoading():Boolean; function get url():String; function getType():String; function get provider():String; function isHTTP():Boolean; function isAd():Boolean; function toShowStreamConfigObject():Object; function get link():String; function rewind():void; function get description():String; function getFilename(_arg1:Boolean=true):String; } }//package org.openvideoads.vast.playlist
Section 184
//PlaylistLoadListener (org.openvideoads.vast.playlist.PlaylistLoadListener) package org.openvideoads.vast.playlist { public interface PlaylistLoadListener { function onPlaylistLoaded(_arg1:Playlist):void; } }//package org.openvideoads.vast.playlist
Section 185
//AdTemplate (org.openvideoads.vast.schedule.ads.templates.AdTemplate) package org.openvideoads.vast.schedule.ads.templates { import flash.display.*; import org.openvideoads.base.*; import org.openvideoads.vast.model.*; public class AdTemplate extends Debuggable { protected var _displayObject:DisplayObject;// = null protected var _displayMode:String;// = "flash" protected var _template:String;// = "_code_" public static const DISPLAY_TYPE_FLASH:String = "flash"; public static const DISPLAY_TYPE_HTML5:String = "html5"; public function AdTemplate(_arg1:String="flash", _arg2:String=null){ _displayMode = _arg1; if (_arg2 != null){ _template = _arg2; }; } public function get template():String{ return (_template); } public function getContent(_arg1:NonLinearVideoAd):String{ if (_arg1 != null){ if (_arg1.hasCode()){ return (replace(_template, "code", _arg1.codeBlock)); }; if (_arg1.url != null){ return (replace(_template, "code", _arg1.url.url)); }; return (""); } else { }; return (!NULL!); } protected function replace(_arg1:String, _arg2:String, _arg3:String):String{ var _local4:RegExp = new RegExp((("_" + _arg2) + "_"), "g"); return (_arg1.replace(_local4, _arg3)); } public function set template(_arg1:String):void{ _template = _arg1; } } }//package org.openvideoads.vast.schedule.ads.templates
Section 186
//FlashAdTemplate (org.openvideoads.vast.schedule.ads.templates.FlashAdTemplate) package org.openvideoads.vast.schedule.ads.templates { import org.openvideoads.vast.model.*; public class FlashAdTemplate extends AdTemplate { public function FlashAdTemplate(_arg1:String="flash", _arg2:String=null){ super(_arg1, ((_arg2)!=null) ? _arg2 : ((_arg1 == "html5")) ? createObjectEmbedCode() : ""); } protected function createObjectEmbedCode():String{ var _local1 = ""; _local1 = "<object codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\" _dimensions_ id=\"non-linear-_id_\">"; _local1 = (_local1 + "<param name=\"movie\" value=\"_url_\">"); _local1 = (_local1 + "<param name=\"allowScriptAccess\" value=\"always\">"); _local1 = (_local1 + "<param name=\"FlashVars\" value=\"clickTag=_clickTag_&clickTAG=_clickTag_&clicktag=_clickTag_\"/>"); _local1 = (_local1 + "<embed name=\"non-linear_id_\" src=\"_url_\" _dimensions_ allowScriptAccess=\"always\" allowFullScreen=\"true\""); _local1 = (_local1 + " pluginspage=\"http://www.macromedia.com/go/getflashplayer\""); _local1 = (_local1 + " flashvars=\"clickTag=_clickTag_&clickTAG=_clickTag_&clicktag=_clickTag_\">"); _local1 = (_local1 + "</embed>"); _local1 = (_local1 + "</object>"); return (_local1); } override public function getContent(_arg1:NonLinearVideoAd):String{ var _local2:String; var _local3:String; if (_arg1 != null){ if (_arg1.hasCode()){ return (_arg1.codeBlock); }; if (_arg1.url != null){ _local2 = replace(_template, "url", _arg1.url.url); _local3 = ""; if (((_arg1.hasWidth()) && (_arg1.hasHeight()))){ _local3 = (((("width=\"" + _arg1.width) + "\" height=\"") + _arg1.height) + "\""); }; _local2 = replace(_local2, "dimensions", _local3); if (_arg1.hasClickThroughURL()){ _local2 = replace(_local2, "clicktag", _arg1.getClickThroughURLString()); }; return (_local2); } else { return (""); }; }; return ("Non-linear video ad not available"); } } }//package org.openvideoads.vast.schedule.ads.templates
Section 187
//HtmlAdTemplate (org.openvideoads.vast.schedule.ads.templates.HtmlAdTemplate) package org.openvideoads.vast.schedule.ads.templates { public class HtmlAdTemplate extends AdTemplate { public function HtmlAdTemplate(_arg1:String="flash", _arg2:String=null){ super(_arg1, ((_arg2)!=null) ? _arg2 : ((_arg1 == "flash")) ? "_code_" : "_code_"); } } }//package org.openvideoads.vast.schedule.ads.templates
Section 188
//IFrameAdTemplate (org.openvideoads.vast.schedule.ads.templates.IFrameAdTemplate) package org.openvideoads.vast.schedule.ads.templates { import org.openvideoads.vast.model.*; public class IFrameAdTemplate extends AdTemplate { public function IFrameAdTemplate(_arg1:String="flash", _arg2:String=null){ super(_arg1); _template = ((_arg2)!=null) ? _arg2 : null; } override public function getContent(_arg1:NonLinearVideoAd):String{ if (_arg1 != null){ if (_arg1.hasCode()){ return (_arg1.codeBlock); }; if (_arg1.url != null){ return (formContent(_arg1.url.url, _arg1.width, _arg1.height)); }; return (""); } else { }; return (!NULL!); } protected function formContent(_arg1:String, _arg2:Number, _arg3:Number):String{ var _local4:String; if ((((_arg2 > -1)) && ((_arg3 > -1)))){ _local4 = replace(((_template)==null) ? "<iframe src='_code_' hspace=0 vspace=0 frameborder=0 marginheight=0 marginwidth=0 scrolling=no width=_width_ height=_height_><p>Your browser does not support iframes.</p></iframe>" : _template, "code", _arg1); _local4 = replace(_local4, "width", _arg2.toString()); _local4 = replace(_local4, "height", _arg3.toString()); } else { _local4 = replace(((_template)==null) ? "<iframe src='_code_' hspace=0 vspace=0 frameborder=0 marginheight=0 marginwidth=0 scrolling=no><p>Your browser does not support iframes.</p></iframe>" : _template, "code", _arg1); }; return (_local4); } } }//package org.openvideoads.vast.schedule.ads.templates
Section 189
//ImageAdTemplate (org.openvideoads.vast.schedule.ads.templates.ImageAdTemplate) package org.openvideoads.vast.schedule.ads.templates { public class ImageAdTemplate extends AdTemplate { public function ImageAdTemplate(_arg1:String="flash", _arg2:String=null){ super(_arg1, ((_arg2)!=null) ? _arg2 : "<img src='_code_' border='0'/>"); } } }//package org.openvideoads.vast.schedule.ads.templates
Section 190
//ScriptAdTemplate (org.openvideoads.vast.schedule.ads.templates.ScriptAdTemplate) package org.openvideoads.vast.schedule.ads.templates { import org.openvideoads.vast.model.*; public class ScriptAdTemplate extends AdTemplate { public function ScriptAdTemplate(_arg1:String="flash", _arg2:String=null){ super(_arg1, ((_arg2)!=null) ? _arg2 : null); } override public function getContent(_arg1:NonLinearVideoAd):String{ if (_arg1 != null){ if (_arg1.hasCode()){ return (replace(((_template)==null) ? "_code_" : _template, "code", _arg1.codeBlock)); } else { if (_arg1.url != null){ return (replace("<script type='text/javascript' src='_code_'></script>", "code", _arg1.url.url)); }; return ("<script type='text/javascript' src=''></script>"); }; } else { }; return (!NULL!); } } }//package org.openvideoads.vast.schedule.ads.templates
Section 191
//TextAdTemplate (org.openvideoads.vast.schedule.ads.templates.TextAdTemplate) package org.openvideoads.vast.schedule.ads.templates { import org.openvideoads.vast.model.*; public class TextAdTemplate extends AdTemplate { public function TextAdTemplate(_arg1:String="flash", _arg2:String=null){ super(_arg1, ((_arg2)!=null) ? _arg2 : ((_arg1 == "flash")) ? (((("<body>" + "<p align='left' class='title'>_title_</p>") + "<p align='left' class='description'>_description_</p>") + "<p align='left' class='callToActionTitle'>_callToActionTitle_</p>") + "</body>") : (((("<div class='textAdContainer'>" + "<div class='textAdTitle'>_title_</div>") + "<div class='textAdDescription'>_description_</div>") + "<div class='textAdCallToActionTitle'>_callToActionTitle_</div>") + "</div>")); } override public function getContent(_arg1:NonLinearVideoAd):String{ var _local2:String; if (_arg1 != null){ _local2 = replace(_template, "title", (_arg1 as NonLinearTextAd).title); _local2 = replace(_local2, "description", (_arg1 as NonLinearTextAd).description); _local2 = replace(_local2, "callToActionTitle", (_arg1 as NonLinearTextAd).callToActionTitle); return (_local2); }; return ("Non-linear video ad not available"); } } }//package org.openvideoads.vast.schedule.ads.templates
Section 192
//AdSchedule (org.openvideoads.vast.schedule.ads.AdSchedule) package org.openvideoads.vast.schedule.ads { import org.openvideoads.vast.config.*; import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.tracking.*; import org.openvideoads.vast.server.request.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.util.*; import org.openvideoads.vast.model.*; public class AdSchedule extends Debuggable implements TemplateLoadListener { protected var _adServerRequestProcessor:AdServerRequestProcessor;// = null protected var _adSlots:Array; protected var _vastController:VASTController;// = null protected var _loadingOnDemand:Boolean;// = false protected var _templateLoadListener:TemplateLoadListener;// = null protected var _lastTrackedStreamIndex:int;// = -1 public function AdSchedule(_arg1:VASTController, _arg2:StreamSequence, _arg3:Config=null, _arg4:AdServerTemplate=null){ _adSlots = new Array(); super(); _vastController = _arg1; if (_arg3 != null){ build(_arg3, _arg2, -1, true); if (_arg4){ schedule(_arg4); }; }; } public function onAdCallStarted(_arg1:AdServerRequest):void{ if (_templateLoadListener){ _templateLoadListener.onAdCallStarted(_arg1); }; } public function fireAPICall(... _args){ if (_vastController != null){ _vastController.fireAPICall(_args); }; } public function hasPreloadedAdSlots():Boolean{ var _local1:int; if (_adSlots != null){ _local1 = 0; while (_local1 < _adSlots.length) { if (AdSlot(_adSlots[_local1]).loadOnDemand == false){ return (true); }; _local1++; }; }; return (false); } public function closeOutdatedOverlaysAndCompanionsForThisStream(_arg1:int, _arg2:Number, _arg3:Boolean=false):void{ var _local4:int; if (hasAdSlots()){ _local4 = 0; while (_local4 < _adSlots.length) { if ((((_adSlots[_local4].associatedStreamIndex == _arg1)) && ((_adSlots[_local4].isLinear() == false)))){ if (((_adSlots[_local4].isPlaying()) && ((_adSlots[_local4].shouldBePlaying(_arg2) == false)))){ _adSlots[_local4].closeActiveOverlaysAndCompanions(_arg3); }; }; _local4++; }; }; } public function canFireEventAPICalls():Boolean{ if (_vastController != null){ return (_vastController.canFireEventAPICalls()); }; return (false); } private function getDisableControls(_arg1, _arg2):Boolean{ if (_arg2 != undefined){ return (_arg2); }; if (_arg1 != undefined){ return (_arg1); }; return (false); } public function loadAdsFromAdServers(_arg1:TemplateLoadListener):void{ _templateLoadListener = _arg1; if (_vastController.config.scheduleAds){ _adServerRequestProcessor = new AdServerRequestProcessor(this, _adSlots); _adServerRequestProcessor.start(); } else { doLog("Not scheduling ads for playback - ad scheduling has been explicitly turned off via the 'activelySchedule' configuration property", Debuggable.DEBUG_CONFIG); if (_templateLoadListener){ _templateLoadListener.onTemplateLoaded(new AdServerTemplate()); }; }; } public function resetAllAdTrackingPointsAssociatedWithStream(_arg1:int):void{ var _local2:AdSlot; if (hasAdSlots()){ for each (_local2 in _adSlots) { if (_local2.associatedStreamIndex == _arg1){ _local2.resetAllTrackingPoints(); }; }; }; } public function haveAdSlotsToSchedule():Boolean{ return ((_adSlots.length > 0)); } private function checkApplicability(_arg1:Object, _arg2:int, _arg3:Boolean=false, _arg4:int=1, _arg5:StreamConfig=null):Boolean{ if (_arg5 != null){ if (!_arg5.isStream()){ return (false); }; }; if (_arg1.applyToParts != undefined){ if ((_arg1.applyToParts is String)){ if (_arg1.applyToParts.toUpperCase() == "LAST"){ return (((_arg2 + 1) == _arg4)); }; return (false); } else { if ((_arg1.applyToParts is Array)){ return ((_arg1.applyToParts.indexOf(_arg2) > -1)); }; return (false); }; //unresolved jump }; return (true); } public function schedule(_arg1:AdServerTemplate=null):void{ var _local2:Array; var _local3:int; var _local4:Object; var _local5:Array; var _local6:int; if (_vastController.canFireAPICalls()){ _vastController.fireAPICall("onAdSchedulingStarted"); }; _local2 = new Array(); if (hasAdSlots()){ _local3 = 0; while (_local3 < _adSlots.length) { if (_adSlots[_local3].id != null){ if (_arg1 != null){ _adSlots[_local3].videoAd = _arg1.getVideoAdWithID(((_adSlots[_local3].id + "-") + _adSlots[_local3].associatedStreamIndex)); if (_adSlots[_local3].videoAd != null){ if (_vastController.canFireAPICalls()){ _local4 = null; if (((AdSlot(_adSlots[_local3]).isLinear()) && (AdSlot(_adSlots[_local3]).hasLinearAd()))){ _local4 = AdSlot(_adSlots[_local3]).videoAd.toJSObject(); _vastController.fireAPICall("onLinearAdScheduled", _local4); _local2.push(_local4); } else { if (((AdSlot(_adSlots[_local3]).isNonLinear()) && (AdSlot(_adSlots[_local3]).hasNonLinearAds()))){ _local4 = AdSlot(_adSlots[_local3]).videoAd.toJSObject(); _vastController.fireAPICall("onNonLinearAdScheduled", _local4); _local2.push(_local4); }; }; if ((((AdSlot(_adSlots[_local3]).videoAd.isCompanionOnlyAd() == false)) && (AdSlot(_adSlots[_local3]).hasCompanionAds()))){ _local5 = AdSlot(_adSlots[_local3]).videoAd.getMatchingCompanions(_vastController.config.companionDivIDs); _local6 = 0; while (_local6 < _local5.length) { _vastController.fireAPICall("onCompanionAdScheduled", _local5[_local6].div, CompanionAd(_local5[_local6].companion).toJSObject(), AdSlot(_adSlots[_local3]).videoAd.toJSObject()); _local6++; }; }; }; } else { if (_vastController.canFireAPICalls()){ _vastController.fireAPICall("onScheduleError", "No video ad available to schedule", AdSlot(_adSlots[_local3]).toJSObject()); }; }; } else { if (AdSlot(_adSlots[_local3]).loadOnDemand){ if (_vastController.canFireAPICalls()){ _vastController.fireAPICall("onLoadOnDemandAdSlotScheduled", AdSlot(_adSlots[_local3]).toJSObject()); }; }; }; }; _local3++; }; }; if (_vastController.canFireAPICalls()){ _vastController.fireAPICall("onAdSchedulingComplete", _local2); }; } public function set adSlots(_arg1:Array):void{ _adSlots = _arg1; } public function processTimeEvent(_arg1:int, _arg2:TimeEvent, _arg3:Boolean=true):void{ var _local4:int; if (hasAdSlots()){ _local4 = 0; while (_local4 < _adSlots.length) { if ((((_adSlots[_local4].associatedStreamIndex == _arg1)) && (!(_adSlots[_local4].isLinear())))){ _adSlots[_local4].processTimeEvent(_arg2, _arg3, _vastController.config.adsConfig.resetTrackingOnReplay); }; _local4++; }; _lastTrackedStreamIndex = _arg1; }; } public function canFireAPICalls():Boolean{ if (_vastController != null){ return (_vastController.canFireAPICalls()); }; return (false); } public function fireNonLinearSchedulingEvents():void{ var _local1:int; if (_vastController != null){ _local1 = 0; while (_local1 < _adSlots.length) { if (AdSlot(_adSlots[_local1]).loadOnDemand){ _vastController.onScheduleNonLinear(_adSlots[_local1], true); } else { if (((!(_adSlots[_local1].isLinear())) && (_adSlots[_local1].hasNonLinearAds()))){ _vastController.onScheduleNonLinear(_adSlots[_local1], false); }; }; _local1++; }; }; } public function get analyticsProcessor():AnalyticsProcessor{ if (_vastController != null){ return (_vastController.analyticsProcessor); }; return (null); } private function getNoticeConfig(_arg1:Object, _arg2:Object):Object{ var _local3:Object = new Object(); if (_arg1 != null){ if (_arg1.hasOwnProperty("show")){ _local3.show = _arg1.show; }; if (_arg1.hasOwnProperty("region")){ _local3.region = _arg1.region; }; if (_arg1.hasOwnProperty("message")){ _local3.message = _arg1.message; }; if (_arg1.hasOwnProperty("type")){ _local3.type = _arg1.type; }; }; if (_arg2 != null){ if (_arg2.hasOwnProperty("show")){ _local3.show = _arg2.show; }; if (_arg2.hasOwnProperty("region")){ _local3.region = _arg2.region; }; if (_arg2.hasOwnProperty("message")){ _local3.message = _arg2.message; }; if (_arg2.hasOwnProperty("type")){ _local3.type = _arg2.type; }; }; return (_local3); } public function hasSlot(_arg1:int):Boolean{ return ((_arg1 < length)); } public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ if (_templateLoadListener){ _templateLoadListener.onAdCallComplete(_arg1, _arg2); }; } public function createAdSpotID(_arg1:String, _arg2:String, _arg3:int, _arg4:int):String{ if (_arg1 != null){ return (_arg1); }; if (_arg2 == null){ return ((((("overlay" + ":") + _arg3) + ".") + _arg4)); }; return (((((_arg2 + ":") + _arg3) + ".") + _arg4)); } public function closeActiveOverlaysAndCompanions(_arg1:Boolean=false):void{ var _local2:int; if (hasAdSlots()){ _local2 = 0; while (_local2 < _adSlots.length) { if (_adSlots[_local2].isPlaying()){ _adSlots[_local2].closeActiveOverlaysAndCompanions(_arg1); }; _local2++; }; }; } public function hasNonLinearAds():Boolean{ var _local1:int; if (haveAdSlotsToSchedule()){ _local1 = 0; while (_local1 < _adSlots.length) { if (_adSlots[_local1].isNonLinear()){ if (_loadingOnDemand){ return (true); }; if (AdSlot(_adSlots[_local1]).isEmpty() == false){ return (true); }; }; _local1++; }; }; return (false); } public function addAdSlot(_arg1:AdSlot):void{ _adSlots.push(_arg1); } public function processImpressionFiringForEmptyAdSlots(_arg1:Boolean=false):void{ var _local2:int; if (haveAdSlotsToSchedule()){ doLog((("Assessing forced impression firing for " + _adSlots.length) + " ad slots"), Debuggable.DEBUG_TRACKING_EVENTS); _local2 = 0; while (_local2 < _adSlots.length) { if (((((AdSlot(_adSlots[_local2]).isEmpty()) && ((AdSlot(_adSlots[_local2]).loadOnDemand == false)))) || (((((AdSlot(_adSlots[_local2]).isEmpty()) && ((AdSlot(_adSlots[_local2]).loadOnDemand == true)))) && (AdSlot(_adSlots[_local2]).loadPreviouslyAttempted()))))){ _adSlots[_local2].processForcedImpression(_arg1); }; _local2++; }; }; } public function get zones():Array{ var _local3:Object; var _local1:Array = new Array(); var _local2:int; while (_local2 < _adSlots.length) { if (((_adSlots[_local2].id) && (!((_adSlots[_local2].id == "popup"))))){ _local3 = new Object(); _local3.id = ((_adSlots[_local2].id + "-") + _adSlots[_local2].associatedStreamIndex); _local3.zone = _adSlots[_local2].zone; _local1.push(_local3); }; _local2++; }; return (_local1); } public function onTemplateLoadError(_arg1:Event):void{ doLog(("ERROR loading VAST template - " + _arg1.toString()), Debuggable.DEBUG_FATAL); if (_templateLoadListener){ _templateLoadListener.onTemplateLoadError(_arg1); }; } public function hasLinearAds():Boolean{ var _local1:int; if (haveAdSlotsToSchedule()){ _local1 = 0; while (_local1 < _adSlots.length) { if (_adSlots[_local1].isLinear()){ if (_loadingOnDemand){ return (true); }; if (!AdSlot(_adSlots[_local1]).videoAd.isEmpty()){ return (true); }; }; _local1++; }; }; return (false); } public function get adSlots():Array{ return (_adSlots); } public function hasAdSlots():Boolean{ return (((_adSlots) && ((_adSlots.length > 0)))); } public function addNonLinearAdTrackingPoints(_arg1:Boolean=true, _arg2:Boolean=false):void{ var _local3:int; doLog("Setting up non-linear cuepoints", Debuggable.DEBUG_CUEPOINT_FORMATION); if (hasAdSlots()){ while (_local3 < _adSlots.length) { if (_adSlots[_local3].isNonLinear()){ _adSlots[_local3].addNonLinearAdTrackingPoints(_local3, _arg1, true, _arg2); }; _local3++; }; }; } public function onTemplateLoaded(_arg1:AdServerTemplate):void{ doLog("Notified that template has been loaded", Debuggable.DEBUG_VAST_TEMPLATE); if (_templateLoadListener){ _templateLoadListener.onTemplateLoaded(_arg1); }; } public function getAdIds():Array{ var _local1:Array = new Array(); var _local2:int; while (_local2 < _adSlots.length) { if (((_adSlots[_local2].id) && (!((_adSlots[_local2].id == "popup"))))){ _local1.push(((_adSlots[_local2].id + "-") + _adSlots[_local2].associatedStreamIndex)); }; _local2++; }; return (_local1); } public function setAdSlotIDAtIndex(_arg1:int, _arg2:String):void{ if (((hasAdSlots()) && ((_arg1 < _adSlots.length)))){ _adSlots[_arg1].id = _arg2; }; } public function onTemplateLoadTimeout(_arg1:Event):void{ doLog(("TIMEOUT loading VAST template - " + _arg1.toString()), Debuggable.DEBUG_FATAL); if (_templateLoadListener){ _templateLoadListener.onTemplateLoadTimeout(_arg1); }; } protected function calculateShowStreamCount(_arg1:Array):int{ var _local2:int; var _local3:int; while (_local3 < _arg1.length) { if (_arg1[_local3].isStream()){ _local2++; }; _local3++; }; return (_local2); } public function loadingOnDemand():Boolean{ return (_loadingOnDemand); } public function build(_arg1:Config, _arg2:StreamSequence, _arg3:int=-1, _arg4:Boolean=false):void{ var _local5:int; var _local6:int; var _local7:int; var _local8:StreamConfig; var _local9:Object; var _local10:AdSlot; var _local11:int; var _local12:String; var _local13:AdSlot; var _local14:int; if (_arg1.adSchedule){ _local5 = ((_arg1.streams.length)==0) ? 1 : _arg1.streams.length; doLog(((((("Building the ad schedule - " + _arg1.adSchedule.length) + " ad slots defined, stream count is ") + _arg1.streams.length) + ", maxspots ") + _arg3), Debuggable.DEBUG_CONFIG); _local6 = 0; while (_local6 < _local5) { if (_arg3 == -1){ _arg3 = _arg1.adSchedule.length; }; _local7 = 0; while ((((_local7 < _arg1.adSchedule.length)) && ((_local7 <= _arg3)))) { _local8 = ((_local6)<_arg1.streams.length) ? _arg1.streams[_local6] : null; if (checkApplicability(_arg1.adSchedule[_local7], _local6, _arg4, _local5, _local8)){ _local9 = _arg1.adSchedule[_local7]; if ((_local9.zone is String) == false){ _local9.zone = new String(_local9.zone); }; if (((_local9.zone) && ((_local9.zone.toUpperCase() == "STATIC")))){ _local10 = new StaticAdSlot(_arg2, this, _vastController, _adSlots.length, _local6, createAdSpotID(_local9.id, _local9.position, _local7, _local6), _local9.zone, _local9.position, ((_local9.applyToParts)==undefined) ? null : _local9.applyToParts, _local9.duration, ((_local9.startTime)==undefined) ? "00:00:00" : _local9.startTime, getNoticeConfig(_arg1.notice, _local9.notice), getDisableControls(_arg1.playerConfig.shouldDisableControlsDuringLinearAds(), _local9.disableControls), new Array(), ((_local9.companionDivIDs)==undefined) ? _arg1.companionDivIDs : _local9.companionDivIDs, ((_local9.startPoint)==undefined) ? null : _local9.startPoint, ((_local9.html)==undefined) ? null : _local9.html); } else { _local12 = createAdSpotID(_local9.id, _local9.position, _local7, _local6); _local10 = new AdSlot(_arg2, this, _vastController, _adSlots.length, _local6, _local12, _local9.zone, _local9.position, ((_local9.applyToParts)==undefined) ? null : _local9.applyToParts, _local9.duration, _local9.duration, ((_local9.startTime)==undefined) ? "00:00:00" : _local9.startTime, getNoticeConfig(_arg1.notice, _local9.notice), getDisableControls(_arg1.playerConfig.shouldDisableControlsDuringLinearAds(), _local9.disableControls), new Array(), ((_local9.companionDivIDs)==undefined) ? _arg1.companionDivIDs : _local9.companionDivIDs, ((_local9.streamType)!=undefined) ? _local9.streamType : _arg1.streamType, ((_local9.deliveryType)!=undefined) ? _local9.deliveryType : _arg1.deliveryType, ((_local9.bitrate)!=undefined) ? _local9.bitrate : _arg1.bitrate, ((_local9.playOnce)!=undefined) ? _local9.playOnce : _arg1.playOnce, _arg1.metaData, ((_local9.autoPlay)!=undefined) ? _local9.autoPlay : _arg1.autoPlay, ((_local9.regions)!=undefined) ? _local9.regions : null, ((_local9.player)!=undefined) ? _local9.player : _arg1.adsConfig.player, _arg1.clickSignEnabled, ((_local9.server)!=undefined) ? _local9.server : null, null, ((_local9.loadOnDemand)!=undefined) ? StringUtils.validateAsBoolean(_local9.loadOnDemand) : false, ((_local9.refreshOnReplay)!=undefined) ? StringUtils.validateAsBoolean(_local9.refreshOnReplay) : false, (_local9.hasOwnProperty("maxDisplayCount")) ? StringUtils.validateAsNumber(_local9.maxDisplayCount) : -1); doLog(((((((("Created new ad slot " + _local7) + " with ID: ") + _local12) + " tied to stream index ") + _local6) + (_local10.loadOnDemand) ? " - loading on demand" : "") + (_local10.refreshOnReplay) ? " - refreshing on replay" : ""), Debuggable.DEBUG_CONFIG); }; _local11 = ((_local9.repeat)==undefined) ? 1 : _local9.repeat; if (_local11 > 1){ _local13 = _local10; _local14 = 0; while (_local14 < _local11) { addAdSlot(_local13); _local13 = _local13.clone(); _local13.key = _adSlots.length; _local14++; }; } else { addAdSlot(_local10); }; if (_local10.loadOnDemand){ _loadingOnDemand = true; }; }; _local7++; }; _local6++; }; doLog((("Ad schedule constructed - " + _adSlots.length) + " ad positions created and slotted"), Debuggable.DEBUG_CONFIG); if (_loadingOnDemand){ doLog("Parts of the Ad Schedule will be loaded 'on demand'", Debuggable.DEBUG_CONFIG); } else { doLog("The entire ad schedule will be pre-loaded", Debuggable.DEBUG_CONFIG); }; }; } public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ if (_templateLoadListener){ _templateLoadListener.onAdCallFailover(_arg1, _arg2); }; } public function getSlot(_arg1:int):AdSlot{ if (hasSlot(_arg1)){ return (_adSlots[_arg1]); }; return (null); } public function get length():int{ return (_adSlots.length); } public function recordCompanionClickThrough(_arg1:int, _arg2:int):void{ if (_adSlots.length < _arg1){ _adSlots[_arg1].registerCompanionClickThrough(_arg2); }; } public function onTemplateLoadDeferred(_arg1:Event):void{ doLog(("DEFERRED loading VAST template - " + _arg1.toString()), Debuggable.DEBUG_FATAL); if (_templateLoadListener){ _templateLoadListener.onTemplateLoadDeferred(_arg1); }; } public function unload():void{ var _local1:int; if (_adServerRequestProcessor != null){ _adServerRequestProcessor.unload(); if (hasAdSlots()){ _local1 = 0; while (_local1 < _adSlots.length) { _adSlots[_local1].unload(); _local1++; }; }; }; } } }//package org.openvideoads.vast.schedule.ads
Section 193
//AdSlot (org.openvideoads.vast.schedule.ads.AdSlot) package org.openvideoads.vast.schedule.ads { import org.openvideoads.vast.events.*; import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.tracking.*; import org.openvideoads.vast.server.request.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.regions.view.*; import org.openvideoads.vast.model.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vast.schedule.ads.templates.*; public class AdSlot extends Stream implements TemplateLoadListener { private const EVENT_DELAY:int = 500; protected var _originalAdSlot:AdSlot;// = null protected var _isPlaying:Boolean;// = false protected var _adServerConfig:AdServerConfig;// = null protected var _associatedStreamStartTime:int;// = 0 protected var _needsRefresh:Boolean;// = false protected var _companionsShowing:Boolean;// = false protected var _refreshOnReplay:Boolean;// = false protected var _activeAdServerRequestProcessor:AdServerRequestProcessor;// = null protected var _companionDivIDs:Array; protected var _clickSignEnabled:Boolean;// = true protected var _position:String;// = null protected var _zone:String; protected var _disableControls:Boolean;// = false protected var _maxDisplayCount:int;// = -1 protected var _owner:AdSchedule;// = null protected var _applyToParts:Object;// = null protected var _videoAd:VideoAd;// = null protected var _regions:Object;// = null protected var _originatingAssociatedStreamIndex:int;// = 0 protected var _onDemandLoadListener:AdSlotOnDemandLoadListener;// = null protected var _overlayVideoPlaying:Boolean;// = false protected var _loadOnDemand:Boolean;// = false protected var _played:Boolean;// = false protected var _notice:Object;// = null public static const AD_TYPE_NON_LINEAR:String = "non-linear"; public static const AD_TYPE_UNKNOWN:String = "unknown"; public static const AD_TYPE_COMPANION:String = "companion"; public static const SLOT_POSITION_MID_ROLL:String = "mid-roll"; public static const SLOT_POSITION_AUTO_BOTTOM:String = "auto:bottom"; public static const SLOT_POSITION_PRE_ROLL:String = "pre-roll"; public static const AD_TYPE_LINEAR:String = "linear"; public static const SLOT_POSITION_POST_ROLL:String = "post-roll"; public static const SLOT_POSITION_COMPANION:String = "companion"; public function AdSlot(_arg1:StreamSequence, _arg2:AdSchedule, _arg3:VASTController, _arg4:int=0, _arg5:int=0, _arg6:String=null, _arg7:String=null, _arg8:String=null, _arg9:Object=null, _arg10:String=null, _arg11:String=null, _arg12:String="00:00:00", _arg13:Object=null, _arg14:Boolean=true, _arg15:Array=null, _arg16:Array=null, _arg17:String="any", _arg18:String="streaming", _arg19=-1, _arg20:Boolean=false, _arg21:Boolean=true, _arg22:Boolean=true, _arg23:Object=null, _arg24:Object=null, _arg25:Boolean=true, _arg26:AdServerConfig=null, _arg27:String=null, _arg28:Boolean=false, _arg29:Boolean=false, _arg30:int=-1){ _companionDivIDs = new Array({id:"companion", width:300, height:250}); super(_arg1, _arg3, _arg4, _arg6, null, _arg12, _arg10, _arg11, false, null, _arg17, _arg18, _arg19, _arg20, _arg21, _arg22, null, _arg24, _arg27, _arg5); _owner = _arg2; _associatedStreamIndex = _arg5; _originatingAssociatedStreamIndex = _arg5; _zone = _arg7; _position = _arg8; _regions = constructRegions(_arg23); _applyToParts = _arg9; if (_arg13 != null){ _notice = _arg13; }; _disableControls = _arg14; if (_arg16 != null){ _companionDivIDs = _arg16; }; _clickSignEnabled = _arg25; if (_arg26 != null){ _adServerConfig = _arg26; }; _loadOnDemand = _arg28; _refreshOnReplay = _arg29; _maxDisplayCount = _arg30; } public function companionsShowing():Boolean{ return (_companionsShowing); } public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdCallFailover(_arg1, _arg2); }; } public function loadPreviouslyAttempted():Boolean{ return (false); } public function hasLinearClickThroughs():Boolean{ if (hasLinearAd()){ return (getLinearVideoAd().hasClickThroughURL()); }; return (false); } public function hasRegions(_arg1:String):Boolean{ if (_regions != null){ if (_regions.hasOwnProperty(_arg1)){ return ((_regions[_arg1].length > 0)); }; }; return (false); } public function get regions():Object{ return (_regions); } override public function isLinear():Boolean{ if (_videoAd != null){ return (((((((isPreRoll()) || (isPostRoll()))) || (isMidRoll()))) && (_videoAd.isLinear()))); }; if (_loadOnDemand){ return (((((isPreRoll()) || (isPostRoll()))) || (isMidRoll()))); }; return (false); } protected function addCompanionAdTrackingPoints(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean=false, _arg5:Boolean=true, _arg6:Boolean=false):void{ setTrackingPoint(new TrackingPoint(((_arg2 * 1000) + _vastController.startStreamSafetyMargin), "CS", new String(_arg1)), _arg4, _arg5, _arg6); if (_arg3 > 0){ setTrackingPoint(new TrackingPoint((((_arg2 + _arg3) * 1000) - _vastController.endStreamSafetyMargin), "CE", new String(_arg1)), _arg4, _arg5, _arg6); doLog(((((((("Tracking point set on AdSlot[" + key) + "] at ") + _arg2) + " seconds and run for ") + _arg3) + " seconds for companion ad with Ad id ") + id), Debuggable.DEBUG_CUEPOINT_FORMATION); } else { setTrackingPoint(new TrackingPoint(((_arg2 + ((60 * 60) * 4)) * 1000), "CE", new String(_arg1)), _arg4, _arg5, _arg6); doLog(((((("Tracking point set on AdSlot[" + key) + "] at ") + _arg2) + " seconds running indefinitely - Companion Ad id ") + id), Debuggable.DEBUG_CUEPOINT_FORMATION); }; } public function isCompanion():Boolean{ if (_position == null){ return (false); }; return ((_position.toLowerCase() == SLOT_POSITION_COMPANION)); } override protected function clearTrackingTable(_arg1:Boolean=false):void{ doLog((((("Clearing the tracking table attached to " + _position) + " AdSlot '") + _key) + "'"), Debuggable.DEBUG_CONFIG); _trackingTable = new TrackingTable(id, key, originatingStreamIndex); } public function hasVideoAd():Boolean{ return (!((_videoAd == null))); } public function get videoAd():VideoAd{ return (_videoAd); } public function canFireEventAPICalls():Boolean{ if (_vastController != null){ return (_vastController.canFireEventAPICalls()); }; return (false); } public function toRunIndefinitely():Boolean{ return (((((!(hasDuration())) || ((getDurationAsInt() == -1)))) || (hasZeroDuration()))); } override public function processStopStream():void{ if (_videoAd != null){ _videoAd.processStopAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.STOP, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for stop AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function getAutoPositionAlignment():String{ var _local1:String; if (hasPositionDefined()){ if ((((_position.toUpperCase().indexOf("AUTO:") > -1)) && ((_position.length > 5)))){ _local1 = _position.substr((_position.toUpperCase().indexOf("AUTO:") + 5)); if (_local1 != null){ _local1 = StringUtils.trim(_local1).toUpperCase(); if ("BOTTOM CENTER TOP LEFT RIGHT".indexOf(_local1) > -1){ return (_local1); }; }; }; }; return ("BOTTOM"); } public function get loadOnDemand():Boolean{ return (_loadOnDemand); } public function isOverlayVideoPlaying():Boolean{ return (_overlayVideoPlaying); } protected function showAdNotice():void{ var adSlot:AdSlot; if (disableControls){ turnOffSeekerBar(); }; if (_vastController != null){ if (_clickSignEnabled){ _vastController.enableVisualLinearAdClickThroughCue(this); }; if (noticeToBeShown()){ if (((!((_notice.region == undefined))) && (!((_notice.region == null))))){ if (((!((_notice.message == undefined))) && (!((_notice.region == null))))){ _vastController.onShowAdNotice(new AdNoticeDisplayEvent(AdNoticeDisplayEvent.DISPLAY, _notice, (_videoAd) ? _videoAd.duration : 0)); }; }; }; if (canSkipWithoutDelayOnLinearAd()){ adSlot = this; _vastController.activateLinearAdSkipButton(function ():void{ hideAdNotice(); _vastController.onLinearAdSkip(adSlot); }); }; }; } override public function processResumeStream():void{ if (_videoAd != null){ _videoAd.processResumeAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.RESUME, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for resume AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } override public function processTimeEvent(_arg1:TimeEvent, _arg2:Boolean=true, _arg3:Boolean=false):void{ var trackingPoints:Array; var i:int; var trackingPoint:TrackingPoint; var description:String; var adSlot:AdSlot; var timeEvent = _arg1; var includeChildLinear = _arg2; var resetTrackingOnReplay = _arg3; if (((((((((((isNonLinear()) && (!(toRunIndefinitely())))) && (isPlaying()))) && (!(isOverlayVideoPlaying())))) && (((isNonLinear()) && ((timeEvent.isLinearAdEvent() == false)))))) && (((!(_trackingTable.isTimeInBaseRange(timeEvent.milliseconds))) || ((timeEvent.label == "NE")))))){ doLog((("AdSlot: " + id) + " forcibly closing down the active non-linear - current time is out of range"), Debuggable.DEBUG_CUEPOINT_EVENTS); actionNonLinearAdEnd(resetTrackingOnReplay); actionCompanionAdEnd(); _vastController.onProcessTrackingPoint(_trackingTable.getTrackingPointOfType("NE", false, true)); _vastController.onProcessTrackingPoint(_trackingTable.getTrackingPointOfType("CE", false, true)); } else { trackingPoints = _trackingTable.activeTrackingPoints(timeEvent, includeChildLinear); i = 0; while (i < trackingPoints.length) { trackingPoint = trackingPoints[i]; if (trackingPoint != null){ doLog(((((((((("AdSlot: " + id) + " matched request to process tracking event of type '") + trackingPoint.label) + "' @ milliseconds:'") + timeEvent.milliseconds) + "', include children:") + includeChildLinear) + ", resetTrackingOnReplay: ") + resetTrackingOnReplay), Debuggable.DEBUG_CUEPOINT_EVENTS); switch (trackingPoint.label){ case "BA": description = "Begin linear video advertisement event"; processStartStream(); _vastController.onProcessTrackingPoint(trackingPoint); _vastController.onLinearAdStart(this); break; case "EA": description = "End linear video advertisement event"; processStreamComplete(); _vastController.onProcessTrackingPoint(trackingPoint); _vastController.onLinearAdComplete(this); break; case "SS": description = "Stop stream event"; processStopStream(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "PS": description = "Pause stream event"; processPauseStream(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "RS": description = "Resume stream event"; processResumeStream(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "HW": description = "Halfway point tracking event"; processAdMidpointComplete(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "1Q": description = "1st quartile tracking event"; processAdFirstQuartileComplete(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "3Q": description = "3rd quartile tracking event"; processAdThirdQuartileComplete(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "DS": if (this.canSkipOnLinearAd()){ adSlot = this; _vastController.activateLinearAdSkipButton(function ():void{ hideAdNotice(); _vastController.onLinearAdSkip(adSlot); }); }; break; case "HS": if (this.canSkipOnLinearAd()){ _vastController.deactivateLinearAdSkipButton(); }; break; case "SN": description = "Show ad notice event"; showAdNotice(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "HN": description = "Hide ad notice event"; hideAdNotice(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "NS": if (((_vastController.config.adsConfig.replayOverlays) || ((((_vastController.config.adsConfig.replayOverlays == false)) && ((played == false)))))){ if (!isPlaying()){ description = "Start non-linear ad event"; actionNonLinearAdStart(); _vastController.onProcessTrackingPoint(trackingPoint); } else { doLog("Ignoring request to start non-linear ad - already playing", Debuggable.DEBUG_CUEPOINT_EVENTS); }; } else { doLog("Ignoring request to start non-linear ad - already played and replay='false'", Debuggable.DEBUG_CUEPOINT_EVENTS); }; break; case "NE": description = "End non-linear ad event"; actionNonLinearAdEnd(resetTrackingOnReplay); _vastController.onProcessTrackingPoint(trackingPoint); break; case "CS": if (!companionsShowing()){ description = "Companion start event"; actionCompanionAdStart(); _vastController.onProcessTrackingPoint(trackingPoint); } else { doLog("Ignoring request to show companion ad(s) - already showing", Debuggable.DEBUG_CUEPOINT_EVENTS); }; break; case "CE": description = "Companion end event"; actionCompanionAdEnd(); _vastController.onProcessTrackingPoint(trackingPoint); break; case "TN": description = "Timed ad notice"; actionAdNoticeCountdownTick(trackingPoint.milliseconds); _vastController.onProcessTrackingPoint(trackingPoint); }; }; i = (i + 1); }; }; } override public function processFullScreenEvent():void{ doLog((("AdSlot " + id) + " full screen event"), Debuggable.DEBUG_TRACKING_EVENTS); if (_videoAd != null){ _videoAd.processFullScreenAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.FULLSCREEN, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for fullscreen on AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function set loadOnDemand(_arg1:Boolean):void{ _loadOnDemand = _arg1; } public function hasNotice():Boolean{ return (noticeToBeShown()); } public function canPlay():Boolean{ return (isInteractive()); } override public function processPauseStream():void{ if (_videoAd != null){ _videoAd.processPauseAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.PAUSE, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for pause AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } protected function constructRegions(_arg1:Object):Object{ return ({preferred:((_arg1)!=null) ? (_arg1.hasOwnProperty("preferred")) ? _arg1.preferred : "flash" : "flash", flash:formRegionsConfig("flash", ((_arg1)!=null) ? _arg1.flash : null, {enable:true, width:-1, height:-1, acceptedAdTypes:["image", "html", "text", "swf", "vpaid"], enableScaling:false, enforceRecommendedSizing:true, keepVisibleAfterClick:false, overlay:true, region:{text:"reserved-bottom-w100pct-h78px-000000-o50", html:"reserved-bottom-w100pct-h50px-000000-o50", image:"auto:bottom", swf:"auto:bottom", vpaid:null, iframe:null, script:null}, templates:{text:new TextAdTemplate(), html:new HtmlAdTemplate(), image:new ImageAdTemplate(), script:null, iframe:null, swf:null, vpaid:null}}), html5:formRegionsConfig("html5", ((_arg1)!=null) ? _arg1.html5 : null, {enable:false, width:-1, height:-1, acceptedAdTypes:["image", "html", "text", "swf", "iframe", "script"], overlay:true, region:{text:"bottom", html:"bottom", image:"bottom", swf:"bottom", vpaid:null, iframe:"bottom", script:"bottom"}, templates:{text:new TextAdTemplate(AdTemplate.DISPLAY_TYPE_HTML5), html:new HtmlAdTemplate(AdTemplate.DISPLAY_TYPE_HTML5), image:new ImageAdTemplate(AdTemplate.DISPLAY_TYPE_HTML5), swf:new FlashAdTemplate(AdTemplate.DISPLAY_TYPE_HTML5), script:new ScriptAdTemplate(AdTemplate.DISPLAY_TYPE_HTML5), iframe:new IFrameAdTemplate(AdTemplate.DISPLAY_TYPE_HTML5), vpaid:null}})}); } public function get position():String{ return (_position); } override public function get streamName():String{ var _local1:AdNetworkResource; if (isInteractive()){ return (null); }; _local1 = (getStreamToPlay() as AdNetworkResource); if (_local1 != null){ if (((_local1.isRTMP()) && ((_local1.hasFileMarker() == false)))){ if (_vastController != null){ if (_vastController.config.adsConfig.hasStreamers()){ _local1.streamers = _vastController.config.adsConfig.streamers; }; }; return (_local1.getDecoratedRTMPFilename()); }; return (cleanseStreamName(_local1.getFilename((streamType + ":")))); }; return (null); } public function hasLimitedDisplayCount():Boolean{ return ((_maxDisplayCount > -1)); } public function get adServerConfig():AdServerConfig{ return (_adServerConfig); } public function canFireAPICalls():Boolean{ if (_vastController != null){ return (_vastController.canFireAPICalls()); }; return (false); } public function onTemplateLoaded(_arg1:AdServerTemplate):void{ if (_arg1 != null){ if (_arg1.hasAds(shouldForceFireImpressions())){ doLog(((((("On demand ad request complete - a template with " + _arg1.ads.length) + " ads returned for ad slot ") + this.id) + " at index ") + this.index), Debuggable.DEBUG_VAST_TEMPLATE); _videoAd = _arg1.getNextNonEmptyVideoAdStartingAtIndex(0); if (_videoAd != null){ if (_videoAd.isNonLinear()){ if (_videoAd.hasEmptyNonLinearAds() == false){ doLog("On demand ad is non-linear - displaying overlay (and associated companions) immediately", Debuggable.DEBUG_VAST_TEMPLATE); actionNonLinearAdStart(); actionCompanionAdStart(); _vastController.onProcessTrackingPoint(_trackingTable.getTrackingPointOfType("NS", false, true)); _vastController.onProcessTrackingPoint(_trackingTable.getTrackingPointOfType("CS", false, true)); }; } else { if (_videoAd.hasEmptyLinearAd() == false){ doLog("On demand ad is linear - declaring tracking points and marking as not set", Debuggable.DEBUG_VAST_TEMPLATE); markTrackingPointsAsNotSet(); declareTrackingPoints(); }; }; }; } else { doLog(((("On demand ad request complete - an empty template has been returned for ad slot " + this.id) + " at index ") + this.index), Debuggable.DEBUG_VAST_TEMPLATE); }; } else { doLog(((("On demand ad request complete - a NULL template has been returned for ad slot " + this.id) + " at index ") + this.index), Debuggable.DEBUG_VAST_TEMPLATE); }; if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdSlotLoaded(new AdSlotLoadEvent(AdSlotLoadEvent.LOADED, this)); }; } public function isPreRoll():Boolean{ if (_position == null){ return (false); }; return ((_position.toLowerCase() == SLOT_POSITION_PRE_ROLL)); } override public function set duration(_arg1):void{ if (_videoAd != null){ _videoAd.setLinearAdDurationFromSeconds(int(_arg1)); }; super.duration = _arg1; } public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdCallComplete(_arg1, _arg2); }; } protected function hideAdNotice():void{ if (disableControls){ turnOnSeekerBar(); }; if (_vastController != null){ if (_clickSignEnabled){ _vastController.disableVisualLinearAdClickThroughCue(this); }; if (noticeToBeShown()){ if (((!((_notice.region == undefined))) && (!((_notice.region == null))))){ _vastController.onHideAdNotice(new AdNoticeDisplayEvent(AdNoticeDisplayEvent.HIDE, _notice)); }; }; if (canSkipOnLinearAd()){ _vastController.deactivateLinearAdSkipButton(); }; }; } override public function processStreamComplete():void{ markAsPlayed(); if (_videoAd != null){ _videoAd.processAdCompleteEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.COMPLETE, this, _videoAd.linearVideoAd); } else { doLog((("tracking event at end of AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function set refreshOnReplay(_arg1:Boolean):void{ _refreshOnReplay = _arg1; } public function isEmpty():Boolean{ return (((!(hasNonLinearAds())) && (!(hasLinearAd())))); } public function get preferredDisplayMode():String{ if (_regions != null){ if (_regions.hasOwnProperty("preferred")){ if (StringUtils.matchesIgnoreCase(_regions.preferred, "HTML5")){ return ("html5"); }; }; }; return ("flash"); } public function set overlayVideoPlaying(_arg1:Boolean):void{ _overlayVideoPlaying = _arg1; } public function isEmptyLinear():Boolean{ if (((((isPreRoll()) || (isPostRoll()))) || (isMidRoll()))){ if (_videoAd != null){ return (_videoAd.isEmpty()); }; }; return (false); } public function onTemplateLoadError(_arg1:Event):void{ doLog(((((("On demand ad request failed on ad slot " + this.id) + " at index ") + this.index) + " - ") + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdSlotLoadError(new AdSlotLoadEvent(AdSlotLoadEvent.LOAD_ERROR, this, _arg1)); }; } public function triggerTrackingEvent(_arg1:String):void{ if (_videoAd != null){ _videoAd.triggerTrackingEvent(_arg1); }; } public function closeActiveOverlaysAndCompanions(_arg1:Boolean=false):void{ actionNonLinearAdEnd(_arg1); actionCompanionAdEnd(); } public function addNonLinearAdTrackingPoints(_arg1:int, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Boolean=false):void{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local5:int = ((_arg2) ? 0 : associatedStreamStartTime + getStartTimeAsSeconds()); var _local6:int = getDurationAsInt(); setTrackingPoint(new TrackingPoint((_local5 * 1000), "NS", new String(_arg1)), _arg4); if (_local6 > 0){ setTrackingPoint(new TrackingPoint((((_local5 + _local6) * 1000) - _vastController.endStreamSafetyMargin), "NE", new String(_arg1)), _arg4); doLog(((((((("Tracking point set on AdSlot[" + key) + "] at ") + _local5) + " seconds and run for ") + _local6) + " seconds for non-linear ad with Ad id ") + id), Debuggable.DEBUG_CUEPOINT_FORMATION); } else { setTrackingPoint(new TrackingPoint(((_local5 + ((60 * 60) * 4)) * 1000), "NE", new String(_arg1)), _arg4); doLog(((((("Tracking point set on AdSlot[" + key) + "] at ") + _local5) + " seconds running indefinitely - non-linear Ad id ") + id), Debuggable.DEBUG_CUEPOINT_FORMATION); }; if (((_arg3) && (hasCompanionAds()))){ addCompanionAdTrackingPoints(_arg1, _local5, _local6); }; if (hasLinearAd()){ _local7 = 1000; _local8 = getAttachedLinearAdDurationAsInt(); _local9 = 0; _local10 = (Math.round((((_local9 * _local7) + ((_local8 * _local7) / 2)) / 100)) * 100); _local11 = (Math.round((((_local9 * _local7) + ((_local8 * _local7) / 4)) / 100)) * 100); _local12 = (Math.round((((_local9 * _local7) + (((_local8 * _local7) / 4) * 3)) / 100)) * 100); setTrackingPoint(new TrackingPoint(((_local9 * _local7) + _vastController.startStreamSafetyMargin), "BA"), false, false, true); setTrackingPoint(new TrackingPoint(_local11, "1Q"), false, false, true); setTrackingPoint(new TrackingPoint(_local10, "HW"), false, false, true); setTrackingPoint(new TrackingPoint(_local12, "3Q"), false, false, true); setTrackingPoint(new TrackingPoint(((_local9 * _local7) + _vastController.startStreamSafetyMargin), "SN"), false, false, true); setTrackingPoint(new TrackingPoint((((_local9 + _local8) * _local7) - _vastController.endStreamSafetyMargin), "HN"), false, false, true); setTrackingPoint(new TrackingPoint((((_local9 + _local8) * _local7) - _vastController.endStreamSafetyMargin), "EA"), false, false, true); if (hasTimedNotice()){ declareNoticeTimerTrackingPoints(_local8, true); }; if (hasCompanionAds()){ addCompanionAdTrackingPoints(key, 0, _local8, false, false, true); }; }; } public function markAsPlaying():void{ _isPlaying = true; _played = true; } public function set adServerConfig(_arg1:AdServerConfig):void{ _adServerConfig = _arg1; } public function set position(_arg1:String):void{ _position = _arg1; } override public function toShortString():String{ return ((((("position: " + _position) + (_loadOnDemand) ? " (ON DEMAND)" : "") + ", ") + super.toShortString())); } override public function shouldMaintainAspectRatio():Boolean{ if (hasVideoAd()){ return (_videoAd.shouldMaintainAspectRatio()); }; return (false); } override public function get title():String{ if (hasVideoAd()){ return (_videoAd.adTitle); }; return (_title); } override public function processMuteEvent():void{ doLog((("AdSlot " + id) + " mute event"), Debuggable.DEBUG_TRACKING_EVENTS); if (_videoAd != null){ _videoAd.processMuteAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.MUTE, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for mute on AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function isMidRoll():Boolean{ if (_position == null){ return (false); }; return ((_position.toLowerCase() == SLOT_POSITION_MID_ROLL)); } public function shouldForceFireImpressions():Boolean{ if (_adServerConfig != null){ return (_adServerConfig.forceImpressionServing); }; return (false); } public function hasAdServerConfigured():Boolean{ if (_adServerConfig != null){ return (!((_adServerConfig.serverType == null))); }; return (false); } public function isNonLinear():Boolean{ if (_videoAd != null){ return (((((((((!(isPreRoll())) && (!(isPostRoll())))) && (!(isMidRoll())))) && (!((_videoAd == null))))) && (_videoAd.hasNonLinearAds()))); }; if (_loadOnDemand){ return (((((!(isPreRoll())) && (!(isPostRoll())))) && (!(isMidRoll())))); }; return (false); } public function get originatingAssociatedStreamIndex():int{ return (_originatingAssociatedStreamIndex); } override public function isInteractive():Boolean{ if (hasVideoAd()){ return (_videoAd.isInteractive()); }; return (false); } public function processForcedImpression(_arg1:Boolean=false):void{ if (_videoAd != null){ if (shouldForceFireImpressions()){ _videoAd.triggerForcedImpressionConfirmations(_arg1); } else { doLog(("Impressions not to be forcibly fired for ad slot " + key), Debuggable.DEBUG_TRACKING_EVENTS); }; }; } public function getLinearVideoAd():LinearVideoAd{ if (_videoAd != null){ return (_videoAd.linearVideoAd); }; return (null); } protected function actionNonLinearAdEnd(_arg1:Boolean=false):void{ markAsPlayed(); if (this.isLinear()){ doLog("tracking event for non-linear overlay stop on Linear Ad ignored - not implemented", Debuggable.DEBUG_CUEPOINT_EVENTS); } else { if (_videoAd != null){ doLog("tracking event for non-linear overlay stop being processed - this is for a stand alone ad slot", Debuggable.DEBUG_CUEPOINT_EVENTS); _videoAd.processStopNonLinearAdEvent(createNonLinearDisplayEvent()); if (_arg1){ resetAllTrackingPoints(); } else { resetRepeatableTrackingPoints(); }; } else { doLog("tracking event for non-linear overlay end ignored - no ad to display", Debuggable.DEBUG_CUEPOINT_EVENTS); }; }; } public function set zone(_arg1:String):void{ _zone = _arg1; } protected function canSkipWithoutDelayOnLinearAd():Boolean{ if (canSkipOnLinearAd()){ return (!(_vastController.config.adsConfig.skipAdConfig.isTimeDelayed())); }; return (false); } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {id:_id, uid:_uid, type:getSlotType(), position:_position, loadOnDemand:_loadOnDemand, refreshOnReplay:_refreshOnReplay, associatedStreamIndex:_associatedStreamIndex, showNotice:noticeToBeShown(), regions:_regions}; return (_local1); } override public function toString():String{ return (((((((((((((((((super.toString() + ", adSlotId: ") + adSlotID) + ", position: ") + _position) + ", loadOnDemand: ") + _loadOnDemand) + ", originatingAssociatedStreamIndex: ") + _originatingAssociatedStreamIndex) + ", associatedStreamIndex: ") + _associatedStreamIndex) + ", associatedStreamStartTime: ") + _associatedStreamStartTime) + ", showNotice: ") + noticeToBeShown()) + ", metaData: ") + _metaData)); } public function get adServerTag():String{ if (this.adServerConfig != null){ if (adServerConfig.tag == null){ return (adServerConfig.apiAddress); }; return (adServerConfig.tag); }; return ("undefined"); } public function clone(_arg1:int=0):AdSlot{ var _local2:AdSlot = new AdSlot(_parent, _owner, _vastController, _key, _associatedStreamIndex, (_id + "-c"), _zone, _position, _applyToParts, _duration, _originalDuration, _startTime, _notice, _disableControls, null, _companionDivIDs, _streamType, _deliveryType, _bitrate, _playOnce, _metaData, _autoPlay, _regions, _playerConfig, _clickSignEnabled, clonedAdServerConfig, _previewImage, _loadOnDemand, _refreshOnReplay); _local2.originatingAssociatedStreamIndex = _originatingAssociatedStreamIndex; _local2.played = _played; _local2.markAsCopy(this); return (_local2); } public function get slotType():String{ if (((((isPreRoll()) || (isMidRoll()))) || (isPostRoll()))){ return (AD_TYPE_LINEAR); }; if (isCompanion()){ return (AD_TYPE_COMPANION); }; return (AD_TYPE_NON_LINEAR); } override public function isSlicedStream():Boolean{ return (false); } override public function getStreamToPlay():NetworkResource{ if (((hasLinearAd()) && (hasVideoAd()))){ return (_videoAd.getStreamToPlay()); }; return (null); } public function markForRefresh():void{ _needsRefresh = true; } public function onAdCallStarted(_arg1:AdServerRequest):void{ if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdCallStarted(_arg1); }; } public function isPostRoll():Boolean{ if (_position == null){ return (false); }; return ((_position.toLowerCase() == SLOT_POSITION_POST_ROLL)); } public function onTemplateLoadTimeout(_arg1:Event):void{ doLog(((("On demand ad request timed out on ad slot " + this.id) + " at index ") + this.index), Debuggable.DEBUG_ALWAYS); if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdSlotLoadError(new AdSlotLoadEvent(AdSlotLoadEvent.LOAD_TIMEOUT, this, _arg1)); }; } protected function processAdThirdQuartileComplete():void{ if (_videoAd != null){ _videoAd.processThirdQuartileCompleteAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.THIRD_QUARTILE, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for third quartile AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function set associatedStreamStartTime(_arg1:int):void{ _associatedStreamStartTime = _arg1; } override public function declareTrackingPoints(_arg1:int=0, _arg2:Boolean=false):void{ var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; var _local8:int; var _local9:int; if (_trackingPointsSet == false){ if (getDurationAsInt() > 0){ clearTrackingTable(); if (((isLinear()) && ((isInteractive() == false)))){ _local3 = 1000; _local4 = getDurationAsInt(); _local5 = (_arg1 + streamStartTime); _local6 = (Math.round((((_local5 * _local3) + ((_local4 * _local3) / 2)) / 100)) * 100); _local7 = (Math.round((((_local5 * _local3) + ((_local4 * _local3) / 4)) / 100)) * 100); _local8 = (Math.round((((_local5 * _local3) + (((_local4 * _local3) / 4) * 3)) / 100)) * 100); setTrackingPoint(new TrackingPoint(((_local5 * _local3) + _vastController.startStreamSafetyMargin), "BA")); setTrackingPoint(new TrackingPoint(_local7, "1Q")); setTrackingPoint(new TrackingPoint(_local6, "HW")); setTrackingPoint(new TrackingPoint(_local8, "3Q")); setTrackingPoint(new TrackingPoint(((_local5 * _local3) + _vastController.startStreamSafetyMargin), "SN")); if (_vastController.config.adsConfig.isSkipAdButtonEnabled()){ _local9 = 0; if (_vastController.config.adsConfig.skipAdConfig.isTimeDelayed()){ _local9 = _vastController.config.adsConfig.skipAdConfig.showAfterSeconds; setTrackingPoint(new TrackingPoint(((_local5 * _local3) + (_local9 * _local3)), "DS")); }; if (_vastController.config.adsConfig.skipAdConfig.isTimeRestricted()){ setTrackingPoint(new TrackingPoint(((_local5 * _local3) + ((_local9 + _vastController.config.adsConfig.skipAdConfig.showForSeconds) * _local3)), "HS")); }; }; setTrackingPoint(new TrackingPoint((((_local5 + _local4) * _local3) - _vastController.endStreamSafetyMargin), "HN")); setTrackingPoint(new TrackingPoint((((_local5 + _local4) * _local3) - _vastController.endStreamSafetyMargin), "EA")); if (hasTimedNotice()){ declareNoticeTimerTrackingPoints(_local4, false); }; }; if (hasNonLinearAds()){ addNonLinearAdTrackingPoints(key, true, false); }; if (hasCompanionAds()){ addCompanionAdTrackingPoints(key, _arg1, getDurationAsInt()); }; markTrackingPointsAsSet(); } else { doLog((("Not setting Ad tracking points on AdSlot[" + key) + "] - it has a 0 duration specified"), Debuggable.DEBUG_CUEPOINT_FORMATION); }; } else { doLog((("Not setting Ad tracking points on AdSlot[" + key) + "] - already set once"), Debuggable.DEBUG_CUEPOINT_FORMATION); }; } public function markAsPlayed():void{ _played = true; _isPlaying = false; } override public function processStartStream():void{ markAsPlaying(); markForRefresh(); if (_videoAd != null){ _videoAd.processStartAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.START, this, _videoAd.linearVideoAd); } else { doLog((("tracking event at start of AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } override public function get streamID():String{ return (_id); } public function get adSlotID():String{ return (((id + "-") + associatedStreamIndex)); } public function get adServerType():String{ if (this.adServerConfig != null){ return (this.adServerConfig.type); }; return ("undefined"); } public function get refreshOnReplay():Boolean{ return (_refreshOnReplay); } protected function noticeToBeShown():Boolean{ if (_notice != null){ if (_notice.show){ return (_notice.show); }; }; return (false); } override public function get duration():String{ if (_videoAd != null){ if (_duration == null){ return (new String(_videoAd.duration)); }; if ((((_duration.toUpperCase().indexOf("RECOMMENDED:") > -1)) && ((_duration.length > 12)))){ return (new String(_videoAd.getDurationGivenRecommendation(parseInt(_duration.substr((_duration.toUpperCase().indexOf("RECOMMENDED:") + 12)))))); }; }; return (super.duration); } public function isPlaying():Boolean{ return (_isPlaying); } public function hasPositionDefined():Boolean{ return (!((_position == null))); } public function onTemplateLoadDeferred(_arg1:Event):void{ doLog(((("On demand ad request deferred on ad slot " + this.id) + " at index ") + this.index), Debuggable.DEBUG_ALWAYS); if (_onDemandLoadListener != null){ _onDemandLoadListener.onAdSlotLoadDeferred(new AdSlotLoadEvent(AdSlotLoadEvent.LOAD_DEFERRED, this, _arg1)); }; } override public function processUnmuteEvent():void{ doLog((("AdSlot " + id) + " unmute event"), Debuggable.DEBUG_TRACKING_EVENTS); if (_videoAd != null){ _videoAd.processUnmuteAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.UNMUTE, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for unmute on AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function actionCompanionAdStart():void{ var _local1:VideoAdDisplayEvent; _companionsShowing = true; if (_videoAd != null){ _local1 = new VideoAdDisplayEvent(_vastController, _width, _height); _videoAd.processStartCompanionAdEvent(_local1); } else { doLog("tracking event for companion ad end ignored - no ad to display", Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function set disableControl(_arg1:Boolean):void{ _disableControls = _arg1; } public function get zone():String{ return (_zone); } public function set played(_arg1:Boolean):void{ _played = _arg1; } public function requiresLoading():Boolean{ if (_loadOnDemand){ if (_videoAd != null){ if (_refreshOnReplay){ return (_needsRefresh); }; return (_videoAd.isEmpty()); }; return (true); }; return (false); } public function requiresFixedPosition():Boolean{ return (false); } protected function processAdMidpointComplete():void{ if (_videoAd != null){ _videoAd.processHitMidpointAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.MIDPOINT, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for midpoint AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function set applyToParts(_arg1:Object):void{ _applyToParts = _arg1; } public function hasNonLinearAds():Boolean{ if (_videoAd != null){ return (_videoAd.hasNonLinearAds()); }; return (false); } public function getFlashMediaToPlay(_arg1:Number, _arg2:Number, _arg3:Boolean=false):FlashMedia{ if (_videoAd != null){ return (_videoAd.getFlashMediaToPlay(_arg1, _arg2, _arg3)); }; return (null); } protected function actionNonLinearAdStart():void{ markAsPlaying(); if (this.isLinear()){ doLog("tracking event for non-linear overlay start ignored on Linear Ad - not implemented", Debuggable.DEBUG_CUEPOINT_EVENTS); } else { if (_videoAd != null){ if (requiresLoading()){ doLog("Re-loading Overlay 'on-demand'", Debuggable.DEBUG_CUEPOINT_EVENTS); load(_vastController); } else { doLog("tracking event for non-linear overlay start being processed - this is for a stand alone ad slot", Debuggable.DEBUG_CUEPOINT_EVENTS); _videoAd.processStartNonLinearAdEvent(createNonLinearDisplayEvent()); markForRefresh(); }; } else { if (loadOnDemand){ doLog("loading Overlay 'on-demand'", Debuggable.DEBUG_CUEPOINT_EVENTS); load(_vastController); } else { doLog("tracking event for non-linear overlay start ignored - no ad to display", Debuggable.DEBUG_CUEPOINT_EVENTS); }; }; }; } protected function formRegionsConfig(_arg1:String, _arg2:Array, _arg3:Object):Array{ var _local4:Array; var _local5:int; if (_arg2 == null){ return ([new AdSlotRegionConfig(_arg1, _arg3)]); }; if (_arg2.length == 0){ return ([new AdSlotRegionConfig(_arg1, _arg3)]); }; _local4 = new Array(); _local5 = 0; while (_local5 < _arg2.length) { _local4.push(new AdSlotRegionConfig(_arg1, _arg3, _arg2[_local5])); _local5++; }; return (_local4); } public function occursBetweenTimes(_arg1:Number, _arg2:Number):Boolean{ var _local3:int = getStartTimeAsSeconds(); if (_local3 > 0){ return ((((_arg1 <= _local3)) && ((_local3 <= _arg2)))); }; return (false); } public function requiresAutoPosition():Boolean{ if (hasPositionDefined()){ return ((_position.toUpperCase().indexOf("AUTO") > -1)); }; return (false); } public function get clonedAdServerConfig():AdServerConfig{ if (_adServerConfig != null){ return (_adServerConfig); }; return (null); } public function get associatedStreamStartTime():int{ return (_associatedStreamStartTime); } override public function processFullScreenExitEvent():void{ doLog((("AdSlot " + id) + " full screen exit event"), Debuggable.DEBUG_TRACKING_EVENTS); if (_videoAd != null){ _videoAd.processFullScreenExitAdEvent(); } else { doLog((("tracking event for fullscreen exit on AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } protected function actionAdNoticeCountdownTick(_arg1:int):void{ var _local2:int; if (_notice != null){ if (_notice.region != undefined){ if (((!((_notice.region == null))) && (!((_videoAd == null))))){ _local2 = Math.round((_videoAd.duration - (_arg1 / 1000))); _vastController.onTickAdNotice(new AdNoticeDisplayEvent(AdNoticeDisplayEvent.TICK, _notice, _local2)); }; }; }; } public function set originatingAssociatedStreamIndex(_arg1:int):void{ _originatingAssociatedStreamIndex = _arg1; } public function getSlotType():String{ if (isLinear()){ if (isInteractive()){ return ("Linear interactive"); }; return ("Linear"); } else { if (isNonLinear()){ if (isInteractive()){ return ("Non-linear Interactive"); }; return ("Non-linear"); } else { if (isCompanion()){ return ("Companion"); }; }; }; return ("Unknown"); } override public function isLoaded():Boolean{ return (true); } public function isActive():Boolean{ if (_loadOnDemand){ return (true); }; if (_videoAd != null){ return ((((_videoAd.hasEmptyLinearAd() == false)) || ((_videoAd.hasEmptyNonLinearAds() == false)))); }; return (false); } public function getNonLinearVideoAd():NonLinearVideoAd{ if (_videoAd != null){ if (_videoAd.nonLinearVideoAds != null){ return (_videoAd.nonLinearVideoAds[0]); }; }; return (null); } public function get played():Boolean{ return (_played); } protected function createNonLinearDisplayEvent():VideoAdDisplayEvent{ var _local1:VideoAdDisplayEvent = new VideoAdDisplayEvent(_vastController); _local1.customData.adSlot = this; return (_local1); } public function hasCompanionAds():Boolean{ if (_videoAd != null){ return (_videoAd.hasCompanionAds()); }; return (false); } public function canReplay():Boolean{ return (_vastController.config.adsConfig.replayOverlays); } public function get analyticsProcessor():AnalyticsProcessor{ if (_vastController != null){ return (_vastController.analyticsProcessor); }; return (null); } protected function processAdFirstQuartileComplete():void{ if (_videoAd != null){ _videoAd.processFirstQuartileCompleteAdEvent(); _vastController.fireAdPlaybackAnalytics(AnalyticsProcessor.FIRST_QUARTILE, this, _videoAd.linearVideoAd); } else { doLog((("tracking event for first quartile AdSlot[" + key) + "] ignored - no ad to display"), Debuggable.DEBUG_CUEPOINT_EVENTS); }; } protected function declareNoticeTimerTrackingPoints(_arg1:int, _arg2:Boolean=false):void{ doLog("Declaring ad notice tracking points...", Debuggable.DEBUG_CUEPOINT_FORMATION); var _local3 = 1000; var _local4 = 1; while (_local4 < _arg1) { setTrackingPoint(new TrackingPoint((_local4 * _local3), "TN"), false, false, _arg2); _local4++; }; } override public function get baseURL():String{ var _local1:AdNetworkResource = (getStreamToPlay() as AdNetworkResource); if (_local1 != null){ if (((_local1.isRTMP()) && ((_local1.hasFileMarker() == false)))){ if (_vastController != null){ if (_vastController.config.adsConfig.hasStreamers()){ _local1.streamers = _vastController.config.adsConfig.streamers; }; }; }; return (_local1.netConnectionAddress); }; return (super.baseURL); } public function get disableControls():Boolean{ return (_disableControls); } public function isCopy():Boolean{ return (!((_originalAdSlot == null))); } public function set maxDisplayCount(_arg1:int):void{ _maxDisplayCount = _arg1; } public function load(_arg1:AdSlotOnDemandLoadListener):Boolean{ var _local2:Array; if (loadOnDemand == true){ _needsRefresh = false; _onDemandLoadListener = _arg1; _local2 = new Array(); _local2.push(this); _activeAdServerRequestProcessor = new AdServerRequestProcessor(this, _local2, true, true); _activeAdServerRequestProcessor.start(); return (true); }; _onDemandLoadListener = null; _activeAdServerRequestProcessor = null; return (false); } public function getAttachedLinearAdDurationAsInt():int{ if (_videoAd != null){ return (_videoAd.duration); }; return (0); } public function hasLinearAd():Boolean{ if (_videoAd != null){ return (_videoAd.hasLinearAd()); }; return (false); } override public function resetAllTrackingPoints():void{ super.resetAllTrackingPoints(); if (hasVideoAd()){ _videoAd.resetImpressions(); }; } override protected function cleanseStreamName(_arg1:String):String{ return (super.cleanseStreamName(_arg1)); } public function get maxDisplayCount():int{ return (_maxDisplayCount); } public function markAsCopy(_arg1:AdSlot):void{ _originalAdSlot = _arg1; } public function hasTimedNotice():Boolean{ if (_notice != null){ if (_notice.message != undefined){ return ((_notice.message.indexOf("_countdown_") > -1)); }; }; return (false); } public function shouldBePlaying(_arg1:Number):Boolean{ return (((_trackingTable.timeBetweenTwoPoints(_arg1, "NS", "NE")) && ((((played == false)) || (canReplay()))))); } public function get applyToParts():Object{ return (_applyToParts); } public function actionCompanionAdEnd():void{ var _local1:VideoAdDisplayEvent; _companionsShowing = false; if (_videoAd != null){ _local1 = new VideoAdDisplayEvent(_vastController, _width, _height); _videoAd.processStopCompanionAdEvent(_local1); } else { doLog("tracking event for companion ad end ignored - no ad to display", Debuggable.DEBUG_CUEPOINT_EVENTS); }; } public function set videoAd(_arg1:VideoAd):void{ if (_arg1 != null){ _arg1.setPreferredSelectionCriteria({deliveryType:_deliveryType, mimeType:_mimeType, bitrate:_bitrate, width:_width, height:_height}); }; _videoAd = _arg1; } protected function canSkipOnLinearAd():Boolean{ if (_vastController.config.adsConfig.skipAdConfig.hasMinimumAdDuration()){ if (_vastController.canSkipOnLinearAd()){ return ((this.getDurationAsInt() >= _vastController.config.adsConfig.skipAdConfig.minimumAdDuration)); }; return (false); }; return (_vastController.canSkipOnLinearAd()); } override public function unload():void{ if (_activeAdServerRequestProcessor != null){ _activeAdServerRequestProcessor.unload(); }; if (hasVideoAd()){ _videoAd.unload(); }; } } }//package org.openvideoads.vast.schedule.ads
Section 194
//AdSlotOnDemandLoadListener (org.openvideoads.vast.schedule.ads.AdSlotOnDemandLoadListener) package org.openvideoads.vast.schedule.ads { import org.openvideoads.vast.events.*; import org.openvideoads.vast.server.request.*; public interface AdSlotOnDemandLoadListener { function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void; function onAdCallStarted(_arg1:AdServerRequest):void; function onAdSlotLoadError(_arg1:AdSlotLoadEvent):void; function onAdSlotLoadDeferred(_arg1:AdSlotLoadEvent):void; function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void; function onAdSlotLoadTimeout(_arg1:AdSlotLoadEvent):void; function onAdSlotLoaded(_arg1:AdSlotLoadEvent):void; } }//package org.openvideoads.vast.schedule.ads
Section 195
//StaticAdSlot (org.openvideoads.vast.schedule.ads.StaticAdSlot) package org.openvideoads.vast.schedule.ads { import org.openvideoads.vast.config.*; import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.*; public class StaticAdSlot extends AdSlot { protected var _html:String;// = null protected var _startPoint:String;// = "relative" public function StaticAdSlot(_arg1:StreamSequence, _arg2:AdSchedule, _arg3:VASTController, _arg4:int=0, _arg5:int=0, _arg6:String=null, _arg7:String=null, _arg8:String=null, _arg9:Array=null, _arg10:String=null, _arg11:String="00:00:00", _arg12:Object=null, _arg13:Boolean=true, _arg14:Array=null, _arg15:Array=null, _arg16:String=null, _arg17:String=null, _arg18:String=null){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15, _arg16); _html = _arg18; if (_startPoint != null){ _startPoint = _arg17; }; } override public function hasVideoAd():Boolean{ return (false); } override public function isNonLinear():Boolean{ return (true); } protected function actionStopStaticAd(_arg1:Object=null, _arg2:Config=null):void{ } public function startPointIsRelative():Boolean{ return ((_startPoint.toUpperCase() == "RELATIVE")); } public function get startPoint():String{ return (_startPoint); } public function get html():String{ return (_html); } public function set html(_arg1:String):void{ _html = _arg1; } public function set startPoint(_arg1:String):void{ _startPoint = _arg1; } protected function actionStartStaticAd(_arg1:Object=null, _arg2:Config=null):void{ } } }//package org.openvideoads.vast.schedule.ads
Section 196
//DurationlessStreamSequence (org.openvideoads.vast.schedule.DurationlessStreamSequence) package org.openvideoads.vast.schedule { import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.util.*; public class DurationlessStreamSequence extends StreamSequence { public function DurationlessStreamSequence(_arg1:VASTController=null, _arg2:Array=null, _arg3:AdSchedule=null, _arg4:int=-1, _arg5:String=null, _arg6:int=1, _arg7:String=null):void{ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7); } override public function build(_arg1:Array, _arg2:AdSchedule, _arg3:String=null):int{ var _local4:AdSlot; var _local5:Array; var _local6:int; var _local7:int; var _local8:int; var _local9:int; var _local10:int; doLog((((("*** BUILDING THE (DURATION-LESS) STREAM SEQUENCE FROM " + _arg1.length) + " SHOW STREAMS AND ") + _arg2.length) + " AD SLOTS"), Debuggable.DEBUG_SEGMENT_FORMATION); if (_arg2.hasLinearAds()){ _local4 = null; _local5 = _arg2.adSlots; _local6 = -1; _local7 = 0; while (_local7 < _local5.length) { if (_local6 != _local5[_local7].associatedStreamIndex){ if (_local5[_local7].isActive()){ _local8 = (_local6 + 1); while ((((_local8 < _local5[_local7].associatedStreamIndex)) && ((_local8 < _arg1.length)))) { doLog((((("Sequencing stream " + _arg1[_local8].filename) + " (") + _local6) + ")"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local8, ((("show-a-" + _local8) + "-") + _sequence.length), _arg1[_local8].id, _arg1[_local8].startTime, (_arg1[_local8].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local8].duration) : "0", (_arg1[_local8].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local8].duration) : "0", _arg1[_local8].reduceLength, (_arg1[_local8].hasBaseURL()) ? _arg1[_local8].baseURL : _baseURL, "any", "any", -1, _arg1[_local8].playOnce, _arg1[_local8].metaData, _arg1[_local8].autoPlay, _arg1[_local8].provider, _arg1[_local8].player, null, _local8, false, _arg1[_local8].customProperties, _arg1[_local8].fireTrackingEvents, false, _local4)); _local6 = _local8; _local8++; }; }; }; if (((!(_local5[_local7].isLinear())) && (_local5[_local7].isActive()))){ _local5[_local7].associatedStreamIndex = _sequence.length; } else { if (((_local5[_local7].isLinear()) && (_local5[_local7].isActive()))){ if (_local5[_local7].isPreRoll()){ doLog(("Slotting in a pre-roll ad with id: " + _local5[_local7].adSlotID), Debuggable.DEBUG_SEGMENT_FORMATION); } else { if (_local5[_local7].isMidRoll()){ doLog(("Slotting in a mid-roll ad with id: " + _local5[_local7].adSlotID), Debuggable.DEBUG_SEGMENT_FORMATION); _local4 = null; if (!_local5[_local7].isCopy()){ if ((((_local5[_local7].associatedStreamIndex < _arg1.length)) && (!((_local6 == _local5[_local7].associatedStreamIndex))))){ doLog((((("Sequencing stream " + _arg1[_local5[_local7].associatedStreamIndex].filename) + " (") + _local5[_local7].associatedStreamIndex) + ") - expecting mid-roll ad"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local5[_local7].associatedStreamIndex, ((("show-b-" + _local5[_local7].associatedStreamIndex) + "-") + _sequence.length), _arg1[_local5[_local7].associatedStreamIndex].id, _arg1[_local5[_local7].associatedStreamIndex].startTime, (_arg1[_local5[_local7].associatedStreamIndex].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local5[_local7].associatedStreamIndex].duration) : "0", (_arg1[_local5[_local7].associatedStreamIndex].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local5[_local7].associatedStreamIndex].duration) : "0", _arg1[_local5[_local7].associatedStreamIndex].reduceLength, (_arg1[_local5[_local7].associatedStreamIndex].hasBaseURL()) ? _arg1[_local5[_local7].associatedStreamIndex].baseURL : _baseURL, "any", "any", -1, _arg1[_local5[_local7].associatedStreamIndex].playOnce, _arg1[_local5[_local7].associatedStreamIndex].metaData, _arg1[_local5[_local7].associatedStreamIndex].autoPlay, _arg1[_local5[_local7].associatedStreamIndex].provider, _arg1[_local5[_local7].associatedStreamIndex].player, null, _local5[_local7].associatedStreamIndex, false, _arg1[_local5[_local7].associatedStreamIndex].customProperties, _arg1[_local5[_local7].associatedStreamIndex].fireTrackingEvents, false, _local4)); _local6 = _local5[_local7].associatedStreamIndex; }; }; } else { doLog(("Slotting in a post-roll ad with id: " + _local5[_local7].adSlotID), Debuggable.DEBUG_SEGMENT_FORMATION); _local4 = null; if (_arg1.length > 0){ if (!_local5[_local7].isCopy()){ if ((((_local5[_local7].associatedStreamIndex < _arg1.length)) && (!((_local6 == _local5[_local7].associatedStreamIndex))))){ doLog((((("Sequencing stream " + _arg1[_local5[_local7].associatedStreamIndex].filename) + " (") + _local5[_local7].associatedStreamIndex) + ") - expecting post-roll ad"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local5[_local7].associatedStreamIndex, ((("show-c-" + _local5[_local7].associatedStreamIndex) + "-") + _sequence.length), _arg1[_local5[_local7].associatedStreamIndex].id, _arg1[_local5[_local7].associatedStreamIndex].startTime, (_arg1[_local5[_local7].associatedStreamIndex].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local5[_local7].associatedStreamIndex].duration) : "0", (_arg1[_local5[_local7].associatedStreamIndex].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local5[_local7].associatedStreamIndex].duration) : "0", _arg1[_local5[_local7].associatedStreamIndex].reduceLength, (_arg1[_local5[_local7].associatedStreamIndex].hasBaseURL()) ? _arg1[_local5[_local7].associatedStreamIndex].baseURL : _baseURL, "any", "any", -1, _arg1[_local5[_local7].associatedStreamIndex].playOnce, _arg1[_local5[_local7].associatedStreamIndex].metaData, _arg1[_local5[_local7].associatedStreamIndex].autoPlay, _arg1[_local5[_local7].associatedStreamIndex].provider, _arg1[_local5[_local7].associatedStreamIndex].player, null, _local5[_local7].associatedStreamIndex, false, _arg1[_local5[_local7].associatedStreamIndex].customProperties, _arg1[_local5[_local7].associatedStreamIndex].fireTrackingEvents, false, _local4)); _local6 = _local5[_local7].associatedStreamIndex; }; }; }; }; }; doLog((((("Inserting ad to play for " + _local5[_local7].duration) + " seconds from ") + totalDuration) + " seconds into the stream"), Debuggable.DEBUG_SEGMENT_FORMATION); _local5[_local7].streamStartTime = 0; _local5[_local7].parent = this; addStream(_local5[_local7]); doLog(("Have slotted in the ad with id " + _local5[_local7].adSlotID), Debuggable.DEBUG_SEGMENT_FORMATION); } else { doLog(((((("Ad slot " + _local5[_local7].id) + " is either not linear/pop or is NOT active - active is ") + _local5[_local7].isActive()) + ", streamIndexInPlay: ") + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); _arg2.adSlots[_local7].associatedStreamStartTime = "00:00:00"; }; }; _local7++; }; if ((_local6 + 1) < _arg1.length){ _local9 = (_local6 + 1); while (_local9 < _arg1.length) { doLog((((("Sequencing remaining stream " + _arg1[_local9].filename) + " (") + _local9) + ") without any ads at all"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local9, ("show-d-" + _local9), _arg1[_local9].id, _arg1[_local9].startTime, (_arg1[_local9].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local9].duration) : "0", (_arg1[_local9].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local9].duration) : "0", _arg1[_local9].reduceLength, (_arg1[_local9].hasBaseURL()) ? _arg1[_local9].baseURL : _baseURL, "any", "any", -1, _arg1[_local9].playOnce, _arg1[_local9].metaData, _arg1[_local9].autoPlay, _arg1[_local9].provider, _arg1[_local9].player, null, _local9, false, _arg1[_local9].customProperties, _arg1[_local9].fireTrackingEvents, false, _local4)); _local9++; }; }; } else { doLog("No video ad streams to schedule, just scheduling the main stream(s)", Debuggable.DEBUG_SEGMENT_FORMATION); _local10 = 0; while (_local10 < _arg1.length) { doLog((("Sequencing stream " + _arg1[_local10].filename) + " without any advertising at all"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local10, ("show-e-" + _local10), _arg1[_local10].id, _arg1[_local10].startTime, (_arg1[_local10].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local10].duration) : "0", (_arg1[_local10].hasDuration()) ? Timestamp.timestampToSecondsString(_arg1[_local10].duration) : "0", _arg1[_local10].reduceLength, (_arg1[_local10].hasBaseURL()) ? _arg1[_local10].baseURL : _baseURL, "any", "any", -1, _arg1[_local10].playOnce, _arg1[_local10].metaData, _arg1[_local10].autoPlay, _arg1[_local10].provider, _arg1[_local10].player, null, _local10, false, _arg1[_local10].customProperties, _arg1[_local10].fireTrackingEvents, false, _local4)); _local10++; }; }; if (((!((_arg3 == null))) && ((_sequence.length > 0)))){ _sequence[0].previewImage = _arg3; doLog(("Have set preview image on first stream - image is: " + _arg3), Debuggable.DEBUG_SEGMENT_FORMATION); }; markBlockEndsAndAttachPrerolls(); doLog((("*** DURATION-LESS STREAM SEQUENCE BUILT - " + _sequence.length) + " STREAMS INDEXED "), Debuggable.DEBUG_SEGMENT_FORMATION); return (-1); } } }//package org.openvideoads.vast.schedule
Section 197
//Stream (org.openvideoads.vast.schedule.Stream) package org.openvideoads.vast.schedule { import org.openvideoads.vast.config.*; import org.openvideoads.vast.tracking.*; import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.vast.playlist.*; import org.openvideoads.util.*; public class Stream extends EventController { public const VAST_DELIVERY_TYPE_STREAMING:String = "streaming"; public const VAST_DELIVERY_TYPE_PROGRESSIVE:String = "progressive"; public const VAST_MIME_TYPE_FLV:String = "video/x-flv"; public const VAST_MIME_TYPE_MP4:String = "video/x-mp4"; protected var _bitrate;// = -1 protected var _height:int;// = -1 protected var _flag:Boolean;// = false protected var _previewImage:String;// = null protected var _streamStartTime:int;// = 0 protected var _streamType:String;// = "any" protected var _metaData:Boolean;// = true protected var _width:int;// = -1 protected var _startTime:String;// = "00:00:00" protected var _autoPlay:Boolean;// = true protected var _originalDuration:String;// = null protected var _mimeType:String;// = null protected var _duration:String;// = null protected var _trackingPointsSet:Boolean;// = false protected var _relatedPlaylistItem:PlaylistItem;// = null protected var _fireTrackingEvents:Boolean;// = false protected var _vastController:VASTController;// = null protected var _originatingStreamIndex:int;// = 0 protected var _deliveryType:String;// = "streaming" protected var _playOnce:Boolean;// = false protected var _associatedStreamIndex:int;// = 0 protected var _provider:String;// = null protected var _trackingTable:TrackingTable;// = null protected var _title:String;// = null protected var _isSlice:Boolean;// = false protected var _playerConfig:Object; protected var _endBlockMarker:Boolean;// = false protected var _baseURL:String;// = null protected var _key:int; protected var _hasOffsetStartTime:Boolean;// = false protected var _id:String;// = null protected var _parent:StreamSequence;// = null protected var _streamName:String; protected var _reduceLength:Boolean;// = false protected var _index:int;// = -1 protected var _associatedPrerollAdSlot:AdSlot;// = null protected var _customProperties:Object;// = null public function Stream(_arg1:StreamSequence, _arg2:VASTController, _arg3:int=0, _arg4:String=null, _arg5:String=null, _arg6:String="00:00:00", _arg7:String=null, _arg8:String=null, _arg9:Boolean=false, _arg10:String=null, _arg11:String="any", _arg12:String="streaming", _arg13=-1, _arg14:Boolean=false, _arg15:Boolean=true, _arg16:Boolean=true, _arg17:String=null, _arg18:Object=null, _arg19:String=null, _arg20:int=0, _arg21:Boolean=false, _arg22:Object=null, _arg23:Boolean=false, _arg24:Boolean=false, _arg25:AdSlot=null){ _playerConfig = new Object(); super(); _parent = _arg1; _vastController = _arg2; _key = _arg3; _trackingTable = new TrackingTable(_arg4, _arg3, _arg20); _id = _arg4; _streamName = _arg5; startTime = _arg6; _duration = _arg7; _originalDuration = _arg8; _reduceLength = _arg9; _streamType = _arg11; _bitrate = _arg13; setMimeType(); _baseURL = _arg10; _deliveryType = _arg12; _playOnce = _arg14; _metaData = _arg15; _autoPlay = _arg16; _provider = _arg17; _associatedPrerollAdSlot = _arg25; if (_arg18 != null){ _playerConfig = _arg18; }; if (_arg22 != null){ _customProperties = _arg22; }; _previewImage = _arg19; _originatingStreamIndex = _arg20; _isSlice = _arg21; _fireTrackingEvents = _arg23; _hasOffsetStartTime = _arg24; } public function set hasOffsetStartTime(_arg1:Boolean):void{ _hasOffsetStartTime = _arg1; } public function get originatingStreamIndex():int{ return (_originatingStreamIndex); } protected function clearTrackingTable(_arg1:Boolean=false):void{ doLog((("Clearing the tracking table attached to stream '" + _streamName) + "'"), Debuggable.DEBUG_CONFIG); _trackingTable = new TrackingTable(id, key, originatingStreamIndex); } public function getQualifiedStreamAddress():String{ var _local1:NetworkResource = getStreamToPlay(); return (_local1.getQualifiedStreamAddress(_baseURL)); } private function setMimeType():void{ if (_streamType.toUpperCase() == "MP4"){ _mimeType = VAST_MIME_TYPE_MP4; } else { if (_streamType.toUpperCase() == "FLV"){ _mimeType = VAST_MIME_TYPE_FLV; } else { _mimeType = null; }; }; } public function hasZeroDuration():Boolean{ return (!(hasNonZeroDuration())); } public function set originatingStreamIndex(_arg1:int):void{ _originatingStreamIndex = _arg1; } public function processResumeStream():void{ doLog((("Stream " + streamName) + " resumed"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowResumed", streamName, _key); }; }; } public function streamNameWithout(_arg1:String):String{ if (streamName != null){ if (streamName.length > _arg1.length){ return (streamName.substr(_arg1.length)); }; }; return (null); } public function processTimeEvent(_arg1:TimeEvent, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local6:TrackingPoint; var _local4:Array = _trackingTable.activeTrackingPoints(_arg1, _arg2); var _local5:int; while (_local5 < _local4.length) { _local6 = _local4[_local5]; if (_local6 != null){ doLog(((("Stream: " + id) + " matched request to process tracking event of type ") + _local6.label), Debuggable.DEBUG_CUEPOINT_EVENTS); switch (_local6.label){ case "BS": processStartStream(); _vastController.onProcessTrackingPoint(_local6); break; case "ES": processStreamComplete(); _vastController.onProcessTrackingPoint(_local6); break; default: break; }; }; _local5++; }; } public function get streamName():String{ var _local1:NetworkResource = getStreamToPlay(); return (cleanseStreamName(_local1.getFilename((streamType + ":")))); } public function toShortString():String{ return (((((((("streamName: " + streamName) + ", baseURL: ") + baseURL) + ", duration: ") + duration) + ", startTime: ") + startTime)); } public function set id(_arg1:String):void{ _id = _arg1; } public function set associatedPrerollAdSlot(_arg1:AdSlot):void{ _associatedPrerollAdSlot = _arg1; } public function hasCustomProperties():Boolean{ return (!((_customProperties == null))); } public function hasAssociatedPreroll():Boolean{ return (!((_associatedPrerollAdSlot == null))); } public function get associatedStreamIndex():int{ return (_associatedStreamIndex); } public function get startTime():String{ return (_startTime); } public function getStartTimeAsSeconds():int{ if (_startTime != null){ if (Timestamp.validate(_startTime)){ return (Timestamp.timestampToSeconds(_startTime)); }; return (parseInt(_startTime)); }; return (0); } public function set height(_arg1:int):void{ _height = _arg1; } public function get title():String{ return (_title); } public function processMuteEvent():void{ doLog((("Stream " + streamName) + " mute event"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowMute", streamName, _key); }; }; } public function hasDuration():Boolean{ if (duration != null){ return (((!((duration == "00:00:00"))) && (!((duration == "0"))))); }; return (false); } public function get key():int{ return (_key); } public function get flagged():Boolean{ return (_flag); } public function getStreamToPlay():NetworkResource{ return (new NetworkResource(null, _streamName)); } protected function markTrackingPointsAsSet():void{ _trackingPointsSet = true; } public function toString():String{ return (((((((((((((((((((((((((((((((((((((("key: " + key) + ", id: ") + id) + ", originatingStreamIndex: ") + originatingStreamIndex) + ", baseURL: ") + baseURL) + ", streamName: ") + streamName) + ", startTime: ") + startTime) + ", duration: ") + duration) + ", originalDuration: ") + originalDuration) + ", reduceLength: ") + reduceLength) + ", hasOffsetStartTime: ") + hasOffsetStartTime) + ", isSlice: ") + isSlice()) + ", streamType: ") + streamType) + ", bitrate: ") + bitrate) + ", mimeType: ") + mimeType) + ", deliveryType: ") + deliveryType) + ", playOnce: ") + playOnce) + ", metaData: ") + metaData) + ", previewImage: ") + previewImage) + ", fireTrackingEvents: ") + fireTrackingEvents)); } public function get previewImage():String{ return (_previewImage); } public function declareTrackingPoints(_arg1:int=0, _arg2:Boolean=false):void{ var _local3:int; if (_trackingPointsSet == false){ clearTrackingTable(_arg2); _local3 = 1000; if (getDurationAsInt() > 0){ setTrackingPoint(new TrackingPoint(((_arg1 * _local3) + _vastController.startStreamSafetyMargin), "BS")); if (((!(_vastController.trackStreamSlices)) && (isSlicedStream()))){ setTrackingPoint(new TrackingPoint((((_arg1 + getOriginalDurationAsInt()) * _local3) - _vastController.endStreamSafetyMargin), "ES")); } else { setTrackingPoint(new TrackingPoint((((_arg1 + getDurationAsInt()) * _local3) - _vastController.endStreamSafetyMargin), "ES")); }; } else { doLog((("Not setting tracking points for stream with index " + _key) + " because of 0 duration"), Debuggable.DEBUG_CUEPOINT_FORMATION); }; markTrackingPointsAsSet(); } else { doLog("Not setting StreamSegment tracking points - already set once", Debuggable.DEBUG_CUEPOINT_FORMATION); }; } public function get originalDuration():String{ return (_originalDuration); } public function get fireTrackingEvents():Boolean{ return (_fireTrackingEvents); } public function isSlice():Boolean{ return (_isSlice); } public function processStartStream():void{ doLog((("Stream " + streamName) + " started"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowStart", streamName, _key); }; }; } public function set associatedStreamIndex(_arg1:int):void{ _associatedStreamIndex = _arg1; } public function get streamID():String{ return (_streamName); } public function set deliveryType(_arg1:String):void{ _deliveryType = _arg1; } public function set endBlockMarker(_arg1:Boolean):void{ _endBlockMarker = _arg1; } public function set startTime(_arg1:String):void{ _startTime = _arg1; _streamStartTime = getStartTimeAsSeconds(); } public function durationToTimestamp():String{ return (Timestamp.secondsToTimestamp(parseInt(_duration))); } public function get parent():StreamSequence{ return (_parent); } public function get streamStartTime():int{ return (_streamStartTime); } public function set title(_arg1:String):void{ _title = _arg1; } public function set key(_arg1:int):void{ _key = _arg1; } public function hasFilename():Boolean{ return (!(StringUtils.isEmpty(this.streamName))); } public function get index():int{ return (_index); } public function set flag(_arg1:Boolean):void{ _flag = _arg1; } protected function turnOnSeekerBar():void{ if (_vastController != null){ _vastController.onToggleSeekerBar(true); }; } public function set bitrate(_arg1):void{ _bitrate = _arg1; } public function get baseURL():String{ var _local1:NetworkResource = getStreamToPlay(); if (_local1 != null){ if (_local1.isQualified()){ return (_local1.netConnectionAddress); }; if (hasBaseURL()){ return (_baseURL); }; }; return (null); } public function get streamType():String{ return (_streamType); } public function hasBaseURL():Boolean{ return (!((_baseURL == null))); } public function set previewImage(_arg1:String):void{ _previewImage = _arg1; } public function resetAllTrackingPoints():void{ if (_trackingTable != null){ _trackingTable.resetAllTrackingPoints(); }; } public function isLinear():Boolean{ return (true); } protected function cleanseStreamName(_arg1:String):String{ var _local2:RegExp; if (_arg1 != null){ if (((!((_arg1.indexOf("mp4:") == 0))) || (!((_arg1.indexOf("flv:") == 0))))){ if (_arg1.indexOf("mp4:") > 0){ _arg1 = _arg1.substr(_arg1.indexOf("mp4:")); } else { if (_arg1.indexOf("flv:") > 0){ _arg1 = _arg1.substr(_arg1.indexOf("flv:")); }; }; }; if (_arg1.indexOf("flv:") > -1){ _local2 = /flv:/g; return (_arg1.replace(_local2, "")); }; return (_arg1); }; return (null); } public function unload():void{ } public function get hasOffsetStartTime():Boolean{ return (_hasOffsetStartTime); } public function set autoPlay(_arg1:Boolean):void{ _autoPlay = _arg1; } public function set customProperties(_arg1:Object):void{ _customProperties = _arg1; } public function set originalDuration(_arg1:String):void{ _originalDuration = _arg1; } public function get streamNameWithoutPrefix():String{ return (stripPrefix(streamName)); } public function processFullScreenEvent():void{ doLog((("Stream " + streamName) + " full screen event"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowFullscreen", streamName, _key); }; }; } public function get id():String{ return (_id); } protected function turnOffSeekerBar():void{ if (_vastController != null){ _vastController.onToggleSeekerBar(false); }; } public function get timerID():String{ return (""); } public function getOriginalDurationAsInt():int{ return (parseInt(_originalDuration)); } public function get associatedPrerollAdSlot():AdSlot{ return (_associatedPrerollAdSlot); } public function get height():int{ return (_height); } public function set duration(_arg1):void{ var _local2:String = ((_arg1 is String)) ? _arg1 : ((_arg1 is Number)) ? _arg1.toString() : "0"; doLog(((("Setting the duration for stream " + streamName) + " to ") + _local2), Debuggable.DEBUG_CONFIG); _duration = _local2; _trackingPointsSet = false; declareTrackingPoints(0, true); } public function isSMIL():Boolean{ var _local1:String = streamName; if (_local1 != null){ return (StringUtils.containsIgnoreCase(_local1, ".smil")); }; return (false); } public function markTrackingPointsAsNotSet():void{ _trackingPointsSet = false; } public function set streamID(_arg1:String):void{ _streamName = _arg1; } public function processPauseStream():void{ doLog((("Stream " + streamName) + " paused"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowPaused", streamName, _key); }; }; } public function get config():Config{ if (_vastController != null){ return (_vastController.config); }; return (new Config()); } public function isStream():Boolean{ var _local1:String; var _local2:RegExp; if (this.streamName != null){ if (this.streamName.indexOf("?") > 0){ _local1 = this.streamName.substr(0, this.streamName.indexOf("?")); } else { _local1 = this.streamName; }; _local2 = new RegExp("(?i).*\\.(mp4|flv|wmv|mp3|3g2|3gp|aac|f4b|f4p|f4v|m4a|m4v|mov|sdp)$"); return (!((_local1.match(_local2) == null))); }; return (true); } public function get endBlockMarker():Boolean{ return (_endBlockMarker); } public function get deliveryType():String{ return (_deliveryType); } public function get metaData():Boolean{ return (_metaData); } public function streamNameStartsWith(_arg1:String):Boolean{ return (StringUtils.beginsWith(streamName, _arg1)); } public function set parent(_arg1:StreamSequence):void{ _parent = _arg1; } public function processStreamComplete():void{ doLog((("Stream " + streamName) + " complete"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowComplete", streamName, _key); }; }; } public function canScale():Boolean{ return (false); } public function set streamStartTime(_arg1:int):void{ _streamStartTime = _arg1; } public function isInteractive():Boolean{ return (false); } public function get bitrate(){ return (_bitrate); } public function get url():String{ var _local1:NetworkResource = getStreamToPlay(); if (_local1 != null){ if (_local1.isQualified()){ return (_local1.url); }; if (hasBaseURL()){ return ((ensureEndSlash(_baseURL) + stripPrefix(_local1.url))); }; return (_local1.url); }; return (null); } public function getDurationAsInt():int{ return (parseInt(duration)); } public function shouldMaintainAspectRatio():Boolean{ return (false); } public function isSlicedStream():Boolean{ return (isSlice()); } public function get playerConfig():Object{ return (_playerConfig); } public function get customProperties():Object{ return (_customProperties); } public function getStartTimeAsSecondsString():String{ return (new String(getStartTimeAsSeconds())); } public function get autoPlay():Boolean{ return (_autoPlay); } public function set width(_arg1:int):void{ _width = _arg1; } public function isRTMP():Boolean{ var _local2:NetworkResource; var _local1:NetworkResource = getStreamToPlay(); if (_local1 != null){ if (_local1.isQualified()){ return (_local1.isRTMP()); }; if (hasBaseURL()){ _local2 = new NetworkResource(null, baseURL); return (_local2.isRTMP()); }; }; return (false); } public function processFullScreenExitEvent():void{ doLog((("Stream " + streamName) + " full screen event"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowExitFullscreen", streamName, _key); }; }; } public function isFirstSlice():Boolean{ var _local1:int = getStartTimeAsSeconds(); return ((((_local1 == 0)) || ((((_local1 > 0)) && (this.hasOffsetStartTime))))); } public function get mimeType():String{ return (_mimeType); } public function get duration():String{ return (((_duration)==null) ? "0" : _duration); } public function set index(_arg1:int):void{ _index = _arg1; } public function getTrackingTable():TrackingTable{ return (_trackingTable); } public function isSplashImage():Boolean{ var _local2:RegExp; var _local1:String = this.streamName; if (_local1 != null){ _local2 = new RegExp("(?i).*\\.(jpg|png|gif|bmp)"); return (!((_local1.match(_local2) == null))); }; return (false); } public function hasCustomProperty(_arg1:String):Boolean{ if (hasCustomProperties()){ return (_customProperties.hasOwnProperty(_arg1)); }; return (false); } public function processUnmuteEvent():void{ doLog((("Stream " + streamName) + " unmute event"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowUnmute", streamName, _key); }; }; } public function set streamType(_arg1:String):void{ _streamType = _arg1; setMimeType(); } public function isEndBlock():Boolean{ return (_endBlockMarker); } public function resetRepeatableTrackingPoints():void{ if (_trackingTable != null){ _trackingTable.resetRepeatableTrackingPoints(); }; } protected function ensureEndSlash(_arg1:String):String{ var _local2:String = StringUtils.trim(_arg1); if (_local2.lastIndexOf("/") == (_local2.length - 1)){ return (_local2); }; return ((_local2 + "/")); } public function set relatedPlaylistItem(_arg1:PlaylistItem):void{ _relatedPlaylistItem = _arg1; } public function set baseURL(_arg1:String):void{ _baseURL = _arg1; } public function get width():int{ return (_width); } public function isLoaded():Boolean{ return (true); } public function get relatedPlaylistItem():PlaylistItem{ return (_relatedPlaylistItem); } protected function stripPrefix(_arg1:String):String{ if (_arg1 != null){ if (_arg1.indexOf("mp4:") >= 0){ return (_arg1.substr((_arg1.indexOf("mp4:") + 4))); }; if (_arg1.indexOf("flv:") >= 0){ return (_arg1.substr((_arg1.indexOf("flv:") + 4))); }; return (_arg1); }; return (null); } public function streamIdStartsWith(_arg1:String):Boolean{ if (_id != null){ return (StringUtils.beginsWith(_id, _arg1)); }; return (false); } public function get playOnce():Boolean{ return (_playOnce); } public function hasNonZeroDuration():Boolean{ if (duration != null){ return ((getDurationAsInt() > 0)); }; return (false); } public function setTrackingPoint(_arg1:TrackingPoint, _arg2:Boolean=false, _arg3:Boolean=true, _arg4:Boolean=false):void{ if (((_arg2) || ((_trackingPointsSet == false)))){ _trackingTable.setPoint(_arg1, _arg4); if (_arg3){ if (_vastController != null){ _vastController.onSetTrackingPoint(_arg1); }; }; } else { doLog("Not setting StreamSegment tracking point - already set once", Debuggable.DEBUG_CUEPOINT_FORMATION); }; } public function set reduceLength(_arg1:Boolean):void{ _reduceLength = _arg1; } public function set provider(_arg1:String):void{ _provider = _arg1; } public function get reduceLength():Boolean{ return (_reduceLength); } public function get provider():String{ return (_provider); } public function processStopStream():void{ doLog((("Stream " + streamName) + " stopped"), Debuggable.DEBUG_TRACKING_EVENTS); if (fireTrackingEvents){ if (_vastController != null){ _vastController.fireAPICall("onShowStopped", streamName, _key); }; }; } } }//package org.openvideoads.vast.schedule
Section 198
//StreamConfig (org.openvideoads.vast.schedule.StreamConfig) package org.openvideoads.vast.schedule { import org.openvideoads.vast.config.*; import org.openvideoads.base.*; import org.openvideoads.vast.playlist.*; import org.openvideoads.util.*; public class StreamConfig extends Debuggable implements PlaylistLoadListener, ConfigLoadListener { private var _type:String;// = null private var _baseURL:String;// = null private var _fireTrackingEvents:Boolean;// = false private var _deliveryType:String;// = "any" private var _playOnce:Boolean;// = false private var _metaData:Boolean;// = true private var _id:String;// = null private var _reduceLength:Boolean;// = false private var _provider:String;// = null private var _isLive:Boolean;// = false private var _originalFilename:String;// = null private var _onLoadListener:ConfigLoadListener;// = null private var _startTime:String;// = "00:00:00" private var _smilResolvedAddress:Boolean;// = false private var _autoPlay:Boolean;// = true private var _customProperties:Object; private var _filename:String; private var _playerConfig:Object; private var _duration:String;// = "00:00:00" public function StreamConfig(_arg1:String, _arg2:String, _arg3:String, _arg4:Boolean=false, _arg5:String="any", _arg6:Boolean=false, _arg7:Boolean=true, _arg8:Boolean=true, _arg9:String=null, _arg10:Object=null, _arg11:Object=null, _arg12:String=null, _arg13:String=null, _arg14:Boolean=false){ _playerConfig = new Object(); _customProperties = new Object(); super(); _id = _arg1; if (_arg2 != null){ if (_arg2.indexOf("(live)") > -1){ _filename = _arg2.substr((_arg2.lastIndexOf("(live)") + 6)); _isLive = true; } else { _filename = _arg2; }; }; this.duration = _arg3; _reduceLength = _arg4; _deliveryType = _arg5; _playOnce = _arg6; _metaData = _arg7; _autoPlay = _arg8; _provider = _arg9; if (_arg10 != null){ _playerConfig = _arg10; }; if (_arg11 != null){ _customProperties = _arg11; }; this.type = _arg12; if (_arg13 != null){ _startTime = _arg13; } else { _startTime = "00:00:00"; }; _fireTrackingEvents = _arg14; } public function isSMILType():Boolean{ if (_type != null){ return ((_type.toUpperCase() == "SMIL")); }; return (false); } public function onOVAConfigLoaded():void{ if (_type == null){ if (_onLoadListener != null){ _onLoadListener.onOVAConfigLoaded(); }; }; } public function get autoPlay():Boolean{ return (_autoPlay); } public function get customProperties():Object{ return (_customProperties); } public function get fireTrackingEvents():Boolean{ return (_fireTrackingEvents); } public function get filename():String{ return (_filename); } public function set customProperties(_arg1:Object):void{ _customProperties = _arg1; } public function set fireTrackingEvents(_arg1:Boolean):void{ _fireTrackingEvents = _arg1; } public function set autoPlay(_arg1:Boolean):void{ _autoPlay = _arg1; } public function set filename(_arg1:String):void{ _filename = _arg1; } public function resolveFilename(_arg1:ConfigLoadListener):void{ var _local2:Playlist; _onLoadListener = _arg1; if (isSMILType()){ _local2 = PlaylistController.getPlaylistObject(PlaylistController.getType(_type.toUpperCase())); _local2.loadFromURL(_filename, this); } else { onOVAConfigLoaded(); }; } public function get duration():String{ return (_duration); } public function get id():String{ return (_id); } public function set deliveryType(_arg1:String):void{ _deliveryType = _arg1; } public function set metaData(_arg1:Boolean):void{ _metaData = _arg1; } public function set duration(_arg1:String):void{ if (Timestamp.validate(_arg1)){ _duration = _arg1; } else { _duration = Timestamp.secondsStringToTimestamp(_arg1); }; } public function isOVAConfigLoading():Boolean{ return (!((_type == null))); } public function onPlaylistLoaded(_arg1:Playlist):void{ var _local2:PlaylistItem; if (_arg1.length > 0){ _local2 = _arg1.getTrackAtIndex(0); _type = null; _originalFilename = _filename; _smilResolvedAddress = true; if (_local2.isRTMP()){ _filename = _local2.filename; _baseURL = _local2.url; doLog(((("Stream filename has been resolved as RTMP filename: " + _filename) + " baseURL: ") + _baseURL), Debuggable.DEBUG_CONFIG); } else { _filename = _local2.getQualifiedStreamAddress(); doLog(("Stream filename has been resolved as filename: " + _filename), Debuggable.DEBUG_CONFIG); }; _id = _filename; }; onOVAConfigLoaded(); } public function set baseURL(_arg1:String):void{ _baseURL = _arg1; } public function get type():String{ return (_type); } public function set playOnce(_arg1:Boolean):void{ _playOnce = _arg1; } public function hasSMILResolvedAddress():Boolean{ return (_smilResolvedAddress); } public function get deliveryType():String{ return (_deliveryType); } public function get metaData():Boolean{ return (_metaData); } public function isStream():Boolean{ var _local1:RegExp; if (_filename != null){ _local1 = new RegExp("(?i).*\\.(jpg|png|gif|bmp)"); return ((_filename.match(_local1) == null)); }; return (true); } public function get startTime():String{ return (_startTime); } public function hasDuration():Boolean{ return (((!((_duration == null))) && ((getDurationAsInt() > 0)))); } public function get baseURL():String{ return (_baseURL); } public function get player():Object{ return (_playerConfig); } public function hasBaseURL():Boolean{ return (!((_baseURL == null))); } public function set reduceLength(_arg1:Boolean):void{ _reduceLength = _arg1; } public function get reduceLength():Boolean{ return (_reduceLength); } public function isLive():Boolean{ return (_isLive); } public function set provider(_arg1:String):void{ _provider = _arg1; } public function set startTime(_arg1:String):void{ if (_arg1 != null){ if (_arg1.indexOf(":") == 2){ _startTime = _arg1; } else { _startTime = Timestamp.secondsToTimestamp(int(_arg1)); }; }; } public function get playOnce():Boolean{ return (_playOnce); } public function get provider():String{ return (_provider); } public function getDurationAsInt():int{ return (Timestamp.timestampToSeconds(duration)); } public function set type(_arg1:String):void{ _type = _arg1; } public function get file():String{ return (this.filename); } } }//package org.openvideoads.vast.schedule
Section 199
//StreamSequence (org.openvideoads.vast.schedule.StreamSequence) package org.openvideoads.vast.schedule { import org.openvideoads.vast.tracking.*; import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; import org.openvideoads.vast.*; import org.openvideoads.util.*; public class StreamSequence extends Debuggable { protected var _totalDuration:int;// = 0 protected var _baseURL:String;// = null protected var _sequence:Array; protected var _vastController:VASTController;// = null protected var _bestBitrate:int;// = -1 protected var _timerFactor:int;// = 1 protected var _lastPauseTime:int;// = 0 protected var _lastTrackedStreamIndex:int;// = -1 public function StreamSequence(_arg1:VASTController=null, _arg2:Array=null, _arg3:AdSchedule=null, _arg4:int=-1, _arg5:String=null, _arg6:int=1, _arg7:String=null):void{ _sequence = new Array(); super(); if (_arg2 != null){ initialise(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } else { _vastController = _arg1; }; } public function resetPauseMarker():void{ _lastPauseTime = -1; } public function processMuteEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processMuteEvent(); }; } public function get vastController():VASTController{ return (_vastController); } public function getStreamAtIndex(_arg1:int):Stream{ if (_sequence != null){ if (_arg1 < _sequence.length){ return (_sequence[_arg1]); }; }; return (null); } public function getStreamSequenceIndexGivenOriginatingIndex(_arg1:int, _arg2:Boolean=false, _arg3:Boolean=false):int{ var _local4:int; var _local5:int; while (_local5 < _sequence.length) { if (!(_sequence[_local5] is AdSlot)){ if (_sequence[_local5].originatingStreamIndex == _arg1){ return ((_local5 - _local4)); }; if (((_sequence[_local5].isSlice()) && (_arg2))){ _local4++; }; } else { if (((_sequence[_local5].isMidRoll()) && (_arg3))){ _local4++; }; }; _local5++; }; return (-1); } public function hasBestBitRate():Boolean{ return ((_bestBitrate > -1)); } public function addStream(_arg1:Stream, _arg2:Boolean=true):void{ if (_arg2){ _arg1.declareTrackingPoints(0); }; _sequence.push(_arg1); } public function processPauseEvent(_arg1:Number):void{ var _local2:Stream = findSegmentRunningAtTime(_arg1); if (_local2 != null){ _local2.processPauseStream(); }; } public function processFullScreenEvent(_arg1:Number):void{ var _local2:Stream = findSegmentRunningAtTime(_arg1); if (_local2 != null){ _local2.processFullScreenEvent(); }; } public function resetAllTrackingPointsAssociatedWithStream(_arg1:int):void{ if (_sequence != null){ if ((((_arg1 > -1)) && ((_arg1 < _sequence.length)))){ _sequence[_arg1].resetAllTrackingPoints(); }; }; } protected function createNewMetricsTracker():Object{ var _local1:Object = new Object(); _local1.usedAdDuration = 0; _local1.remainingActiveShowDuration = 0; _local1.usedActiveShowDuration = 0; _local1.totalActiveShowDuration = 0; _local1.associatedStreamIndex = 0; _local1.atStart = false; _local1.hasOffsetStartTime = false; return (_local1); } public function getStartingStreamIndex():int{ var _local1:int; while (_local1 < _sequence.length) { if (_sequence[_local1].isStream()){ return (_local1); }; _local1++; }; return (0); } public function processTimeEvent(_arg1:int, _arg2:TimeEvent, _arg3:Boolean=true):void{ if ((((_arg1 > -1)) && ((_arg1 < _sequence.length)))){ _sequence[_arg1].processTimeEvent(_arg2, _arg3); _lastTrackedStreamIndex = _arg1; }; } public function processStopEvent(_arg1:Number):void{ var _local2:Stream = findSegmentRunningAtTime(_arg1); if (_local2 != null){ _local2.processStopStream(); }; } public function findSegmentRunningAtTime(_arg1:Number):Stream{ var _local2:int; var _local3:int; while (_local3 < _sequence.length) { _local2 = (_local2 + _sequence[_local3].getDurationAsInt()); if (_local2 > _arg1){ return (_sequence[_local3]); }; _local3++; }; return (null); } public function processUnmuteEvent(_arg1:Number):void{ var _local2:Stream = findSegmentRunningAtTime(_arg1); if (_local2 != null){ _local2.processUnmuteEvent(); }; } public function processStopEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processStopStream(); }; } public function processUnmuteEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processUnmuteEvent(); }; } public function resetDurationForAdStreamAtIndex(_arg1:int, _arg2:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].duration = _arg2; } else { doLog((((("ERROR: Cannot reset duration and tracking table for ad stream at index " + _arg1) + " as the stream sequence only has ") + _sequence.length) + " streams"), Debuggable.DEBUG_CONFIG); }; } public function initialise(_arg1:VASTController, _arg2:Array=null, _arg3:AdSchedule=null, _arg4:int=-1, _arg5:String=null, _arg6:int=1, _arg7:String=null):void{ _vastController = _arg1; _timerFactor = _arg6; _bestBitrate = _arg4; if (_arg5 != null){ _baseURL = _arg5; }; if (((!((_arg2 == null))) && (!((_arg3 == null))))){ _totalDuration = build(_arg2, _arg3, _arg7); }; } public function resetRepeatableTrackingPoints(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].resetRepeatableTrackingPoints(); }; } public function processFullScreenExitEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processFullScreenExitEvent(); }; } public function processResumeEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processResumeStream(); }; } public function processMuteEvent(_arg1:Number):void{ var _local2:Stream = findSegmentRunningAtTime(_arg1); if (_local2 != null){ _local2.processMuteEvent(); }; } public function streamAt(_arg1:int):Stream{ return (_sequence[_arg1]); } public function processPauseEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processPauseStream(); }; } public function markPaused(_arg1:int):void{ _lastPauseTime = _arg1; } public function addRemainingStreamSlice(_arg1:Array, _arg2:Object, _arg3:String, _arg4:int, _arg5:AdSlot=null):int{ var _local6:String = Timestamp.secondsToTimestamp(_arg2.usedActiveShowDuration); var _local7:Boolean; if (((!((_arg1[_arg2.associatedStreamIndex].startTime == undefined))) && (!((_arg1[_arg2.associatedStreamIndex].startTime == null))))){ _local7 = !((_arg1[_arg2.associatedStreamIndex].startTime == _local6)); }; addStream(new Stream(this, _vastController, _sequence.length, (((_arg3 + _arg2.associatedStreamIndex) + "-") + _sequence.length), _arg1[_arg2.associatedStreamIndex].id, (((_local7) && (_vastController.config.adsConfig.hasPostMidRollSeekPosition()))) ? _vastController.config.adsConfig.postMidRollSeekPositionAsTimestamp() : _local6, new String(_arg2.totalActiveShowDuration), new String(_arg2.totalActiveShowDuration), true, (_arg1[_arg2.associatedStreamIndex].hasBaseURL()) ? _arg1[_arg2.associatedStreamIndex].baseURL : _baseURL, "any", "any", -1, _arg1[_arg2.associatedStreamIndex].playOnce, _arg1[_arg2.associatedStreamIndex].metaData, _arg1[_arg2.associatedStreamIndex].autoPlay, _arg1[_arg2.associatedStreamIndex].provider, _arg1[_arg2.associatedStreamIndex].player, null, _arg2.associatedStreamIndex, _local7, _arg1[_arg2.associatedStreamIndex].customProperties, _arg1[_arg2.associatedStreamIndex].fireTrackingEvents, false, _arg5)); _arg2.usedActiveShowDuration = (_arg2.usedActiveShowDuration + _arg2.remainingActiveShowDuration); var _local8:int = (_arg4 + _arg2.remainingActiveShowDuration); doLog(("Total play duration is now " + _local8), Debuggable.DEBUG_SEGMENT_FORMATION); return (_local8); } public function get baseURL():String{ return (_baseURL); } public function hasBaseURL():Boolean{ return (!((_baseURL == null))); } public function get length():int{ return (_sequence.length); } public function get bestBitrate():int{ return (_bestBitrate); } public function get lastPauseTime():int{ return (_lastPauseTime); } public function build(_arg1:Array, _arg2:AdSchedule, _arg3:String=null):int{ var _local9:AdSlot; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:int; var _local16:int; var _local17:int; var _local18:int; doLog((((("*** BUILDING THE STREAM SEQUENCE FROM " + _arg1.length) + " SHOW STREAMS AND ") + _arg2.length) + " AD SLOTS"), Debuggable.DEBUG_SEGMENT_FORMATION); var _local4:Array = _arg2.adSlots; var _local5:Array = new Array(); var _local6:int; var _local7:Object = createNewMetricsTracker(); var _local8:Object = createNewMetricsTracker(); if (_arg2.hasLinearAds()){ _local9 = null; _local10 = 0; while (_local10 < _local4.length) { doLog((((((("Assessing ad slot at index " + _local10) + " - '") + AdSlot(_local4[_local10]).id) + "' - associatedStreamIndex is '") + _local4[_local10].associatedStreamIndex) + "'"), Debuggable.DEBUG_SEGMENT_FORMATION); if (_local8.associatedStreamIndex != _local4[_local10].associatedStreamIndex){ doLog((((("This ad slot applies to stream '" + _local4[_local10].associatedStreamIndex) + "' which is different than the stream we were previously referencing '") + _local8.associatedStreamIndex) + "'"), Debuggable.DEBUG_SEGMENT_FORMATION); _local7.remainingActiveShowDuration = (_local7.totalActiveShowDuration - _local7.usedActiveShowDuration); if (_local7.remainingActiveShowDuration > 0){ doLog((((((("Slotting in the remaining show segment (duration left: " + _local7.remainingActiveShowDuration) + ") before moving onto next stream - slice start point is ") + Timestamp.secondsToTimestamp(_local7.usedActiveShowDuration)) + ", segment duration is ") + _local7.remainingActiveShowDuration) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + addRemainingStreamSlice(_arg1, _local7, "show-e-", _local6, _local9)); _local7.remainingActiveShowDuration = 0; _local7.usedActiveShowDuration = _local7.totalActiveShowDuration; _local7.associatedStreamIndex = (_local7.associatedStreamIndex + 1); _local11 = _local7.associatedStreamIndex; while ((((_local11 < _local4[_local10].associatedStreamIndex)) && ((_local11 < _arg1.length)))) { doLog(("Sequencing stream " + _arg1[_local11].filename), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local11, ((("show-k-" + _local12) + "-") + _sequence.length), _arg1[_local11].id, _arg1[_local11].startTime, Timestamp.timestampToSecondsString(_arg1[_local11].duration), Timestamp.timestampToSecondsString(_arg1[_local11].duration), _arg1[_local11].reduceLength, (_arg1[_local11].hasBaseURL()) ? _arg1[_local11].baseURL : _baseURL, "any", "any", -1, _arg1[_local11].playOnce, _arg1[_local11].metaData, _arg1[_local11].autoPlay, _arg1[_local11].provider, _arg1[_local11].player, null, _local11, false, _arg1[_local11].customProperties, _arg1[_local11].fireTrackingEvents, false, _local9)); _local6 = (_local6 + Timestamp.timestampToSeconds(_arg1[_local11].duration)); _local7.associatedStreamIndex = _local11; doLog(("Total play duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); _local11++; }; }; _local8 = _local7; _local7 = createNewMetricsTracker(); _local7.associatedStreamIndex = _local4[_local10].associatedStreamIndex; }; if (_arg1.length > 0){ _local7.totalActiveShowDuration = Timestamp.timestampToSeconds(_arg1[_local4[_local10].associatedStreamIndex].duration); if ((((_local7.usedActiveShowDuration == 0)) && ((Timestamp.timestampToSeconds(_arg1[_local4[_local10].associatedStreamIndex].startTime) > 0)))){ doLog(("Show stream has a start time specified - setting starting point in schedule to " + _arg1[_local4[_local10].associatedStreamIndex].startTime), Debuggable.DEBUG_SEGMENT_FORMATION); _local7.usedActiveShowDuration = Timestamp.timestampToSeconds(_arg1[_local4[_local10].associatedStreamIndex].startTime); _local7.hasOffsetStartTime = true; }; }; if (((!(_local4[_local10].isLinear())) && (_local4[_local10].isActive()))){ _local4[_local10].associatedStreamIndex = _sequence.length; } else { if (((_local4[_local10].isLinear()) && (_local4[_local10].isActive()))){ if (_local4[_local10].isPreRoll()){ if (!_local4[_local10].isCopy()){ doLog(("Slotting in a pre-roll ad with id: " + _local4[_local10].id), Debuggable.DEBUG_SEGMENT_FORMATION); if (_local7.associatedStreamIndex != _local8.associatedStreamIndex){ if ((((_local8.usedActiveShowDuration > 0)) && ((_local8.usedActiveShowDuration < _local8.totalActiveShowDuration)))){ _local8.remainingActiveShowDuration = (_local8.totalActiveShowDuration - _local8.usedActiveShowDuration); doLog((("Slotting in the remaining (previous) show segment to play before pre-roll - segment duration is " + _local8.remainingActiveShowDuration) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + addRemainingStreamSlice(_arg1, _local8, "show-a-", _local6, _local9)); _local8.associatedStreamIndex = (_local8.associatedStreamIndex + 1); }; _local12 = _local8.associatedStreamIndex; while ((((_local12 < _local4[_local10].associatedStreamIndex)) && ((_local12 < _arg1.length)))) { doLog((("Sequencing stream " + _arg1[_local12].filename) + " - expected pre-roll advertising"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local12, ((("show-b-" + _local12) + "-") + _sequence.length), _arg1[_local12].id, _arg1[_local12].startTime, Timestamp.timestampToSecondsString(_arg1[_local12].duration), Timestamp.timestampToSecondsString(_arg1[_local12].duration), _arg1[_local12].reduceLength, (_arg1[_local12].hasBaseURL()) ? _arg1[_local12].baseURL : _baseURL, "any", "any", -1, _arg1[_local12].playOnce, _arg1[_local12].metaData, _arg1[_local12].autoPlay, _arg1[_local12].provider, _arg1[_local12].player, null, _local12, false, _arg1[_local12].customProperties, _arg1[_local12].fireTrackingEvents, false, _local9)); _local6 = (_local6 + Timestamp.timestampToSeconds(_arg1[_local12].duration)); _local8.associatedStreamIndex = _local12; doLog(("Total play duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); _local12++; }; }; }; } else { if (_local4[_local10].isMidRoll()){ doLog(("Slotting in a mid-roll ad with id: " + _local4[_local10].id), Debuggable.DEBUG_SEGMENT_FORMATION); _local9 = null; if (!_local4[_local10].isCopy()){ if (((!((_local8 == _local7))) && ((_local8.usedActiveShowDuration < _local8.totalActiveShowDuration)))){ _local8.remainingActiveShowDuration = (_local8.totalActiveShowDuration - _local8.usedActiveShowDuration); doLog((("But first we are slotting in the remaining (previous) show segment to play before mid-roll - segment duration is " + _local8.remainingActiveShowDuration) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + addRemainingStreamSlice(_arg1, _local8, "show-c-", _local6, _local9)); _local8.associatedStreamIndex = (_local8.associatedStreamIndex + 1); }; if (_arg1.length > 0){ _local13 = _local8.associatedStreamIndex; while ((((_local13 < _local4[_local10].associatedStreamIndex)) && ((_local13 < _arg1.length)))) { doLog((("Sequencing stream " + _arg1[_local13].filename) + " - expecting mid-roll advertising"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local13, ((("show-cf-" + _local13) + "-") + _sequence.length), _arg1[_local13].id, _arg1[_local13].startTime, Timestamp.timestampToSecondsString(_arg1[_local13].duration), Timestamp.timestampToSecondsString(_arg1[_local13].duration), _arg1[_local13].reduceLength, (_arg1[_local13].hasBaseURL()) ? _arg1[_local13].baseURL : _baseURL, "any", "any", -1, _arg1[_local13].playOnce, _arg1[_local13].metaData, _arg1[_local13].autoPlay, _arg1[_local13].provider, _arg1[_local13].player, null, _local13, false, _arg1[_local13].customProperties, _arg1[_local13].fireTrackingEvents, false, _local9)); _local6 = (_local6 + Timestamp.timestampToSeconds(_arg1[_local13].duration)); _local8.associatedStreamIndex = _local13; doLog(("Total play duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); _local13++; }; _local14 = (_local4[_local10].getStartTimeAsSeconds() - _local7.usedActiveShowDuration); doLog((((("Slicing in a segment from the show starting at " + Timestamp.secondsToTimestamp(_local7.usedActiveShowDuration)) + " running for ") + _local14) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _sequence.length, ((("show-d-" + _local4[_local10].associatedStreamIndex) + "-") + _sequence.length), _arg1[_local4[_local10].associatedStreamIndex].id, Timestamp.secondsToTimestamp(_local7.usedActiveShowDuration), new String(_local14), new String(_local7.totalActiveShowDuration), true, (_arg1[_local4[_local10].associatedStreamIndex].hasBaseURL()) ? _arg1[_local4[_local10].associatedStreamIndex].baseURL : _baseURL, "any", "any", -1, _arg1[_local4[_local10].associatedStreamIndex].playOnce, _arg1[_local4[_local10].associatedStreamIndex].metaData, _arg1[_local4[_local10].associatedStreamIndex].autoPlay, _arg1[_local4[_local10].associatedStreamIndex].provider, _arg1[_local4[_local10].associatedStreamIndex].player, null, _local4[_local10].associatedStreamIndex, true, _arg1[_local4[_local10].associatedStreamIndex].customProperties, _arg1[_local4[_local10].associatedStreamIndex].fireTrackingEvents, _local7.hasOffsetStartTime, _local9)); _local7.usedActiveShowDuration = (_local7.usedActiveShowDuration + _local14); _local6 = (_local6 + _local14); doLog(("Total play duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); }; }; } else { doLog(("Slotting in a post-roll ad with id: " + _local4[_local10].id), Debuggable.DEBUG_SEGMENT_FORMATION); _local9 = null; if (_arg1.length > 0){ if (!_local4[_local10].isCopy()){ if (_local7.associatedStreamIndex != _local8.associatedStreamIndex){ if ((((_local8.usedActiveShowDuration > 0)) && ((_local8.usedActiveShowDuration < _local8.totalActiveShowDuration)))){ _local8.remainingActiveShowDuration = (_local8.totalActiveShowDuration - _local8.usedActiveShowDuration); doLog((("Slotting in the remaining (previous) show segment to play before pre-roll - segment duration is " + _local8.remainingActiveShowDuration) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + addRemainingStreamSlice(_arg1, _local8, "show-h-", _local6, _local9)); }; _local15 = ((_local10)==0) ? _local8.associatedStreamIndex : (_local8.associatedStreamIndex + 1); _local16 = _local15; while ((((_local16 < _local4[_local10].associatedStreamIndex)) && ((_local16 < _arg1.length)))) { doLog((("Sequencing stream " + _arg1[_local16].filename) + " - expecting post-roll advertising"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local16, ((("show-hf-" + _local16) + "-") + _sequence.length), _arg1[_local16].id, _arg1[_local16].startTime, Timestamp.timestampToSecondsString(_arg1[_local16].duration), Timestamp.timestampToSecondsString(_arg1[_local16].duration), _arg1[_local16].reduceLength, (_arg1[_local16].hasBaseURL()) ? _arg1[_local16].baseURL : _baseURL, "any", "any", -1, _arg1[_local16].playOnce, _arg1[_local16].metaData, _arg1[_local16].autoPlay, _arg1[_local16].provider, _arg1[_local16].player, null, _local16, false, _arg1[_local16].customProperties, _arg1[_local16].fireTrackingEvents, false, _local9)); _local6 = (_local6 + Timestamp.timestampToSeconds(_arg1[_local16].duration)); _local8.associatedStreamIndex = _local16; doLog(("Total play duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); _local16++; }; }; _local7.remainingActiveShowDuration = (_local7.totalActiveShowDuration - _local7.usedActiveShowDuration); if (_local7.remainingActiveShowDuration > 0){ doLog((((("Slotting in the remaining show segment to play before post-roll - start point is " + Timestamp.secondsToTimestamp(_local7.usedActiveShowDuration)) + ", segment duration is ") + _local7.remainingActiveShowDuration) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + addRemainingStreamSlice(_arg1, _local7, "show-e-", _local6, _local9)); if ((_local10 + 1) < _local4.length){ _local7.associatedStreamIndex = (_local7.associatedStreamIndex + 1); }; }; }; }; }; }; doLog((((("Inserting ad to play for " + _local4[_local10].duration) + " seconds from ") + _local6) + " seconds into the stream"), Debuggable.DEBUG_SEGMENT_FORMATION); _local4[_local10].streamStartTime = 0; _local4[_local10].parent = this; addStream(_local4[_local10]); _local7.usedAdDuration = (_local7.usedAdDuration + _local4[_local10].getDurationAsInt()); doLog(("Have slotted in the ad with id " + _local4[_local10].id), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + _local4[_local10].getDurationAsInt()); doLog(("Total stream duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); } else { doLog(((((("Ad slot " + _local4[_local10].id) + " is either not linear/pop or is NOT active - active is ") + _local4[_local10].isActive()) + ", associatedStreamIndex: ") + _local7.associatedStreamIndex), Debuggable.DEBUG_SEGMENT_FORMATION); _arg2.adSlots[_local10].associatedStreamStartTime = _local6; }; }; _local10++; }; if (_local7.usedActiveShowDuration < _local7.totalActiveShowDuration){ _local7.remainingActiveShowDuration = (_local7.totalActiveShowDuration - _local7.usedActiveShowDuration); doLog((("Slotting in the remaining show segment right at the end - segment duration is " + _local7.remainingActiveShowDuration) + " seconds"), Debuggable.DEBUG_SEGMENT_FORMATION); _local6 = (_local6 + addRemainingStreamSlice(_arg1, _local7, "show-f-", _local6, _local9)); }; if ((_local7.associatedStreamIndex + 1) < _arg1.length){ _local17 = (_local7.associatedStreamIndex + 1); while (_local17 < _arg1.length) { doLog((("Sequencing remaining stream " + _arg1[_local17].filename) + " without any advertising at all"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local17, ("show-g-" + _local17), _arg1[_local17].id, _arg1[_local17].startTime, Timestamp.timestampToSecondsString(_arg1[_local17].duration), Timestamp.timestampToSecondsString(_arg1[_local17].duration), _arg1[_local17].reduceLength, (_arg1[_local17].hasBaseURL()) ? _arg1[_local17].baseURL : _baseURL, "any", "any", -1, _arg1[_local17].playOnce, _arg1[_local17].metaData, _arg1[_local17].autoPlay, _arg1[_local17].provider, _arg1[_local17].player, null, _local17, false, _arg1[_local17].customProperties, _arg1[_local17].fireTrackingEvents, false, _local9)); _local6 = (_local6 + Timestamp.timestampToSeconds(_arg1[_local17].duration)); doLog(("Total play duration is now " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); _local17++; }; }; } else { doLog("No video ad streams to schedule, just scheduling the main stream(s)", Debuggable.DEBUG_SEGMENT_FORMATION); _local18 = 0; while (_local18 < _arg1.length) { doLog((("Sequencing stream " + _arg1[_local18].filename) + " without any advertising at all"), Debuggable.DEBUG_SEGMENT_FORMATION); addStream(new Stream(this, _vastController, _local18, ("show-h-" + _local18), _arg1[_local18].id, _arg1[_local18].startTime, Timestamp.timestampToSecondsString(_arg1[_local18].duration), Timestamp.timestampToSecondsString(_arg1[_local18].duration), _arg1[_local18].reduceLength, (_arg1[_local18].hasBaseURL()) ? _arg1[_local18].baseURL : _baseURL, "any", "any", -1, _arg1[_local18].playOnce, _arg1[_local18].metaData, _arg1[_local18].autoPlay, _arg1[_local18].provider, _arg1[_local18].player, null, _local18, false, _arg1[_local18].customProperties, _arg1[_local18].fireTrackingEvents, false, _local9)); _local6 = (_local6 + Timestamp.timestampToSeconds(_arg1[_local18].duration)); _local18++; }; }; if (((!((_arg3 == null))) && ((_sequence.length > 0)))){ _sequence[0].previewImage = _arg3; doLog(("Have set preview image on first stream - image is: " + _arg3), Debuggable.DEBUG_SEGMENT_FORMATION); }; markBlockEndsAndAttachPrerolls(); doLog(("Total (Final) stream duration is " + _local6), Debuggable.DEBUG_SEGMENT_FORMATION); doLog((("*** STREAM SEQUENCE BUILT - " + _sequence.length) + " STREAMS INDEXED "), Debuggable.DEBUG_SEGMENT_FORMATION); return (_local6); } protected function markBlockEndsAndAttachPrerolls():void{ var _local3:Stream; var _local4:int; doLog("Deriving end of block markers and attaching pre-rolls to streams for future reference...", Debuggable.DEBUG_SEGMENT_FORMATION); var _local1 = -1; var _local2 = -1; if (_sequence.length > 0){ _local4 = 0; while (_local4 < _sequence.length) { _sequence[_local4].index = _local4; if (((!((_sequence[_local4].originatingStreamIndex == _local1))) && ((_local1 > -1)))){ _local3 = _sequence[(_local4 - 1)]; doLog((((("+ Marking stream " + _local3.streamName) + " at index ") + (_local4 - 1)) + " as end block marker"), Debuggable.DEBUG_SEGMENT_FORMATION); _local3.endBlockMarker = true; }; if (_local4 > 0){ _vastController.onScheduleStream((_local4 - 1), _sequence[(_local4 - 1)]); }; _local1 = _sequence[_local4].originatingStreamIndex; if ((_sequence[_local4] is AdSlot)){ if (AdSlot(_sequence[_local4]).isPreRoll()){ if (_local2 == -1){ _local2 = _local4; }; }; } else { if (_local2 > -1){ Stream(_sequence[_local4]).associatedPrerollAdSlot = _sequence[_local2]; doLog(((("Have determined that the first pre-roll at index " + _local2) + " should be attached to show clip at index ") + _local4), Debuggable.DEBUG_SEGMENT_FORMATION); _local2 = -1; }; }; _local4++; }; _local3 = _sequence[(_sequence.length - 1)]; doLog((((("+ Marking stream " + _local3.streamName) + " at index ") + (_sequence.length - 1)) + " as LAST end block marker"), Debuggable.DEBUG_SEGMENT_FORMATION); _local3.endBlockMarker = true; _vastController.onScheduleStream((_sequence.length - 1), _local3); }; } public function get totalDuration():int{ return (_totalDuration); } public function processFullScreenEventForStream(_arg1:int):void{ if (_arg1 < _sequence.length){ _sequence[_arg1].processFullScreenEvent(); }; } public function processResumeEvent(_arg1:Number):void{ var _local2:Stream = findSegmentRunningAtTime(_arg1); if (_local2 != null){ _local2.processResumeStream(); }; } } }//package org.openvideoads.vast.schedule
Section 200
//AdServerConfig (org.openvideoads.vast.server.config.AdServerConfig) package org.openvideoads.vast.server.config { import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.request.direct.*; public class AdServerConfig extends Debuggable { protected var _pageStreamUrl:String;// = null protected var _filterOnNonLinearAdMimeTypes:Boolean;// = false protected var _encodeVars:Boolean;// = false protected var _format:String;// = "vast1" protected var _allowVPAID:Boolean;// = false protected var _pageUrl:String;// = null protected var _filterOnLinearAdMimeTypes:Boolean;// = false protected var _acceptedNonLinearAdMimeTypes:Array; protected var _forceImpressionServing:Boolean;// = false protected var _tagParams:Object;// = null protected var _playerHeight:int;// = -1 protected var _mediaUrl:String;// = null protected var _streamUrl:String;// = null protected var _maxDuration:int;// = -1 protected var _allowAdRepetition:Boolean;// = false protected var _transformers:Array; protected var _defaultAdServer:Boolean;// = false protected var _parseWrappedAdTags:Boolean;// = false protected var _mediaTitle:String;// = null protected var _addCacheBuster:Boolean;// = false protected var _oneAdPerRequest:Boolean;// = false protected var _partnerId:String;// = null protected var _apiServerAddress:String;// = "http://localhost" protected var _timeoutInSeconds:int;// = -1 protected var _playerWidth:int;// = -1 protected var _mediaKeywords:String;// = null protected var _fireTrackingOnReplay:Boolean;// = false protected var _id:String;// = "" protected var _serverType:String;// = "direct" protected var _ensureSingleAdUnitRecordedPerInlineAd:Boolean;// = true protected var _asVersion:String;// = "3" protected var _mediaDescription:String;// = null protected var _tag:String;// = null protected var _mediaId:String;// = null protected var _mediaCategories:String;// = null protected var _customProperties:CustomProperties; protected var _requestTemplate:String;// = null protected var _acceptedLinearAdMimeTypes:Array; protected var _failoverServers:Array;// = null public function AdServerConfig(_arg1:String=null, _arg2:Object=null){ _acceptedLinearAdMimeTypes = new Array(); _acceptedNonLinearAdMimeTypes = new Array(); _transformers = new Array(); super(); if (_arg1 != null){ _serverType = _arg1; }; _customProperties = this.defaultCustomProperties; initialise(_arg2); } public function set pageStreamUrl(_arg1:String):void{ _pageStreamUrl = _arg1; } public function set transformers(_arg1:Array):void{ _transformers = _arg1; } public function get pageStreamUrl():String{ return (_pageStreamUrl); } public function hasTagParamsSpecified():Boolean{ return (!((_tagParams == null))); } public function set partnerId(_arg1:String):void{ _partnerId = _arg1; } public function set customProperties(_arg1:CustomProperties):void{ _customProperties = _arg1; } public function get partnerId():String{ return (_partnerId); } public function get format():String{ return (_format); } public function get id():String{ return (_id); } public function get serverType():String{ return (_serverType); } public function get forceImpressionServing():Boolean{ return (_forceImpressionServing); } public function get mediaCategories():String{ return (_mediaCategories); } public function get mediaId():String{ return (_mediaId); } public function get requestTemplate():String{ return (_requestTemplate); } public function get mediaKeywords():String{ return (_mediaKeywords); } public function hasTransformers():Boolean{ if (_transformers != null){ return ((_transformers.length > 0)); }; return (false); } public function get timeoutInSeconds():int{ return (_timeoutInSeconds); } public function set tag(_arg1:String):void{ _tag = _arg1; } public function set id(_arg1:String):void{ _id = _arg1; } public function get apiServerAddress():String{ return (_apiServerAddress); } public function set mediaCategories(_arg1:String):void{ _mediaCategories = _arg1; } public function hasFailoverServers():Boolean{ return ((failoverServerCount > 0)); } public function get failoverServers():Array{ return (_failoverServers); } public function get asVersion():String{ return (_asVersion); } public function set forceImpressionServing(_arg1:Boolean):void{ _forceImpressionServing = _arg1; doLog(("Forcing impression serving: " + _forceImpressionServing), Debuggable.DEBUG_CONFIG); } public function get failoverServerCount():int{ if (_failoverServers != null){ return (_failoverServers.length); }; return (0); } public function hasSpecificAcceptedLinearAdMimeTypesDeclared():Boolean{ if (_acceptedLinearAdMimeTypes != null){ return ((_acceptedLinearAdMimeTypes.length > 0)); }; return (false); } public function set mediaId(_arg1:String):void{ _mediaId = _arg1; } public function get maxDuration():int{ return (_maxDuration); } public function set serverType(_arg1:String):void{ _serverType = _arg1; } public function set filterOnLinearAdMimeTypes(_arg1:Boolean):void{ _filterOnLinearAdMimeTypes = _arg1; } public function set defaultAdServer(_arg1:Boolean):void{ _defaultAdServer = _arg1; } public function get type():String{ return (this.serverType); } public function set maxDuration(_arg1:int):void{ _maxDuration = _arg1; } public function set requestTemplate(_arg1:String):void{ _requestTemplate = _arg1; } public function get addCacheBuster():Boolean{ return (_addCacheBuster); } public function set mediaKeywords(_arg1:String):void{ _mediaKeywords = _arg1; } public function get pageUrl():String{ return (_pageUrl); } public function get encodeVars():Boolean{ return (_encodeVars); } public function set apiServerAddress(_arg1:String):void{ _apiServerAddress = _arg1; } public function get playerHeight():int{ return (_playerHeight); } public function set timeoutInSeconds(_arg1:int):void{ _timeoutInSeconds = _arg1; } public function set oneAdPerRequest(_arg1:Boolean):void{ _oneAdPerRequest = _arg1; } public function set ensureSingleAdUnitRecordedPerInlineAd(_arg1:Boolean):void{ _ensureSingleAdUnitRecordedPerInlineAd = _arg1; } public function get allowVPAID():Boolean{ return (_allowVPAID); } public function get transformers():Array{ return (_transformers); } public function set type(_arg1:String):void{ this.serverType = _arg1; } public function set failoverServers(_arg1:Array):void{ _failoverServers = _arg1; } public function get playerWidth():int{ return (_playerWidth); } public function set tagParams(_arg1:Object):void{ _tagParams = _arg1; } public function get acceptedLinearAdMimeTypes():Array{ return (_acceptedLinearAdMimeTypes); } public function get mediaDescription():String{ return (_mediaDescription); } public function get template():String{ if (_requestTemplate != null){ return (_requestTemplate); }; return (this.defaultTemplate); } public function clone():AdServerConfig{ var _local1:AdServerConfig = AdServerConfigFactory.getAdServerConfig(_serverType); _local1.allowAdRepetition = _allowAdRepetition; _local1.serverType = _serverType; _local1.oneAdPerRequest = _oneAdPerRequest; _local1.customProperties = _customProperties; _local1.template = _requestTemplate; _local1.apiServerAddress = _apiServerAddress; _local1.defaultAdServer = _defaultAdServer; _local1.forceImpressionServing = _forceImpressionServing; _local1.requestTemplate = _requestTemplate; _local1.failoverServers = _failoverServers; _local1.tag = _tag; _local1.forceImpressionServing = _forceImpressionServing; _local1.allowVPAID = _allowVPAID; _local1.maxDuration = _maxDuration; _local1.asVersion = _asVersion; _local1.playerWidth = _playerWidth; _local1.playerHeight = _playerHeight; _local1.mediaUrl = _mediaUrl; _local1.pageStreamUrl = _pageStreamUrl; _local1.pageUrl = _pageUrl; _local1.streamUrl = _streamUrl; _local1.format = _format; _local1.partnerId = _partnerId; _local1.mediaId = _mediaId; _local1.mediaTitle = _mediaTitle; _local1.mediaDescription = _mediaDescription; _local1.mediaCategories = _mediaCategories; _local1.mediaKeywords = _mediaKeywords; _local1.addCacheBuster = _addCacheBuster; _local1.tagParams = _tagParams; _local1.timeoutInSeconds = _timeoutInSeconds; _local1.encodeVars = _encodeVars; return (_local1); } public function get customProperties():CustomProperties{ return (_customProperties); } public function set asVersion(_arg1:String):void{ _asVersion = _arg1; } public function getFailoverAdServerConfigAtIndex(_arg1:int):AdServerConfig{ if ((((failoverServerCount > _arg1)) && ((failoverServerCount > 0)))){ return (_failoverServers[_arg1]); }; return (null); } public function get apiAddress():String{ return (this.apiServerAddress); } public function get tag():String{ return (_tag); } public function set parseWrappedAdTags(_arg1:Boolean):void{ _parseWrappedAdTags = _arg1; doLog(("Parsing wrapped ad tags for OVA var substitution: " + _parseWrappedAdTags), Debuggable.DEBUG_CONFIG); } public function set streamUrl(_arg1:String):void{ _streamUrl = _arg1; } public function set mediaTitle(_arg1:String):void{ _mediaTitle = _arg1; } public function get filterOnLinearAdMimeTypes():Boolean{ return (_filterOnLinearAdMimeTypes); } public function matchesId(_arg1:String):Boolean{ if (_id == null){ return ((_arg1 == null)); }; if (_arg1 == null){ return (false); }; return ((_id.toUpperCase() == _arg1.toUpperCase())); } public function initialise(_arg1:Object):void{ var _local2:int; var _local3:AdServerConfig; if (_arg1 != null){ if (_arg1.id != undefined){ _id = _arg1.id; }; if (_arg1.type != undefined){ _serverType = _arg1.type; }; if (_arg1.apiAddress != undefined){ _apiServerAddress = _arg1.apiAddress; }; if (_arg1.requestTemplate != undefined){ _requestTemplate = _arg1.requestTemplate; }; if (_arg1.allowAdRepetition != undefined){ _allowAdRepetition = _arg1.allowAdRepetition; }; if (_arg1.ensureSingleAdUnitRecordedPerInlineAd != undefined){ _ensureSingleAdUnitRecordedPerInlineAd = _arg1.ensureSingleAdUnitRecordedPerInlineAd; }; if (_arg1.oneAdPerRequest != undefined){ _oneAdPerRequest = _arg1.oneAdPerRequest; }; if (_arg1.customProperties != undefined){ _customProperties.addProperties(_arg1.customProperties); }; if (_arg1.tagParams != undefined){ _customProperties.addProperties(_arg1.tagParams); _tagParams = _arg1.tagParams; }; if (_arg1.defaultAdServer != undefined){ _defaultAdServer = _arg1.defaultAdServer; }; if (_arg1.tag != undefined){ _tag = _arg1.tag; }; if (_arg1.allowVPAID != undefined){ _allowVPAID = _arg1.allowVPAID; }; if (_arg1.asVersion != undefined){ _asVersion = _arg1.asVersion; }; if (_arg1.timeoutInSeconds != undefined){ if ((_arg1.timeoutInSeconds is String)){ _timeoutInSeconds = int(_arg1.timeoutInSeconds); } else { _timeoutInSeconds = _arg1.timeoutInSeconds; }; }; if (_arg1.maxDuration != undefined){ if ((_arg1.maxDuration is String)){ _maxDuration = int(_arg1.maxDuration); } else { _maxDuration = _arg1.maxDuration; }; }; if (_arg1.playerWidth != undefined){ if ((_arg1.playerWidth is String)){ _playerWidth = int(_arg1.playerWidth); } else { _playerWidth = _arg1.playerWidth; }; }; if (_arg1.playerHeight != undefined){ if ((_arg1.playerHeight is String)){ _playerHeight = int(_arg1.playerHeight); } else { _playerHeight = _arg1.playerHeight; }; }; if (_arg1.mediaUrl != undefined){ _mediaUrl = _arg1.mediaUrl; }; if (_arg1.pageStreamUrl != undefined){ _pageStreamUrl = _arg1.pageStreamUrl; }; if (_arg1.pageUrl != undefined){ _pageUrl = _arg1.pageUrl; }; if (_arg1.format != undefined){ _format = _arg1.format; }; if (_arg1.partnerId != undefined){ _partnerId = _arg1.partnerId; }; if (_arg1.mediaId != undefined){ _mediaId = _arg1.mediaId; }; if (_arg1.mediaTitle != undefined){ _mediaTitle = _arg1.mediaTitle; }; if (_arg1.mediaDescription != undefined){ _mediaDescription = _arg1.mediaDescription; }; if (_arg1.mediaCategories != undefined){ _mediaCategories = _arg1.mediaCategories; }; if (_arg1.mediaKeywords != undefined){ _mediaKeywords = _arg1.mediaKeywords; }; if (_arg1.forceImpressionServing != undefined){ this.forceImpressionServing = _arg1.forceImpressionServing; }; if (_arg1.addCacheBuster != undefined){ this.addCacheBuster = _arg1.addCacheBuster; }; if (_arg1.parseWrappedAdTags != undefined){ this.parseWrappedAdTags = _arg1.parseWrappedAdTags; }; if (_arg1.acceptedLinearAdMimeTypes != undefined){ this.acceptedLinearAdMimeTypes = _arg1.acceptedLinearAdMimeTypes; }; if (_arg1.filterOnLinearAdMimeTypes != undefined){ if ((_arg1.filterOnLinearAdMimeTypes is String)){ this.filterOnLinearAdMimeTypes = ((_arg1.filterOnLinearAdMimeTypes.toUpperCase())=="TRUE") ? true : false; } else { this.filterOnLinearAdMimeTypes = _arg1.filterOnLinearAdMimeTypes; }; }; if (_arg1.encodeVars != undefined){ if ((_arg1.encodeVars is String)){ this.encodeVars = ((_arg1.encodeVars.toUpperCase())=="TRUE") ? true : false; } else { this.encodeVars = _arg1.encodeVars; }; }; if (_arg1.failoverServers != undefined){ if ((_arg1.failoverServers is Array)){ _failoverServers = new Array(); _local2 = 0; while (_local2 < _arg1.failoverServers.length) { if ((_arg1.failoverServers[_local2] is AdServerConfig)){ _failoverServers.push(_arg1.failoverServers[_local2]); } else { if (_arg1.failoverServers[_local2].type != undefined){ _local3 = AdServerConfigFactory.getAdServerConfig(_arg1.failoverServers[_local2].type); _local3.initialise(_arg1.failoverServers[_local2]); } else { _local3 = new DirectServerConfig(_arg1.failoverServers[_local2]); }; _failoverServers.push(_local3); }; _local2++; }; }; }; if (_arg1.transformers != undefined){ if ((_arg1.transformers is String)){ _transformers = [_arg1.transformers]; } else { if ((_arg1.transformers is Array)){ _transformers = _arg1.transformers; }; }; }; }; } public function get oneAdPerRequest():Boolean{ return (_oneAdPerRequest); } public function get defaultAdServer():Boolean{ return (_defaultAdServer); } public function set encodeVars(_arg1:Boolean):void{ _encodeVars = _arg1; } public function typeKey():String{ return ((serverType + (oneAdPerRequest) ? "-single" : ("-multiple-" + _uid))); } public function set allowAdRepetition(_arg1:Boolean):void{ _allowAdRepetition = _arg1; } public function set playerWidth(_arg1:int):void{ _playerWidth = _arg1; } public function set addCacheBuster(_arg1:Boolean):void{ _addCacheBuster = _arg1; doLog(("Cache buster to be added to wrapped ad tag: " + _addCacheBuster), Debuggable.DEBUG_CONFIG); } public function get parseWrappedAdTags():Boolean{ return (_parseWrappedAdTags); } public function get tagParams():Object{ return (_tagParams); } public function set mediaUrl(_arg1:String):void{ _mediaUrl = _arg1; } public function set pageUrl(_arg1:String):void{ _pageUrl = _arg1; } public function get allowAdRepetition():Boolean{ return (_allowAdRepetition); } public function get ensureSingleAdUnitRecordedPerInlineAd():Boolean{ return (_ensureSingleAdUnitRecordedPerInlineAd); } public function set playerHeight(_arg1:int):void{ _playerHeight = _arg1; } protected function get defaultTemplate():String{ return (""); } protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties()); } public function get streamUrl():String{ return (_streamUrl); } public function get mediaUrl():String{ return (_mediaUrl); } public function get mediaTitle():String{ return (_mediaTitle); } public function set mediaDescription(_arg1:String):void{ _mediaDescription = _arg1; } public function set allowVPAID(_arg1:Boolean):void{ _allowVPAID = _arg1; } public function set acceptedLinearAdMimeTypes(_arg1:Array):void{ _acceptedLinearAdMimeTypes = _arg1; } public function set template(_arg1:String):void{ _requestTemplate = _arg1; } public function set format(_arg1:String):void{ _format = _arg1; } public function isAcceptedLinearAdMimeType(_arg1:String):Boolean{ if (hasSpecificAcceptedLinearAdMimeTypesDeclared() == false){ return (true); }; var _local2:int; while (_local2 < _acceptedLinearAdMimeTypes.length) { if (StringUtils.matchesIgnoreCase(_acceptedLinearAdMimeTypes[_local2], _arg1)){ return (true); }; _local2++; }; return (false); } public function set apiAddress(_arg1:String):void{ this.apiServerAddress = _arg1; } } }//package org.openvideoads.vast.server.config
Section 201
//AdServerConfigFactory (org.openvideoads.vast.server.config.AdServerConfigFactory) package org.openvideoads.vast.server.config { import org.openvideoads.base.*; import org.openvideoads.vast.server.request.direct.*; import org.openvideoads.vast.server.request.adform.*; import org.openvideoads.vast.server.request.liverail.*; import org.openvideoads.vast.server.request.lightningcast.*; import org.openvideoads.vast.server.request.openx.*; import org.openvideoads.vast.server.request.doubleclick.*; import org.openvideoads.vast.server.request.injected.*; import org.openvideoads.vast.server.request.oas.*; import org.openvideoads.vast.server.request.adify.*; import org.openvideoads.vast.server.request.oasis.*; import org.openvideoads.vast.server.request.adtech.*; public class AdServerConfigFactory { public static const AD_SERVER_ADIFY:String = "ADIFY"; public static const AD_SERVER_ADFORM:String = "ADFORM"; public static const AD_SERVER_DIRECT:String = "DIRECT"; public static const AD_SERVER_OASIS:String = "OASIS"; public static const AD_SERVER_OPENX_V2:String = "OPENX"; public static const AD_SERVER_LIGHTNINGCAST:String = "LIGHTNINGCAST"; public static const AD_SERVER_OPENX_V3:String = "OPENX3"; public static const AD_SERVER_ADTECH:String = "ADTECH"; public static const AD_SERVER_LIVERAIL:String = "LIVERAIL"; public static const AD_SERVER_DART:String = "DART"; public static const AD_SERVER_OAS:String = "OAS"; public static const AD_SERVER_INJECT:String = "INJECT"; public static function getAdServerConfig(_arg1:String):AdServerConfig{ switch (_arg1.toUpperCase()){ case AD_SERVER_ADIFY: return (new AdifyServerConfig()); case AD_SERVER_ADFORM: return (new AdformServerConfig()); case AD_SERVER_ADTECH: return (new AdTechServerConfig()); case AD_SERVER_DART: return (new DARTServerConfig()); case AD_SERVER_DIRECT: return (new DirectServerConfig()); case AD_SERVER_INJECT: return (new InjectedServerConfig()); case AD_SERVER_LIGHTNINGCAST: return (new LightningcastServerConfig()); case AD_SERVER_LIVERAIL: return (new LiverailServerConfig()); case AD_SERVER_OAS: return (new OasServerConfig()); case AD_SERVER_OASIS: return (new OasisServerConfig()); case AD_SERVER_OPENX_V2: return (new OpenXServerConfig()); case AD_SERVER_OPENX_V3: return (new OpenX3ServerConfig()); default: Debuggable.getInstance().doLog((("Cannot create AdServerConfig object for type " + _arg1) + " - creating Direct type as default"), Debuggable.DEBUG_CONFIG); return (new DirectServerConfig()); }; } } }//package org.openvideoads.vast.server.config
Section 202
//CustomProperties (org.openvideoads.vast.server.config.CustomProperties) package org.openvideoads.vast.server.config { import org.openvideoads.base.*; import flash.utils.*; public class CustomProperties extends Debuggable { protected var _properties:Dictionary; public function CustomProperties(_arg1:Object=null){ _properties = new Dictionary(); super(); addProperties(_arg1); } public function completeTemplate(_arg1:String, _arg2:Boolean=false):String{ var _local3:RegExp; var _local4:String; var _local5:String; var _local6:String; for (_local5 in _properties) { _local6 = (("__" + _local5) + "__"); if (_arg1.indexOf(_local6) > -1){ _local3 = new RegExp(_local6, "g"); if ((_properties[_local5] is Array)){ _arg1 = _arg1.replace(_local3, convertArrayToParamString(_properties[_local5])); } else { _arg1 = _arg1.replace(_local3, _properties[_local5]); }; } else { if (_arg2){ _arg1 = (_arg1 + ((("&" + _local5) + "=") + _properties[_local5])); }; }; }; return (_arg1); } protected function convertArrayToParamString(_arg1:Array):String{ var _local2 = ""; var _local3:int; while (_local3 < _arg1.length) { if (_local2.length > 0){ _local2 = (_local2 + "&"); }; _local2 = (_local2 + _arg1[_local3]); _local3++; }; return (_local2); } public function addProperties(_arg1:Object):void{ var _local2:String; if (_arg1 != null){ for (_local2 in _arg1) { _properties[_local2] = _arg1[_local2]; }; }; } } }//package org.openvideoads.vast.server.config
Section 203
//TemplateEvent (org.openvideoads.vast.server.events.TemplateEvent) package org.openvideoads.vast.server.events { import org.openvideoads.vast.server.response.*; import flash.events.*; public class TemplateEvent extends Event { protected var _data:Object;// = null public static const LOADED:String = "loaded"; public static const LOAD_FAILED:String = "load-failed"; public static const LOAD_TIMEOUT:String = "load-timeout"; public static const LOAD_DEFERRED:String = "load-deferred"; public function TemplateEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); if (_arg2 != null){ _data = _arg2; }; } public function get template():AdServerTemplate{ return ((_data as AdServerTemplate)); } public function hasData():Boolean{ return (!((_data == null))); } public function get data():Object{ return (_data); } public function set data(_arg1:Object):void{ _data = _arg1; } public function hasTemplate():Boolean{ return (((!((_data == null))) && ((data is AdServerTemplate)))); } override public function clone():Event{ return (new TemplateEvent(type, _data, bubbles, cancelable)); } override public function toString():String{ if (_data != null){ return (_data.toString()); }; return ("No error message provided"); } } }//package org.openvideoads.vast.server.events
Section 204
//AdformServerConfig (org.openvideoads.vast.server.request.adform.AdformServerConfig) package org.openvideoads.vast.server.request.adform { import org.openvideoads.vast.server.config.*; public class AdformServerConfig extends AdServerConfig { public function AdformServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("Adform", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__/?bn=__zone__&ord=__timestamp__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({api-address:"http://track.adform.net/serving/videoad"})); } } }//package org.openvideoads.vast.server.request.adform
Section 205
//AdformVASTAdRequest (org.openvideoads.vast.server.request.adform.AdformVASTAdRequest) package org.openvideoads.vast.server.request.adform { import org.openvideoads.vast.server.request.*; public class AdformVASTAdRequest extends AdServerRequest { public function AdformVASTAdRequest(_arg1:AdformServerConfig=null){ super(_arg1); } } }//package org.openvideoads.vast.server.request.adform
Section 206
//AdifyServerConfig (org.openvideoads.vast.server.request.adify.AdifyServerConfig) package org.openvideoads.vast.server.request.adify { import org.openvideoads.vast.server.config.*; public class AdifyServerConfig extends AdServerConfig { public function AdifyServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("Adify", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__/ad?enc=__enc__&asId=__zone__&sf=__sf__&ct=__ct__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({enc:"4", sf:"0", ct:"256"})); } } }//package org.openvideoads.vast.server.request.adify
Section 207
//AdifyVASTAdRequest (org.openvideoads.vast.server.request.adify.AdifyVASTAdRequest) package org.openvideoads.vast.server.request.adify { import org.openvideoads.vast.server.request.*; public class AdifyVASTAdRequest extends AdServerRequest { public function AdifyVASTAdRequest(_arg1:AdifyServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new AdifyServerConfig()); } } }//package org.openvideoads.vast.server.request.adify
Section 208
//AdTechServerConfig (org.openvideoads.vast.server.request.adtech.AdTechServerConfig) package org.openvideoads.vast.server.request.adtech { import org.openvideoads.vast.server.config.*; public class AdTechServerConfig extends AdServerConfig { public function AdTechServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; this.forceImpressionServing = true; super("AdTech", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__/__zone__/__nondynamic__;alias=__alias____aliaspostfix__;key=__key__;__key-value__;__cookie-name__=__cookie-value__;grp=__group__;misc=__random-number__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({nondynamic:"noperf=1;cc=2;header=yes;cookie=yes;adct=204", alias:"", aliaspostfix:"", key:"key1+key2", key-value:"", cookie-name:"", cookie-value:"", group:"[group]"})); } } }//package org.openvideoads.vast.server.request.adtech
Section 209
//AdTechVASTAdRequest (org.openvideoads.vast.server.request.adtech.AdTechVASTAdRequest) package org.openvideoads.vast.server.request.adtech { import org.openvideoads.vast.server.request.*; public class AdTechVASTAdRequest extends AdServerRequest { public function AdTechVASTAdRequest(_arg1:AdTechServerConfig=null){ super(_arg1); } } }//package org.openvideoads.vast.server.request.adtech
Section 210
//DirectServerConfig (org.openvideoads.vast.server.request.direct.DirectServerConfig) package org.openvideoads.vast.server.request.direct { import org.openvideoads.vast.server.config.*; public class DirectServerConfig extends AdServerConfig { public function DirectServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("Direct", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__"); } } }//package org.openvideoads.vast.server.request.direct
Section 211
//DirectVASTAdRequest (org.openvideoads.vast.server.request.direct.DirectVASTAdRequest) package org.openvideoads.vast.server.request.direct { import org.openvideoads.vast.server.request.*; public class DirectVASTAdRequest extends AdServerRequest { public function DirectVASTAdRequest(_arg1:DirectServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new DirectServerConfig()); } } }//package org.openvideoads.vast.server.request.direct
Section 212
//DARTServerConfig (org.openvideoads.vast.server.request.doubleclick.DARTServerConfig) package org.openvideoads.vast.server.request.doubleclick { import org.openvideoads.vast.server.config.*; public class DARTServerConfig extends AdServerConfig { public function DARTServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("DART", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__/pfadx/__site__;kw=__redirect__;sz=__size__;ord=__zone__;dcmt=__dcmt__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({size:"460x360", dcmt:"text/html"})); } } }//package org.openvideoads.vast.server.request.doubleclick
Section 213
//DARTVASTAdRequest (org.openvideoads.vast.server.request.doubleclick.DARTVASTAdRequest) package org.openvideoads.vast.server.request.doubleclick { import org.openvideoads.vast.server.request.*; public class DARTVASTAdRequest extends AdServerRequest { public function DARTVASTAdRequest(_arg1:DARTServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new DARTServerConfig()); } override protected function replaceRandomNumber(_arg1:String):String{ var _local2:RegExp = new RegExp("__random-number__", "g"); _arg1 = _arg1.replace(_local2, ("1" + Math.floor((Math.random() * 100000000)))); return (_arg1); } override public function verifyRequestURL(_arg1:String, _arg2:Object):String{ return (_arg1); } override protected function replaceZone(_arg1:String):String{ var _local2:Array; var _local3:String; var _local4:String; var _local5:RegExp; var _local6:RegExp; if (_zones != null){ if (_zones.length > 0){ if (_zones[0].zone != null){ _local2 = _zones[0].zone.split("@"); if (_local2.length == 2){ _local3 = _local2[0]; _local4 = _local2[1]; _local5 = new RegExp("__sitepage__", "g"); _local6 = new RegExp("__listpos__", "g"); _arg1 = _arg1.replace(_local5, _local3); _arg1 = _arg1.replace(_local6, _local4); }; }; }; }; return (_arg1); } } }//package org.openvideoads.vast.server.request.doubleclick
Section 214
//InjectedServerConfig (org.openvideoads.vast.server.request.injected.InjectedServerConfig) package org.openvideoads.vast.server.request.injected { import org.openvideoads.vast.server.config.*; public class InjectedServerConfig extends AdServerConfig { public function InjectedServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("Injected", _arg1); } } }//package org.openvideoads.vast.server.request.injected
Section 215
//InjectedVASTAdRequest (org.openvideoads.vast.server.request.injected.InjectedVASTAdRequest) package org.openvideoads.vast.server.request.injected { import org.openvideoads.vast.server.request.*; public class InjectedVASTAdRequest extends AdServerRequest { public function InjectedVASTAdRequest(_arg1:InjectedServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new InjectedServerConfig()); } override public function formRequest(_arg1:Array=null):String{ if (_config != null){ _formedRequest = unescape(_config.tag); } else { _formedRequest = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><VAST version=\"2.0\"></VAST>"; }; return (_formedRequest); } } }//package org.openvideoads.vast.server.request.injected
Section 216
//LightningcastServerConfig (org.openvideoads.vast.server.request.lightningcast.LightningcastServerConfig) package org.openvideoads.vast.server.request.lightningcast { import org.openvideoads.vast.server.config.*; public class LightningcastServerConfig extends AdServerConfig { public function LightningcastServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("Lightningcast", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__?ver=__ver__&nwid=__nwid__&content=__content__&level=__level__&format=__format__&uid=__uid__&regions=__regions__&crlen=__crlen__&resp=__resp__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({api-address:"http://web.lightningcast.net/servlets/getPlaylist", version:"2.0", nwid:"", level:"", format:"", uid:"", regions:"", crlen:"t", resp:"VAST"})); } } }//package org.openvideoads.vast.server.request.lightningcast
Section 217
//LightningcastVASTAdRequest (org.openvideoads.vast.server.request.lightningcast.LightningcastVASTAdRequest) package org.openvideoads.vast.server.request.lightningcast { import org.openvideoads.vast.server.request.*; public class LightningcastVASTAdRequest extends AdServerRequest { public function LightningcastVASTAdRequest(_arg1:LightningcastServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new LightningcastServerConfig()); } } }//package org.openvideoads.vast.server.request.lightningcast
Section 218
//LiverailServerConfig (org.openvideoads.vast.server.request.liverail.LiverailServerConfig) package org.openvideoads.vast.server.request.liverail { import org.openvideoads.vast.server.config.*; public class LiverailServerConfig extends AdServerConfig { public function LiverailServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("Liverail", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__"); } } }//package org.openvideoads.vast.server.request.liverail
Section 219
//LiverailVASTAdRequest (org.openvideoads.vast.server.request.liverail.LiverailVASTAdRequest) package org.openvideoads.vast.server.request.liverail { import org.openvideoads.vast.server.request.*; public class LiverailVASTAdRequest extends AdServerRequest { public function LiverailVASTAdRequest(_arg1:LiverailServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new LiverailServerConfig()); } } }//package org.openvideoads.vast.server.request.liverail
Section 220
//OasServerConfig (org.openvideoads.vast.server.request.oas.OasServerConfig) package org.openvideoads.vast.server.request.oas { import org.openvideoads.vast.server.config.*; public class OasServerConfig extends AdServerConfig { public function OasServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("OAS", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__/__sitepage__/__random-number__@__listpos__?__target__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({target:""})); } } }//package org.openvideoads.vast.server.request.oas
Section 221
//OasVASTAdRequest (org.openvideoads.vast.server.request.oas.OasVASTAdRequest) package org.openvideoads.vast.server.request.oas { import org.openvideoads.vast.server.request.*; public class OasVASTAdRequest extends AdServerRequest { public function OasVASTAdRequest(_arg1:OasServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new OasServerConfig()); } override protected function replaceRandomNumber(_arg1:String):String{ var _local2:RegExp = new RegExp("__random-number__", "g"); _arg1 = _arg1.replace(_local2, ("1" + Math.floor((Math.random() * 100000000)))); return (_arg1); } override protected function replaceZone(_arg1:String):String{ var _local2:Array; var _local3:String; var _local4:String; var _local5:RegExp; var _local6:RegExp; if (_zones != null){ if (_zones.length > 0){ _local2 = _zones[0].zone.split("@"); _local3 = _local2[0]; _local4 = _local2[1]; _local5 = new RegExp("__sitepage__", "g"); _local6 = new RegExp("__listpos__", "g"); _arg1 = _arg1.replace(_local5, _local3); _arg1 = _arg1.replace(_local6, _local4); }; }; return (_arg1); } } }//package org.openvideoads.vast.server.request.oas
Section 222
//OasisServerConfig (org.openvideoads.vast.server.request.oasis.OasisServerConfig) package org.openvideoads.vast.server.request.oasis { import org.openvideoads.vast.server.config.*; public class OasisServerConfig extends AdServerConfig { public function OasisServerConfig(_arg1:Object=null){ this.oneAdPerRequest = true; super("OASIS", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__?s=__zone__&w=__w__&h=__h__&k=__k__&t=__t__&cb=__random-number__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({w:"1", h:"1", k:"", t:"_blank"})); } } }//package org.openvideoads.vast.server.request.oasis
Section 223
//OasisVASTAdRequest (org.openvideoads.vast.server.request.oasis.OasisVASTAdRequest) package org.openvideoads.vast.server.request.oasis { import org.openvideoads.vast.server.request.*; public class OasisVASTAdRequest extends AdServerRequest { public function OasisVASTAdRequest(_arg1:OasisServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new OasisServerConfig()); } override public function verifyRequestURL(_arg1:String, _arg2:Object):String{ return (_arg1); } } }//package org.openvideoads.vast.server.request.oasis
Section 224
//OpenX3ServerConfig (org.openvideoads.vast.server.request.openx.OpenX3ServerConfig) package org.openvideoads.vast.server.request.openx { import org.openvideoads.vast.server.config.*; public class OpenX3ServerConfig extends AdServerConfig { public function OpenX3ServerConfig(_arg1:Object=null){ super("OpenX3", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__?__zones__&test=true"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties()); } } }//package org.openvideoads.vast.server.request.openx
Section 225
//OpenX3VASTAdRequest (org.openvideoads.vast.server.request.openx.OpenX3VASTAdRequest) package org.openvideoads.vast.server.request.openx { import org.openvideoads.vast.server.request.*; public class OpenX3VASTAdRequest extends AdServerRequest { public function OpenX3VASTAdRequest(_arg1:OpenX3ServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new OpenX3ServerConfig()); } override protected function replaceZones(_arg1:String):String{ var _local4:int; var _local2 = ""; if (_zones != null){ _local4 = 0; while (_local4 < _zones.length) { if (_local2.length > 0){ _local2 = (_local2 + "&"); }; _local2 = (_local2 + _zones[_local4].zone); _local4++; }; }; var _local3:RegExp = new RegExp("__zones__", "g"); _arg1 = _arg1.replace(_local3, _local2); _formedRequest = _arg1; return (_formedRequest); } override public function get replaceIds():Boolean{ return (false); } } }//package org.openvideoads.vast.server.request.openx
Section 226
//OpenXServerConfig (org.openvideoads.vast.server.request.openx.OpenXServerConfig) package org.openvideoads.vast.server.request.openx { import org.openvideoads.vast.server.config.*; public class OpenXServerConfig extends AdServerConfig { public function OpenXServerConfig(_arg1:Object=null){ super("OpenX", _arg1); } override protected function get defaultTemplate():String{ return ("__api-address__?script=__script__&zones=__zones__&nz=__nz__&source=__source__&r=__r__&block=__block__&format=__format__&charset=__charset__&__target__"); } override protected function get defaultCustomProperties():CustomProperties{ return (new CustomProperties({script:"bannerTypeHtml:vastInlineBannerTypeHtml:vastInlineHtml", nz:"1", source:"", r:"__random-number__", block:"__allow-duplicates-as-binary__", format:"vast", charset:"UTF-8"})); } } }//package org.openvideoads.vast.server.request.openx
Section 227
//OpenXVASTAdRequest (org.openvideoads.vast.server.request.openx.OpenXVASTAdRequest) package org.openvideoads.vast.server.request.openx { import org.openvideoads.vast.server.request.*; public class OpenXVASTAdRequest extends AdServerRequest { public function OpenXVASTAdRequest(_arg1:OpenXServerConfig=null){ super(((_arg1)!=null) ? _arg1 : new OpenXServerConfig()); } override protected function replaceZones(_arg1:String):String{ var _local4:int; var _local2 = ""; if (_zones != null){ _local4 = 0; while (_local4 < _zones.length) { if (_local2.length > 0){ _local2 = (_local2 + "%7C"); }; _local2 = (_local2 + ((_zones[_local4].id + "%3D") + _zones[_local4].zone)); _local4++; }; }; var _local3:RegExp = new RegExp("__zones__", "g"); _arg1 = _arg1.replace(_local3, _local2); return (_arg1); } override public function get replaceIds():Boolean{ return (false); } override public function formRequest(_arg1:Array=null):String{ var _local2:String = super.formRequest(_arg1); var _local3:RegExp = new RegExp("&__target__", "g"); _local2 = _local2.replace(_local3, ""); _formedRequest = _local2; return (_formedRequest); } override protected function replaceDuplicatesAsBinary(_arg1:String):String{ var _local2:RegExp = new RegExp("__allow-duplicates-as-binary__", "g"); _arg1 = _arg1.replace(_local2, (_config.allowAdRepetition) ? "0" : "1"); return (_arg1); } } }//package org.openvideoads.vast.server.request.openx
Section 228
//WrappedAdServerConfig (org.openvideoads.vast.server.request.wrapped.WrappedAdServerConfig) package org.openvideoads.vast.server.request.wrapped { import org.openvideoads.vast.server.config.*; public class WrappedAdServerConfig extends AdServerConfig { public function WrappedAdServerConfig(_arg1:AdServerConfig){ super("Wrapped Ad Server", _arg1); if (_arg1 != null){ _addCacheBuster = _arg1.addCacheBuster; }; } } }//package org.openvideoads.vast.server.request.wrapped
Section 229
//WrappedAdServerRequest (org.openvideoads.vast.server.request.wrapped.WrappedAdServerRequest) package org.openvideoads.vast.server.request.wrapped { import org.openvideoads.vast.server.request.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; public class WrappedAdServerRequest extends AdServerRequest { protected var _url:String;// = null public function WrappedAdServerRequest(_arg1:String, _arg2:AdServerConfig){ super(new WrappedAdServerConfig(_arg2)); if (parseWrappedAdTags()){ _url = processTemplate(_arg1); } else { _url = _arg1; }; } override public function isWrapped():Boolean{ return (true); } override public function formRequest(_arg1:Array=null):String{ if (hasCacheBusterRequirement()){ _formedRequest = NetworkResource.addParameterToURLString(_url, ("cache-buster=" + Math.random())); } else { _formedRequest = _url; }; return (_formedRequest); } } }//package org.openvideoads.vast.server.request.wrapped
Section 230
//AdServerRequest (org.openvideoads.vast.server.request.AdServerRequest) package org.openvideoads.vast.server.request { import org.openvideoads.vast.server.response.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.vast.model.*; public class AdServerRequest extends Debuggable { protected var _formedRequest:String;// = null protected var _failoverRequestCount:int;// = 0 protected var _includesLinearAds:Boolean;// = false protected var _zones:Array; protected var _index:int;// = 0 protected var _config:AdServerConfig;// = null protected var _callOnDemand:Boolean;// = false public function AdServerRequest(_arg1:AdServerConfig=null){ _zones = new Array(); super(); if (_arg1 != null){ _config = _arg1; }; } protected function replaceZone(_arg1:String):String{ var _local2:RegExp; if (_zones != null){ if (_zones.length > 0){ _local2 = new RegExp("__zone__", "g"); _arg1 = _arg1.replace(_local2, _zones[0].zone); }; }; return (_arg1); } public function set config(_arg1:AdServerConfig):void{ _config = _arg1; } public function get callOnDemand():Boolean{ return (_callOnDemand); } protected function replaceVPAIDSetting(_arg1:String):String{ var _local2:RegExp = new RegExp("__allow-vpaid__", "g"); _arg1 = _arg1.replace(_local2, config.allowVPAID); return (_arg1); } public function isWrapped():Boolean{ return (false); } protected function replaceApiServerAddress(_arg1:String):String{ var _local2:RegExp = new RegExp("__api-address__", "g"); _arg1 = _arg1.replace(_local2, config.apiServerAddress); return (_arg1); } protected function replacePageUrl(_arg1:String):String{ var _local2:RegExp; if (_arg1.indexOf("__page-url__") > -1){ _local2 = new RegExp("__page-url__", "g"); _arg1 = _arg1.replace(_local2, BrowserUtils.getPageUrl(true, _config.encodeVars)); }; return (_arg1); } protected function replaceDuplicatesAsBinary(_arg1:String):String{ var _local2:RegExp = new RegExp("__allow-duplicates-as-binary__", "g"); _arg1 = _arg1.replace(_local2, (_config.allowAdRepetition) ? "1" : "0"); return (_arg1); } protected function replacePlayerWidth(_arg1:String):String{ var _local2:RegExp = new RegExp("__player-width__", "g"); _arg1 = _arg1.replace(_local2, config.playerWidth); return (_arg1); } protected function replaceASVersion(_arg1:String):String{ var _local2:RegExp = new RegExp("__as-version__", "g"); _arg1 = _arg1.replace(_local2, config.asVersion); return (_arg1); } public function set callOnDemand(_arg1:Boolean):void{ _callOnDemand = _arg1; } public function forceImpressionServing():Boolean{ if (_config != null){ return (_config.forceImpressionServing); }; return (false); } public function hasFailoverRequestsAvailable():Boolean{ if (_config.hasFailoverServers()){ return ((_failoverRequestCount < _config.failoverServerCount)); }; return (false); } public function serverType():String{ return (config.serverType); } protected function replaceDomain(_arg1:String):String{ var _local2:RegExp; if (_arg1.indexOf("__domain__") > -1){ _local2 = new RegExp("__domain__", "g"); _arg1 = _arg1.replace(_local2, BrowserUtils.getDomain(true, _config.encodeVars)); }; return (_arg1); } protected function processTemplate(_arg1:String, _arg2:Array=null):String{ var _local3:String; if (_arg1 != null){ _local3 = _arg1; if (_arg2 != null){ _zones = _arg2; }; _local3 = replaceApiServerAddress(_local3); _local3 = replaceAmpersands(_local3); _local3 = replaceCustomProperties(_local3, config.customProperties); _local3 = replaceRandomNumber(_local3); _local3 = replaceTimestamp(_local3); _local3 = replaceDuplicatesAsBinary(_local3); _local3 = replaceDuplicatesAsBoolean(_local3); _local3 = replaceZone(_local3); _local3 = replaceZones(_local3); _local3 = replacePageUrl(_local3); _local3 = replaceReferrer(_local3); _local3 = replaceDomain(_local3); _local3 = replaceStreamUrl(_local3); _local3 = replaceMediaUrl(_local3); _local3 = replacePageStreamUrl(_local3); _local3 = replaceVPAIDSetting(_local3); _local3 = replaceFormat(_local3); _local3 = replaceMaxDuration(_local3); _local3 = replaceASVersion(_local3); _local3 = replacePlayerHeight(_local3); _local3 = replacePlayerWidth(_local3); _local3 = replacePartnerId(_local3); _local3 = replaceMediaId(_local3); _local3 = replaceMediaTitle(_local3); _local3 = replaceMediaDescription(_local3); _local3 = replaceMediaDescription(_local3); _local3 = replaceMediaCategories(_local3); _local3 = replaceMediaKeywords(_local3); return (_local3); }; return (""); } public function set index(_arg1:int):void{ _index = _arg1; } protected function replaceMediaTitle(_arg1:String):String{ var _local2:RegExp = new RegExp("__media-title__", "g"); _arg1 = _arg1.replace(_local2, config.mediaTitle); return (_arg1); } public function nextFailoverAdServerRequest():AdServerRequest{ var _local1:AdServerConfig; var _local2:AdServerRequest; if (hasFailoverRequestsAvailable()){ _local1 = _config.getFailoverAdServerConfigAtIndex(_failoverRequestCount); if (_local1 != null){ _local2 = AdServerRequestFactory.create(_local1.serverType); _failoverRequestCount++; _local2.config = _local1; _local2.index = _failoverRequestCount; return (_local2); }; }; return (null); } protected function replacePageStreamUrl(_arg1:String):String{ var _local2:RegExp = new RegExp("__page-stream-url__", "g"); _arg1 = _arg1.replace(_local2, config.pageStreamUrl); return (_arg1); } protected function replacePartnerId(_arg1:String):String{ var _local2:RegExp = new RegExp("__partner-id__", "g"); _arg1 = _arg1.replace(_local2, config.partnerId); return (_arg1); } public function formRequest(_arg1:Array=null):String{ if (_config.tag == null){ _formedRequest = processTemplate(config.template, _arg1); } else { _formedRequest = processTemplate(_config.tag, _arg1); }; return (_formedRequest); } public function get timeoutInSeconds():int{ if (_config != null){ return (_config.timeoutInSeconds); }; return (-1); } public function hasCacheBusterRequirement():Boolean{ if (_config != null){ return (_config.addCacheBuster); }; return (false); } public function get formedRequest():String{ return (_formedRequest); } protected function replacePlayerHeight(_arg1:String):String{ var _local2:RegExp = new RegExp("__player-height__", "g"); _arg1 = _arg1.replace(_local2, config.playerHeight); return (_arg1); } protected function replaceMediaUrl(_arg1:String):String{ var _local2:RegExp = new RegExp("__media-url__", "g"); _arg1 = _arg1.replace(_local2, config.mediaUrl); return (_arg1); } public function includesLinearAds():Boolean{ return (_includesLinearAds); } protected function replaceMaxDuration(_arg1:String):String{ var _local2:RegExp = new RegExp("__max-duration__", "g"); _arg1 = _arg1.replace(_local2, config.maxDuration); return (_arg1); } public function get replacementIds():Array{ return (_zones); } protected function replaceRandomNumber(_arg1:String):String{ var _local2:RegExp = new RegExp("__random-number__", "g"); _arg1 = _arg1.replace(_local2, ("R" + Math.random())); return (_arg1); } public function get config():AdServerConfig{ if (_config == null){ _config = new AdServerConfig(); }; return (_config); } protected function replaceFormat(_arg1:String):String{ var _local2:RegExp = new RegExp("__format__", "g"); _arg1 = _arg1.replace(_local2, config.format); return (_arg1); } protected function replaceMediaDescription(_arg1:String):String{ var _local2:RegExp = new RegExp("__media-description__", "g"); _arg1 = _arg1.replace(_local2, config.mediaDescription); return (_arg1); } protected function replaceTimestamp(_arg1:String):String{ var _local2:RegExp = new RegExp("__timestamp__", "g"); _arg1 = _arg1.replace(_local2, new Date().valueOf().toString()); return (_arg1); } protected function replaceMediaId(_arg1:String):String{ var _local2:RegExp = new RegExp("__media-id__", "g"); _arg1 = _arg1.replace(_local2, config.mediaId); return (_arg1); } public function parseWrappedAdTags():Boolean{ if (_config != null){ return (_config.parseWrappedAdTags); }; return (false); } public function requiresTransformation():Boolean{ if (_config != null){ return (_config.hasTransformers()); }; return (false); } protected function replaceCustomProperties(_arg1:String, _arg2:Object):String{ return (_config.customProperties.completeTemplate(_arg1, ((_config)!=null) ? _config.hasTagParamsSpecified() : false)); } public function get index():int{ return (index); } protected function replaceMediaCategories(_arg1:String):String{ var _local2:RegExp = new RegExp("__media-categories__", "g"); _arg1 = _arg1.replace(_local2, config.mediaCategories); return (_arg1); } public function mustEnsureSingleAdUnitRecordedPerInlineAd():Boolean{ if (_config != null){ return (_config.ensureSingleAdUnitRecordedPerInlineAd); }; return (true); } override public function toJSObject():Object{ var _local1:Object = new Object(); _local1 = {uid:_uid, index:_index, adServerType:((config)!=null) ? config.type : "unknown", formedTag:_formedRequest, onDemand:_callOnDemand}; return (_local1); } public function get replaceIds():Boolean{ return (true); } public function verifyRequestURL(_arg1:String, _arg2:Object):String{ return (_arg1); } protected function replaceDuplicatesAsBoolean(_arg1:String):String{ var _local2:RegExp = new RegExp("__allow-duplicates-as-boolean__", "g"); _arg1 = _arg1.replace(_local2, (_config.allowAdRepetition) ? "true" : "false"); return (_arg1); } public function addZone(_arg1:String, _arg2:String, _arg3:String):void{ if (_zones == null){ _zones = new Array(); }; var _local4:Object = new Object(); _local4.id = _arg1; _local4.zone = _arg2; _local4.slotType = _arg3; _local4.assigned = false; if (_includesLinearAds == false){ _includesLinearAds = StringUtils.beginsWith(_arg3, "LINEAR"); }; _zones.push(_local4); } protected function replaceAmpersands(_arg1:String):String{ var _local2:RegExp = new RegExp("__amp__", "g"); _arg1 = _arg1.replace(_local2, "&"); return (_arg1); } protected function replaceReferrer(_arg1:String):String{ var _local2:RegExp; if (_arg1.indexOf("__referrer__") > -1){ _local2 = new RegExp("__referrer__", "g"); _arg1 = _arg1.replace(_local2, BrowserUtils.getReferrer(true, _config.encodeVars)); }; return (_arg1); } protected function replaceZones(_arg1:String):String{ return (_arg1); } protected function replaceStreamUrl(_arg1:String):String{ var _local2:RegExp = new RegExp("__stream-url__", "g"); _arg1 = _arg1.replace(_local2, config.streamUrl); return (_arg1); } protected function replaceMediaKeywords(_arg1:String):String{ var _local2:RegExp = new RegExp("__media-keywords__", "g"); _arg1 = _arg1.replace(_local2, config.mediaKeywords); return (_arg1); } public function createMasterAdServerTemplate(_arg1:TemplateLoadListener):AdServerTemplate{ var _local2:VideoAdServingTemplate = new VideoAdServingTemplate(_arg1, this, this.replaceIds, this.replacementIds); _local2.isMaster = true; return (_local2); } } }//package org.openvideoads.vast.server.request
Section 231
//AdServerRequestFactory (org.openvideoads.vast.server.request.AdServerRequestFactory) package org.openvideoads.vast.server.request { import org.openvideoads.util.*; import org.openvideoads.vast.server.request.direct.*; import org.openvideoads.vast.server.request.adform.*; import org.openvideoads.vast.server.request.liverail.*; import org.openvideoads.vast.server.request.lightningcast.*; import org.openvideoads.vast.server.request.openx.*; import org.openvideoads.vast.server.request.doubleclick.*; import org.openvideoads.vast.server.request.injected.*; import org.openvideoads.vast.server.request.oas.*; import org.openvideoads.vast.server.request.adify.*; import org.openvideoads.vast.server.request.oasis.*; import org.openvideoads.vast.server.request.adtech.*; public class AdServerRequestFactory { public static const AD_SERVER_ADIFY:String = "ADIFY"; public static const AD_SERVER_ADFORM:String = "ADFORM"; public static const AD_SERVER_DIRECT:String = "DIRECT"; public static const AD_SERVER_OASIS:String = "OASIS"; public static const AD_SERVER_OPENX_V2:String = "OPENX"; public static const AD_SERVER_LIGHTNINGCAST:String = "LIGHTNINGCAST"; public static const AD_SERVER_OPENX_V3:String = "OPENX3"; public static const AD_SERVER_ADTECH:String = "ADTECH"; public static const AD_SERVER_LIVERAIL:String = "LIVERAIL"; public static const AD_SERVER_DART:String = "DART"; public static const AD_SERVER_OAS:String = "OAS"; public static const AD_SERVER_INJECT:String = "INJECT"; public static function create(_arg1:String):AdServerRequest{ if (StringUtils.matchesIgnoreCase(_arg1, AD_SERVER_INJECT)){ return (new InjectedVASTAdRequest()); }; switch (_arg1.toUpperCase()){ case AD_SERVER_ADIFY: return (new AdifyVASTAdRequest()); case AD_SERVER_ADFORM: return (new AdformVASTAdRequest()); case AD_SERVER_ADTECH: return (new AdTechVASTAdRequest()); case AD_SERVER_DART: return (new DARTVASTAdRequest()); case AD_SERVER_LIGHTNINGCAST: return (new LightningcastVASTAdRequest()); case AD_SERVER_LIVERAIL: return (new LiverailVASTAdRequest()); case AD_SERVER_OAS: return (new OasVASTAdRequest()); case AD_SERVER_OASIS: return (new OasisVASTAdRequest()); case AD_SERVER_OPENX_V2: return (new OpenXVASTAdRequest()); case AD_SERVER_OPENX_V3: return (new OpenX3VASTAdRequest()); }; return (new DirectVASTAdRequest()); } } }//package org.openvideoads.vast.server.request
Section 232
//AdServerRequestGroup (org.openvideoads.vast.server.request.AdServerRequestGroup) package org.openvideoads.vast.server.request { import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.base.*; public class AdServerRequestGroup extends Debuggable { protected var _oneAdPerRequest:Boolean;// = false protected var _adSlots:Array; protected var _serverType:String;// = null public function AdServerRequestGroup(_arg1:String, _arg2:Boolean=false){ _adSlots = new Array(); super(); _serverType = _arg1; _oneAdPerRequest = _arg2; } public function getAdServerRequests():Array{ var _local2:AdServerRequest; var _local3:int; var _local1:Array = new Array(); if (_adSlots.length > 0){ _local3 = 0; while (_local3 < _adSlots.length) { _local2 = AdServerRequestFactory.create(_adSlots[_local3].adServerConfig.serverType); _local2.config = _adSlots[_local3].adServerConfig; _local2.addZone(_adSlots[_local3].adSlotID, _adSlots[_local3].zone, _adSlots[_local3].slotType); _local1.push(_local2); _local3++; }; }; return (_local1); } public function addAdSlot(_arg1:AdSlot):void{ _adSlots.push(_arg1); } public function getSingleAdServerRequest():AdServerRequest{ var _local1:AdServerRequest; var _local2:int; if (_adSlots.length > 0){ if (_adSlots[0].adServerConfig.serverType != null){ _local1 = AdServerRequestFactory.create(_adSlots[0].adServerConfig.serverType); _local1.config = _adSlots[0].adServerConfig; if (_local1 != null){ _local2 = 0; while (_local2 < _adSlots.length) { _local1.addZone(_adSlots[_local2].adSlotID, _adSlots[_local2].zone, _adSlots[_local2].slotType); _local2++; }; return (_local1); }; }; }; return (null); } public function set serverType(_arg1:String):void{ _serverType = _arg1; } public function get oneAdPerRequest():Boolean{ return (_oneAdPerRequest); } public function get serverType():String{ return (_serverType); } } }//package org.openvideoads.vast.server.request
Section 233
//AdServerRequestProcessor (org.openvideoads.vast.server.request.AdServerRequestProcessor) package org.openvideoads.vast.server.request { import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.vast.server.events.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.vast.model.*; import flash.utils.*; public class AdServerRequestProcessor extends Debuggable implements TemplateLoadListener { protected var _finalTemplate:AdServerTemplate; protected var _loadErrorRecorded:Boolean;// = false protected var _groupKeys:Array; protected var _activeAdServerRequestIndex:int;// = 0 protected var _callingOnDemand:Boolean;// = false protected var _activeAdServerRequestGroupsIndex:int;// = 0 protected var _activeTemplate:AdServerTemplate;// = null protected var _templates:Array; protected var _templateLoadListener:TemplateLoadListener;// = null protected var _loadTimeoutRecorded:Boolean;// = false protected var _lastErrorEvent:Event;// = null protected var _loadSuccessRecorded:Boolean;// = false protected var _lastTimeoutEvent:Event;// = null protected var _vastResponses:Array;// = null protected var _activeAdServerRequests:Array;// = null protected var _groups:Dictionary; public function AdServerRequestProcessor(_arg1:TemplateLoadListener, _arg2:Array, _arg3:Boolean=false, _arg4:Boolean=false){ var _local6:String; _groups = new Dictionary(); _groupKeys = new Array(); _templates = new Array(); _finalTemplate = new VideoAdServingTemplate(); super(); _templateLoadListener = _arg1; _callingOnDemand = _arg4; doLog((("Creating ad server request groups across " + _arg2.length) + " ad slots"), Debuggable.DEBUG_CONFIG); var _local5:int; while (_local5 < _arg2.length) { if ((((_arg3 == false)) && (AdSlot(_arg2[_local5]).loadOnDemand))){ doLog((("Ignoring ad request in ad slot " + _local5) + " - slot to be loaded on demand"), Debuggable.DEBUG_CONFIG); } else { if (_arg2[_local5].hasAdServerConfigured()){ _local6 = AdServerConfig(_arg2[_local5].adServerConfig).typeKey(); if (_groups[_local6] == null){ _groups[_local6] = new AdServerRequestGroup(_arg2[_local5].adServerConfig.serverType, _arg2[_local5].adServerConfig.oneAdPerRequest); _groupKeys.push(_local6); }; doLog((((("AdSlot[" + _local5) + "] has been added to '") + _local6) + "' group"), Debuggable.DEBUG_CONFIG); _groups[_local6].addAdSlot(_arg2[_local5]); } else { doLog((("Not configuring ad request for slot " + _local5) + " - no ad server configuration provided"), Debuggable.DEBUG_CONFIG); }; }; _local5++; }; doLog((("Have configured " + _groupKeys.length) + " ad server request groups"), Debuggable.DEBUG_CONFIG); } protected function postProcessRequestsAndNotifyListener():void{ doLog(((("Merging " + _templates.length) + " VAST responses back into 1 master VAST template:") + _finalTemplate.uid), Debuggable.DEBUG_VAST_TEMPLATE); var _local1:int; while (_local1 < _templates.length) { _finalTemplate.merge(_templates[_local1]); _local1++; }; doLog(((("Merge complete - " + _finalTemplate.ads.length) + " ads recorded in the master VAST template:") + _finalTemplate.uid), Debuggable.DEBUG_VAST_TEMPLATE); _finalTemplate.dataLoaded = true; if (_templateLoadListener != null){ if (((_loadErrorRecorded) && (!(_loadSuccessRecorded)))){ _templateLoadListener.onTemplateLoadError(new TemplateEvent(TemplateEvent.LOAD_FAILED, ((_lastErrorEvent)!=null) ? _lastErrorEvent.toString() : null)); } else { if (((_loadTimeoutRecorded) && (!(_loadSuccessRecorded)))){ _templateLoadListener.onTemplateLoadTimeout(new TemplateEvent(TemplateEvent.LOAD_TIMEOUT, ((_lastTimeoutEvent)!=null) ? _lastTimeoutEvent.toString() : null)); } else { _templateLoadListener.onTemplateLoaded(_finalTemplate); }; }; }; } public function onTemplateLoadDeferred(_arg1:Event):void{ takeNextStep(); } protected function takeNextStep():void{ if (_activeAdServerRequests != null){ processNextAdServerRequestInActiveAdServerRequestGroup(); } else { moveOntoNextAdServerRequestGroup(); }; } public function onAdCallStarted(_arg1:AdServerRequest):void{ if (_templateLoadListener != null){ _templateLoadListener.onAdCallStarted(_arg1); }; } public function canFireEventAPICalls():Boolean{ if (_templateLoadListener != null){ return (_templateLoadListener.canFireEventAPICalls()); }; return (false); } public function canFireAPICalls():Boolean{ if (_templateLoadListener != null){ return (_templateLoadListener.canFireAPICalls()); }; return (false); } protected function setActiveTemplate(_arg1:AdServerRequest):void{ _arg1.callOnDemand = _callingOnDemand; _activeTemplate = _arg1.createMasterAdServerTemplate(this); } public function get analyticsProcessor():AnalyticsProcessor{ if (_templateLoadListener != null){ return (_templateLoadListener.analyticsProcessor); }; return (null); } protected function resetLoadStatusValues():void{ _loadSuccessRecorded = false; _loadErrorRecorded = false; _loadTimeoutRecorded = false; _lastTimeoutEvent = null; _lastErrorEvent = null; } public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ if (_templateLoadListener != null){ _templateLoadListener.onAdCallComplete(_arg1, _arg2); }; } public function onTemplateLoadError(_arg1:Event):void{ _loadErrorRecorded = true; _lastErrorEvent = _arg1; takeNextStep(); } protected function startProcessingAdServerRequestGroup(_arg1:int=0):void{ doLog((((("Triggering ad server requests for group '" + _groupKeys[_arg1]) + "' (") + _arg1) + ")"), Debuggable.DEBUG_VAST_TEMPLATE); _activeAdServerRequestGroupsIndex = _arg1; if (_groups[_groupKeys[_arg1]].oneAdPerRequest){ doLog((((("One ad per request required by ad server in group '" + _groupKeys[_arg1]) + "' (") + _arg1) + ")"), Debuggable.DEBUG_VAST_TEMPLATE); _activeAdServerRequests = _groups[_groupKeys[_arg1]].getAdServerRequests(); _activeAdServerRequestIndex = 0; setActiveTemplate(_activeAdServerRequests[_activeAdServerRequestIndex]); } else { doLog((((("Multiple ads per request permitted by ad server in group '" + _groupKeys[_arg1]) + "' (") + _arg1) + ")"), Debuggable.DEBUG_VAST_TEMPLATE); _activeAdServerRequests = null; if (_groups[_groupKeys[_arg1]].getSingleAdServerRequest() != null){ setActiveTemplate(_groups[_groupKeys[_arg1]].getSingleAdServerRequest()); } else { moveOntoNextAdServerRequestGroup(); }; }; } protected function moveOntoNextAdServerRequestGroup():void{ if ((_activeAdServerRequestGroupsIndex + 1) < _groupKeys.length){ doLog((("Moving onto the next ad server request group at index " + _activeAdServerRequestGroupsIndex) + 1), Debuggable.DEBUG_VAST_TEMPLATE); startProcessingAdServerRequestGroup((_activeAdServerRequestGroupsIndex + 1)); } else { doLog("All ad server request groups have been processed - kicking off the post-request process", Debuggable.DEBUG_VAST_TEMPLATE); postProcessRequestsAndNotifyListener(); }; } public function onTemplateLoaded(_arg1:AdServerTemplate):void{ _loadSuccessRecorded = true; _templates.push(_arg1); takeNextStep(); } public function start():void{ resetLoadStatusValues(); _templates = new Array(); if (_groupKeys.length > 0){ startProcessingAdServerRequestGroup(0); } else { doLog("No ad requests to process - 0 ad server groupings found", Debuggable.DEBUG_VAST_TEMPLATE); postProcessRequestsAndNotifyListener(); }; } protected function processNextAdServerRequestInActiveAdServerRequestGroup():void{ var _local1:AdServerRequest; if ((_activeAdServerRequestIndex + 1) < _activeAdServerRequests.length){ _activeAdServerRequestIndex++; doLog((((("Triggering next ad server request (" + (_activeAdServerRequestIndex + 1)) + " of ") + _activeAdServerRequests.length) + ")"), Debuggable.DEBUG_VAST_TEMPLATE); _local1 = _activeAdServerRequests[_activeAdServerRequestIndex]; _activeTemplate = _local1.createMasterAdServerTemplate(this); } else { moveOntoNextAdServerRequestGroup(); }; } public function onTemplateLoadTimeout(_arg1:Event):void{ _loadTimeoutRecorded = true; _lastTimeoutEvent = _arg1; takeNextStep(); } public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ if (_templateLoadListener != null){ _templateLoadListener.onAdCallFailover(_arg1, _arg2); }; } public function unload():void{ var _local1:int; while (_local1 < _templates.length) { _templates[_local1].unload(); _local1++; }; if (_finalTemplate != null){ _finalTemplate.unload(); }; } } }//package org.openvideoads.vast.server.request
Section 234
//AdServerTemplate (org.openvideoads.vast.server.response.AdServerTemplate) package org.openvideoads.vast.server.response { import org.openvideoads.vast.server.request.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.server.config.*; import org.openvideoads.vast.model.*; import flash.net.*; import org.openvideoads.events.*; public class AdServerTemplate extends Debuggable { protected var _replacementAdIds:Array;// = null protected var _xmlLoader:TransformingLoader;// = null protected var _isMaster:Boolean;// = false protected var _listener:TemplateLoadListener;// = null protected var _replaceAdIds:Boolean;// = false protected var _templateData:String;// = "" protected var _activeRequest:AdServerRequest;// = null protected var _forceImpressionServing:Boolean;// = false protected var _registeredLoaders:Array; protected var _masterAdRequest:AdServerRequest;// = null protected var _dataLoaded:Boolean;// = false protected var _ads:Array; public function AdServerTemplate(_arg1:TemplateLoadListener=null, _arg2:AdServerRequest=null, _arg3:Boolean=false, _arg4:Array=null){ _ads = new Array(); _registeredLoaders = new Array(); super(); _replaceAdIds = _arg3; _replacementAdIds = _arg4; doLog(((((((("Template instantiated (" + ((_arg2)==null) ? "no ad tag" : _arg2.formRequest()) + ") UID = ") + _uid) + ", replaceAdIds is ") + _replaceAdIds) + ", listeners is ") + ((_arg1)!=null) ? _arg1.uid : "NO UID"), Debuggable.DEBUG_VAST_TEMPLATE); if (_arg1 != null){ _listener = _arg1; }; if (_arg2 != null){ load(_arg2); }; } protected function registeredLoadersIsEmpty():Boolean{ var _local1:int; if (_registeredLoaders.length > 0){ _local1 = 0; while (_local1 < _registeredLoaders.length) { if (_registeredLoaders[_local1] != null){ return (false); }; _local1++; }; }; return (true); } protected function needsToFailover():Boolean{ return (((((isMaster) && ((hasAds() == false)))) && (hasFailoverCallsAvailable()))); } public function getNextNonEmptyVideoAdStartingAtIndex(_arg1:int):VideoAd{ var _local2:int; if (_ads != null){ if (_ads.length > 0){ _local2 = _arg1; while (_local2 < _ads.length) { if ((((VideoAd(_ads[_local2]).isEmpty() == false)) && ((VideoAd(_ads[_local2]).isCompanionOnlyAd() == false)))){ return (_ads[_local2]); }; _local2++; }; }; }; return (null); } public function get forceImpressionServing():Boolean{ return (_forceImpressionServing); } protected function isAcceptableLinearAdMediaFileMimeType(_arg1:String):Boolean{ if (_masterAdRequest != null){ if (_masterAdRequest.config != null){ return (_masterAdRequest.config.isAcceptedLinearAdMimeType(_arg1)); }; }; return (true); } protected function getAdServerConfig():AdServerConfig{ if (_masterAdRequest != null){ return (_masterAdRequest.config); }; return (null); } protected function templateLoaded(_arg1:Event):void{ fireTemplateLoadedTracking(); signalTemplateLoaded(_uid); } protected function getReplacementAdId(_arg1:String):String{ return (null); } protected function errorHandler(_arg1:Event):void{ signalTemplateLoadError(_uid, _arg1); } protected function replacingAdIds():Boolean{ return (_replaceAdIds); } protected function getLinearAcceptableAdMimeTypes():Array{ if (_masterAdRequest != null){ if (_masterAdRequest.config != null){ return (_masterAdRequest.config.acceptedLinearAdMimeTypes); }; }; return (null); } protected function resetReplacementIds_V2():void{ var _local1:Object; if (_replacementAdIds != null){ for each (_local1 in _replacementAdIds) { _local1.assigned = false; }; }; } public function getMasterAdServerConfig():AdServerConfig{ if (_masterAdRequest != null){ return (_masterAdRequest.config); }; return (null); } protected function timeoutHandler(_arg1:Event):void{ signalTemplateLoadTimeout(_uid, _arg1); } public function get isMaster():Boolean{ return (_isMaster); } public function registerLoader(_arg1:String):void{ _registeredLoaders.push(_arg1); } public function signalTemplateLoadError(_arg1:String, _arg2:Event):void{ if (_listener != null){ _listener.onAdCallComplete(_activeRequest, false); if (((!((_listener.analyticsProcessor == null))) && (!((_activeRequest == null))))){ _listener.analyticsProcessor.fireAdCallTracking(AnalyticsProcessor.ERROR, _activeRequest, _activeRequest.isWrapped(), _arg2.toString()); }; }; closeXMLLoader(); deregisterLoader(_arg1); if (registeredLoadersIsEmpty()){ if (needsToFailover()){ attempFailoverAdServerCall(); } else { if (_listener != null){ _listener.onTemplateLoadError(_arg2); }; }; }; } public function get ads():Array{ return (_ads); } public function get masterAdRequest():AdServerRequest{ return (_masterAdRequest); } public function getMergedAds():Array{ return (_ads); } public function set dataLoaded(_arg1:Boolean):void{ _dataLoaded = _arg1; } public function merge(_arg1:AdServerTemplate, _arg2:Boolean=false, _arg3:Boolean=false):void{ if (_arg1.forceImpressionServing){ doLog("Will merge empty video ads to support 'forcedImpressionServing'", Debuggable.DEBUG_VAST_TEMPLATE); _forceImpressionServing = _arg1.forceImpressionServing; }; if (_arg1.hasAds(_arg1.forceImpressionServing)){ if (_arg2){ doLog(((((((("Merging (and replacing IDs) " + _arg1.ads.length) + " ads from Template:") + _arg1.uid) + " into this ") + (_arg3) ? "V2 Wrapper" : "V1") + " Template:") + _uid), Debuggable.DEBUG_VAST_TEMPLATE); _ads = _ads.concat(replaceAdIds((_arg3) ? _arg1.getMergedAds() : _arg1.ads)); } else { doLog(((((((("Merging (leaving IDs untouched) " + _arg1.ads.length) + " ads from Template:") + _arg1.uid) + " into this ") + (_arg3) ? "V2 Wrapper" : "V1") + " Template:") + _uid), Debuggable.DEBUG_VAST_TEMPLATE); _ads = _ads.concat((_arg3) ? _arg1.getMergedAds() : _arg1.ads); }; } else { doLog((((("No ads in Template '" + _arg1.uid) + "' to merge with Template ") + _uid) + " - returning"), Debuggable.DEBUG_VAST_TEMPLATE); }; _templateData = (_templateData + _arg1.getRawTemplateData()); } protected function mustEnsureSingleAdUnitRecordedPerInlineAd():Boolean{ if (_masterAdRequest != null){ return (_masterAdRequest.mustEnsureSingleAdUnitRecordedPerInlineAd()); }; return (true); } public function hasAds(_arg1:Boolean=false):Boolean{ var _local2:VideoAd; if (_ads == null){ return (false); }; for each (_local2 in _ads) { if (_local2.hasAds(_arg1)){ return (true); }; }; return (false); } public function addVideoAd(_arg1:VideoAd):void{ _ads.push(_arg1); } protected function replaceAdIds(_arg1:Array):Array{ var _local2:int; var _local3:String; if (_arg1 != null){ _local2 = 0; while (_local2 < _arg1.length) { _local3 = getReplacementAdId(_arg1[_local2].adType); if (_local3 != null){ doLog(((((("Replacing VideoAd.id '" + _arg1[_local2].id) + "' with '") + _local3) + "' in Template:") + _uid), Debuggable.DEBUG_VAST_TEMPLATE); _arg1[_local2].id = _local3; }; _local2++; }; }; return (_arg1); } public function filterLinearAdMediaFileByMimeType(_arg1:Array):void{ } protected function hasFailoverCallsAvailable():Boolean{ if (_masterAdRequest != null){ return (_masterAdRequest.hasFailoverRequestsAvailable()); }; return (false); } public function getVideoAdWithID(_arg1:String):VideoAd{ var _local2:int; doLog(((("Looking for a Video Ad " + _arg1) + " in Template:") + _uid), Debuggable.DEBUG_VAST_TEMPLATE); if (_ads != null){ _local2 = 0; while (_local2 < _ads.length) { if (_ads[_local2].id == _arg1){ doLog((((("- Assessing '" + _ads[_local2].id) + "' in Template:") + _uid) + " - match found - returning it"), Debuggable.DEBUG_VAST_TEMPLATE); return (_ads[_local2]); }; doLog((((("- Assessing '" + _ads[_local2].id) + "' in Template:") + _uid) + " - no match"), Debuggable.DEBUG_VAST_TEMPLATE); _local2++; }; doLog((("Could not find Video Ad " + _arg1) + " in the VAST template"), Debuggable.DEBUG_VAST_TEMPLATE); } else { doLog("No ads in the list!", Debuggable.DEBUG_VAST_TEMPLATE); }; return (null); } protected function loadTemplateData(_arg1:AdServerRequest):void{ var _local2:String; if (_arg1 != null){ _activeRequest = _arg1; _local2 = _activeRequest.formRequest(); if (StringUtils.isEmpty(_local2) == false){ if (_listener != null){ _listener.onAdCallStarted(_arg1); }; _xmlLoader = new TimedURLLoader((_arg1.timeoutInSeconds * 1000)); if (_arg1.requiresTransformation()){ _xmlLoader.transformers = _arg1.config.transformers; }; _xmlLoader.addEventListener(Event.COMPLETE, templateLoaded); _xmlLoader.addEventListener(ErrorEvent.ERROR, errorHandler); _xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); _xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); _xmlLoader.addEventListener(TimedLoaderEvent.TIMED_OUT, timeoutHandler); _xmlLoader.load(new URLRequest(_local2)); if (_listener != null){ if (_listener.analyticsProcessor != null){ _listener.analyticsProcessor.fireAdCallTracking(AnalyticsProcessor.FIRED, _activeRequest, _activeRequest.isWrapped()); }; }; } else { errorHandler(new Event("Empty ad tag - ignored")); }; }; } protected function fireTemplateLoadedTracking():void{ if (_listener != null){ if (((!((_listener.analyticsProcessor == null))) && (!((_activeRequest == null))))){ _listener.analyticsProcessor.fireAdCallTracking(AnalyticsProcessor.COMPLETE, _activeRequest, _activeRequest.isWrapped()); }; }; } public function signalTemplateLoadDeferred(_arg1:String, _arg2:Event):void{ if (_listener != null){ if (((!((_listener.analyticsProcessor == null))) && (!((_activeRequest == null))))){ _listener.analyticsProcessor.fireAdCallTracking(AnalyticsProcessor.DEFERRED, _activeRequest, _activeRequest.isWrapped()); }; }; closeXMLLoader(); deregisterLoader(_arg1); if (registeredLoadersIsEmpty()){ if (needsToFailover()){ attempFailoverAdServerCall(); } else { if (_listener != null){ _listener.onTemplateLoadDeferred(_arg2); }; }; }; } public function get dataLoaded():Boolean{ return (_dataLoaded); } public function getHtmlFriendlyTemplateData():String{ var _local1:XML = new XML(getRawTemplateData()); var _local2:RegExp = /\n/g; var _local3:String = _local1.toXMLString().replace(_local2, "\\n"); return (_local3); } public function deregisterLoader(_arg1:String):void{ var _local2:int = _registeredLoaders.indexOf(_arg1); if ((((_local2 > -1)) && ((_local2 < _registeredLoaders.length)))){ _registeredLoaders[_local2] = null; }; } public function set isMaster(_arg1:Boolean):void{ _isMaster = _arg1; } public function set masterAdRequest(_arg1:AdServerRequest):void{ _masterAdRequest = _arg1; if (_masterAdRequest != null){ _forceImpressionServing = _masterAdRequest.forceImpressionServing(); }; } public function getRawTemplateData():String{ return (_templateData); } public function set ads(_arg1:Array):void{ _ads = _arg1; } public function load(_arg1:AdServerRequest, _arg2:Boolean=false):void{ } public function signalTemplateLoaded(_arg1:String):void{ if (_listener != null){ _listener.onAdCallComplete(_activeRequest, hasAds()); }; closeXMLLoader(); deregisterLoader(_arg1); if (registeredLoadersIsEmpty()){ if (needsToFailover()){ attempFailoverAdServerCall(); } else { if (_listener != null){ _listener.onTemplateLoaded(this); }; }; }; } public function closeXMLLoader():void{ if (_xmlLoader != null){ try { _xmlLoader.close(); _xmlLoader = null; } catch(e:Error) { }; }; } public function getAdCount():int{ if (_ads != null){ return (_ads.length); }; return (0); } public function signalTemplateLoadTimeout(_arg1:String, _arg2:Event):void{ if (_listener != null){ _listener.onAdCallComplete(_activeRequest, false); if (((!((_listener.analyticsProcessor == null))) && (!((_activeRequest == null))))){ _listener.analyticsProcessor.fireAdCallTracking(AnalyticsProcessor.TIMED_OUT, _activeRequest, _activeRequest.isWrapped()); }; }; closeXMLLoader(); deregisterLoader(_arg1); if (registeredLoadersIsEmpty()){ if (needsToFailover()){ attempFailoverAdServerCall(); } else { if (_listener != null){ _listener.onTemplateLoadTimeout(_arg2); }; }; }; } protected function attempFailoverAdServerCall():void{ var _local1:AdServerRequest = _masterAdRequest.nextFailoverAdServerRequest(); if (_local1 != null){ doLog("Failing over - attempting to retrieve ads from fail-over ad server - clearing out any ads from this template", Debuggable.DEBUG_VAST_TEMPLATE); _ads = new Array(); if (_listener != null){ _listener.onAdCallFailover(_masterAdRequest, _local1); if (((!((_listener.analyticsProcessor == null))) && (!((_activeRequest == null))))){ _listener.analyticsProcessor.fireAdCallTracking(AnalyticsProcessor.FAILED_OVER, _local1, _local1.isWrapped()); }; }; _replaceAdIds = _local1.replaceIds; resetReplacementIds_V2(); load(_local1, true); } else { signalTemplateLoadError(_uid, new Event("Unexpeced error - No ad server request to failover to - signaling error")); doLog("Can't failover - No ad server request to failover to - signaling error", Debuggable.DEBUG_VAST_TEMPLATE); }; } public function unload():void{ doLog(("Request received to unload template " + _uid), Debuggable.DEBUG_VAST_TEMPLATE); if (_xmlLoader != null){ doLog(("Closing the active VAST URLLoader in template " + _uid), Debuggable.DEBUG_VAST_TEMPLATE); _xmlLoader.close(); }; } } }//package org.openvideoads.vast.server.response
Section 235
//TemplateLoadListener (org.openvideoads.vast.server.response.TemplateLoadListener) package org.openvideoads.vast.server.response { import org.openvideoads.vast.server.request.*; import flash.events.*; import org.openvideoads.vast.analytics.*; public interface TemplateLoadListener { function onAdCallStarted(_arg1:AdServerRequest):void; function onTemplateLoadTimeout(_arg1:Event):void; function onTemplateLoaded(_arg1:AdServerTemplate):void; function canFireAPICalls():Boolean; function onTemplateLoadError(_arg1:Event):void; function get analyticsProcessor():AnalyticsProcessor; function canFireEventAPICalls():Boolean; function get uid():String; function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void; function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void; function onTemplateLoadDeferred(_arg1:Event):void; } }//package org.openvideoads.vast.server.response
Section 236
//TimeEvent (org.openvideoads.vast.tracking.TimeEvent) package org.openvideoads.vast.tracking { import org.openvideoads.base.*; public class TimeEvent extends Debuggable { protected var _milliseconds:Number; protected var _duration:Number; protected var _label:String; protected var _adEventLabelList:String;// = "TM BA EA 1Q HW 3Q SN HN NS NE TN" protected static const _linearAdLabelList:String = "BA EA 1Q HW 3Q CS CE SN HN EC DC TN"; public function TimeEvent(_arg1:Number, _arg2:Number=0, _arg3:String=null){ _milliseconds = _arg1; _duration = _arg2; _label = _arg3; } public function isAdOnlyEvent():Boolean{ return ((_adEventLabelList.indexOf(label) > -1)); } public function get label():String{ return (_label); } public function isLinearAdEvent():Boolean{ return ((_linearAdLabelList.indexOf(_label) > -1)); } public function toString():String{ return ((((((("TimeEvent(time point: " + _milliseconds) + ", label: ") + _label) + ", duration: ") + _duration) + ")")); } public function get milliseconds():Number{ return (_milliseconds); } public function get duration():Number{ return (_duration); } public function get seconds():Number{ return ((_milliseconds / 1000)); } } }//package org.openvideoads.vast.tracking
Section 237
//TrackingPoint (org.openvideoads.vast.tracking.TrackingPoint) package org.openvideoads.vast.tracking { public class TrackingPoint { protected var _milliseconds:Number; protected var _label:String; protected var _isForLinearChild:Boolean;// = false protected var _id:String; public function TrackingPoint(_arg1:Number, _arg2:String, _arg3:String=null){ _milliseconds = _arg1; _label = _arg2; _id = _arg3; } public function get type():String{ if (label != null){ return (label.substr(0, 2)); }; return (null); } public function isNonLinear():Boolean{ var _local1 = "NS NE CS CE"; return ((_local1.indexOf(type) > -1)); } public function toString():String{ return ((((((("TrackingPoint(time point: " + _milliseconds) + ", label: ") + _label) + ", isForLinearChild:") + _isForLinearChild) + ")")); } public function isLinear():Boolean{ var _local1 = "BS ES BA EA DS HS 1Q HW 3Q CS CE SN HN EC DC TN"; return ((_local1.indexOf(type) > -1)); } public function set isForLinearChild(_arg1:Boolean):void{ _isForLinearChild = _arg1; } public function get milliseconds():Number{ return (_milliseconds); } public function get isForLinearChild():Boolean{ return (_isForLinearChild); } public function get label():String{ return (_label); } public function repeatable():Boolean{ var _local1 = "SN HN EC DC CS CE DS HS"; return ((_local1.indexOf(type) > -1)); } public function get id():String{ return (_id); } public function get seconds():Number{ return ((_milliseconds / 1000)); } } }//package org.openvideoads.vast.tracking
Section 238
//TrackingTable (org.openvideoads.vast.tracking.TrackingTable) package org.openvideoads.vast.tracking { import org.openvideoads.base.*; public class TrackingTable extends Debuggable { protected var _points:Array; protected var _maxBaseTime:Number;// = 0 protected var _tid:String;// = "-no-id-" protected var _index:int;// = -1 protected var _originatingStreamIndex:Number;// = -1 protected var _minBaseTime:Number;// = -1 public function TrackingTable(_arg1:String, _arg2:int, _arg3:int){ _points = new Array(); super(); _tid = _arg1; _index = _arg2; _originatingStreamIndex = _arg3; } public function get maxBaseTime():Number{ return (_maxBaseTime); } public function hasHitTrackingPoints(_arg1:Boolean=false):Boolean{ var _local3:Object; var _local2:int; while (_local2 < _points.length) { _local3 = _points[_local2]; if (((_arg1) && (_local3.childLinear))){ if (_local3.hit){ return (true); }; } else { if (((!(_arg1)) && (!(_local3.childLinear)))){ if (_local3.hit){ return (true); }; }; }; _local2++; }; return (false); } public function setPoint(_arg1:TrackingPoint, _arg2:Boolean=false):void{ doLog((((((((((("Tracking point recorded in table (stream index: " + getStreamIndex()) + ", tid: ") + _tid) + ") at ") + _arg1.milliseconds) + " milliseconds with event label ") + _arg1.label) + " (child:") + _arg2) + ")"), Debuggable.DEBUG_TRACKING_TABLE); _arg1.isForLinearChild = _arg2; _points[_points.length] = {point:_arg1, hit:false, childLinear:_arg2}; if (!_arg2){ if ((((_minBaseTime < 0)) || ((_arg1.milliseconds < _minBaseTime)))){ _minBaseTime = _arg1.milliseconds; }; if (_arg1.milliseconds > _maxBaseTime){ _maxBaseTime = _arg1.milliseconds; }; }; } public function timeBetweenTwoPoints(_arg1:Number, _arg2:String, _arg3:String):Boolean{ var _local4:TrackingPoint = getTrackingPointOfType(_arg2); var _local5:TrackingPoint = getTrackingPointOfType(_arg3); if (((!((_local4 == null))) && (!((_local5 == null))))){ return ((((_local4.milliseconds <= _arg1)) && ((_local5.milliseconds >= _arg1)))); }; return (false); } public function pointAt(_arg1:int):TrackingPoint{ if (_arg1 < length){ return (_points[_arg1].point); }; return (null); } public function getPointAtIndex(_arg1:int):TrackingPoint{ if (_arg1 < (length - 1)){ return (_points[_arg1].point); }; return (null); } public function activeTrackingPoints(_arg1:TimeEvent, _arg2:Boolean=true):Array{ var _local4:Object; var _local5:int; var _local6:int; var _local3:Array = new Array(); if ((((((_arg2 == false)) && ((_arg1.milliseconds > _maxBaseTime)))) && ((_arg1.label == null)))){ doLog(((((((((("TrackingTable cleanup (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): Search for unused tracking points matching ") + _arg1.toString()) + " onlyChildLinear: ") + _arg2), Debuggable.DEBUG_TRACKING_TABLE); _local5 = 0; while (_local5 < _points.length) { _local4 = _points[_local5]; if (_local4.hit){ doLog((((((((("TrackingTable cleanup (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): Ignoring tracking point ") + _local4.point.label) + " because it's been fired already and is not repeatable"), Debuggable.DEBUG_TRACKING_TABLE); } else { if ((((_local4.childLinear == false)) && (((!((_local4.point.label == "NS"))) && (!((_local4.point.label == "CS"))))))){ _local4.hit = true; doLog(((((((((((((("TrackingTable cleanup (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): MATCHED tracking point ") + _local4.point.label) + " @ ") + _local4.point.milliseconds) + " on table ") + _tid) + " - time event @ ") + _arg1.milliseconds), Debuggable.DEBUG_TRACKING_TABLE); _local3.push(_local4.point); }; }; _local5++; }; } else { if (((_arg2) || (isTimeInBaseRange(_arg1.milliseconds)))){ doLog(((((((((("TrackingTable Step 1 (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): Search for active tracking points matching ") + _arg1.toString()) + " onlyChildLinear: ") + _arg2), Debuggable.DEBUG_TRACKING_TABLE); _local6 = 0; while (_local6 < _points.length) { _local4 = _points[_local6]; if (((((!(_arg2)) && (_local4.childLinear))) || (((_arg2) && (!(_local4.childLinear)))))){ } else { if (_local4.hit){ doLog((((((((("TrackingTable Step 2 (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): Ignoring tracking point ") + _local4.point.label) + " because it's been fired already and is not repeatable"), Debuggable.DEBUG_TRACKING_TABLE); } else { if (_arg1.label != null){ if ((((_local4.point.milliseconds <= _arg1.milliseconds)) && ((_local4.point.label == _arg1.label)))){ _local4.hit = true; doLog(((((((((((((("TrackingTable Step 3 (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): MATCHED tracking point ") + _local4.point.label) + " @ ") + _local4.point.milliseconds) + " on table ") + _tid) + " - time event @ ") + _arg1.milliseconds), Debuggable.DEBUG_TRACKING_TABLE); _local3.push(_local4.point); }; } else { if ((_local4.point.milliseconds <= _arg1.milliseconds)){ _local4.hit = true; doLog(((((((((((((("TrackingTable Step 4 (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): MATCHED tracking point ") + _local4.point.label) + " @ ") + _local4.point.milliseconds) + " on table ") + _tid) + " - time event @ ") + _arg1.milliseconds), Debuggable.DEBUG_TRACKING_TABLE); _local3.push(_local4.point); } else { if (_local4.milliseconds > _arg1.milliseconds){ doLog((((((((("TrackingTable Step 5 (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): Complete - returning ") + _local3.length) + " matches"), Debuggable.DEBUG_TRACKING_TABLE); }; }; }; }; }; _local6++; }; doLog((((((((("TrackingTable Step 6 (" + getStreamIndex()) + ", ") + _tid) + ", length: ") + _points.length) + "): Complete - returning ") + _local3.length) + " matches"), Debuggable.DEBUG_TRACKING_TABLE); }; }; return (_local3); } public function resetAllTrackingPoints():void{ doLog((((("Resetting ALL tracking points in table '" + getStreamIndex()) + ", ") + _tid) + "'"), Debuggable.DEBUG_TRACKING_TABLE); var _local1:int; while (_local1 < _points.length) { _points[_local1].hit = false; _local1++; }; } public function get length():int{ return (_points.length); } public function isTimeInBaseRange(_arg1:Number):Boolean{ if (_minBaseTime == -1){ return (false); }; return ((((_minBaseTime <= _arg1)) && ((_maxBaseTime >= _arg1)))); } public function getTrackingPointOfType(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false):TrackingPoint{ var _local5:Object; var _local4:int; while (_local4 < _points.length) { _local5 = _points[_local4]; if (((!(_arg2)) && (_local5.childLinear))){ } else { if (_local5.point.label == _arg1){ if (_arg3){ _local5.hit = true; }; return (_local5.point); }; }; _local4++; }; return (null); } public function resetRepeatableTrackingPointsFromTime(_arg1:Number):void{ var _local3:Object; doLog((((((("Reseting repeatable tracking points in table (" + getStreamIndex()) + ",") + _tid) + ") from ") + _arg1) + " milliseconds so that they fire again"), Debuggable.DEBUG_TRACKING_TABLE); var _local2:int; while (_local2 < _points.length) { _local3 = _points[_local2]; if (_local3.point.milliseconds >= _arg1){ if (_local3.point.repeatable()){ _local3.hit = false; }; }; _local2++; }; } public function get minBaseTime():Number{ return (_minBaseTime); } public function hasActiveTrackingPoint(_arg1:TimeEvent, _arg2:Boolean=true):TrackingPoint{ var _local4:Object; var _local3:int; while (_local3 < _points.length) { _local4 = _points[_local3]; if (((((!(_arg2)) && (_local4.childLinear))) || (((_arg2) && (!(_local4.childLinear)))))){ } else { if (_local4.hit){ } else { if (_arg1.label != null){ if ((((_local4.point.milliseconds <= _arg1.milliseconds)) && ((_local4.point.label == _arg1.label)))){ _local4.hit = true; return (_local4.point); }; } else { if ((_local4.point.milliseconds <= _arg1.milliseconds)){ _local4.hit = true; return (_local4.point); }; if (_local4.milliseconds > _arg1.milliseconds){ return (null); }; }; }; }; _local3++; }; return (null); } public function removeSelectTrackingPoints(_arg1:String):void{ var _local2:int; while (_local2 < _points.length) { if (_arg1.indexOf(_points[_local2].point.label) > -1){ _points.splice(_local2, 1); } else { _local2++; }; }; } protected function getStreamIndex():String{ return (((_index + ":") + _originatingStreamIndex)); } public function resetRepeatableTrackingPoints():void{ resetRepeatableTrackingPointsFromTime(0); } } }//package org.openvideoads.vast.tracking
Section 239
//VASTController (org.openvideoads.vast.VASTController) package org.openvideoads.vast { import org.openvideoads.vast.config.*; import org.openvideoads.vast.events.*; import org.openvideoads.vast.schedule.*; import org.openvideoads.vast.tracking.*; import org.openvideoads.vast.schedule.ads.*; import org.openvideoads.vast.server.events.*; import org.openvideoads.vast.server.request.*; import org.openvideoads.vast.server.response.*; import flash.events.*; import org.openvideoads.vast.analytics.*; import org.openvideoads.base.*; import org.openvideoads.util.*; import org.openvideoads.vast.model.*; import org.openvideoads.vast.config.groupings.*; import org.openvideoads.vast.overlay.*; import org.openvideoads.vpaid.*; import org.openvideoads.vast.overlay.button.skip.*; import flash.utils.*; import flash.system.*; import flash.external.*; public class VASTController extends EventController implements TemplateLoadListener, AdSlotOnDemandLoadListener, ConfigLoadListener { protected var _additionalMetricsParams:String;// = null protected var _loading:Boolean;// = false protected var _timeBaseline:String;// = "relative-to-clip" protected var _companionDisplayRegister:Object; protected var _loadDataOnConfigLoaded:Boolean;// = false protected var _isLoadingConfig:Boolean;// = false protected var _config:Config; protected var _configLoadListener:ConfigLoadListener;// = null protected var _initialised:Boolean;// = false protected var _trackStreamSlices:Boolean;// = false protected var _visuallyCueingLinearAdClickthroughs:Boolean;// = true protected var _playerVolume:Number;// = 1 protected var _controllingDisplayOfCompanionContent:Boolean;// = true protected var _adSchedule:AdSchedule;// = null protected var _streamSequence:StreamSequence;// = null protected var _startStreamSafetyMargin:int;// = 0 protected var _overlayController:OverlayController;// = null protected var _overlayLinearVideoAdSlot:AdSlot;// = null protected var _template:AdServerTemplate;// = null protected var _defaultPlayerConfigGroup:PlayerConfigGroup;// = null protected var _endStreamSafetyMargin:int;// = 0 public static const RELATIVE_TO_CLIP:String = "relative-to-clip"; protected static const OVAJS:Class = VASTController_OVAJS; public static const USE_EMBEDDED_JAVASCRIPT:Boolean = false; public static const CONTINUOUS:String = "continuous"; public static const VERSION:String = "v1.1.0 Final (build 7)"; protected static var _analyticsProcessor:AnalyticsProcessor = null; public function VASTController(_arg1:Config=null, _arg2:int=0){ _config = new Config(); _companionDisplayRegister = new Object(); super(); if (_arg1 != null){ initialise(_arg1); }; _endStreamSafetyMargin = _arg2; } public function hideAllRegions():void{ if (_overlayController != null){ _overlayController.hideAllRegions(); }; } public function getMidrollsForStreamBetween(_arg1:int, _arg2:Number, _arg3:Number):Array{ var _local5:int; doLog(((((("Searching for mid-rolls scheduled to playback between " + _arg2) + " and ") + _arg3) + " - stream index is ") + _arg1), Debuggable.DEBUG_PLAYLIST); var _local4:Array = new Array(); if (_adSchedule != null){ _local5 = 0; while (_local5 < _adSchedule.length) { if (AdSlot(_adSchedule.getSlot(_local5)).associatedStreamIndex == _arg1){ if (((AdSlot(_adSchedule.getSlot(_local5)).isMidRoll()) && ((AdSlot(_adSchedule.getSlot(_local5)).isEmpty() == false)))){ if (AdSlot(_adSchedule.getSlot(_local5)).occursBetweenTimes(_arg2, _arg3)){ _local4.push(_adSchedule.getSlot(_local5)); }; }; }; _local5++; }; }; return (_local4); } public function get overlayController():OverlayController{ return (_overlayController); } public function playbackStartsWithPreroll():Boolean{ var _local1:AdSlot = getFirstPreRollAdSlot(); if (_local1 != null){ return (_local1.isPreRoll()); }; return (false); } public function canFireEventAPICalls():Boolean{ if (_config != null){ return (_config.canFireEventAPICalls); }; return (false); } public function processHTML5NonLinearDisplayExternally():Boolean{ return (_config.processHTML5NonLinearDisplayExternally); } public function closeActiveAdNotice():void{ if (_overlayController != null){ _overlayController.hideAdNotice(); }; } public function processTimeEvent(_arg1:int, _arg2:TimeEvent):void{ if (_adSchedule != null){ _adSchedule.processTimeEvent(_arg1, _arg2, false); }; if (_streamSequence != null){ _streamSequence.processTimeEvent(_arg1, _arg2, false); }; } public function canFireAPICalls():Boolean{ if (_config != null){ return (_config.canFireAPICalls); }; return (false); } public function registerAnalytics(_arg1:Array):void{ if (_config != null){ _config.analytics.update(_arg1); }; } protected function anyCompanionIsCurrentlyDisplayed(_arg1:String, _arg2:String):Boolean{ if (((!((_companionDisplayRegister[_arg1] == undefined))) && (!((_companionDisplayRegister[_arg1] == null))))){ return (StringUtils.matchesIgnoreCase(_companionDisplayRegister[_arg1].parentAdUID, _arg2)); }; return (false); } public function enableAutoPlay():void{ doLog("Auto play has been turned on", Debuggable.DEBUG_CONFIG); _config.autoPlay = true; } public function activateLinearAdSkipButton(_arg1:Function):void{ if (_overlayController != null){ _overlayController.activateLinearAdSkipButton(new SkipAdButtonDisplayEvent(SkipAdButtonDisplayEvent.DISPLAY, "region", "image", _arg1)); }; } public function disableVisualLinearAdClickThroughCue(_arg1:AdSlot=null):void{ if (((_config.visuallyCueLinearAdClickThrough) && (!((overlayController == null))))){ overlayController.disableLinearAdMouseOverRegion(); }; } public function playVPAIDAd(_arg1:AdSlot, _arg2:Boolean=false, _arg3:Boolean=false, _arg4:Number=-1):void{ var ad:*; var adSlot = _arg1; var muteOnStartup = _arg2; var reduceVPAIDAdHeightByControlbarHeight = _arg3; var playerVolume = _arg4; if (adSlot != null){ adSlot.markAsPlayed(); if (_overlayController != null){ if (((adSlot.isLinear()) && (_config.adsConfig.resetTrackingOnReplay))){ adSlot.resetAllTrackingPoints(); }; ad = (adSlot.isLinear()) ? adSlot.getLinearVideoAd() : adSlot.getNonLinearVideoAd(); _overlayController.playVPAIDAd(adSlot, {onLoading:function (_arg1:VPAIDEvent=null):void{ dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.LINEAR_LOADING, adSlot)); }, onLoaded:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.LOADED, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_LOADED : VPAIDAdDisplayEvent.NON_LINEAR_LOADED, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onImpression:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireImpressionTracking((adSlot.isLinear()) ? AnalyticsProcessor.LINEAR : AnalyticsProcessor.NON_LINEAR, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_IMPRESSION : VPAIDAdDisplayEvent.NON_LINEAR_IMPRESSION, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onStart:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.STARTED, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_START : VPAIDAdDisplayEvent.NON_LINEAR_START, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onComplete:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.COMPLETE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_COMPLETE : VPAIDAdDisplayEvent.NON_LINEAR_COMPLETE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onPaused:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.PAUSED, adSlot, ad, getAdditionalMetricsParams()); }; }, onPlaying:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.PLAYING, adSlot, ad, getAdditionalMetricsParams()); }; }, onError:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.ERROR, adSlot, ad, getAdditionalMetricsParams(("ova_error=" + _arg1.data))); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_ERROR : VPAIDAdDisplayEvent.NON_LINEAR_ERROR, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onExpandedChange:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.EXPANDED_CHANGE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_EXPANDED_CHANGE : VPAIDAdDisplayEvent.NON_LINEAR_EXPANDED_CHANGE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onLinearChange:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.LINEAR_CHANGE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_LINEAR_CHANGE : VPAIDAdDisplayEvent.NON_LINEAR_LINEAR_CHANGE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onRemainingTimeChange:function (_arg1:VPAIDEvent=null):void{ dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_TIME_CHANGE : VPAIDAdDisplayEvent.NON_LINEAR_TIME_CHANGE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onClickThru:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireAdClickTracking(AnalyticsProcessor.VPAID, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_CLICK_THRU : VPAIDAdDisplayEvent.NON_LINEAR_CLICK_THRU, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onUserAcceptInvitation:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.USER_ACCEPT_INVITATION, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_USER_ACCEPT_INVITATION : VPAIDAdDisplayEvent.NON_LINEAR_USER_ACCEPT_INVITATION, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onUserMinimize:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.COLLAPSE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_USER_MINIMIZE : VPAIDAdDisplayEvent.NON_LINEAR_USER_MINIMIZE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onUserClose:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.CLOSE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent((adSlot.isLinear()) ? VPAIDAdDisplayEvent.LINEAR_USER_CLOSE : VPAIDAdDisplayEvent.NON_LINEAR_USER_CLOSE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdStart:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_START, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_START, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdFirstQuartile:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_FIRST_QUARTILE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_FIRST_QUARTILE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdMidpoint:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_MIDPOINT, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_MIDPOINT, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdThirdQuartile:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_THIRD_QUARTILE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_THIRD_QUARTILE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdComplete:function (_arg1:VPAIDEvent=null):void{ if (((!((_analyticsProcessor == null))) && (!((ad == null))))){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_COMPLETE, adSlot, ad, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_COMPLETE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }}, muteOnStartup, playerVolume, reduceVPAIDAdHeightByControlbarHeight); }; }; } public function onDisplayNonLinearAd(_arg1:OverlayAdDisplayEvent):void{ if (_arg1 != null){ if (_arg1.adSlot != null){ if (_arg1.displayMode == OverlayAdDisplayEvent.DISPLAY_MODE_HTML5){ if (_arg1.isVPAIDAd() == false){ if (ExternalInterface.available){ displayNonLinearAdExternally(_arg1); }; }; } else { displayNonLinearAdInternally(_arg1); }; }; }; } public function displayCompanionAd(_arg1:CompanionAdDisplayEvent):void{ var previousContent:String; var companionEvent = _arg1; var companionAd:CompanionAd = companionEvent.companionAd; if (processCompanionDisplayExternally()){ if (companionEvent.contentIsHTML()){ if (companionEvent.content != null){ if (companionEvent.content.length > 0){ if ((((anyCompanionIsCurrentlyDisplayed(companionEvent.divID, companionAd.getParentAdUID()) == false)) && (companionOfSameSizeNotDisplayed(companionEvent.companionAd, companionEvent.divID, companionAd.getParentAdUID())))){ try { doLog(((((((("Calling external javascript to insert companion - " + companionAd.width) + "x") + companionAd.height) + " creativeType: ") + companionAd.creativeType) + " resourceType: ") + companionAd.resourceType), Debuggable.DEBUG_DISPLAY_EVENTS); previousContent = ExternalInterface.call("ova.readHTML", companionEvent.divID); companionAd.registerDisplay(companionEvent.divID, previousContent); registerCompanionBeingDisplayed(companionEvent.companionAd, companionEvent.divID, companionAd.getParentAdUID()); ExternalInterface.call("ova.writeElement", companionEvent.divID, companionEvent.content); doLog("Companion has been written to the page via ova.writeElement() jQuery javascript function", Debuggable.DEBUG_DISPLAY_EVENTS); } catch(e:Error) { doLog(("Exception attempting to insert the companion code - " + e.message), Debuggable.DEBUG_FATAL); }; } else { doLog("Not writing companion content - it's already active or one of the same size is active in the DIV", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("No displaying companion - 0 length", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("No displaying companion - null length", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { if (companionEvent.contentIsSWF()){ doLog("SWF content type not supported - should always be output as HTML - if this error comes up, something serious is wrong", Debuggable.DEBUG_FATAL); } else { doLog("Companion content type not supported", Debuggable.DEBUG_FATAL); }; }; } else { if (companionEvent.contentIsHTML()){ if (companionEvent.content != null){ if (companionEvent.content.length > 0){ if ((((anyCompanionIsCurrentlyDisplayed(companionEvent.divID, companionAd.getParentAdUID()) == false)) && (companionOfSameSizeNotDisplayed(companionEvent.companionAd, companionEvent.divID, companionAd.getParentAdUID())))){ try { previousContent = ExternalInterface.call((("function() {return document.getElementById('" + companionEvent.divID) + "').innerHTML; }")); companionAd.registerDisplay(companionEvent.divID, previousContent); if (((((companionEvent.companionAd.isSWFCreativeType()) && ((companionEvent.companionAd.hasCode() == false)))) && (BrowserUtils.isIE6()))){ ExternalInterface.call(companionEvent.content); doLog("IE6: SWF Companion has been written to the page directly from OVA using SWF Object element creation", Debuggable.DEBUG_DISPLAY_EVENTS); } else { ExternalInterface.call((((("function(){ document.getElementById('" + companionEvent.divID) + "').innerHTML='") + StringUtils.doubleEscapeSingleQuotes(StringUtils.removeNewlines(companionEvent.content))) + "'; }")); doLog("Companion has been written to the page directly from OVA SWF using 'innerHTML'", Debuggable.DEBUG_DISPLAY_EVENTS); }; registerCompanionBeingDisplayed(companionEvent.companionAd, companionEvent.divID, companionAd.getParentAdUID()); } catch(e:Error) { doLog(("Exception attempting to insert the companion code - " + e.message), Debuggable.DEBUG_FATAL); }; } else { doLog("Not writing companion content - it's already active or one of the same size is active in the DIV", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("No displaying companion - 0 length", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("No displaying companion - null length", Debuggable.DEBUG_DISPLAY_EVENTS); }; } else { doLog("Companion content type not supported", Debuggable.DEBUG_DISPLAY_EVENTS); }; }; } public function onPlayerPause(_arg1:int=-1, _arg2:Boolean=false):void{ var _local3:Stream; if (_arg2){ if (_adSchedule != null){ _local3 = _adSchedule.getSlot(_arg1); }; } else { if (_streamSequence != null){ _local3 = _streamSequence.getStreamAtIndex(_arg1); }; }; if (_local3 != null){ if ((_local3 is AdSlot)){ if (_overlayController != null){ if (((AdSlot(_local3).isLinear()) && (AdSlot(_local3).isInteractive()))){ if (_overlayController.isVPAIDAdPlaying()){ _overlayController.pauseActiveVPAIDAd(); }; _overlayController.pauseLinearAdRegions(); return; }; _overlayController.pauseLinearAdRegions(); }; }; _local3.processPauseStream(); }; } public function isVPAIDAdPlaying():Boolean{ if (_overlayController != null){ return (_overlayController.isVPAIDAdPlaying()); }; return (false); } public function closeActiveOverlaysAndCompanions():void{ if (_adSchedule != null){ _adSchedule.closeActiveOverlaysAndCompanions(_config.adsConfig.resetTrackingOnReplay); }; } public function onPlayerSeek(_arg1:int=-1, _arg2:Boolean=false, _arg3:Number=0):void{ if (_adSchedule != null){ _adSchedule.closeOutdatedOverlaysAndCompanionsForThisStream(_arg1, _arg3, _config.adsConfig.resetTrackingOnReplay); processTimeEvent(_arg1, new TimeEvent(_arg3, 0)); }; } public function loadAdSlotAtIndexOnDemand(_arg1:int):Boolean{ if (_adSchedule != null){ if (_adSchedule.length < _arg1){ if (AdSlot(_adSchedule[_arg1]).loadOnDemand == true){ return (AdSlot(_adSchedule[_arg1]).load(this)); }; }; }; return (false); } public function processImpressionFiringForEmptyAdSlots(_arg1:Boolean=false):void{ if (_adSchedule != null){ _adSchedule.processImpressionFiringForEmptyAdSlots(_arg1); }; } public function hideAllOverlays():void{ if (_overlayController != null){ _overlayController.hideAllOverlays(); }; } protected function deregisterCompanionBeingDisplayed(_arg1:String):void{ registerCompanionBeingDisplayed(null, _arg1); } public function closeActiveVPAIDAds():void{ if (_overlayController != null){ _overlayController.closeActiveVPAIDAds(); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_arg1.indexOf("region-") > -1){ if (_overlayController != null){ _overlayController.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); }; } else { super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); }; } public function resetRepeatableStreamTrackingPoints(_arg1:int):void{ if (((!((_streamSequence == null))) && ((_arg1 > -1)))){ _streamSequence.resetRepeatableTrackingPoints(_arg1); }; } protected function matchAndDisplayCompanion(_arg1:CompanionAd, _arg2:Object):Boolean{ var _local5:String; var _local6:CompanionAdDisplayEvent; if (anyCompanionIsCurrentlyDisplayed(_arg2.id, _arg1.getParentAdUID())){ doLog((((("DIV " + _arg2.id) + " is busy with companion '") + _companionDisplayRegister[_arg2.id].id) + "'"), Debuggable.DEBUG_DISPLAY_EVENTS); return (false); }; var _local3:Boolean; var _local4:Boolean; if (((!((_arg2.resourceType == undefined))) && ((_arg2.creativeType == undefined)))){ doLog(((((("Refining companion matching to " + _arg2.width) + "x") + _arg2.height) + " and resourceType:") + _arg2.resourceType), Debuggable.DEBUG_DISPLAY_EVENTS); _local4 = _arg1.matchesSizeAndResourceType(_arg2.width, _arg2.height, _arg2.resourceType); } else { if (_arg2.index != undefined){ doLog(((((("Refining companion matching to " + _arg2.width) + "x") + _arg2.height) + " and index:") + _arg2.index), Debuggable.DEBUG_DISPLAY_EVENTS); _local4 = _arg1.matchesSizeAndIndex(_arg2.width, _arg2.height, _arg2.index); } else { if (((!((_arg2.creativeType == undefined))) && (!((_arg2.resoruceType == undefined))))){ doLog(((((((("Refining companion matching to " + _arg2.width) + "x") + _arg2.height) + " and creativeType: ") + _arg2.creativeType) + " resourceType:") + _arg2.resourceType), Debuggable.DEBUG_DISPLAY_EVENTS); _local4 = _arg1.matchesSizeAndTypes(_arg2.width, _arg2.height, _arg2.creativeType, _arg2.resourceType); } else { _local4 = _arg1.matchesSize(_arg2.width, _arg2.height); }; }; }; if (_local4){ _local3 = true; doLog(((((("Found a match for " + _arg2.width) + ",") + _arg2.height) + " - id of matching DIV is ") + _arg2.id), Debuggable.DEBUG_DISPLAY_EVENTS); _local5 = _arg1.getDisplayCode(this.config.adsConfig.additionalParamsForSWFCompanions, processCompanionDisplayExternally(), _arg2.id, BrowserUtils.isIE6()); if (_local5 != null){ _local6 = new CompanionAdDisplayEvent(CompanionAdDisplayEvent.DISPLAY, _arg1); _local6.divID = _arg2.id; _local6.content = _local5; _arg2.activeAdID = _arg1.parentAdContainer.id; if (this.controllingDisplayOfCompanionContent){ displayCompanionAd(_local6); }; dispatchEvent(_local6); fireAPICall("onCompanionAdShow", _arg1.toJSObject()); }; }; return (_local3); } public function onTemplateLoadTimeout(_arg1:Event):void{ doLog(("TIMEOUT loading ad template - " + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); _adSchedule.schedule(); _streamSequence.initialise(this, _config.streams, _adSchedule, _config.bitrate, _config.baseURL, 100, _config.previewImage); _loading = false; dispatchEvent(new TemplateEvent(TemplateEvent.LOAD_TIMEOUT, _arg1)); fireAPICall("onTemplateLoadTimeout", _arg1.toString()); if (_analyticsProcessor != null){ _analyticsProcessor.fireTemplateLoadTracking(AnalyticsProcessor.TIMED_OUT, getAdditionalMetricsParams()); }; } public function enableRegionDisplay(_arg1:DisplayProperties):void{ _overlayController = new OverlayController(this, _arg1, _config.regionsConfig); if (_arg1.displayObjectContainer != null){ _arg1.displayObjectContainer.addChild(_overlayController); _arg1.displayObjectContainer.setChildIndex(_overlayController, (_arg1.displayObjectContainer.numChildren - 1)); }; } public function onDisplayCompanionAd(_arg1:CompanionAdDisplayEvent):Boolean{ var _local3:Array; doLog("Request received to display companion ad", Debuggable.DEBUG_DISPLAY_EVENTS); var _local2:CompanionAd = _arg1.companionAd; if (_config.hasCompanionDivs()){ _local3 = _config.companionDivIDs; doLog((((((("Event trigger received by companion Ad with ID " + _local2.id) + " - looking for a div to match the sizing (") + _local2.width) + ",") + _local2.height) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); if (_config.delayingCompanionInjection()){ return (displayCompanionsWithDelay(_local2, _local3, _config.millisecondDelayOnCompanionInjection)); }; return (displayCompanionsWithoutDelay(_local2, _local3)); } else { doLog("No DIVS specified for companion ads to be displayed", Debuggable.DEBUG_DISPLAY_EVENTS); }; return (false); } protected function hideNonLinearAdExternally(_arg1:OverlayAdDisplayEvent):void{ var regionID:String; var overlayAdDisplayEvent = _arg1; if (overlayAdDisplayEvent != null){ if (overlayAdDisplayEvent.nonLinearVideoAd.isInteractive()){ doLog("Non-linear VPAID ads cannot be displayed via HTML5 - ignoring the hide request", Debuggable.DEBUG_DISPLAY_EVENTS); return; }; try { regionID = overlayAdDisplayEvent.nonLinearVideoAd.getActiveDisplayRegionID(); doLog((((("Hiding non-linear ad using the external jQuery library - region: '" + regionID) + "', content type: '") + overlayAdDisplayEvent.nonLinearVideoAd.contentType()) + "'"), Debuggable.DEBUG_DISPLAY_EVENTS); ExternalInterface.call("ova.hideNonLinearAd", {regionID:regionID, content:{type:overlayAdDisplayEvent.nonLinearVideoAd.contentType(), format:overlayAdDisplayEvent.nonLinearVideoAd.getContentFormat()}, region:overlayAdDisplayEvent.nonLinearVideoAd.activeDisplayRegion, closeButton:overlayAdDisplayEvent.nonLinearVideoAd.activeDisplayRegion.buttonConfig, nonLinearVideoAd:overlayAdDisplayEvent.nonLinearVideoAd.toJSObject(), adSlot:overlayAdDisplayEvent.adSlot.toJSObject()}); } catch(e:Error) { doLog(("Exception attempting to execute ova.hideNonLinearAd() - " + e.message), Debuggable.DEBUG_FATAL); }; }; } public function get acceptedLinearAdMimeTypes():Array{ if (_config != null){ return (_config.acceptedLinearAdMimeTypes); }; return (new Array()); } public function onShowAdNotice(_arg1:AdNoticeDisplayEvent):void{ if (handlingNonLinearAdDisplay()){ _overlayController.showAdNotice(_arg1); }; dispatchEvent(_arg1); fireAPICall("onAdNoticeShow"); } public function getActiveVPAIDAd():IVPAID{ if (_overlayController != null){ return (_overlayController.getActiveVPAIDAd()); }; return (null); } public function get template():AdServerTemplate{ return (_template); } public function onPlayerResize(_arg1:int=-1, _arg2:Boolean=false):void{ if (_arg2){ if ((((_arg1 > -1)) && ((_arg1 < _adSchedule.length)))){ _adSchedule.getSlot(_arg1).processFullScreenEvent(); }; } else { if (_streamSequence != null){ _streamSequence.processFullScreenEventForStream(_arg1); }; }; } public function onAdCallStarted(_arg1:AdServerRequest):void{ dispatchEvent(new AdTagEvent(AdTagEvent.CALL_STARTED, {masterTag:_arg1})); fireAPICall("onAdCallStarted", _arg1.toJSObject()); } public function onOVAConfigLoaded():void{ var ovajsInstance:Object; var ovaType:String; if (USE_EMBEDDED_JAVASCRIPT){ if ((((processCompanionDisplayExternally() == false)) && ((processHTML5NonLinearDisplayExternally() == false)))){ if (ExternalInterface.available){ try { ovajsInstance = new OVAJS(); ovaType = ExternalInterface.call("function(){return typeof ova;}"); if (ovaType == "undefined"){ ExternalInterface.call((("eval(decodeURIComponent(\"" + encodeURIComponent(ovajsInstance.toString())) + "\"))")); }; } catch(e:Error) { }; }; }; }; _analyticsProcessor = new AnalyticsProcessor(_config.analytics); if (this.config.operateWithoutStreamDuration()){ _streamSequence = new DurationlessStreamSequence(); doLog("Scheduler instantiated - operating in duration-less mode for show streams", Debuggable.DEBUG_CONFIG); } else { _streamSequence = new StreamSequence(); doLog("Scheduler instantiated - expecting durations to be specified with the show streams", Debuggable.DEBUG_CONFIG); }; if (_loadDataOnConfigLoaded){ load(); }; if (_configLoadListener != null){ _configLoadListener.onOVAConfigLoaded(); }; } protected function timeRelativeToClip():Boolean{ return ((_timeBaseline == VASTController.RELATIVE_TO_CLIP)); } public function onAdSlotLoadDeferred(_arg1:AdSlotLoadEvent):void{ doLog(((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamic load DEFERRED - ") + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); dispatchEvent(_arg1); fireAPICall("onAdSlotLoadDeferred", _arg1.toString()); if (_analyticsProcessor != null){ _analyticsProcessor.fireAdSlotTracking(AnalyticsProcessor.DEFERRED, _arg1.adSlot, getAdditionalMetricsParams()); }; } public function disableAutoPlay():void{ doLog("Auto play has been turned off", Debuggable.DEBUG_CONFIG); _config.autoPlay = false; } public function get initialised():Boolean{ return (_initialised); } public function fireAPICall(... _args){ var args = _args; if (((ExternalInterface.available) && (_config.canFireAPICalls))){ try { doLog((("Firing API call " + args[0]) + "()"), Debuggable.DEBUG_JAVASCRIPT); switch (args.length){ case 1: return (ExternalInterface.call(args[0])); case 2: return (ExternalInterface.call(args[0], args[1])); case 3: return (ExternalInterface.call(args[0], args[1], args[2])); default: return (ExternalInterface.call(args[0], args[1], args[2], args[3])); }; } catch(e:Error) { doLog(((("Exception making external call (" + args[0]) + ") - ") + e), Debuggable.DEBUG_JAVASCRIPT); }; }; return (null); } public function getStreamSequenceIndexGivenOriginatingIndex(_arg1:int, _arg2:Boolean=false, _arg3:Boolean=false):int{ if (_streamSequence != null){ return (_streamSequence.getStreamSequenceIndexGivenOriginatingIndex(_arg1, _arg2, _arg3)); }; return (-1); } public function get controllingDisplayOfCompanionContent():Boolean{ return (_controllingDisplayOfCompanionContent); } public function areProxiesEnabledForShowStreams():Boolean{ if (_config != null){ return (_config.areProxiesEnabledForShowStreams()); }; return (false); } public function resetAllTrackingPointsAssociatedWithStream(_arg1:int):void{ if (((!((_streamSequence == null))) && ((_arg1 > -1)))){ _streamSequence.resetAllTrackingPointsAssociatedWithStream(_arg1); }; } public function set config(_arg1:Config):void{ _config = _arg1; if (_config.debugLevelSpecified()){ Debuggable.getInstance().setLevelFromString(_config.debugLevel); }; if (_config.debuggersSpecified()){ Debuggable.getInstance().activeDebuggers = _config.debugger; }; _adSchedule = new AdSchedule(this, _streamSequence, _config); } public function get allowPlaylistControl():Boolean{ return (_config.allowPlaylistControl); } public function areProxiesEnabledForAdStreams():Boolean{ if (_config != null){ return (_config.areProxiesEnabledForAdStreams()); }; return (false); } public function handlingNonLinearAdDisplay():Boolean{ return (!((_overlayController == null))); } public function isActiveOverlayVideoPlaying():Boolean{ if (_overlayLinearVideoAdSlot != null){ return (_overlayLinearVideoAdSlot.isOverlayVideoPlaying()); }; return (false); } public function set playerVolume(_arg1:Number):void{ _playerVolume = _arg1; } public function initialise(_arg1:Object, _arg2:Boolean=false, _arg3:ConfigLoadListener=null, _arg4:Config=null):void{ _initialised = true; _configLoadListener = _arg3; _loadDataOnConfigLoaded = _arg2; if ((_arg1 is Config)){ this.config = (_arg1 as Config); } else { if (_arg4 != null){ _arg4.initialise(preProcessDepreciatedConfig(_arg1)); this.config = _arg4; } else { this.config = new Config(preProcessDepreciatedConfig(_arg1)); }; }; if (this.config.outputingDebug()){ doLog(((("Using OVA for AS3 " + VERSION) + " - Flash version is ") + Capabilities.version), Debuggable.DEBUG_CONFIG); }; this.config.setLoadedListener(this); } protected function companionIsCurrentlyDisplayed(_arg1:NonLinearVideoAd, _arg2:String, _arg3:String):Boolean{ if (((!((_companionDisplayRegister[_arg2] == undefined))) && (!((_companionDisplayRegister[_arg2] == null))))){ if (StringUtils.matchesIgnoreCase(_companionDisplayRegister[_arg2].parentAdUID, _arg3)){ return (CompanionAd(_arg1).matches(_companionDisplayRegister[_arg2])); }; }; return (false); } public function resetDurationForAdStreamAtIndex(_arg1:int, _arg2:int):void{ doLog(((("Setting new duration and resetting tracking table for stream at index " + _arg1) + " - new duration is: ") + _arg2), Debuggable.DEBUG_CONFIG); if (_streamSequence != null){ _streamSequence.resetDurationForAdStreamAtIndex(_arg1, _arg2); } else { doLog((("ERROR: Cannot reset duration and tracking table for stream at index " + _arg1) + " as the stream sequence is null"), Debuggable.DEBUG_CONFIG); }; } public function onScheduleStream(_arg1:int, _arg2:Stream):void{ if ((((((trackStreamSlices == false)) && (_arg2.isSlicedStream()))) && (!(_arg2.isFirstSlice())))){ doLog(("Ignoring 'onScheduleStream' request for stream " + _arg2.url), Debuggable.DEBUG_SEGMENT_FORMATION); } else { dispatchEvent(new StreamSchedulingEvent(StreamSchedulingEvent.SCHEDULE, _arg1, _arg2)); }; } public function get startStreamSafetyMargin():int{ return (_startStreamSafetyMargin); } public function set playerWidth(_arg1:int):void{ if (_config != null){ _config.playerConfig.width = _arg1; }; } public function set playerHeight(_arg1:int):void{ if (_config != null){ _config.playerConfig.height = _arg1; }; } protected function hideNonLinearAdInternally(_arg1:OverlayAdDisplayEvent):void{ var _local2:AdSlot; if (handlingNonLinearAdDisplay()){ _local2 = _arg1.adSlot; if (_arg1.nonLinearVideoAd.isInteractive()){ _overlayController.closeActiveVPAIDAds(); } else { _overlayController.hideNonLinearAd(_arg1); }; }; dispatchEvent(_arg1); fireAPICall("onNonLinearAdHide", _arg1.nonLinearVideoAd.toJSObject()); } public function onTemplateLoaded(_arg1:AdServerTemplate):void{ doLog((("VAST response has been fully loaded - has non-empty ads == '" + _arg1.hasAds()) + "'"), Debuggable.DEBUG_VAST_TEMPLATE); _template = _arg1; fireAPICall("onTemplateLoadSuccess", escape(_arg1.getRawTemplateData())); if (_template.hasAds(_template.forceImpressionServing)){ _adSchedule.schedule(_template); _streamSequence.initialise(this, _config.streams, _adSchedule, _config.bitrate, _config.baseURL, 100, _config.previewImage); _adSchedule.addNonLinearAdTrackingPoints(timeRelativeToClip(), true); _adSchedule.fireNonLinearSchedulingEvents(); } else { _adSchedule.schedule(); _streamSequence.initialise(this, _config.streams, _adSchedule, _config.bitrate, _config.baseURL, 100, _config.previewImage); }; _loading = false; dispatchEvent(new TemplateEvent(TemplateEvent.LOADED, _template)); if (_analyticsProcessor != null){ _analyticsProcessor.fireTemplateLoadTracking(AnalyticsProcessor.LOADED, getAdditionalMetricsParams(("&ova_ad_count=" + _template.getAdCount()))); }; } public function canSupportExternalPlaylistLoading():Boolean{ if (_config != null){ return (_config.supportExternalPlaylistLoading); }; return (false); } public function load():void{ _loading = true; this.config.ensureProvidersAreSet(); if (_adSchedule.hasPreloadedAdSlots()){ _adSchedule.loadAdsFromAdServers(this); } else { onTemplateLoadDeferred(new TemplateEvent(TemplateEvent.LOAD_DEFERRED, "Not triggering ad server calls at this time as there are no pre-loaded ad slots declared")); }; } public function displayingCompanions():Boolean{ return (_config.displayCompanions); } protected function displayNonLinearAdExternally(_arg1:OverlayAdDisplayEvent):void{ var regionID:String; var overlayAdDisplayEvent = _arg1; if (overlayAdDisplayEvent != null){ if (overlayAdDisplayEvent.nonLinearVideoAd.isInteractive()){ doLog("Non-linear VPAID ads cannot be displayed via HTML5 - ignoring the display request", Debuggable.DEBUG_DISPLAY_EVENTS); return; }; try { regionID = overlayAdDisplayEvent.nonLinearVideoAd.getActiveDisplayRegionID(); doLog((((("Displaying non-linear ad using the external jQuery library - region: '" + regionID) + "', content type: '") + overlayAdDisplayEvent.nonLinearVideoAd.contentType()) + "'"), Debuggable.DEBUG_DISPLAY_EVENTS); ExternalInterface.call("ova.displayNonLinearAd", {regionID:regionID, content:{type:overlayAdDisplayEvent.nonLinearVideoAd.contentType(), format:overlayAdDisplayEvent.nonLinearVideoAd.getContentFormat(), raw:overlayAdDisplayEvent.nonLinearVideoAd.getRawContent(), formed:overlayAdDisplayEvent.nonLinearVideoAd.getContent()}, clickThroughURL:overlayAdDisplayEvent.nonLinearVideoAd.getClickThroughURLString(), impressions:overlayAdDisplayEvent.nonLinearVideoAd.parentAdContainer.getImpressionList(), trackingEvents:overlayAdDisplayEvent.nonLinearVideoAd.getTrackingEventList(), region:overlayAdDisplayEvent.nonLinearVideoAd.activeDisplayRegion, closeButton:overlayAdDisplayEvent.nonLinearVideoAd.activeDisplayRegion.buttonConfig, nonLinearVideoAd:overlayAdDisplayEvent.nonLinearVideoAd.toJSObject(), adSlot:overlayAdDisplayEvent.adSlot.toJSObject()}); } catch(e:Error) { doLog(("Exception attempting to execute ova.displayNonLinearAd() - " + e.message), Debuggable.DEBUG_FATAL); }; }; } public function set acceptedLinearAdMimeTypes(_arg1:Array):void{ if (_config != null){ config.acceptedLinearAdMimeTypes = _arg1; }; } public function onPlayerPlay(_arg1:int=-1, _arg2:Boolean=false):void{ } public function processOverlayLinearVideoAdTimeEvent(_arg1:int, _arg2:TimeEvent, _arg3:Boolean=false):void{ if (_arg1 != -1){ if (_arg1 < _adSchedule.length){ _adSchedule.getSlot(_arg1).processTimeEvent(_arg2, true); }; }; } public function resizeOverlays(_arg1:DisplayProperties):void{ if (_overlayController != null){ _overlayController.resize(_arg1); }; } protected function registerCompanionBeingDisplayed(_arg1:NonLinearVideoAd, _arg2:String, _arg3:String=null):void{ if (_arg1 != null){ _companionDisplayRegister[_arg2] = {companionAd:_arg1, parentAdUID:_arg3}; } else { _companionDisplayRegister[_arg2] = null; }; } public function get endStreamSafetyMargin():int{ return (_endStreamSafetyMargin); } public function setDefaultPlayerConfigGroup(_arg1:Object=null):void{ _defaultPlayerConfigGroup = new PlayerConfigGroup(_arg1); } public function unload():void{ doLog("OVA has been instructed to unload - closing any active ad and tracking calls etc.", Debuggable.DEBUG_CONFIG); if (_adSchedule != null){ _adSchedule.unload(); }; } public function isInitialised():Boolean{ return (this.initialised); } public function onTemplateLoadDeferred(_arg1:Event):void{ doLog(("DEFERRED loading ad template - " + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); _adSchedule.schedule(); _streamSequence.initialise(this, _config.streams, _adSchedule, _config.bitrate, _config.baseURL, 100, _config.previewImage); if (_adSchedule.hasNonLinearAds()){ doLog("Scheduling non-linear tracking points to support on-demand loading", Debuggable.DEBUG_VAST_TEMPLATE); _adSchedule.addNonLinearAdTrackingPoints(timeRelativeToClip(), true); _adSchedule.fireNonLinearSchedulingEvents(); }; _loading = false; dispatchEvent(new TemplateEvent(TemplateEvent.LOAD_DEFERRED, _arg1)); fireAPICall("onTemplateLoadDeferred", _arg1.toString()); if (_analyticsProcessor != null){ _analyticsProcessor.fireTemplateLoadTracking(AnalyticsProcessor.DEFERRED, getAdditionalMetricsParams()); }; } public function getTrackingTableForStream(_arg1:int):TrackingTable{ if (_arg1 < _streamSequence.length){ return (_streamSequence.streamAt(_arg1).getTrackingTable()); }; return (null); } public function delayAdRequestUntilPlay():Boolean{ if (_config != null){ return (_config.delayAdRequestUntilPlay); }; return (false); } public function onAdCallFailover(_arg1:AdServerRequest, _arg2:AdServerRequest):void{ dispatchEvent(new AdTagEvent(AdTagEvent.CALL_FAILOVER, {masterTag:_arg1, failoverTag:_arg2})); fireAPICall("onAdCallFailover", _arg1.toJSObject(), _arg2.toJSObject()); } protected function getAdditionalMetricsParams(_arg1:String=""):String{ if (_additionalMetricsParams != null){ if (StringUtils.beginsWith(_additionalMetricsParams, "&")){ return ((_additionalMetricsParams + _arg1)); }; return ((("&" + _additionalMetricsParams) + _arg1)); }; return (_arg1); } public function getVASTResponseAsString():String{ if (_template != null){ return (_template.getRawTemplateData()); }; return ("No VAST response available"); } protected function displayCompanionsWithDelay(_arg1:CompanionAd, _arg2:Array, _arg3:int):Boolean{ var tickCounter:int; var companionAd = _arg1; var companionDivIDs = _arg2; var delay = _arg3; doLog((("Displaying companions with a " + delay) + " millisecond delay"), Debuggable.DEBUG_DISPLAY_EVENTS); var matchFound:Boolean; var displayTimer:Timer = new Timer(delay, companionDivIDs.length); tickCounter = 0; displayTimer.addEventListener(TimerEvent.TIMER, function (_arg1:TimerEvent):void{ if (matchAndDisplayCompanion(companionAd, companionDivIDs[tickCounter])){ matchFound = true; }; tickCounter++; }); displayTimer.start(); if (!matchFound){ doLog((((("No DIV match found for sizing (" + companionAd.width) + ",") + companionAd.height) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); }; return (matchFound); } public function requiresStreamTimer():Boolean{ if (_config != null){ return (_config.showsConfig.requiresStreamTimer()); }; return (false); } protected function companionOfSameSizeNotDisplayed(_arg1:NonLinearVideoAd, _arg2:String, _arg3:String):Boolean{ if (((!((_companionDisplayRegister[_arg2] == undefined))) && (!((_companionDisplayRegister[_arg2] == null))))){ return (!(CompanionAd(_arg1).matchesSize(_companionDisplayRegister[_arg2].width, _companionDisplayRegister[_arg2].height))); }; return (true); } public function processCompanionDisplayExternally():Boolean{ return (_config.processCompanionDisplayExternally); } public function onTickAdNotice(_arg1:AdNoticeDisplayEvent):void{ if (handlingNonLinearAdDisplay()){ _overlayController.showAdNotice(_arg1); }; dispatchEvent(_arg1); fireAPICall("onAdNoticeTick", _arg1.duration); } public function onOverlayCloseClicked(_arg1:OverlayView):void{ var _local2:AdSlot; var _local3:NonLinearVideoAd; var _local4:NonLinearAdDisplayEvent; if (_arg1.activeAdSlot != null){ _local2 = _arg1.activeAdSlot; if (_local2 != null){ _local3 = _local2.getNonLinearVideoAd(); _local3.close(); _local4 = new OverlayAdDisplayEvent(OverlayAdDisplayEvent.CLOSE_CLICKED, _local3, _local2); dispatchEvent(_local4); fireAPICall("onNonLinearAdCloseClicked", _local2.videoAd.toJSObject()); }; }; } public function set additionMetricsParams(_arg1:String):void{ _additionalMetricsParams = _arg1; } public function onAdSlotLoadError(_arg1:AdSlotLoadEvent):void{ doLog(((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamic load ERROR - ") + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); dispatchEvent(_arg1); fireAPICall("onAdSlotLoadError", _arg1.toString()); if (_analyticsProcessor != null){ _analyticsProcessor.fireAdSlotTracking(AnalyticsProcessor.ERROR, _arg1.adSlot, getAdditionalMetricsParams(("&ova_error=" + escape(_arg1.toString())))); }; } public function set controllingDisplayOfCompanionContent(_arg1:Boolean):void{ _controllingDisplayOfCompanionContent = _arg1; } public function getDefaultPlayerConfig():PlayerConfigGroup{ if (_defaultPlayerConfigGroup == null){ setDefaultPlayerConfigGroup(); }; return (_defaultPlayerConfigGroup); } public function enforceLinearVideoAdScaling():Boolean{ return (_config.adsConfig.enforceLinearVideoAdScaling); } public function get pauseOnClickThrough():Boolean{ return (_config.pauseOnClickThrough); } public function disableRegionDisplay():void{ _overlayController = null; } public function onAdCallComplete(_arg1:AdServerRequest, _arg2:Boolean):void{ dispatchEvent(new AdTagEvent(AdTagEvent.CALL_COMPLETE, {masterTag:_arg1, hasAds:_arg2})); fireAPICall("onAdCallComplete", ((_arg1)!=null) ? _arg1.toJSObject() : {}, _arg2); } public function get loading():Boolean{ return (_loading); } public function get config():Config{ return (_config); } public function getActiveOverlayStreamSequence():StreamSequence{ var _local1:StreamSequence; if (!allowPlaylistControl){ if (_overlayLinearVideoAdSlot != null){ _local1 = new StreamSequence(this); _local1.addStream(_overlayLinearVideoAdSlot, false); return (_local1); }; doLog("Cannot play the linear ad for this overlay - no adslot attached to the event - ignoring click", Debuggable.DEBUG_PLAYLIST); } else { doLog("NOTIFICATION: Overlay clicked event ignored as playlistControl is turned on - this feature is not possible", Debuggable.DEBUG_DISPLAY_EVENTS); }; return (null); } public function onLinearAdSkip(_arg1:AdSlot):void{ if (_arg1 != null){ _arg1.triggerTrackingEvent(TrackingEvent.EVENT_CLOSE); dispatchEvent(new LinearAdDisplayEvent(LinearAdDisplayEvent.SKIPPED, _arg1)); fireAPICall("onLinearAdSkipped", ((_arg1.videoAd)!=null) ? _arg1.videoAd.toJSObject() : {}); }; } public function restoreCompanionDivs(_arg1:CompanionAdDisplayEvent):Boolean{ var companionEvent = _arg1; var companionAd:CompanionAd = companionEvent.companionAd; if (companionAd.isDisplayed()){ if (processCompanionDisplayExternally()){ doLog(("Calling external javascript to hide companion ad: " + companionAd.id), Debuggable.DEBUG_DISPLAY_EVENTS); try { ExternalInterface.call("ova.writeHTML", companionAd.activeDivID, companionAd.previousDivContent); deregisterCompanionBeingDisplayed(companionAd.activeDivID); companionAd.deregisterDisplay(); } catch(e:Error) { doLog(("Exception attempting to restore the companion code - " + e.message), Debuggable.DEBUG_FATAL); }; } else { doLog(("Event trigger received to hide the companion Ad with ID " + companionAd.id), Debuggable.DEBUG_DISPLAY_EVENTS); try { ExternalInterface.call((((("function(){ document.getElementById('" + companionAd.activeDivID) + "').innerHTML='") + StringUtils.removeControlChars(companionAd.previousDivContent)) + "'; }")); deregisterCompanionBeingDisplayed(companionAd.activeDivID); companionAd.deregisterDisplay(); } catch(e:Error) { doLog(("Exception attempting to restore the companion code - " + e.message), Debuggable.DEBUG_DISPLAY_EVENTS); }; }; return (true); }; return (false); } public function onTemplateLoadError(_arg1:Event):void{ doLog(("FAILURE loading ad template - " + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); _adSchedule.schedule(); _streamSequence.initialise(this, _config.streams, _adSchedule, _config.bitrate, _config.baseURL, 100, _config.previewImage); _loading = false; dispatchEvent(new TemplateEvent(TemplateEvent.LOAD_FAILED, _arg1)); fireAPICall("onTemplateLoadFailure", _arg1.toString()); if (_analyticsProcessor != null){ _analyticsProcessor.fireTemplateLoadTracking(AnalyticsProcessor.ERROR, getAdditionalMetricsParams(("&ova_error=" + escape(_arg1.toString())))); }; } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_arg1.indexOf("region-") > -1){ if (_overlayController != null){ _overlayController.addEventListener(_arg1, _arg2, _arg3); }; } else { super.removeEventListener(_arg1, _arg2, _arg3); }; } public function hideLogoOnLinearAdPlayback():Boolean{ if (_config != null){ return (_config.playerConfig.hideLogoOnLinearPlayback); }; return (false); } public function onPlayerFullscreenExit(_arg1:int=-1, _arg2:Boolean=false):void{ if (_arg2){ if ((((_arg1 > -1)) && ((_arg1 < _adSchedule.length)))){ _adSchedule.getSlot(_arg1).processFullScreenExitEvent(); }; } else { if (_streamSequence != null){ _streamSequence.processFullScreenExitEventForStream(_arg1); }; }; } public function set trackStreamSlices(_arg1:Boolean):void{ _trackStreamSlices = _arg1; } public function get playerVolume():Number{ return (_playerVolume); } public function onScheduleNonLinear(_arg1:AdSlot, _arg2:Boolean=false):void{ dispatchEvent(new NonLinearSchedulingEvent(NonLinearSchedulingEvent.SCHEDULE, _arg1)); } protected function displayNonLinearAdInternally(_arg1:OverlayAdDisplayEvent):void{ var adSlot:AdSlot; var overlayAdDisplayEvent = _arg1; if (((handlingNonLinearAdDisplay()) && (!((overlayAdDisplayEvent == null))))){ adSlot = overlayAdDisplayEvent.adSlot; if (overlayAdDisplayEvent.nonLinearVideoAd.hasAccompanyingVideoAd()){ _overlayLinearVideoAdSlot = adSlot; }; if (NonLinearVideoAd(overlayAdDisplayEvent.nonLinearVideoAd).isInteractive()){ _overlayController.playVPAIDAd(adSlot, {onLoading:function (_arg1:VPAIDEvent=null):void{ dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_LOADING, adSlot)); }, onLoaded:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.LOADED, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_LOADED, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onImpression:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireImpressionTracking(AnalyticsProcessor.NON_LINEAR, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_IMPRESSION, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onStart:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.STARTED, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_START, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onPaused:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.PAUSED, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; }, onPlaying:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.PLAYING, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; }, onComplete:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.COMPLETE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_COMPLETE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onError:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.ERROR, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams(("&ova_error=" + _arg1.data))); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_ERROR, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onExpandedChange:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.EXPANDED_CHANGE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_EXPANDED_CHANGE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onLinearChange:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.LINEAR_CHANGE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_LINEAR_CHANGE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onRemainingTimeChange:function (_arg1:VPAIDEvent=null):void{ dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_TIME_CHANGE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onClickThru:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireAdClickTracking(AnalyticsProcessor.VPAID, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_CLICK_THRU, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onUserAcceptInvitation:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.USER_ACCEPT_INVITATION, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_USER_ACCEPT_INVITATION, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onUserMinimize:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.COLLAPSE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_USER_MINIMIZE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onUserClose:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.CLOSE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.NON_LINEAR_USER_CLOSE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdStart:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_START, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_START, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdFirstQuartile:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_FIRST_QUARTILE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_FIRST_QUARTILE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdMidpoint:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_MIDPOINT, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_MIDPOINT, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdThirdQuartile:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_THIRD_QUARTILE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_THIRD_QUARTILE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }, onVideoAdComplete:function (_arg1:VPAIDEvent=null):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireVPAIDPlaybackTracking(AnalyticsProcessor.VIDEO_COMPLETE, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new VPAIDAdDisplayEvent(VPAIDAdDisplayEvent.VIDEO_AD_COMPLETE, adSlot, _arg1.data, _arg1.bubbles, _arg1.cancelable)); }}, (playerVolume == 0), playerVolume, false, overlayAdDisplayEvent.region.enableScaling); } else { if (((overlayAdDisplayEvent.nonLinearVideoAd.isIFrame()) || (overlayAdDisplayEvent.nonLinearVideoAd.isScript()))){ doLog("iFrame and javascript based non-linear ads cannot be internally displayed via Flash - ignoring the request", Debuggable.DEBUG_DISPLAY_EVENTS); return; }; _overlayController.displayNonLinearAd(overlayAdDisplayEvent); if (_analyticsProcessor != null){ _analyticsProcessor.fireImpressionTracking(AnalyticsProcessor.NON_LINEAR, adSlot, overlayAdDisplayEvent.nonLinearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(overlayAdDisplayEvent); }; fireAPICall("onNonLinearAdShow", overlayAdDisplayEvent.nonLinearVideoAd.toJSObject()); }; } public function controlEnabledStateForLinearAdType(_arg1:String, _arg2:Boolean):Boolean{ return (_config.controlEnabledForLinearAdType(_arg1, _arg2)); } public function get streamSequence():StreamSequence{ return (_streamSequence); } public function setRegionStyle(_arg1:String, _arg2:String):String{ if (_overlayController != null){ return (_overlayController.setRegionStyle(_arg1, _arg2)); }; return ("-1, Overlay Controller is not active"); } public function get playerWidth():int{ if (_config != null){ return (_config.playerConfig.width); }; return (-1); } public function getProvider(_arg1:String):String{ return (_config.getProvider(_arg1)); } public function get playerHeight():int{ if (_config != null){ return (_config.playerConfig.height); }; return (-1); } public function enforceLinearInteractiveAdScaling():Boolean{ return (_config.adsConfig.enforceLinearInteractiveAdScaling); } public function enableVisualLinearAdClickThroughCue(_arg1:AdSlot):void{ if (((((_config.visuallyCueLinearAdClickThrough) && (_arg1.hasLinearClickThroughs()))) && (!((overlayController == null))))){ overlayController.enableLinearAdMouseOverRegion(_arg1); }; } public function deactivateLinearAdSkipButton():void{ if (_overlayController != null){ _overlayController.deactivateLinearAdSkipButton(new SkipAdButtonDisplayEvent(SkipAdButtonDisplayEvent.HIDE, "region")); }; } public function preProcessDepreciatedConfig(_arg1:Object):Object{ return (ConfigPreConverter.convert(_arg1)); } public function loadAdSlotOnDemand(_arg1:AdSlot):Boolean{ if (_arg1 != null){ return (_arg1.load(this)); }; return (false); } public function onProcessTrackingPoint(_arg1:TrackingPoint):void{ if (_arg1 != null){ dispatchEvent(new TrackingPointEvent(TrackingPointEvent.FIRED, _arg1)); }; } public function set activeOverlayVideoPlaying(_arg1:Boolean):void{ if (_overlayLinearVideoAdSlot != null){ _overlayLinearVideoAdSlot.overlayVideoPlaying = _arg1; }; } public function onLinearAdStart(_arg1:AdSlot):void{ if (_arg1 != null){ if (_arg1.videoAd != null){ if (_analyticsProcessor != null){ _analyticsProcessor.fireImpressionTracking(AnalyticsProcessor.LINEAR, _arg1, _arg1.videoAd.linearVideoAd, getAdditionalMetricsParams()); }; dispatchEvent(new LinearAdDisplayEvent(LinearAdDisplayEvent.STARTED, _arg1)); }; }; } public function getActiveDisplaySpecification(_arg1:Boolean):DisplaySpecification{ if (_arg1){ return (_config.playerConfig.getDisplaySpecification(DisplaySpecification.NON_LINEAR)); }; return (_config.playerConfig.getDisplaySpecification(DisplaySpecification.LINEAR)); } public function set startStreamSafetyMargin(_arg1:int):void{ _startStreamSafetyMargin = _arg1; doLog((("Saftey margin for start of stream time tracking events set to " + _startStreamSafetyMargin) + " milliseconds"), Debuggable.DEBUG_CONFIG); } public function onOverlayClicked(_arg1:OverlayView, _arg2:MouseEvent):void{ var _local3:AdSlot; var _local4:NonLinearVideoAd; var _local5:NonLinearAdDisplayEvent; var _local6:String; if (_arg1.activeAdSlot != null){ _local3 = _arg1.activeAdSlot; _local4 = _local3.getNonLinearVideoAd(); _local4.clicked(); _local5 = new OverlayAdDisplayEvent(OverlayAdDisplayEvent.CLICKED, _local4, _local3, null, _arg2); if (_local3.hasLinearAd()){ doLog("Non-linear click is triggering the start of a 'click-to-play' linear ad attached to the overlay - forcing overlay to hide", Debuggable.DEBUG_CLICKTHROUGH_EVENTS); _arg1.hide(); dispatchEvent(_local5); } else { if (_local4.hasClickThroughs()){ _local6 = _local4.firstClickThrough(); doLog(("Non-linear click is triggering a click-through to " + _local6), Debuggable.DEBUG_CLICKTHROUGH_EVENTS); PopupWindow.openWindow(_local6, _config.adsConfig.clickSignConfig.target); } else { doLog("No action taken on non-linear click - no click-through specified", Debuggable.DEBUG_CLICKTHROUGH_EVENTS); }; dispatchEvent(_local5); }; fireAPICall("onNonLinearAdClicked", _local3.videoAd.toJSObject()); if (_analyticsProcessor != null){ _analyticsProcessor.fireAdClickTracking(AnalyticsProcessor.NON_LINEAR, _local3, _local4, getAdditionalMetricsParams()); }; }; } public function onLinearAdComplete(_arg1:AdSlot):void{ if (_arg1 != null){ dispatchEvent(new LinearAdDisplayEvent(LinearAdDisplayEvent.COMPLETE, _arg1)); }; } public function autoPlay():Boolean{ return (_config.autoPlay); } protected function displayCompanionsWithoutDelay(_arg1:CompanionAd, _arg2:Array):Boolean{ doLog("Displaying companions without a delay", Debuggable.DEBUG_DISPLAY_EVENTS); var _local3:Boolean; var _local4:int; while (_local4 < _arg2.length) { if (matchAndDisplayCompanion(_arg1, _arg2[_local4])){ _local3 = true; }; _local4++; }; if (!_local3){ doLog((((("No DIV match found for sizing (" + _arg1.width) + ",") + _arg1.height) + ")"), Debuggable.DEBUG_DISPLAY_EVENTS); }; return (_local3); } public function onHideNonLinearAd(_arg1:OverlayAdDisplayEvent):void{ if ((((((_arg1.displayMode == OverlayAdDisplayEvent.DISPLAY_MODE_HTML5)) && ((_arg1.isVPAIDAd() == false)))) && (ExternalInterface.available))){ hideNonLinearAdExternally(_arg1); } else { hideNonLinearAdInternally(_arg1); }; } public function deriveAdDurationFromMetaData():Boolean{ return (_config.deriveAdDurationFromMetaData()); } public function resetAllAdTrackingPointsAssociatedWithStream(_arg1:int):void{ if (((!((_adSchedule == null))) && ((_arg1 > -1)))){ _adSchedule.resetAllAdTrackingPointsAssociatedWithStream(_arg1); }; } public function willAutoPlayOnExternalLoad():Boolean{ if (_config != null){ return (_config.autoPlayOnExternalLoad); }; return (false); } public function onPlayerReplay(_arg1:int=-1, _arg2:Boolean=false):void{ } public function hideControlbarDuringVPAIDLinearPlayback():Boolean{ if (_config != null){ return (_config.playerConfig.shouldHideControlsOnLinearPlayback(true)); }; return (true); } public function isOVAConfigLoading():Boolean{ return (_isLoadingConfig); } public function get analyticsProcessor():AnalyticsProcessor{ return (_analyticsProcessor); } public function onLinearAdClickThroughCallToActionViewClicked(_arg1:AdSlot):void{ var _local2:LinearVideoAd; if (_arg1 != null){ _local2 = _arg1.getLinearVideoAd(); if (((!((_local2 == null))) && (_local2.hasClickThroughs()))){ _local2.clicked(); PopupWindow.openWindow(_local2.firstClickThrough(), _config.adsConfig.clickSignConfig.target); dispatchEvent(new LinearAdDisplayEvent(LinearAdDisplayEvent.CLICK_THROUGH, _arg1)); fireAPICall("onLinearAdClick", _arg1.videoAd.toJSObject()); if (_analyticsProcessor != null){ _analyticsProcessor.fireAdClickTracking(AnalyticsProcessor.LINEAR, _arg1, _local2, getAdditionalMetricsParams()); }; }; }; } public function deriveShowDurationFromMetaData():Boolean{ return (_config.deriveShowDurationFromMetaData()); } public function onPlayerFullscreenEntry(_arg1:int=-1, _arg2:Boolean=false):void{ if (_arg2){ if ((((_arg1 > -1)) && ((_arg1 < _adSchedule.length)))){ _adSchedule.getSlot(_arg1).processFullScreenEvent(); }; } else { if (_streamSequence != null){ _streamSequence.processFullScreenEventForStream(_arg1); }; }; } public function fireAdPlaybackAnalytics(_arg1:String, _arg2:AdSlot, _arg3):void{ if (_analyticsProcessor != null){ _analyticsProcessor.fireAdPlaybackTracking(_arg1, _arg2, _arg3, getAdditionalMetricsParams()); }; } public function setTimeBaseline(_arg1:String):void{ _timeBaseline = _arg1; } public function onHideAdNotice(_arg1:AdNoticeDisplayEvent):void{ if (handlingNonLinearAdDisplay()){ _overlayController.hideAdNotice(_arg1); }; dispatchEvent(_arg1); fireAPICall("onAdNoticeHide"); } public function onAdSlotLoaded(_arg1:AdSlotLoadEvent):void{ if (_arg1 != null){ if (_arg1.adSlot.hasVideoAd()){ if (_arg1.adSlot.videoAd.isEmpty()){ if (_arg1.adSlot.shouldForceFireImpressions()){ doLog((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamically LOADED - has an empty video ad - expecting to force fire impressions"), Debuggable.DEBUG_VAST_TEMPLATE); _arg1.adSlot.processForcedImpression(); } else { doLog((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamically LOADED - has an empty video ad - not force firing impressions"), Debuggable.DEBUG_VAST_TEMPLATE); }; } else { doLog((((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamically LOADED - has a ") + (_arg1.adSlot.isInteractive()) ? "VPAID" : "non-interactive") + " video ad"), Debuggable.DEBUG_VAST_TEMPLATE); }; } else { doLog((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamically LOADED - no video ad recorded"), Debuggable.DEBUG_VAST_TEMPLATE); }; dispatchEvent(_arg1); fireAPICall("onAdSlotLoaded", _arg1.adSlot.toJSObject()); if (_analyticsProcessor != null){ _analyticsProcessor.fireAdSlotTracking(AnalyticsProcessor.LOADED, _arg1.adSlot, getAdditionalMetricsParams()); }; }; } public function onPlayerStop(_arg1:int=-1, _arg2:Boolean=false):void{ if (_arg2){ if ((((_arg1 > -1)) && ((_arg1 < _adSchedule.length)))){ _adSchedule.getSlot(_arg1).processStopStream(); }; } else { if (_streamSequence != null){ _streamSequence.processStopEventForStream(_arg1); }; if (handlingNonLinearAdDisplay()){ _overlayController.hideAllOverlays(); }; }; } public function get trackStreamSlices():Boolean{ return (_trackStreamSlices); } public function getFirstPreRollAdSlot():AdSlot{ if (_streamSequence != null){ if (_streamSequence.length > 0){ if ((_streamSequence.getStreamAtIndex(0) is AdSlot)){ return ((_streamSequence.getStreamAtIndex(0) as AdSlot)); }; if (_streamSequence.length >= 2){ if (_streamSequence.getStreamAtIndex(0).isSplashImage()){ if ((_streamSequence.getStreamAtIndex(1) is AdSlot)){ if (AdSlot(_streamSequence.getStreamAtIndex(1)).isPreRoll()){ return ((_streamSequence.getStreamAtIndex(1) as AdSlot)); }; }; }; }; }; }; return (null); } public function onHideCompanionAd(_arg1:CompanionAdDisplayEvent):Boolean{ var _local2:Boolean; if (_config.restoreCompanions){ if (this.controllingDisplayOfCompanionContent){ _local2 = restoreCompanionDivs(_arg1); }; dispatchEvent(new CompanionAdDisplayEvent(CompanionAdDisplayEvent.HIDE, _arg1.companionAd)); fireAPICall("onCompanionAdHide", _arg1.companionAd.toJSObject()); }; return (_local2); } public function get playOnce():Boolean{ return (config.playOnce); } public function onSetTrackingPoint(_arg1:TrackingPoint):void{ if (_arg1 != null){ dispatchEvent(new TrackingPointEvent(TrackingPointEvent.SET, _arg1)); }; } public function onToggleSeekerBar(_arg1:Boolean):void{ if (_config.playerConfig.shouldDisableControlsDuringLinearAds()){ doLog(("Request received to change the control bar state to " + (_arg1) ? "ON" : "BLOCKED"), Debuggable.DEBUG_DISPLAY_EVENTS); dispatchEvent(new SeekerBarEvent(SeekerBarEvent.TOGGLE, _arg1)); dispatchEvent(new OVAControlBarEvent((_arg1) ? OVAControlBarEvent.ENABLE : OVAControlBarEvent.DISABLE)); } else { doLog("Ignoring request to change control bar state", Debuggable.DEBUG_DISPLAY_EVENTS); }; } public function onPlayerMute(_arg1:int=-1, _arg2:Boolean=false):void{ if (_arg2){ if ((((_arg1 > -1)) && ((_arg1 < _adSchedule.length)))){ _adSchedule.getSlot(_arg1).processMuteEvent(); }; } else { if (_streamSequence != null){ _streamSequence.processMuteEventForStream(_arg1); }; }; } public function get adSchedule():AdSchedule{ return (_adSchedule); } public function getProviders():ProvidersConfigGroup{ return (_config.providersConfig); } public function onPlayerResume(_arg1:int=-1, _arg2:Boolean=false):void{ var _local3:Stream; if (_arg2){ if (_adSchedule != null){ _local3 = _adSchedule.getSlot(_arg1); }; } else { if (_streamSequence != null){ _local3 = _streamSequence.getStreamAtIndex(_arg1); }; }; if (_local3 != null){ if ((_local3 is AdSlot)){ if (_overlayController != null){ if (((((AdSlot(_local3).isLinear()) && (AdSlot(_local3).isInteractive()))) && (_overlayController.isVPAIDAdPlaying()))){ _overlayController.resumeActiveVPAIDAd(); }; _overlayController.resumeLinearAdRegions(); }; }; _local3.processResumeStream(); }; } public function onPlayerUnmute(_arg1:int=-1, _arg2:Boolean=false):void{ if (_arg2){ if ((((_arg1 > -1)) && ((_arg1 < _adSchedule.length)))){ _adSchedule.getSlot(_arg1).processUnmuteEvent(); }; } else { if (_streamSequence != null){ _streamSequence.processUnmuteEventForStream(_arg1); }; }; } public function canSkipOnLinearAd():Boolean{ return (_config.canSkipOnLinearAd()); } public function closeAllAdMessages():void{ if (_overlayController != null){ _overlayController.hideAllAdMessages(); }; } public function onAdSlotLoadTimeout(_arg1:AdSlotLoadEvent):void{ doLog(((((("Ad slot " + _arg1.adSlot.id) + " at index ") + _arg1.adSlot.index) + " dynamic load TIMEOUT - ") + _arg1.toString()), Debuggable.DEBUG_VAST_TEMPLATE); dispatchEvent(_arg1); fireAPICall("onAdSlotLoadTimeout", _arg1.toString()); if (_analyticsProcessor != null){ _analyticsProcessor.fireAdSlotTracking(AnalyticsProcessor.TIMED_OUT, _arg1.adSlot, getAdditionalMetricsParams()); }; } public function set endStreamSafetyMargin(_arg1:int):void{ _endStreamSafetyMargin = _arg1; doLog((("Saftey margin for end of stream time tracking events set to " + _endStreamSafetyMargin) + " milliseconds"), Debuggable.DEBUG_CONFIG); } } }//package org.openvideoads.vast
Section 240
//VASTController_OVAJS (org.openvideoads.vast.VASTController_OVAJS) package org.openvideoads.vast { import mx.core.*; public class VASTController_OVAJS extends ByteArrayAsset { } }//package org.openvideoads.vast
Section 241
//IVPAID (org.openvideoads.vpaid.IVPAID) package org.openvideoads.vpaid { public interface IVPAID { function get adRemainingTime():Number; function handshakeVersion(_arg1:String):String; function expandAd():void; function stopAd():void; function get adLinear():Boolean; function startAd():void; function resumeAd():void; function initAd(_arg1:Number, _arg2:Number, _arg3:String, _arg4:Number, _arg5:String, _arg6:String):void; function resizeAd(_arg1:Number, _arg2:Number, _arg3:String):void; function pauseAd():void; function set adVolume(_arg1:Number):void; function get adExpanded():Boolean; function get adVolume():Number; function collapseAd():void; } }//package org.openvideoads.vpaid
Section 242
//VPAIDEvent (org.openvideoads.vpaid.VPAIDEvent) package org.openvideoads.vpaid { import flash.events.*; public class VPAIDEvent extends Event { private var _data:Object;// = null public static const AdLog:String = "AdLog"; public static const AdUserMinimize:String = "AdUserMinimize"; public static const AdStopped:String = "AdStopped"; public static const AdError:String = "AdError"; public static const AdVolumeChange:String = "AdVolumeChange"; public static const AdUserAcceptInvitation:String = "AdUserAcceptInvitation"; public static const AdVideoStart:String = "AdVideoStart"; public static const AdPaused:String = "AdPaused"; public static const AdClickThru:String = "AdClickThru"; public static const AdLinearChange:String = "AdLinearChange"; public static const AdVideoMidpoint:String = "AdVideoMidpoint"; public static const AdLoaded:String = "AdLoaded"; public static const AdVideoComplete:String = "AdVideoComplete"; public static const AdUserClose:String = "AdUserClose"; public static const AdPlaying:String = "AdPlaying"; public static const AdExpandedChange:String = "AdExpandedChange"; public static const AdVideoThirdQuartile:String = "AdVideoThirdQuartile"; public static const AdImpression:String = "AdImpression"; public static const AdRemainingTimeChange:String = "AdRemainingTimeChange"; public static const AdVideoFirstQuartile:String = "AdVideoFirstQuartile"; public static const AdStarted:String = "AdStarted"; public function VPAIDEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); if ((_arg2 is String)){ _data = {message:_arg2}; } else { _data = _arg2; }; } public function get data():Object{ return (_data); } } }//package org.openvideoads.vpaid
Section 243
//ova (ova) package { import org.openvideoads.plugin.flowplayer.streamer.*; public class ova extends OpenAdStreamer { } }//package

Library Items

Symbol 1 BinaryData {org.openvideoads.vast.VASTController_OVAJS} [org.openvideoads.vast.VASTController_OVAJS]
Symbol 2 Bitmap {org.openvideoads.regions.view.button.NormalButtonBitmap} [org.openvideoads.regions.view.button.NormalButtonBitmap]
Symbol 3 Bitmap {org.openvideoads.vast.overlay.button.skip.NormalButtonBitmap} [org.openvideoads.vast.overlay.button.skip.NormalButtonBitmap]

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 1 as "org.openvideoads.vast.VASTController_OVAJS"
ExportAssets (56)Timeline Frame 1Symbol 2 as "org.openvideoads.regions.view.button.NormalButtonBitmap"
ExportAssets (56)Timeline Frame 1Symbol 3 as "org.openvideoads.vast.overlay.button.skip.NormalButtonBitmap"
SerialNumber (41)Timeline Frame 1

Labels

"ova"Frame 1




http://swfchan.com/31/152782/info.shtml
Created: 25/10 -2018 05:20:18 Last modified: 25/10 -2018 05:20:18 Server time: 12/05 -2024 21:47:34