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__®ions=__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