Section 1
//Button (com.domani.components.ui.Button)
package com.domani.components.ui {
import flash.events.*;
import com.domani.components.*;
public class Button extends Component {
private static const className:String = "Button";
public function Button(){
super();
this.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
this.addEventListener(MouseEvent.ROLL_OUT, onRollOut);
this.addEventListener(MouseEvent.CLICK, onClick);
this.mouseChildren = false;
enabled = true;
}
protected function onRollOver(e:MouseEvent):void{
}
protected function onRollOut(e:MouseEvent):void{
}
override public function set enabled(b:Boolean):void{
__enabled = b;
this.useHandCursor = __enabled;
this.buttonMode = __enabled;
this.mouseEnabled = __enabled;
}
protected function onClick(e:MouseEvent):void{
}
}
}//package com.domani.components.ui
Section 2
//Component (com.domani.components.Component)
package com.domani.components {
import flash.events.*;
import flash.display.*;
import com.domani.utils.*;
public class Component extends Sprite {
protected var __enabled:Boolean;// = true
protected var __width:Number;
protected var __height:Number;
protected var __value;
protected var __selected:Boolean;// = false
public function Component(){
super();
}
public function move(x:Number, y:Number):void{
this.x = x;
this.y = y;
}
public function setSize(w:Number, h:Number):void{
__width = w;
__height = h;
draw();
}
public function set enabled(b:Boolean):void{
__enabled = b;
if (((__selected) && (__enabled))){
__enabled = false;
};
}
public function get enabled():Boolean{
return (__enabled);
}
public function get selected():Boolean{
return (__selected);
}
protected function log(str:String):void{
LogManager.log(str, this);
}
public function reset():void{
}
public function get value(){
return (__value);
}
public function set value(o):void{
__value = o;
}
protected function draw():void{
}
public function set selected(b:Boolean):void{
if (__enabled){
__selected = b;
if (__selected){
dispatchEvent(new Event(Event.SELECT));
};
};
}
}
}//package com.domani.components
Section 3
//Boundary (com.domani.controls.Boundary)
package com.domani.controls {
public class Boundary {
public static const MIDDLE:String = "middle";
public static const LEFT:String = "left";
public static const RIGHT:String = "right";
public function Boundary(){
super();
}
}
}//package com.domani.controls
Section 4
//AutoSpacer (com.domani.display.AutoSpacer)
package com.domani.display {
import flash.display.*;
public class AutoSpacer extends Sprite {
protected var __mode:String;
protected var __padding:Number;// = 0
public function AutoSpacer(mode:String="horizontal"){
super();
if (mode != AutoSpacerMode.HORIZONTAL){
mode = AutoSpacerMode.VERTICAL;
};
__mode = mode;
}
public function set mode(mode:String):void{
__mode = mode;
redraw();
}
public function set padding(value:Number):void{
__padding = value;
redraw();
}
public function get mode():String{
return (__mode);
}
public function get padding():Number{
return (__padding);
}
public function redraw():void{
var child:DisplayObject;
var i:uint;
var lastPos:Number = 0;
if (__mode == AutoSpacerMode.HORIZONTAL){
i = 0;
while (i < this.numChildren) {
child = this.getChildAt(i);
child.x = lastPos;
lastPos = (lastPos + (child.width + __padding));
i++;
};
} else {
i = 0;
while (i < this.numChildren) {
child = this.getChildAt(i);
child.y = lastPos;
lastPos = (lastPos + (child.height + __padding));
i++;
};
};
}
public function destroy():void{
while (this.numChildren > 0) {
this.removeChildAt(0);
};
}
override public function addChild(child:DisplayObject):DisplayObject{
super.addChild(child);
redraw();
return (child);
}
override public function removeChild(child:DisplayObject):DisplayObject{
super.removeChild(child);
redraw();
return (child);
}
}
}//package com.domani.display
Section 5
//AutoSpacerMode (com.domani.display.AutoSpacerMode)
package com.domani.display {
public class AutoSpacerMode {
public static var HORIZONTAL:String = "horizontal";
public static var VERTICAL:String = "vertical";
public function AutoSpacerMode(){
super();
}
}
}//package com.domani.display
Section 6
//Resizer (com.domani.display.Resizer)
package com.domani.display {
import flash.display.*;
public class Resizer extends Sprite {
protected var __width:Number;// = NAN
protected var __height:Number;// = NAN
public function Resizer(){
super();
}
protected function draw():void{
}
override public function set height(value:Number):void{
__height = value;
draw();
}
override public function set width(value:Number):void{
__width = value;
draw();
}
override public function get width():Number{
return ((isNaN(__width)) ? super.width : __width);
}
override public function get height():Number{
return ((isNaN(__height)) ? super.height : __height);
}
}
}//package com.domani.display
Section 7
//AnimationEvent (com.domani.events.AnimationEvent)
package com.domani.events {
import flash.events.*;
public class AnimationEvent extends Event {
public static const TRANSITION_COMPLETE:String = "onTransitionComplete";
public static const COLLAPSED:String = "onCollapsed";
public static const EXPANDED:String = "onExpanded";
public static const EXPAND:String = "onExpand";
public static const COLLAPSE:String = "onCollapse";
public function AnimationEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
}
}//package com.domani.events
Section 8
//ListBoundaryEvent (com.domani.events.ListBoundaryEvent)
package com.domani.events {
import flash.events.*;
public class ListBoundaryEvent extends Event {
public var boundary:String;
public var atBoundary:Boolean;// = false
public static const BOUNDARY_CHANGE:String = "onBoundaryChange";
public function ListBoundaryEvent(type:String, boundary:String, atBoundary:Boolean){
this.boundary = boundary;
this.atBoundary = atBoundary;
super(type, true, true);
}
}
}//package com.domani.events
Section 9
//DateFormatter (com.domani.utils.DateFormatter)
package com.domani.utils {
public class DateFormatter {
private static const months_days:Array = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
private static const days_long:Array = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
private static const months_long:Array = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
private static const months:Array = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
private static const days:Array = new Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
public function DateFormatter(){
super();
}
private static function dayNumber(date:Date):int{
var days:int;
var n:int;
var m:int = date.getMonth();
var i:int;
while (i < m) {
days = months_days[i];
n = (n + ((((days < 30)) && (isLeapYear(date)))) ? 29 : days);
i++;
};
n = (n + date.getDate());
return (n);
}
private static function addZeros(n:int, digits:uint=2):String{
if (n < 10){
return (("0" + String(n)));
};
return (String(n));
}
private static function getElement(character:String, date:Date):String{
var _local3:int;
var _local4:int;
var _local5:Number;
var _local6:int;
switch (character){
case "d":
return (addZeros(int(date.getDate())));
case "D":
return (DateFormatter.days[date.getDay()]);
case "j":
return (String(date.getDate()));
case "l":
trace(date.getDay());
return (days_long[date.getDay()]);
case "N":
return (String((date.getDay() + 1)));
case "S":
_local3 = (date.getDate() % 10);
switch (_local3){
case 1:
return ("st");
case 2:
return ("nd");
case 3:
return ("rd");
default:
return ("th");
};
case "w":
return (String(date.getDay()));
case "z":
return (String(dayNumber(date)));
case "W":
return (String(Math.ceil((dayNumber(date) / 7))));
case "F":
return (months_long[date.getMonth()]);
case "m":
return (addZeros((date.getMonth() + 1)));
case "M":
return (months[date.getMonth()]);
case "n":
return (String((date.getMonth() + 1)));
case "t":
_local4 = months_days[date.getMonth()];
return (String(((((_local4 < 30)) && (isLeapYear(date)))) ? 29 : _local4));
case "L":
return ((isLeapYear(date)) ? "1" : "0");
case "o":
_local5 = (dayNumber(date) / 7);
if (_local5 < 1){
return (String((date.getFullYear() - 1)));
};
if (_local5 > 52){
return (String((date.getFullYear() + 1)));
};
return (String(date.getFullYear()));
case "Y":
return (String(date.getFullYear()));
case "y":
return (addZeros((date.getFullYear() % 100)));
case "a":
return (((date.getHours())>11) ? "pm" : "am");
case "A":
return (((date.getHours())>11) ? "PM" : "AM");
case "B":
_local6 = (((date.getHours() + 1) * 60) * 60);
_local6 = (_local6 + (date.getMinutes() * 60));
_local6 = (_local6 + date.getSeconds());
return (String(Math.floor((_local6 / 86.4))));
case "g":
return (String(((date.getHours() % 12) + 1)));
case "G":
return (String(date.getHours()));
case "h":
return (addZeros(((date.getHours() % 12) + 1)));
case "H":
return (addZeros(date.getHours()));
case "i":
return (addZeros(date.getMinutes()));
case "s":
return (addZeros(date.getSeconds()));
case "u":
return (addZeros(date.getMilliseconds()));
default:
return (character);
};
}
private static function isLeapYear(date:Date):Boolean{
if ((date.getFullYear() % 4) == 0){
return (true);
};
return (false);
}
public static function format(str:String=null, date:Date=null):String{
if (str == null){
str = "";
};
if (date == null){
date = new Date();
};
var formatted_str:String = "";
var i:int;
while (i < str.length) {
formatted_str = (formatted_str + getElement(str.charAt(i), date));
i++;
};
return (formatted_str);
}
}
}//package com.domani.utils
Section 10
//LogManager (com.domani.utils.LogManager)
package com.domani.utils {
public class LogManager {
public static var showTimestamp:Boolean = true;
public static var status:int = 0;
public function LogManager(){
super();
}
public static function log(str:String, sender:Object, type:int=0):void{
if (type < status){
return;
};
var log_str:String = "";
if (showTimestamp){
log_str = (log_str + DateFormatter.format("[m/d-h:i:s] "));
};
log_str = (log_str + sender.toString());
log_str = (log_str + (" -> " + str));
trace(log_str);
}
}
}//package com.domani.utils
Section 11
//LogType (com.domani.utils.LogType)
package com.domani.utils {
public class LogType {
public static const DEBUG:int = 1;
public static const WARNING:int = 2;
public static const INFO:int = 0;
public static const ERROR:int = 3;
public function LogType(){
super();
}
}
}//package com.domani.utils
Section 12
//VarReplacer (com.domani.utils.VarReplacer)
package com.domani.utils {
public class VarReplacer {
public var scope:Object;
public function VarReplacer(scope:Object){
super();
this.scope = scope;
}
private function varReplace2(... _args):String{
var propString:String;
var prop:*;
var rest = _args;
propString = String(rest[0]).substr(2, (String(rest[0]).length - 3));
prop = scope[propString];
//unresolved jump
var _slot1 = e;
return (prop);
}
public function replace(string:String):String{
var string2:String;
var reg:RegExp;
reg = /\$\{\w*\}/gi;
string2 = string.replace(reg, varReplace2);
return (string2);
}
}
}//package com.domani.utils
Section 13
//AppBase (com.norton.app.AppBase)
package com.norton.app {
import flash.events.*;
import com.norton.managers.*;
import flash.display.*;
import com.norton.settings.*;
import flash.text.*;
import flash.net.*;
import com.domani.utils.*;
public class AppBase extends Sprite {
protected var styles:Styles;
protected var settings:AppSettings;
protected var loader:URLLoader;
protected var xml:XML;
protected static const APP_HEIGHT:Number = 462;
private static const CSS_FILE:String = "flashStyles.css";
protected static const APP_WIDTH:Number = 965;
protected static var manTrack:TrackingManager;
public function AppBase(){
super();
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoaderComplete, false, 0, true);
initStage();
initPrereqs();
}
protected function trackPageLoad():void{
trace("TRACK PAGE LOAD");
manTrack.track();
}
private function initPrereqs():void{
var fonts:LibFonts;
var arr:Array;
fonts = new LibFonts();
arr = Font.enumerateFonts();
var i:uint;
while (i < arr.length) {
i++;
};
settings = AppSettings.getInstance();
if (!settings.isLoaded){
settings.addEventListener(Event.COMPLETE, onAppSettingsLoaded, false, 0, true);
} else {
loadFlashStyles();
};
if (!manTrack){
manTrack = TrackingManager.getInstance();
};
if (!manTrack.isInit){
manTrack.init(stage);
};
if (!settings.isInitialized){
settings.init("/xml/conf.xml");
};
}
private function onAppSettingsLoaded(event:Event):void{
LogManager.log("AppSettings loaded", this, LogType.INFO);
loadFlashStyles();
}
protected function parseXML():void{
throw (new Error("child class must override function parseXML"));
}
private function loadFlashStyles():void{
styles = Styles.getInstance();
if (!styles.isLoaded){
styles.addEventListener(Event.COMPLETE, onStylesLoaded, false, 0, true);
} else {
init();
};
if (!styles.isInitialized){
styles.load((settings.CSS + CSS_FILE));
};
}
private function initStage():void{
if (stage){
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
};
}
protected function init():void{
}
private function onLoaderComplete(event:Event):void{
xml = new XML(loader.data);
trackPageLoad();
parseXML();
}
private function onStylesLoaded(event:Event):void{
LogManager.log("FlashStyles loaded", this, LogType.INFO);
init();
}
}
}//package com.norton.app
Section 14
//CybercrimeLifeCycle (com.norton.app.CybercrimeLifeCycle)
package com.norton.app {
import flash.events.*;
import com.domani.events.*;
import com.norton.events.*;
import flash.display.*;
import com.norton.settings.*;
import flash.text.*;
import gs.*;
import com.domani.components.ui.*;
import com.norton.models.*;
import com.norton.display.buttons.*;
import flash.net.*;
import com.norton.display.*;
import flash.utils.*;
import com.domani.utils.*;
import com.norton.controls.*;
import com.domani.controls.*;
import gs.easing.*;
public class CybercrimeLifeCycle extends AppBase {
private var definitions:Object;
private var tfInfection:TextField;
private var winDefinitions:DefinitionWindow;
private var infectionMap:InfectionMap;
private var arrScriptItems:Array;
private var choices2:ChoicesPanel;
private var btnActions:Dictionary;
private var pageMask:Sprite;
private var dictSiteLinks:Dictionary;
private var hldr:Sprite;
private var firstChoices:InitialMapChoices;
private var runningTime:Number;
private var btnPrev:Button;
private var vars:VarReplacer;
private var startTime:Number;
private var map:LibMapAnim;
private var control:CybercrimeLifeCycleControl;
private var objMapScripts:Object;
private var btnNext:Button;
private var dictKillList:Dictionary;
private var infoPanel:MapInfoPanel;
private static const INFECTION_TEXT_Y:int = 90;
private static const DISABLE_ALPHA:Number = 0.5;
private static const FILE:String = "cybercrimeLifeCycle.xml";
public function CybercrimeLifeCycle(){
super();
}
private function onAnythingClick(event:MouseEvent):void{
}
override protected function init():void{
OverwriteManager.init();
this.addEventListener(MouseEvent.CLICK, onAnythingClick, true);
hldr = new Sprite();
addChild(hldr);
arrScriptItems = [];
dictKillList = new Dictionary();
objMapScripts = {};
map = new LibMapAnim();
map.y = -65;
infectionMap = new InfectionMap();
infectionMap.x = -46;
infectionMap.y = 22;
infectionMap.centerOffsetX = -46;
infectionMap.centerOffsetY = 22;
hldr.addChild(infectionMap);
tfInfection = new TextField();
tfInfection.width = (APP_WIDTH - 300);
tfInfection.condenseWhite = true;
tfInfection.autoSize = TextFieldAutoSize.CENTER;
tfInfection.embedFonts = true;
tfInfection.wordWrap = true;
tfInfection.styleSheet = Styles.getInstance().getStyleSheet();
tfInfection.backgroundColor = 0xFF0000;
tfInfection.y = 90;
hldr.addChild(tfInfection);
infoPanel = new MapInfoPanel();
infoPanel.x = 175;
infoPanel.y = 316;
btnPrev = new LibCriminalLifeCyclePrevButton();
btnPrev.x = 8;
btnPrev.y = 40;
btnPrev.addEventListener(MouseEvent.CLICK, onPrevClick, false, 0, true);
infoPanel.hldrCrimeInfo.addChild(btnPrev);
btnNext = new LibCriminalLifeCycleNextButton();
btnNext.x = 578;
btnNext.y = 40;
btnNext.addEventListener(MouseEvent.CLICK, onNextClick, false, 0, true);
infoPanel.hldrCrimeInfo.addChild(btnNext);
loader.load(new URLRequest((settings.XML_DIR + FILE)));
pageMask = new Sprite();
pageMask.graphics.beginFill(0);
pageMask.graphics.drawRect(0, 0, APP_WIDTH, APP_HEIGHT);
pageMask.graphics.endFill();
hldr.mask = pageMask;
addChild(pageMask);
winDefinitions = new DefinitionWindow();
winDefinitions.addEventListener(Event.CLOSE, onDefinitionClosed, false, 0, true);
definitions = {};
this.addEventListener(TextEvent.LINK, onTextLink);
}
private function onSiteLinkClick(event:MouseEvent):void{
var url:String;
url = dictSiteLinks[event.target];
navigateToURL(new URLRequest(url), "_self");
}
private function showChoices2():void{
if (!contains(choices2)){
addChild(choices2);
};
TweenMax.to(choices2, 0.4, {alpha:1, ease:Linear.easeNone});
}
private function onInfectionScript(event:Event):void{
var item:TimecodeObject;
var text:PositionedText;
var key:*;
runningTime = (new Date().valueOf() - startTime);
if (arrScriptItems.length > 0){
item = TimecodeObject(arrScriptItems[0]);
while (item.startTime < runningTime) {
if (item.expires){
dictKillList[item] = true;
};
arrScriptItems.shift();
if ((item.data is PositionedText)){
text = PositionedText(item.data);
setInfectionText(text.copy, text.x, text.y);
} else {
if ((item.data is Event)){
dispatchEvent(Event(item.data));
};
};
if (arrScriptItems.length <= 0){
break;
};
item = TimecodeObject(arrScriptItems[0]);
};
};
for (key in dictKillList) {
item = key;
if (item.endTime < runningTime){
if ((item.data is String)){
};
delete dictKillList[key];
};
};
}
private function onDefinitionClosed(event:Event):void{
winDefinitions.removeEventListener(Event.CLOSE, onDefinitionClosed);
TweenLite.to(winDefinitions, 0.5, {alpha:0, ease:Linear.easeNone, onComplete:onDefinitionCollapsed});
}
private function showInfoPanel():void{
TweenMax.to(infoPanel, 0.4, {alpha:1, ease:Linear.easeNone});
}
private function playInfectionScript():void{
startTime = new Date().valueOf();
this.addEventListener(Event.ENTER_FRAME, onInfectionScript, false, 0, true);
}
private function showChoices():void{
firstChoices.x = ((APP_WIDTH / 2) - (firstChoices.width / 2));
firstChoices.y = 146;
addChild(firstChoices);
firstChoices.expand();
}
private function showDefineWindow(term:String):void{
var data:WordDefinitonData;
data = WordDefinitonData(definitions[term]);
if (!contains(winDefinitions)){
addChild(winDefinitions);
};
winDefinitions.title = data.word;
winDefinitions.body = data.definition;
winDefinitions.y = (infoPanel.y + 20);
winDefinitions.x = infoPanel.x;
winDefinitions.addEventListener(Event.CLOSE, onDefinitionClosed);
winDefinitions.visible = true;
infoPanel.addEventListener(AnimationEvent.COLLAPSED, onInfoPanelCollapsed);
infoPanel.hideContent();
}
private function onBoundaryChange(event:ListBoundaryEvent=null):void{
if (event.boundary == Boundary.LEFT){
btnPrev.enabled = !(event.atBoundary);
if (event.atBoundary){
btnPrev.alpha = DISABLE_ALPHA;
} else {
btnPrev.alpha = 1;
};
} else {
if (event.boundary == Boundary.RIGHT){
btnNext.enabled = !(event.atBoundary);
if (event.atBoundary){
btnNext.alpha = DISABLE_ALPHA;
hideInfoPanel();
showChoices2();
} else {
btnNext.alpha = 1;
};
};
};
}
private function onNextClick(event:MouseEvent):void{
control.nextStory();
}
private function onAnimationChosen(event:MouseEvent):void{
var data:AnimationChoice;
data = AnimationChoice(btnActions[event.target]);
control.data = CybercrimeLifeCycleData(objMapScripts[data.animationId]);
if (data.trackingId){
manTrack.track(data.trackingId);
};
setVisitedButtons(data.animationId);
onStoryUpdate();
onFrameUpdate();
hideChoices2Panel();
showInfoPanel();
control.refresh();
}
private function onInfoPanelCollapsed(event:AnimationEvent):void{
infoPanel.removeEventListener(AnimationEvent.COLLAPSED, onInfoPanelCollapsed);
TweenLite.to(winDefinitions, 0.5, {alpha:1, ease:Linear.easeNone});
}
private function hideChoices2Panel():void{
infoPanel.mouseEnabled = true;
infoPanel.mouseChildren = true;
choices2.mouseEnabled = false;
choices2.mouseChildren = false;
TweenMax.to(choices2, 0.4, {alpha:0, ease:Linear.easeNone});
}
private function onFirstAnimationChosen(event:MouseEvent):void{
var data:AnimationChoice;
data = btnActions[event.target];
if (data.trackingId){
manTrack.track(data.trackingId);
};
control.data = CybercrimeLifeCycleData(objMapScripts[data.animationId]);
setVisitedButtons(data.animationId);
firstChoices.addEventListener(AnimationEvent.COLLAPSED, onInitialMapChoicesCollapsed);
firstChoices.collapse();
}
private function onTextLink(event:TextEvent):void{
showDefineWindow(event.text);
}
private function onStoryUpdate(event:CybercrimeLifeCycleEvent=null):void{
infoPanel.crimeText = control.story;
}
private function hideInfoPanel():void{
infoPanel.mouseEnabled = false;
infoPanel.mouseChildren = false;
choices2.mouseChildren = true;
choices2.mouseEnabled = true;
TweenMax.to(infoPanel, 0.4, {alpha:0, ease:Linear.easeNone});
}
private function onFrameUpdate(event:CybercrimeLifeCycleEvent=null):void{
map.map.gotoAndPlay(control.frameLabel);
}
public function setInfectionText(value:String, x:Number=NaN, y:Number=NaN):void{
tfInfection.htmlText = value;
if (y != 0){
tfInfection.y = y;
} else {
tfInfection.y = INFECTION_TEXT_Y;
};
if (x != 0){
tfInfection.x = x;
} else {
tfInfection.x = ((APP_WIDTH / 2) - (tfInfection.width / 2));
};
TweenLite.to(tfInfection, 0.5, {alpha:1});
}
override protected function parseXML():void{
var node:XML;
var scriptItem:TimecodeObject;
var definitionData:WordDefinitonData;
var btn:LongYellowButton;
var btn2:Button;
var cnt:int;
var data:AnimationChoice;
var btnLink:SiteLinkButton;
var mapScriptData:CybercrimeLifeCycleData;
var frameData:FrameData;
var scriptText:PositionedText;
var slideNode:XML;
var copyNode:XML;
var iAnim:uint;
for each (node in xml.infectionScript.*) {
scriptItem = new TimecodeObject();
if (node.name() == "script"){
scriptItem.setStartTime(node.@start);
scriptItem.setEndTime(node.@start);
scriptText = new PositionedText();
scriptText.copy = node.toString();
scriptItem.data = scriptText;
scriptText.x = node.@x;
scriptText.y = node.@y;
if (scriptItem.endTime > scriptItem.startTime){
LogManager.log("script item has endtime before starttime", this, LogType.ERROR);
};
} else {
if (node.name() == "event"){
scriptItem.setStartTime(node.@start);
scriptItem.data = new Event(node.toString());
};
};
arrScriptItems.push(scriptItem);
};
for each (node in xml.definitions.*) {
definitionData = new WordDefinitonData();
definitionData.word = node.word.toString();
definitionData.definition = node.definition.toString();
definitions[node.@id] = definitionData;
};
this.addEventListener("zoomToUserLocation", zoomToUserLocation, false, 0, true);
this.addEventListener("zoomOut", zoomOut, false, 0, true);
this.addEventListener("scriptEnd", onScriptEnd, false, 0, true);
firstChoices = new InitialMapChoices();
cnt = 1;
btnActions = new Dictionary(true);
for each (node in xml.choicesDialog.*) {
btn = new LongYellowButton();
btn.label = node.label.toString();
data = new AnimationChoice();
data.animationId = node.animationId.toString();
data.trackingId = node.trackingId.toString();
btnActions[btn] = data;
btn.addEventListener(MouseEvent.CLICK, onFirstAnimationChosen, false, 0, true);
firstChoices.addButton(btn);
btn2 = (firstChoices.laptops[("btn" + cnt)] as Button);
cnt++;
if (btn2){
btnActions[btn2] = node.animationId.toString();
btn2.addEventListener(MouseEvent.CLICK, onFirstAnimationChosen, false, 0, true);
};
};
choices2 = new ChoicesPanel();
choices2.y = 308;
choices2.x = ((APP_WIDTH / 2) - (choices2.width / 2));
choices2.title = xml.choicesDialog2.title.toString();
for each (node in xml.choicesDialog2.choice) {
btn = new LongYellowButton();
btn.label = node.label.toString();
data = new AnimationChoice();
data.animationId = node.animationId.toString();
data.trackingId = node.trackingId.toString();
btnActions[btn] = data;
btn.addEventListener(MouseEvent.CLICK, onAnimationChosen, false, 0, true);
choices2.addButton(btn);
};
dictSiteLinks = new Dictionary(true);
node = XML(xml.choicesDialog2.leftButton);
btnLink = new SiteLinkButton();
btnLink.label = node.label.toString();
dictSiteLinks[btnLink] = node.url.toString();
btnLink.addEventListener(MouseEvent.CLICK, onSiteLinkClick, false, 0, true);
choices2.addLeftButton(btnLink);
node = XML(xml.choicesDialog2.rightButton);
btnLink = new SiteLinkButton();
btnLink.label = node.label.toString();
dictSiteLinks[btnLink] = node.url.toString();
btnLink.addEventListener(MouseEvent.CLICK, onSiteLinkClick, false, 0, true);
choices2.addRightButton(btnLink);
for each (node in xml..mapScript) {
mapScriptData = new CybercrimeLifeCycleData();
iAnim = 0;
for each (slideNode in node.slide) {
frameData = new FrameData();
frameData.frameLabel = slideNode.@label;
for each (copyNode in slideNode.*) {
frameData.copy.push(copyNode.toString());
};
mapScriptData.addFrame(frameData);
};
objMapScripts[node.@id] = mapScriptData;
};
winDefinitions.closeText = xml.closeButton.toString();
control = new CybercrimeLifeCycleControl();
control.addEventListener(CybercrimeLifeCycleEvent.FRAME_UPDATE, onFrameUpdate);
control.addEventListener(CybercrimeLifeCycleEvent.STORY_UPDATE, onStoryUpdate);
control.addEventListener(ListBoundaryEvent.BOUNDARY_CHANGE, onBoundaryChange, false, 0, true);
vars = new VarReplacer(control);
playInfectionScript();
}
private function zoomToUserLocation(event:Event=null):void{
infectionMap.zoomToUsersLocation();
}
private function onScriptEnd(event:Event=null):void{
showChoices();
}
private function onDefinitionCollapsed(event:Event=null):void{
winDefinitions.visible = false;
infoPanel.showContent();
}
private function setVisitedButtons(scriptId:String):void{
var key:*;
for (key in btnActions) {
if ((((btnActions[key] == scriptId)) && ((key is LongYellowButton)))){
LongYellowButton(key).visited = true;
};
};
}
private function zoomOut(event:Event=null):void{
infectionMap.zoomOut();
}
private function onPrevClick(event:MouseEvent):void{
control.previousStory();
}
private function onInitialMapChoicesCollapsed(event:Event):void{
firstChoices.removeEventListener(AnimationEvent.COLLAPSED, onInitialMapChoicesCollapsed);
removeChild(firstChoices);
if (((map) && (!(contains(map))))){
addChild(map);
};
addChild(infoPanel);
onFrameUpdate();
onStoryUpdate();
}
}
}//package com.norton.app
Section 15
//CybercrimeLifeCycleControl (com.norton.controls.CybercrimeLifeCycleControl)
package com.norton.controls {
import flash.events.*;
import com.domani.events.*;
import com.norton.events.*;
import com.norton.models.*;
import com.domani.controls.*;
public class CybercrimeLifeCycleControl extends EventDispatcher {
private var _enabled:Boolean;
private var _atLeftBoundary:Boolean;// = false
private var _data:CybercrimeLifeCycleData;
private var _iFrame:int;
private var _iStory:int;
private var _atRightBoundary:Boolean;// = false
public function CybercrimeLifeCycleControl(){
super();
}
public function get enabled():Boolean{
return (_enabled);
}
public function get frameLabel():String{
return (_data.getFrame(_iFrame).frameLabel);
}
public function set enabled(value:Boolean):void{
var type:String;
_enabled = value;
type = (_enabled) ? CybercrimeLifeCycleEvent.ENABLED : CybercrimeLifeCycleEvent.DISABLED;
dispatchEvent(new CybercrimeLifeCycleEvent(type));
}
public function set data(value:CybercrimeLifeCycleData):void{
_data = value;
_iFrame = 0;
_iStory = 0;
checkFrameBounds();
}
public function get title():String{
return (_data.title);
}
public function get frameNum():int{
return (_iFrame);
}
private function checkFrameBounds():void{
if (_iFrame >= _data.numFrames){
_iFrame = (_data.numFrames - 1);
};
if ((((_iFrame == (_data.numFrames - 1))) && ((_iStory == (_data.getFrame(_iFrame).length - 1))))){
_atRightBoundary = true;
dispatchEvent(new ListBoundaryEvent(ListBoundaryEvent.BOUNDARY_CHANGE, Boundary.RIGHT, true));
} else {
if (_atRightBoundary){
_atRightBoundary = false;
dispatchEvent(new ListBoundaryEvent(ListBoundaryEvent.BOUNDARY_CHANGE, Boundary.RIGHT, false));
};
};
if (_iFrame < 0){
_iFrame = 0;
};
if ((((_iFrame == 0)) && ((_iStory == 0)))){
_atLeftBoundary = true;
dispatchEvent(new ListBoundaryEvent(ListBoundaryEvent.BOUNDARY_CHANGE, Boundary.LEFT, true));
} else {
if (_atLeftBoundary){
_atLeftBoundary = false;
dispatchEvent(new ListBoundaryEvent(ListBoundaryEvent.BOUNDARY_CHANGE, Boundary.LEFT, false));
};
};
}
public function refresh():void{
checkFrameBounds();
}
public function nextStory():void{
if ((_iStory + 1) >= _data.getFrame(_iFrame).length){
if (_atRightBoundary){
return;
};
_iFrame++;
_iStory = 0;
dispatchEvent(new CybercrimeLifeCycleEvent(CybercrimeLifeCycleEvent.FRAME_UPDATE));
dispatchEvent(new CybercrimeLifeCycleEvent(CybercrimeLifeCycleEvent.STORY_UPDATE));
} else {
_iStory++;
dispatchEvent(new CybercrimeLifeCycleEvent(CybercrimeLifeCycleEvent.STORY_UPDATE));
};
checkFrameBounds();
}
public function get frame():FrameData{
return (FrameData(_data.getFrame(_iFrame)));
}
public function get story():String{
return (_data.getFrame(_iFrame).copy[_iStory]);
}
public function previousFrame():void{
}
public function nextFrame():void{
}
public function previousStory():void{
if (_iStory <= 0){
if (_atLeftBoundary){
return;
};
_iFrame--;
_iStory = (_data.getFrame(_iFrame).length - 1);
dispatchEvent(new CybercrimeLifeCycleEvent(CybercrimeLifeCycleEvent.FRAME_UPDATE));
dispatchEvent(new CybercrimeLifeCycleEvent(CybercrimeLifeCycleEvent.STORY_UPDATE));
} else {
_iStory--;
dispatchEvent(new CybercrimeLifeCycleEvent(CybercrimeLifeCycleEvent.STORY_UPDATE));
};
checkFrameBounds();
}
}
}//package com.norton.controls
Section 16
//CloseButton (com.norton.display.buttons.CloseButton)
package com.norton.display.buttons {
import com.norton.settings.*;
import flash.text.*;
import com.domani.components.ui.*;
public class CloseButton extends Button {
private var xIcon:LibXIcon;
private var tf:TextField;
public function CloseButton(){
super();
tf = new TextField();
tf.styleSheet = Styles.getInstance().getStyleSheet();
tf.embedFonts = true;
tf.wordWrap = false;
tf.multiline = false;
tf.autoSize = TextFieldAutoSize.LEFT;
tf.y = -4;
addChild(tf);
xIcon = new LibXIcon();
addChild(xIcon);
}
public function set label(value:String):void{
tf.htmlText = value;
xIcon.x = ((tf.x + tf.width) + 4);
}
}
}//package com.norton.display.buttons
Section 17
//LongYellowButton (com.norton.display.buttons.LongYellowButton)
package com.norton.display.buttons {
import flash.events.*;
import gs.*;
import gs.easing.*;
public class LongYellowButton extends NortonPillButton {
private var disabledBg:LibLongYellowButtonDisabledBg;
private var _visited:Boolean;
private var activeBg:LibLongYellowButtonBg;
public function LongYellowButton(){
disabledBg = new LibLongYellowButtonDisabledBg();
disabledBg.visible = false;
addChild(disabledBg);
activeBg = new LibLongYellowButtonBg();
addChild(activeBg);
w = 153;
h = 25;
super();
this.useHandCursor = true;
this.buttonMode = true;
this.mouseChildren = false;
OverwriteManager.init();
}
private function delayedVisited():void{
disabledBg.visible = true;
TweenMax.to(activeBg, 0.5, {alpha:0, ease:Linear.easeNone});
TweenMax.to(tf, 0.5, {tint:0xFFFFFF});
}
override public function set enabled(value:Boolean):void{
}
public function get visited():Boolean{
return (_visited);
}
override protected function onRollOver(event:MouseEvent):void{
TweenMax.to(this, 0.2, {glowFilter:{alpha:1, color:16777154, blurX:12, blurY:12}});
}
override protected function onRollOut(event:MouseEvent):void{
TweenMax.to(this, 0.2, {glowFilter:{alpha:0, color:16777154, alpha:1, blurX:0, blurY:0}});
}
public function set visited(value:Boolean):void{
_visited = value;
TweenMax.delayedCall(1, delayedVisited);
}
}
}//package com.norton.display.buttons
Section 18
//NortonPillButton (com.norton.display.buttons.NortonPillButton)
package com.norton.display.buttons {
import com.norton.settings.*;
import flash.text.*;
import com.domani.components.ui.*;
public class NortonPillButton extends Button {
protected var tf:TextField;
protected var __label:String;
protected var w:Number;// = 0
protected var h:Number;// = 0
public function NortonPillButton(){
tf = new TextField();
tf.embedFonts = true;
tf.styleSheet = Styles.getInstance().getStyleSheet();
tf.autoSize = TextFieldAutoSize.LEFT;
tf.multiline = false;
tf.wordWrap = false;
addChild(tf);
super();
}
public function set label(value:String):void{
__label = value;
tf.htmlText = value;
tf.x = ((w / 2) - (tf.width / 2));
tf.y = ((h / 2) - (tf.height / 2));
}
public function get label():String{
return (__label);
}
}
}//package com.norton.display.buttons
Section 19
//SiteLinkButton (com.norton.display.buttons.SiteLinkButton)
package com.norton.display.buttons {
import com.norton.settings.*;
import flash.text.*;
import com.domani.components.ui.*;
public class SiteLinkButton extends Button {
private var tf:TextField;
private var icon:LibSiteLinkButtonArrow;
public function SiteLinkButton(){
super();
tf = new TextField();
tf.embedFonts = true;
tf.styleSheet = Styles.getInstance().getStyleSheet();
tf.wordWrap = false;
tf.multiline = false;
tf.autoSize = TextFieldAutoSize.LEFT;
addChild(tf);
icon = new LibSiteLinkButtonArrow();
addChild(icon);
}
public function set label(value:String):void{
tf.htmlText = value;
icon.x = (tf.width + 8);
icon.y = ((tf.height / 2) - (icon.height / 2));
}
}
}//package com.norton.display.buttons
Section 20
//ChoicesPanel (com.norton.display.ChoicesPanel)
package com.norton.display {
import flash.display.*;
import com.norton.settings.*;
import flash.text.*;
import com.domani.components.ui.*;
import flash.geom.*;
import flash.filters.*;
import com.domani.display.*;
public class ChoicesPanel extends Resizer {
public var btnRight:Button;
public var btnLeft:Button;
private var bg:Sprite;
public var btnSpacer:AutoSpacer;
private var tfTitle:TextField;
private var bgGlowy:Sprite;
private static const FADE_END_COLOR:uint = 0x333333;
private static const WIDTH:Number = 615;
private static const HEIGHT:Number = 132;
private static const FADE_START_COLOR:uint = 0;
private static const FOOTER_HEIGHT:uint = 40;
private static const MARGIN:int = 11;
private static const BORDER_COLOR:uint = 0x333333;
private static const ROUNDING:uint = 4;
public function ChoicesPanel(){
var g:Graphics;
var m:Matrix;
var c:Array;
var a:Array;
var r:Array;
super();
bgGlowy = new Sprite();
g = bgGlowy.graphics;
g.beginFill(0);
g.drawRoundRect(0, 0, WIDTH, HEIGHT, ROUNDING);
g.endFill();
bgGlowy.filters = [new GlowFilter(0xFFFFFF, 0.1, 12, 12, 2, 1, false, true)];
addChild(bgGlowy);
bg = new Sprite();
bg.alpha = 0.9;
addChild(bg);
a = [1, 1];
c = [FADE_START_COLOR, FADE_END_COLOR];
r = [0, 0xFF];
m = new Matrix();
m.createGradientBox(615, 120);
m.rotate((Math.PI / 2));
g = bg.graphics;
g.clear();
g.lineStyle(1, BORDER_COLOR);
g.beginGradientFill(GradientType.LINEAR, c, a, r, m);
g.drawRoundRect(0, 0, WIDTH, HEIGHT, ROUNDING);
g.endFill();
g.moveTo(0, 92);
g.lineTo(WIDTH, 92);
g.moveTo((WIDTH / 2), 92);
g.lineTo((WIDTH / 2), (92 + FOOTER_HEIGHT));
tfTitle = new TextField();
tfTitle.styleSheet = Styles.getInstance().getStyleSheet();
tfTitle.embedFonts = true;
tfTitle.autoSize = TextFieldAutoSize.LEFT;
tfTitle.wordWrap = false;
tfTitle.multiline = false;
tfTitle.y = MARGIN;
addChild(tfTitle);
btnSpacer = new AutoSpacer();
btnSpacer.padding = 46;
btnSpacer.y = 44;
addChild(btnSpacer);
}
public function addLeftButton(btn:Button):void{
if (((btnLeft) && (contains(btnLeft)))){
removeChild(btnLeft);
};
btnLeft = btn;
btnLeft.y = (((FOOTER_HEIGHT / 2) - (btnLeft.height / 2)) + 92);
btnLeft.x = ((WIDTH / 4) - (btnLeft.width / 2));
addChild(btnLeft);
}
public function addRightButton(btn:Button):void{
if (((btnRight) && (contains(btnRight)))){
removeChild(btnRight);
};
btnRight = btn;
btnRight.y = ((92 + (FOOTER_HEIGHT / 2)) - (btnRight.height / 2));
btnRight.x = (((WIDTH / 2) + (WIDTH / 4)) - (btnRight.width / 2));
addChild(btnRight);
}
public function set title(value:String):void{
tfTitle.htmlText = value;
tfTitle.x = ((WIDTH / 2) - (tfTitle.width / 2));
}
public function addButton(btn:Button):void{
btnSpacer.addChild(btn);
btnSpacer.x = ((WIDTH / 2) - (btnSpacer.width / 2));
}
}
}//package com.norton.display
Section 21
//DefinitionWindow (com.norton.display.DefinitionWindow)
package com.norton.display {
import flash.events.*;
import flash.display.*;
import com.norton.settings.*;
import flash.text.*;
import com.norton.display.buttons.*;
public class DefinitionWindow extends Sprite {
private var tfTitle:TextField;
private var tfBody:TextField;
private var btnClose:CloseButton;
private static const MARGIN:int = 22;
private static const WIDTH:int = 615;
public function DefinitionWindow(){
super();
tfTitle = makeTextField();
tfTitle.x = MARGIN;
addChild(tfTitle);
tfBody = makeTextField();
tfBody.x = MARGIN;
addChild(tfBody);
btnClose = new CloseButton();
btnClose.addEventListener(MouseEvent.CLICK, onCloseClick);
addChild(btnClose);
this.alpha = 0;
this.blendMode = BlendMode.LAYER;
}
private function draw():void{
}
public function set closeText(value:String):void{
btnClose.label = value;
btnClose.x = Math.round(((WIDTH - btnClose.width) - MARGIN));
}
public function set body(value:String):void{
tfBody.htmlText = value;
tfBody.y = ((tfTitle.y + tfTitle.height) + 8);
draw();
}
public function collapse():void{
}
private function onCloseClick(event:MouseEvent):void{
dispatchEvent(new Event(Event.CLOSE));
}
public function set title(value:String):void{
tfTitle.htmlText = value;
tfBody.y = ((tfTitle.y + tfTitle.height) + 8);
draw();
}
public function expand():void{
}
private function makeTextField():TextField{
var tf:TextField;
tf = new TextField();
tf.autoSize = TextFieldAutoSize.LEFT;
tf.embedFonts = true;
tf.wordWrap = true;
tf.multiline = true;
tf.condenseWhite = true;
tf.width = (WIDTH - (MARGIN * 2));
tf.styleSheet = Styles.getInstance().getStyleSheet();
return (tf);
}
}
}//package com.norton.display
Section 22
//InfectionMap (com.norton.display.InfectionMap)
package com.norton.display {
import flash.events.*;
import com.norton.managers.*;
import flash.display.*;
import gs.*;
import flash.geom.*;
import flash.net.*;
import gs.easing.*;
import flash.external.*;
public class InfectionMap extends Sprite {
private var ldrLongLat:URLLoader;
private var fLong:Number;
private var _centerOffsetX:Number;// = 0
private var _centerOffsetY:Number;// = 0
private var pOffsetX:Number;// = 220
private var pOffsetY:Number;// = 240
private var arrInfectionPositions:Array;
private var fLat:Number;
private var _long:Number;// = -73.9906
private var map:LibInfectionMap;
private var _lat:Number;// = 40.6944
private var pin:LibPin;
private var mapShading:LibMapShading;
private var ptPin:Point;
private var unshaded:Sprite;
private static const NUM_SPAWNED:Number = 5;
private static const MAP_WIDTH:Number = 1040;
private static const MAP_HEIGHT:Number = 530;
private static const LAT_LONG_SERVICE:String = "ip2LatLon.php";
public function InfectionMap(){
var child:MovieClip;
var p:Point;
super();
OverwriteManager.init();
fLong = (MAP_WIDTH / (180 * 2));
fLat = (MAP_HEIGHT / (90 * 2));
arrInfectionPositions = [];
map = new LibInfectionMap();
addChild(map);
mapShading = new LibMapShading();
mapShading.scaleX = 1.3;
addChild(mapShading);
unshaded = new Sprite();
addChild(unshaded);
pOffsetX = map.infection.x;
pOffsetY = map.infection.y;
while (map.infection.numChildren > 0) {
child = MovieClip(map.infection.getChildAt(0));
p = new Point();
p.x = child.x;
p.y = child.y;
arrInfectionPositions.push(p);
map.infection.removeChild(child);
};
ldrLongLat = new URLLoader();
ldrLongLat.addEventListener(Event.COMPLETE, onGetLongLat, false, 0, true);
ldrLongLat.load(new URLRequest((AppSettings.getInstance().APP_ROOT + LAT_LONG_SERVICE)));
this.addEventListener(Event.ENTER_FRAME, onEnterFrame, false, 0, true);
}
private function addPin():void{
pin = new LibPin();
pin.scaleX = 0.12;
pin.scaleY = 0.12;
pin.x = ptPin.x;
pin.y = ptPin.y;
unshaded.addChild(pin);
}
private function removePin():void{
if (((pin) && (unshaded.contains(pin)))){
unshaded.removeChild(pin);
};
}
private function onEnterFrame(event:Event):void{
var p:Point;
var i:uint;
var blip:LibInfection;
var s:Number;
var j:int;
while (j < NUM_SPAWNED) {
i = Math.round((Math.random() * arrInfectionPositions.length));
p = Point(arrInfectionPositions[i]);
if (!p){
return;
};
blip = new LibInfection();
blip.x = p.x;
blip.y = p.y;
blip.alpha = 0;
blip.scaleX = 0;
blip.scaleY = 0;
blip.gotoAndPlay((Math.round(Math.random()) * 15));
s = (Math.random() + 0.2);
map.infection.addChild(blip);
TweenLite.to(blip, 1, {alpha:1, ease:Linear.easeNone});
TweenLite.to(blip, 1.5, {scaleX:s, scaleY:s, ease:Sine.easeOut});
TweenLite.to(blip, 1.5, {scaleX:(s - 0.4), scaleY:(s - 0.4), delay:1.5, ease:Sine.easeIn});
TweenLite.to(blip, 1, {alpha:0, delay:2, onComplete:removeBlip, onCompleteParams:[blip]});
j++;
};
}
private function removeBlip(clip:DisplayObject):void{
map.infection.removeChild(clip);
}
public function zoomToUsersLocation():void{
var curURL:String;
var chunk:Array;
var urlVars:URLVariables;
curURL = ExternalInterface.call("window.location.href.toString");
chunk = curURL.split("?");
urlVars = new URLVariables(chunk[1]);
if (urlVars.lat){
_lat = urlVars.lat;
};
if (urlVars.long){
_long = urlVars.long;
};
zoomToLatLong(_lat, _long);
}
private function onGetLongLat(event:Event):void{
var vars:URLVariables;
vars = new URLVariables();
vars.decode(ldrLongLat.data);
_long = vars.lon;
_lat = vars.lat;
}
public function set centerOffsetX(value:Number):void{
mapShading.x = -(value);
_centerOffsetX = value;
}
public function zoomToLatLong(lat:Number, long:Number):void{
var x:Number;
var y:Number;
trace("long: ", long);
trace("lat: ", lat);
long = (long + 180);
lat = (lat + 90);
ptPin = new Point();
ptPin.x = (long * fLong);
ptPin.y = (MAP_HEIGHT - (lat * fLat));
x = (((-(ptPin.x) * 4) + (MAP_WIDTH / 2)) - _centerOffsetX);
y = (((-(ptPin.y) * 4) + (MAP_HEIGHT / 2)) - _centerOffsetY);
zoomTo(x, y, 4, 4);
}
public function zoomTo(x:Number, y:Number, scaleX:Number, scaleY:Number):void{
TweenLite.delayedCall(2, addPin);
TweenLite.to(map, 4, {x:x, y:y, scaleX:scaleX, scaleY:scaleY});
TweenLite.to(unshaded, 4, {x:x, y:y, scaleX:scaleX, scaleY:scaleY});
}
public function set centerOffsetY(value:Number):void{
mapShading.y = -(value);
_centerOffsetY = value;
}
public function zoomOut():void{
TweenLite.to(pin, 0.4, {alpha:0, onComplete:removePin});
TweenLite.to(map, 4, {x:0, y:0, scaleX:1, scaleY:1});
TweenLite.to(unshaded, 4, {x:0, y:0, scaleX:1, scaleY:1});
}
}
}//package com.norton.display
Section 23
//InitialMapChoices (com.norton.display.InitialMapChoices)
package com.norton.display {
import flash.events.*;
import com.domani.events.*;
import flash.display.*;
import com.norton.display.buttons.*;
import com.domani.display.*;
public class InitialMapChoices extends Sprite {
public var laptops:LibLaptops;
private var spacer:AutoSpacer;
public function InitialMapChoices(){
super();
laptops = new LibLaptops();
laptops.addEventListener(AnimationEvent.EXPANDED, repeatEvent);
laptops.addEventListener(AnimationEvent.COLLAPSED, repeatEvent);
addChild(laptops);
spacer = new AutoSpacer();
spacer.padding = 72;
spacer.y = laptops.height;
addChild(spacer);
}
public function expand():void{
laptops.gotoAndPlay("expand");
}
public function addButton(btn:NortonPillButton):void{
spacer.addChild(btn);
spacer.x = ((laptops.width / 2) - (spacer.width / 2));
}
public function collapse():void{
laptops.gotoAndPlay("collapse");
}
private function repeatEvent(event:Event):void{
dispatchEvent(event);
}
}
}//package com.norton.display
Section 24
//MapInfoPanel (com.norton.display.MapInfoPanel)
package com.norton.display {
import flash.events.*;
import com.domani.events.*;
import flash.display.*;
import com.norton.settings.*;
import flash.text.*;
import gs.*;
import flash.geom.*;
import flash.filters.*;
import gs.easing.*;
public class MapInfoPanel extends Sprite {
private var bg:Shape;
private var bgGlowy:Shape;
public var hldrCrimeInfo:Sprite;
private var txtInfo:TextField;
private static const FADE_START_COLOR:uint = 0;
private static const HEIGHT:int = 120;
private static const MARGIN:int = 11;
private static const BORDER_COLOR:uint = 0x333333;
private static const ROUNDING:uint = 6;
private static const FADE_END_COLOR:uint = 0x333333;
public function MapInfoPanel(){
var g:Graphics;
var m:Matrix;
var c:Array;
var a:Array;
var r:Array;
super();
bgGlowy = new Shape();
g = bgGlowy.graphics;
g.clear();
g.beginFill(0);
g.drawRoundRect(0, 0, 615, 120, ROUNDING);
g.endFill();
bgGlowy.filters = [new GlowFilter(0xFFFFFF, 0.1, 12, 12, 2, 1, false, true)];
addChild(bgGlowy);
bg = new Shape();
bg.alpha = 0.9;
addChild(bg);
a = [1, 1];
c = [FADE_START_COLOR, FADE_END_COLOR];
r = [0, 0xFF];
m = new Matrix();
m.createGradientBox(615, 120);
m.rotate((Math.PI / 2));
g = bg.graphics;
g.clear();
g.lineStyle(1, BORDER_COLOR);
g.beginGradientFill(GradientType.LINEAR, c, a, r, m);
g.drawRoundRect(0, 0, 615, 120, ROUNDING);
g.endFill();
hldrCrimeInfo = new Sprite();
txtInfo = makeTextField();
hldrCrimeInfo.addChild(txtInfo);
addChild(hldrCrimeInfo);
onOut();
}
public function showContent():void{
TweenLite.to(hldrCrimeInfo, 0.5, {alpha:1, ease:Linear.easeNone});
}
public function set crimeText(txt:String):void{
TweenLite.to(txtInfo, 0.25, {alpha:0, onComplete:fadeInText, onCompleteParams:[txt]});
}
private function onOut(event:MouseEvent=null):void{
hldrCrimeInfo.visible = true;
}
public function hideContent():void{
TweenLite.to(hldrCrimeInfo, 0.5, {alpha:0, ease:Linear.easeNone, onComplete:onHideComplete});
}
private function onHideComplete(event:Event=null):void{
dispatchEvent(new AnimationEvent(AnimationEvent.COLLAPSED));
}
private function fadeInText(txt:String):void{
txtInfo.htmlText = txt;
txtInfo.y = ((HEIGHT / 2) - (txtInfo.height / 2));
TweenLite.to(txtInfo, 0.25, {alpha:1});
}
private function makeTextField():TextField{
var tf:TextField;
tf = new TextField();
tf.x = 70;
tf.y = MARGIN;
tf.condenseWhite = true;
tf.width = 480;
tf.wordWrap = true;
tf.embedFonts = true;
tf.styleSheet = Styles.getInstance().getStyleSheet();
tf.autoSize = TextFieldAutoSize.LEFT;
return (tf);
}
}
}//package com.norton.display
Section 25
//CybercrimeLifeCycleEvent (com.norton.events.CybercrimeLifeCycleEvent)
package com.norton.events {
import flash.events.*;
public class CybercrimeLifeCycleEvent extends Event {
public static const ENABLED:String = "enabled";
public static const STORY_UPDATE:String = "stoyUpdate";
public static const FRAME_UPDATE:String = "frameUpdate";
public static const DISABLED:String = "disabled";
public function CybercrimeLifeCycleEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false){
super(type, bubbles, cancelable);
}
}
}//package com.norton.events
Section 26
//AppSettings (com.norton.managers.AppSettings)
package com.norton.managers {
import flash.events.*;
import flash.net.*;
import com.domani.utils.*;
public class AppSettings extends EventDispatcher {
public var MEDIA_HOST:String;
public var STREAMING_APP:String;
public var STREAMING_HOST:String;
public var UPLOADED_IMAGES:String;
public var SWF_DIR:String;
public var VIDEO:String;
public var APP_ROOT:String;
public var CSS:String;
public var XML_DIR:String;
public var APP_STATUS:int;
public var IMAGES:String;
private static var _isInit:Boolean = false;
protected static var _thisInstance:AppSettings;
private static var _isLoaded:Boolean = false;
public function AppSettings(caller:Function){
super();
if (caller != getInstance){
throw (new Error("AppSettings is a singleton. Use getInstance instead of new constructor"));
};
if (_thisInstance != null){
throw (new Error("AppSettings is a singleton. Only one instance can exist!"));
};
}
public function init(url:String="conf/conf.xml"):void{
var url = url;
var request:URLRequest = new URLRequest(url);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoadComplete, false, 0, true);
_isInit = true;
loader.load(request);
//unresolved jump
var _slot1 = e;
new Error(_slot1.message);
}
public function get isLoaded():Boolean{
return (_isLoaded);
}
public function get isInitialized():Boolean{
return (_isInit);
}
protected function onLoadComplete(e:Event):void{
var loader:URLLoader = (e.target as URLLoader);
var xml:XML = XML(loader.data);
APP_ROOT = xml.APP_ROOT;
APP_STATUS = xml.APP_STATUS;
IMAGES = xml.IMAGES;
VIDEO = xml.VIDEO;
MEDIA_HOST = xml.MEDIA_HOST;
STREAMING_HOST = xml.STREAMING_HOST;
STREAMING_APP = xml.STREAMING_APP;
UPLOADED_IMAGES = xml.UPLOADED_IMAGES;
XML_DIR = xml.XML;
CSS = xml.CSS;
SWF_DIR = xml.SWF;
LogManager.status = APP_STATUS;
_isLoaded = true;
dispatchEvent(new Event(Event.COMPLETE));
}
public static function getInstance():AppSettings{
if (!_thisInstance){
_thisInstance = new AppSettings(arguments.callee);
};
return (_thisInstance);
}
}
}//package com.norton.managers
Section 27
//TrackingManager (com.norton.managers.TrackingManager)
package com.norton.managers {
import flash.events.*;
import flash.display.*;
import com.domani.utils.*;
import com.omniture.*;
import flash.external.*;
public class TrackingManager extends EventDispatcher {
public var product:String;
public var trackingId:String;
private var _omniture:ActionSource;
public var country:String;
public var campaign:String;
public var language:String;
private var _isInit:Boolean;// = false
private var _stage:Stage;
private static const NOT_INIT_ERROR:String = "TrackingManager must be initialized first";
private static const EVAR_VIDEO:String = "Norton Microsite Videos Viewed";
private static var __thisInstance:TrackingManager;
public function TrackingManager(caller:Function){
super();
if (__thisInstance){
throw (new Error("TrackingManager is a singleton, only one instance can exist"));
};
if (caller != TrackingManager.getInstance){
throw (new Error("TrackingManager is a singleton, use getInstance() instead"));
};
}
public function trackMediaOpen(name:String):void{
var pageName:String;
if (!_isInit){
throw (new Error(NOT_INIT_ERROR));
};
pageName = ExternalInterface.call("getPageMeta");
if (pageName.length > 100){
throw (new Error("Omniture page name has limit of 100 characters"));
};
LogManager.log(("Track: " + pageName), this, LogType.INFO);
_omniture.pageName = pageName;
_omniture.events = "event44";
_omniture.eVar49 = pageName;
_omniture.track();
}
public function init(stage:Stage):void{
if (!_isInit){
_stage = stage;
initActionSource();
_isInit = true;
};
}
public function get isInit():Boolean{
return (_isInit);
}
public function track(... _args):void{
var i:int;
var additionalInfo:String;
var pageName:String;
if (!_isInit){
throw (new Error(NOT_INIT_ERROR));
};
additionalInfo = "";
i = 0;
while (i < _args.length) {
additionalInfo = (additionalInfo + (": " + _args[i].toString()));
i++;
};
pageName = ExternalInterface.call("getPageMeta");
if (additionalInfo){
pageName = (pageName + additionalInfo);
};
if (pageName.length > 100){
throw (new Error("Omniture page name has limit of 100 characters"));
};
_omniture.events = "";
_omniture.eVar49 = "";
LogManager.log(("Track: " + pageName), this, LogType.INFO);
_omniture.pageName = pageName;
_omniture.track();
}
private function initActionSource():void{
var siteSection:String;
_omniture = new ActionSource();
_omniture.account = "symanteccom,symantechho";
_omniture.prop33 = "";
_omniture.eVar44 = "";
_omniture.referrer = "";
_omniture.channel = "";
_omniture.eVar29 = "";
_omniture.prop27 = ExternalInterface.call("getVisitorSegment");
_omniture.eVar50 = "";
_omniture.prop46 = "flash";
_omniture.prop2 = "us";
_omniture.eVar27 = "us";
_omniture.prop3 = "en";
_omniture.eVar28 = "en";
siteSection = ExternalInterface.call("getSiteSection");
_omniture.prop41 = siteSection;
_omniture.eVar41 = siteSection;
_omniture.prop42 = "";
_omniture.eVar42 = "";
_omniture.prop43 = "";
_omniture.eVar43 = "";
_omniture.prop44 = "";
_omniture.prop45 = "";
_omniture.prop47 = "";
_omniture.prop48 = "";
_omniture.prop49 = "";
_omniture.prop50 = "";
_omniture.product = "";
_omniture.debugTracking = true;
_omniture.trackLocal = true;
_omniture.trackingServer = "om.symantec.com";
_omniture.trackingServerSecure = "oms.symantec.com";
_omniture.charSet = "UTF-8";
_omniture.dc = "112";
_stage.addChild(_omniture);
}
private function _track():void{
}
public static function getInstance():TrackingManager{
if (!__thisInstance){
__thisInstance = new TrackingManager(arguments.callee);
};
return (__thisInstance);
}
}
}//package com.norton.managers
Section 28
//AnimationChoice (com.norton.models.AnimationChoice)
package com.norton.models {
public class AnimationChoice {
public var trackingId:String;
public var animationId:String;
public function AnimationChoice(){
super();
}
}
}//package com.norton.models
Section 29
//CybercrimeLifeCycleData (com.norton.models.CybercrimeLifeCycleData)
package com.norton.models {
public class CybercrimeLifeCycleData {
private var frames:Array;
public var title:String;
public function CybercrimeLifeCycleData(){
super();
frames = [];
}
public function get numFrames():uint{
return (frames.length);
}
public function getFrame(i:uint):FrameData{
return (FrameData(frames[i]));
}
public function addFrame(data:FrameData):void{
frames.push(data);
}
}
}//package com.norton.models
Section 30
//FrameData (com.norton.models.FrameData)
package com.norton.models {
public class FrameData {
public var copy:Array;
public var frameLabel:String;
public function FrameData(){
super();
copy = [];
}
public function get length():uint{
return (copy.length);
}
}
}//package com.norton.models
Section 31
//PositionedText (com.norton.models.PositionedText)
package com.norton.models {
public class PositionedText {
public var copy:String;
public var x:Number;// = NAN
public var y:Number;// = NAN
public function PositionedText(){
super();
}
}
}//package com.norton.models
Section 32
//TimecodeObject (com.norton.models.TimecodeObject)
package com.norton.models {
public class TimecodeObject {
public var data;
private var __startTime:uint;// = 0
private var __endTime:uint;// = 0
public function TimecodeObject(){
super();
}
public function setEndTime(timecode:String):void{
__endTime = parseTimecode(timecode);
}
public function get endTime():uint{
return (__endTime);
}
public function setStartTime(timecode:String):void{
__startTime = parseTimecode(timecode);
}
public function get startTime():uint{
return (__startTime);
}
public function get expires():Boolean{
return ((__endTime > 0));
}
private static function parseTimecode(timecode:String):Number{
var d:uint;
var arr:Array;
var n:uint;
arr = timecode.split(":");
d = 0;
n = Math.min(arr.length, 4);
var i:uint;
while (i < n) {
switch (i){
case 0:
d = (d + (((uint(arr[i]) * 1000) * 60) * 60));
break;
case 1:
d = (d + ((uint(arr[i]) * 1000) * 60));
break;
case 2:
d = (d + (uint(arr[i]) * 1000));
break;
case 3:
d = (d + uint(arr[i]));
break;
};
i++;
};
return (d);
}
}
}//package com.norton.models
Section 33
//WordDefinitonData (com.norton.models.WordDefinitonData)
package com.norton.models {
public class WordDefinitonData {
public var word:String;
public var definition:String;
public function WordDefinitonData(){
super();
}
}
}//package com.norton.models
Section 34
//Styles (com.norton.settings.Styles)
package com.norton.settings {
import flash.events.*;
import flash.text.*;
import flash.net.*;
public class Styles extends EventDispatcher {
private var _isLoaded:Boolean;
private var loader:URLLoader;
private var styleSheet:StyleSheet;
private var _isInit:Boolean;
protected static var _thisInstance:Styles;
public function Styles(caller:Function){
super();
if (caller != getInstance){
throw (new Error("AppSettings is a singleton. Use getInstance instead of new constructor"));
};
if (_thisInstance != null){
throw (new Error("AppSettings is a singleton. Only one instance can exist!"));
};
}
public function getStyleSheet():StyleSheet{
return (styleSheet);
}
public function get isInitialized():Boolean{
return (_isInit);
}
private function onLoaderComplete(event:Event):void{
_isLoaded = true;
styleSheet = new StyleSheet();
styleSheet.parseCSS(loader.data);
var i:int;
while (i < styleSheet.styleNames.length) {
i++;
};
dispatchEvent(new Event(Event.COMPLETE));
}
public function load(path:String):void{
if (_isInit){
trace("Warning, this has been initialized");
return;
};
_isInit = true;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoaderComplete, false, 0, true);
loader.load(new URLRequest(path));
}
public function get isLoaded():Boolean{
return (_isLoaded);
}
public static function getInstance():Styles{
if (!_thisInstance){
_thisInstance = new Styles(arguments.callee);
};
return (_thisInstance);
}
}
}//package com.norton.settings
Section 35
//ActionSource (com.omniture.ActionSource)
package com.omniture {
import flash.events.*;
import flash.display.*;
import flash.net.*;
import flash.utils.*;
import flash.external.*;
import flash.system.*;
public dynamic class ActionSource extends Sprite {
private var _useExternalVariables:Boolean;// = false
private var onLoadTracked:Boolean;// = false
public var ssl:Boolean;
public var account:String;
public var _movie:Object;
private var delayTrackingInterval:Number;
public var movieID:String;
public var debugTracking:Boolean;// = false
public var flashASVersion:Number;// = 3
private var _moduleMediaVariables:Object;
public var pageURL:String;
public var otherVariables:Object;
private var requestNum:Number;
public var dc:String;
public var visitorNamespace:String;
private var trackCalled:Boolean;// = false
public var mobile:Boolean;
public var flashVersion:Number;
public var trackingServerBase:String;
private var bufferTrackInterval:Number;// = 0
private var _trackOnLoad:Boolean;// = false
public var version:String;
public var trackingServer:String;
public var ClickMap:ActionSource_Module_ClickMap;
public var autoTrack:Boolean;
public var trackLocal:Boolean;// = true
private var bufferTrackQueue:Array;
public var trackingServerSecure:String;
private var flashRoot:Object;
private var accountConfigList:Array;
public var lastRequest:String;
public var trackClickMap:Boolean;
private var flashLivePreview:Boolean;// = false
public var charSet:String;
private var _configURL:String;
public var delayTracking:Number;
private var configXML:ActionSource_XML;
private var accountVarList:Array;
private var trackOnLoadInterval:Number;
public var pageName:String;
private var _root:Object;
private var requiredVarList:Array;
private var delayTrackingStage:Number;
public var requestList:Array;
public var Media:ActionSource_Module_Media;
private var externalVariables:Object;
public function ActionSource(){
var _local1:Object;
var _local2:Number;
var _local3:String;
var _local4:Array;
flashASVersion = 3;
flashLivePreview = false;
trackLocal = true;
debugTracking = false;
_useExternalVariables = false;
_trackOnLoad = false;
onLoadTracked = false;
bufferTrackInterval = 0;
trackCalled = false;
super();
_local1 = this;
_local1.version = "FAS-2.8";
_local3 = getVersion();
_local4 = _local3.split(" ");
_local1.flashVersion = parseInt(_local4[1].substr(0, 1));
_local1.initPre();
_local1.requestNum = 0;
_local1.requestList = new Array();
_local1.lastRequest = "";
_local1.requiredVarList = ["dynamicVariablePrefix", "visitorID", "vmk", "visitorMigrationKey", "visitorMigrationServer", "visitorMigrationServerSecure", "charSet", "visitorNamespace", "cookieDomainPeriods", "cookieLifetime", "pageName", "pageURL", "referrer", "currencyCode"];
_local1.accountVarList = ["purchaseID", "variableProvider", "channel", "server", "pageType", "transactionID", "campaign", "state", "zip", "events", "products", "tnt"];
_local2 = (_local1.requiredVarList.length - 1);
while (_local2 >= 0) {
_local1.accountVarList.unshift(_local1.requiredVarList[_local2]);
_local2--;
};
_local2 = 1;
while (_local2 <= 50) {
_local1.accountVarList.push(("prop" + _local2));
_local1.accountVarList.push(("eVar" + _local2));
_local1.accountVarList.push(("hier" + _local2));
_local1.accountVarList.push(("list" + _local2));
_local2++;
};
_local1.accountVarList.push("pe");
_local1.accountVarList.push("pev1");
_local1.accountVarList.push("pev2");
_local1.accountVarList.push("pev3");
_local1.requiredVarList.push("pe");
_local1.requiredVarList.push("pev1");
_local1.requiredVarList.push("pev2");
_local1.requiredVarList.push("pev3");
_local1.accountConfigList = ["account", "configURL", "linkObject", "linkURL", "linkName", "linkType", "trackDownloadLinks", "trackExternalLinks", "trackClickMap", "linkLeaveQueryString", "linkTrackVars", "linkTrackEvents", "trackingServer", "trackingServerSecure", "dc", "movieID", "autoTrack", "delayTracking", "trackLocal", "debugTracking"];
_local1.modulesInit();
_local1.setupInterval(_local1, "setVariableCallHandler", 1000, null);
_local1.initPost();
}
public function clearVars(){
var _local1:Object;
var _local2:Number;
var _local3:String;
_local1 = this;
_local2 = 0;
while (_local2 < accountVarList.length) {
_local3 = _local1.accountVarList[_local2];
if ((((((((((((((((((((((((_local3.substr(0, 4) == "prop")) || ((_local3.substr(0, 4) == "eVar")))) || ((_local3.substr(0, 4) == "hier")))) || ((_local3.substr(0, 4) == "list")))) || ((_local3 == "channel")))) || ((_local3 == "events")))) || ((_local3 == "purchaseID")))) || ((_local3 == "transactionID")))) || ((_local3 == "products")))) || ((_local3 == "state")))) || ((_local3 == "zip")))) || ((_local3 == "campaign")))){
_local1[_local3] = undefined;
};
_local2++;
};
}
private function updateExternalVariables(){
var _local1:Object;
var _local2:String;
var _local3:Array;
var _local4:Number;
var _local5:Array;
var _local6:String;
var _local7:Object;
var _local8:String;
var _local9:String;
var _local10:Object;
_local1 = this;
_local6 = "";
_local1.externalVariables = new Object();
_local2 = _local1.getMovieClipURL(_local1);
if (_local1.isSet(_local2)){
_local3 = _local2.split("?");
_local6 = (_local6 + ("&" + _local3[1]));
};
if (_local1.isSet(_local1, "parent")){
_local2 = _local1.getMovieClipURL(_local1.parent);
if (_local1.isSet(_local2)){
_local3 = _local2.split("?");
_local6 = (_local6 + ("&" + _local3[1]));
};
} else {
if (_local1.isSet(_local1, "_parent")){
_local2 = _local1.getMovieClipURL(_local1._parent);
if (_local1.isSet(_local2)){
_local3 = _local2.split("?");
_local6 = (_local6 + ("&" + _local3[1]));
};
};
};
if (_local1.isSet(_local1.movie)){
_local2 = _local1.getMovieClipURL(_local1.movie);
if (_local1.isSet(_local2)){
_local3 = _local2.split("?");
_local6 = (_local6 + ("&" + _local3[1]));
};
};
if (_local1.isSet(_local6)){
_local3 = _local6.split("&");
_local4 = 0;
while (_local4 < _local3.length) {
_local5 = _local3[_local4].split("=");
_local8 = _local5[0];
if ((((_local8.substr(0, 2) == "s_")) || ((_local8.substr(0, 2) == "s.")))){
_local8 = _local8.substr(2);
_local9 = unescape(_local5[1]);
_local1.externalVariables[_local8] = _local9;
};
_local4++;
};
};
if (_local1.isSet(_local1.movie)){
_local7 = _local1.movie;
if (_local1.flashASVersion >= 3){
if (((_local1.isSet(_local1.movie, "loaderInfo")) && (_local1.isSet(_local1.movie.loaderInfo, "parameters")))){
_local7 = _local1.movie.loaderInfo.parameters;
};
};
for (_local8 in _local7) {
if ((((((_local8.substr(0, 2) == "s_")) || ((_local8.substr(0, 2) == "s.")))) && ((((typeof(_local7[_local8]) == "string")) || ((typeof(_local7[_local8]) == "boolean")))))){
_local9 = _local7[_local8];
_local8 = _local8.substr(2);
_local1.externalVariables[_local8] = _local9;
};
};
};
if (_local1.isSet(_local1.useExternalVariables)){
_local1.variableOverridesApply(_local1.externalVariables);
};
}
private function flushRequestList(){
var _local1:Object;
var _local2:String;
var _local3:Array;
var _local4:Number;
_local1 = this;
while (_local1.requestNum < _local1.requestList.length) {
if (_local1.isSet(_local1.debugTracking)){
_local2 = ("ActionSource Debug: " + _local1.requestList[_local1.requestNum]);
_local3 = _local1.requestList[_local1.requestNum].split("&");
_local4 = 0;
while (_local4 < _local3.length) {
_local2 = (_local2 + ("\n\t" + unescape(_local3[_local4])));
_local4++;
};
_local1.logDebug(_local2);
};
_local1.requestURL(_local1.requestList[_local1.requestNum]);
_local1.lastRequest = _local1.requestList[_local1.requestNum];
_local1.requestNum++;
};
}
private function bufferRequest(_arg1:String, _arg2:String, _arg3:String){
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:Number;
var _local8:Number;
_local4 = this;
_local5 = _local4.getBufferedRequests();
if (_local4.isSet(_local5)){
if (!_local4.isSet(_local5.data)){
_local5.data = new Object();
};
if (!_local4.isSet(_local5.data.list)){
_local5.data.list = new Array();
};
_local8 = -1;
_local7 = 0;
while (_local7 < _local5.data.list.length) {
if (_local5.data.list[_local7].id == _arg2){
_local5.data.list[_local7].request = _arg3;
_arg3 = "";
} else {
if (!_local4.isSet(_local5.data.list[_local7].id)){
_local8 = _local7;
};
};
_local7++;
};
if (_local4.isSet(_arg3)){
_local6 = new Object();
_local6.account = _arg1;
_local6.id = _arg2;
_local6.request = _arg3;
if (_local8 >= 0){
_local5.data.list[_local8] = _local6;
} else {
_local5.data.list.push(_local6);
};
};
_local5.flush();
};
}
private function variableOverridesBuild(_arg1:Object, _arg2:Boolean){
var _local3:Object;
var _local4:Number;
var _local5:String;
_local3 = this;
_local4 = 0;
while (_local4 < _local3.accountVarList.length) {
_local5 = _local3.accountVarList[_local4];
if (!_local3.isSet(_arg1[_local5])){
_arg1[_local5] = _local3[_local5];
if (((!(_arg2)) && (!(_local3.isSet(_arg1[_local5]))))){
_arg1[("!" + _local5)] = 1;
};
};
_local4++;
};
_local4 = 0;
while (_local4 < _local3.accountConfigList.length) {
_local5 = _local3.accountConfigList[_local4];
if (!_local3.isSet(_arg1[_local5])){
_arg1[_local5] = _local3[_local5];
if (((!(_arg2)) && (!(_local3.isSet(_arg1[_local5]))))){
_arg1[("!" + _local5)] = 1;
};
};
_local4++;
};
}
public function set useExternalVariables(_arg1:Boolean){
this._useExternalVariables = _arg1;
if (this.isSet(this._useExternalVariables)){
this.updateExternalVariables();
};
}
private function requestURL(_arg1){
var _local2:URLRequest;
_local2 = new URLRequest(_arg1);
sendToURL(_local2);
}
public function setupInterval(_arg1:Object, _arg2:String, _arg3:Number, _arg4){
if (_arg4 != null){
return (setInterval(_arg1[_arg2], _arg3, _arg4));
};
return (setInterval(_arg1[_arg2], _arg3));
}
private function _trackLink(_arg1, _arg2:String, _arg3:String, _arg4:Object){
var _local5:Object;
var _local6:String;
_local5 = this;
if (((_local5.isSet(_arg1)) && ((typeof(_arg1) == "string")))){
_local6 = _arg1;
_arg1 = new Object();
_arg1.url = _local6;
};
_local5.linkObject = _arg1;
_local5.linkType = _arg2;
_local5.linkName = _arg3;
_local5.track(_arg4);
}
public function set movie(_arg1:Object){
var _local2:Object;
var _local3:String;
_local2 = this;
_local2._movie = _arg1;
if (!_local2.flashLivePreview){
_local3 = _local2.getMovieURL();
_local2.ssl = (_local3.toLowerCase().substr(0, 6) == "https:");
if (_local2.isSet(_local2._movie)){
if (_local2.flashASVersion < 3){
_local2._movie.s_s = this;
};
_local2.updateExternalVariables();
_local2.modulesUpdate();
};
};
}
private function queryStringLinkTracking():String{
var _local1:Object;
var _local2:String;
var _local3:String;
var _local4:String;
var _local5:Number;
var _local6:Number;
var _local7:String;
var _local8:String;
var _local9:Number;
_local1 = this;
_local2 = _local1.linkType;
_local3 = _local1.linkURL;
_local4 = _local1.linkName;
_local8 = "";
if (((!(_local1.isSet(_local3))) && (_local1.isSet(_local1.linkObject)))){
if (_local1.isSet(_local1.linkObject, "url")){
_local3 = _local1.linkObject.url;
} else {
if (_local1.isSet(_local1.linkObject, "URL")){
_local3 = _local1.linkObject.URL;
} else {
if (_local1.isSet(_local1.linkObject, "href")){
_local3 = _local1.linkObject.href;
} else {
if (_local1.isSet(_local1.linkObject, "HREF")){
_local3 = _local1.linkObject.HREF;
} else {
if (_local1.isSet(_local1.linkObject, "htmlText")){
_local5 = _local1.linkObject.htmlText.toLowerCase().indexOf("href=");
if (_local5 >= 0){
_local5 = (_local5 + 5);
_local7 = _local1.linkObject.htmlText.substr(_local5, 1);
if ((((_local7 == "\"")) || ((_local7 == "'")))){
_local5++;
_local6 = _local1.linkObject.htmlText.toLowerCase().indexOf(_local7, _local5);
if (_local6 >= 0){
--_local6;
if (_local6 > _local5){
_local3 = _local1.linkObject.htmlText.substr(_local5, ((_local6 - _local5) + 1));
};
};
};
};
};
};
};
};
};
};
if (((_local1.isSet(_local2)) && (((_local1.isSet(_local3)) || (_local1.isSet(_local4)))))){
_local2 = _local2.toLowerCase();
if (((!((_local2 == "d"))) && (!((_local2 == "e"))))){
_local2 = "o";
};
if (((_local1.isSet(_local3)) && (!(_local1.isSet(_local1.linkLeaveQueryString))))){
_local9 = _local3.indexOf("?");
if (_local9 >= 0){
_local3 = _local3.substr(0, _local9);
};
};
_local8 = (_local8 + ("&pe=lnk_" + escape(_local2)));
_local8 = (_local8 + (_local1.isSet(_local3)) ? ("&pev1=" + escape(_local3)) : "");
_local8 = (_local8 + (_local1.isSet(_local4)) ? ("&pev2=" + escape(_local4)) : "");
};
return (_local8);
}
private function _track(_arg1:Object, _arg2:String){
var _local3:Object;
var _local4:Boolean;
var _local5:Object;
var _local6:Date;
var _local7:Number;
var _local8:String;
var _local9:String;
var _local10:String;
var _local11:Number;
var _local12:String;
_local3 = this;
_local6 = new Date();
_local7 = Math.floor((Math.random() * 10000000000000));
_local8 = (("s" + (Math.floor((_local6.getTime() / 10800000)) % 10)) + _local7);
_local9 = ((((((((((((((("" + _local6.getDate()) + "/") + _local6.getMonth()) + "/") + _local6.getFullYear()) + " ") + _local6.getHours()) + ":") + _local6.getMinutes()) + ":") + _local6.getSeconds()) + " ") + _local6.getDay()) + " ") + _local6.getTimezoneOffset());
_local10 = ("t=" + escape(_local9));
if (_local3.isSet(_local3.flashLivePreview)){
return;
};
if (_local3.isSet(_local3.otherVariables)){
_local11 = 0;
while (_local11 < _local3.accountVarList.length) {
_local12 = _local3.accountVarList[_local11];
if (_local3.isSet(_local3.otherVariables[_local12])){
_local3[_local12] = _local3.otherVariables[_local12];
};
_local11++;
};
_local11 = 0;
while (_local11 < _local3.accountConfigList.length) {
_local12 = _local3.accountConfigList[_local11];
if (_local3.isSet(_local3.otherVariables[_local12])){
_local3[_local12] = _local3.otherVariables[_local12];
};
_local11++;
};
};
_local4 = _local3.bufferTrack(_arg1, _arg2);
if (!_local4){
if (_local3.isSet(_arg1)){
_local5 = new Object();
_local3.variableOverridesBuild(_local5, false);
_local3.variableOverridesApply(_arg1);
};
if (((_local3.isSet(_local3.usePlugins)) && (_local3.isSet(_local3.doPlugins)))){
_local3.doPlugins(_local3);
};
if (_local3.isSet(_local3.account)){
if (!_local3.isSet(_local3.pageURL)){
_local3.pageURL = _local3.getMovieURL();
};
if (((!(_local3.isSet(_local3.referrer))) && (!(_local3.isSet(_local3._1_referrer))))){
_local3.referrer = _local3.getMovieReferrer();
_local3._1_referrer = 1;
};
_local10 = (_local10 + _local3.queryStringAccountVariables());
_local10 = (_local10 + _local3.queryStringLinkTracking());
_local10 = (_local10 + _local3.queryStringClickMap());
_local10 = (_local10 + _local3.queryStringTechnology());
_local3.makeRequest(_local8, _local10, "", _arg2);
};
if (_local3.isSet(_arg1)){
_local3.variableOverridesApply(_local5);
};
};
_local3.referrer = undefined;
_local3.pe = undefined;
_local3.pev1 = undefined;
_local3.pev2 = undefined;
_local3.pev3 = undefined;
_local3.linkObject = undefined;
_local3.linkURL = undefined;
_local3.linkName = undefined;
_local3.linkType = undefined;
_local3.objectID = undefined;
if (((!(_local4)) && (_local3.isSet(_local3.account)))){
if (((!(_local3.isSet(_arg2))) && (!(_local3.isSet(_local3.trackCalled))))){
_local3.trackCalled = true;
_local3.flushBufferedRequests();
};
};
}
public function get trackOnLoad():Boolean{
return (this._trackOnLoad);
}
private function callJavaScript(_arg1:String){
var s:Object;
var e:Object;
var script = _arg1;
s = this;
try {
if (((((s.isSet(ExternalInterface)) && (s.isSet(ExternalInterface.available)))) && (s.isSet(ExternalInterface.call)))){
return (ExternalInterface.call(script));
};
} catch(e) {
};
return (null);
}
private function getSharedObject(_arg1:String){
var o:Object;
var encoding:Number;
var tryNum:Number;
var e:Object;
var key = _arg1;
o = null;
tryNum = 0;
while (((!(this.isSet(o))) && ((tryNum < 2)))) {
try {
encoding = SharedObject.defaultObjectEncoding;
SharedObject.defaultObjectEncoding = ObjectEncoding.AMF0;
o = SharedObject.getLocal(key, "/");
SharedObject.defaultObjectEncoding = encoding;
o.objectEncoding = ObjectEncoding.AMF0;
} catch(e) {
};
tryNum = (tryNum + 1);
};
return (o);
}
private function getVersion():String{
return (Capabilities.version);
}
private function makeRequest(_arg1:String, _arg2:String, _arg3:String, _arg4:String){
var _local5:Object;
var _local6:*;
var _local7:String;
var _local8:String;
var _local9:String;
var _local10:String;
var _local11:String;
var _local12:Number;
_local5 = this;
_local6 = _local5.getMovieURL();
_local7 = _local5.trackingServer;
_local8 = _local5.trackingServerBase;
_local9 = _local5.dc;
_local10 = "sc.";
if (!_local5.isSet(_arg3)){
if (_local5.isSet(_local7)){
if (((_local5.isSet(_local5.trackingServerSecure)) && (_local5.isSet(_local5.ssl)))){
_local7 = _local5.trackingServerSecure;
};
} else {
_local11 = _local5.visitorNamespace;
if (!_local5.isSet(_local11)){
_local11 = _local5.account;
_local12 = _local11.indexOf(",");
if (_local12 >= 0){
_local11 = _local11.substr(0, _local12);
};
_local11 = _local11.split("_").join("-");
};
if (!_local5.isSet(_local8)){
_local8 = "2o7.net";
};
if (_local5.isSet(_local9)){
_local9 = _local9.toLowerCase();
} else {
_local9 = "d1";
};
if (_local8 == "2o7.net"){
if (_local9 == "d1"){
_local9 = "112";
} else {
if (_local9 == "d2"){
_local9 = "122";
};
};
_local10 = "";
};
_local7 = (((((_local11 + ".") + _local9) + ".") + _local10) + _local8);
};
if (_local5.isSet(_local5.ssl)){
_arg3 = "https://";
} else {
_arg3 = "http://";
};
_arg3 = (_arg3 + (((((((((((((_local7 + "/b/ss/") + _local5.account) + "/") + (_local5.mobile) ? "5.0" : "0") + "/") + _local5.version) + "-AS") + _local5.flashASVersion) + "/") + _arg1) + "?AQB=1&ndh=1&") + _arg2) + "&AQE=1"));
if (_local5.isSet(_arg4)){
_local5.bufferRequest(_local5.account, _arg4, _arg3);
return;
};
};
if (((_local5.isSet(_local5.ssl)) && ((_arg3.toLowerCase().substr(0, 5) == "http:")))){
_arg3 = ("https:" + _arg3.substr(5));
};
if (((((((_local5.isSet(_local5.trackLocal)) || ((_local5.flashVersion < 8)))) || (!(_local5.isSet(_local6))))) || ((_local6.toLowerCase().substr(0, 4) == "http")))){
_local5.requestList.push(_arg3);
if (((!(_local5.isSet(_local5.delayTracking))) || (((_local5.isSet(_local5.delayTrackingStage)) && ((_local5.delayTrackingStage == 2)))))){
_local5.flushRequestList();
} else {
if (((_local5.isSet(_local5.delayTracking)) && (!(_local5.isSet(_local5.delayTrackingStage))))){
_local5.delayTrackingStage = 1;
_local5.delayTrackingInterval = _local5.setupInterval(_local5, "delayTrackingDone", _local5.delayTracking, null);
};
};
};
}
public function replace(_arg1:String, _arg2:String, _arg3:String):String{
if (this.isSet(_arg1)){
if (_arg1.indexOf(_arg2) >= 0){
return (_arg1.split(_arg2).join(_arg3));
};
};
return (_arg1);
}
public function get configURL():String{
return (this._configURL);
}
private function queryStringClickMap():String{
var _local1:Object;
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:String;
var _local6:Number;
var _local7:String;
_local1 = this;
_local2 = "";
_local3 = _local1.pageName;
_local4 = 1;
_local5 = _local1.objectID;
_local6 = 1;
_local7 = "FLASH";
if (((((!(_local1.isSet(_local5))) && (_local1.isSet(_local1.linkObject)))) && (((_local1.isSet(_local1.linkObject, "name")) || (_local1.isSet(_local1.linkObject, "_name")))))){
_local5 = _local1.ClickMap.getObjectID(_local1.linkObject);
};
if (!_local1.isSet(_local3)){
_local3 = _local1.pageURL;
_local4 = 0;
};
if (((((((_local1.isSet(_local1.trackClickMap)) && (_local1.isSet(_local3)))) && (_local1.isSet(_local5)))) && (_local1.isSet(_local7)))){
_local2 = (_local2 + ("&pid=" + escape(_local3)));
_local2 = (_local2 + (_local1.isSet(_local4)) ? ("&pidt=" + escape(("" + _local4))) : "");
_local2 = (_local2 + ("&oid=" + escape(_local5.substr(0, 100))));
_local2 = (_local2 + (_local1.isSet(_local6)) ? ("&oidt=" + escape(("" + _local6))) : "");
_local2 = (_local2 + ("&ot=" + escape(_local7)));
};
return (_local2);
}
private function bufferTrackCheck(){
var _local1:Object;
var _local2:Number;
var _local3:Object;
_local1 = this;
if (((((((!(_local1.isSet(_local1.bufferTrackQueue))) || ((_local1.bufferTrackQueue.length <= 0)))) || (!(_local1.isSet(_local1.configXML))))) || (_local1.isSet(_local1.configXML.loaded)))){
clearInterval(_local1.bufferTrackInterval);
_local1.bufferTrackInterval = 0;
if (_local1.isSet(_local1.bufferTrackQueue)){
_local2 = 0;
while (_local2 < _local1.bufferTrackQueue.length) {
_local3 = _local1.bufferTrackQueue[_local2];
if (_local1.isSet(_local3)){
_local1.variableOverridesApply(_local3.setVariables);
_local1.track(_local3.variableOverrides, _local3.bufferedRequestID);
};
_local2++;
};
};
_local1.bufferTrackQueue = undefined;
};
}
private function queryStringTechnology():String{
var _local1:Object;
var _local2:String;
var _local3:Object;
_local1 = this;
_local2 = "";
_local3 = Capabilities;
if (((((_local1.isSet(_local3)) && (_local1.isSet(_local3.screenResolutionX)))) && (_local1.isSet(_local3.screenResolutionY)))){
_local2 = (_local2 + ((("&s=" + _local3.screenResolutionX) + "x") + _local3.screenResolutionY));
};
return (_local2);
}
public function isSet(_arg1, _arg2:String=null):Boolean{
var e:Object;
var val = _arg1;
var mbr = _arg2;
try {
if (mbr != null){
val = val[mbr];
};
return (((((((((((!((val == null))) && (!((val == undefined))))) && (!((("" + val) == "NaN"))))) && (!((val == false))))) && (!((val == ""))))) && (!((val == 0)))));
} catch(e) {
};
return (false);
}
public function flushBufferedRequests(){
var _local1:*;
_local1 = this;
if (_local1.isSet(_local1.account)){
_local1._flushBufferedRequests(_local1.account);
};
}
public function setInterface(_arg1:Object){
var s:Object;
var subInter:Object;
var interReady:Function;
var inter = _arg1;
s = this;
if (s.isSet(inter)){
if (s.isSet(inter, "root")){
s.movie = inter.root;
} else {
if (s.isSet(inter, "_root")){
s.movie = inter._root;
} else {
if (((s.isSet(inter, "getModule")) && (s.isSet(inter, "addEventListener")))){
subInter = inter.getModule("experience");
if (((s.isSet(subInter)) && (s.isSet(subInter, "getStage")))){
inter = subInter.getStage();
if (s.isSet(inter)){
s.movie = inter;
};
} else {
interReady = function (_arg1:Object){
s.setInterface(inter);
};
inter.addEventListener("complete", subInter);
};
} else {
s.movie = inter;
};
};
};
};
}
private function bufferTrack(_arg1:Object, _arg2:String){
var _local3:Object;
var _local4:Object;
var _local5:Object;
_local3 = this;
if (((_local3.isSet(_local3.configXML)) && (!(_local3.isSet(_local3.configXML.loaded))))){
if (!_local3.isSet(_local3.bufferTrackQueue)){
_local3.bufferTrackQueue = new Array();
};
_local5 = new Object();
_local5.setVariables = new Object();
_local3.variableOverridesBuild(_local5.setVariables, true);
if (_local3.isSet(_arg1)){
_local5.variableOverrides = new Object();
for (_local4 in _arg1) {
_local5.variableOverrides[_local4] = _arg1[_local4];
};
};
_local5.bufferedRequestID = _arg2;
_local3.bufferTrackQueue.push(_local5);
if (!_local3.isSet(_local3.bufferTrackInterval)){
_local3.bufferTrackInterval = _local3.setupInterval(_local3, "bufferTrackCheck", 100, null);
};
return (true);
};
return (false);
}
private function queryStringAccountVariables():String{
var _local1:Object;
var _local2:String;
var _local3:Number;
var _local4:Number;
var _local5:String;
var _local6:String;
var _local7:*;
var _local8:String;
var _local9:String;
var _local10:*;
var _local11:*;
var _local12:*;
_local1 = this;
_local2 = "";
_local10 = "";
_local11 = "";
_local12 = "";
if (((_local1.isSet(_local1.pe)) || (_local1.isSet(_local1.linkType)))){
_local10 = _local1.linkTrackVars;
_local11 = _local1.linkTrackEvents;
if (_local1.isSet(_local1.pe)){
_local12 = (_local1.pe.substr(0, 1).toUpperCase() + _local1.pe.substr(1));
if (_local1.isSet(_local1[_local12])){
_local10 = _local1[_local12].trackVars;
_local11 = _local1[_local12].trackEvents;
};
};
};
if (_local1.isSet(_local10)){
_local10 = (((("," + _local10) + ",") + _local1.requiredVarList.join(",")) + ",");
};
if (_local1.isSet(_local11)){
_local11 = (("," + _local11) + ",");
};
_local3 = 0;
while (_local3 < _local1.accountVarList.length) {
_local5 = _local1.accountVarList[_local3];
_local6 = _local1[_local5];
_local8 = _local5.substr(0, 4);
_local9 = _local5.substr(4);
if (((_local1.isSet(_local6)) && (((!(_local1.isSet(_local10))) || ((_local10.indexOf((("," + _local5) + ",")) >= 0)))))){
switch (_local5){
case "dynamicVariablePrefix":
_local5 = "D";
break;
case "visitorID":
_local5 = "vid";
break;
case "pageURL":
_local5 = "g";
break;
case "referrer":
_local5 = "r";
break;
case "vmk":
case "visitorMigrationKey":
_local5 = "vmt";
break;
case "visitorMigrationServer":
_local5 = "vmf";
if (((_local1.isSet(_local1.ssl)) && (_local1.isSet(_local1.visitorMigrationServerSecure)))){
_local6 = "";
};
break;
case "visitorMigrationServerSecure":
_local5 = "vmf";
if (((!(_local1.isSet(_local1.ssl))) && (_local1.isSet(_local1.visitorMigrationServer)))){
_local6 = "";
};
break;
case "charSet":
_local5 = "ce";
break;
case "visitorNamespace":
_local5 = "ns";
break;
case "cookieDomainPeriods":
_local5 = "cdp";
break;
case "cookieLifetime":
_local5 = "cl";
break;
case "currencyCode":
_local5 = "cc";
break;
case "channel":
_local5 = "ch";
break;
case "transactionID":
_local5 = "xact";
break;
case "campaign":
_local5 = "v0";
break;
case "events":
if (_local1.isSet(_local11)){
_local7 = _local6.split(",");
_local6 = "";
_local4 = 0;
while (_local4 < _local7.length) {
if (_local11.indexOf((("," + _local7[_local4]) + ",")) >= 0){
_local6 = (_local6 + ((_local1.isSet(_local6)) ? "," : "" + _local7[_local4]));
};
_local4++;
};
};
break;
default:
if (_local1.isNumber(_local9)){
if (_local8 == "prop"){
_local5 = ("c" + _local9);
} else {
if (_local8 == "eVar"){
_local5 = ("v" + _local9);
} else {
if (_local8 == "list"){
_local5 = ("l" + _local9);
} else {
if (_local8 == "hier"){
_local5 = ("h" + _local9);
_local6 = _local6.substr(0, 0xFF);
};
};
};
};
};
break;
};
if (_local1.isSet(_local6)){
_local2 = (_local2 + ((("&" + escape(_local5)) + "=") + ((_local5.substr(0, 3))!="pev") ? escape(_local6) : _local6));
};
};
_local3++;
};
return (_local2);
}
public function isNumber(_arg1):Boolean{
return (!(isNaN(parseInt(_arg1))));
}
private function doTrackOnLoad(){
var _local1:Object;
_local1 = this;
if (((!(_local1.isSet(_local1.account))) || (!(_local1.isSet(_local1.movie))))){
return;
};
clearInterval(_local1.trackOnLoadInterval);
if (((_local1._trackOnLoad) && (!(_local1.onLoadTracked)))){
_local1.onLoadTracked = true;
_local1.track();
};
}
public function flushBufferedRequest(_arg1:String, _arg2:String){
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Number;
var _local7:String;
_local3 = this;
_local4 = _local3.getBufferedRequests();
if (((((_local3.isSet(_local4)) && (_local3.isSet(_local4.data)))) && (_local3.isSet(_local4.data.list)))){
_local6 = 0;
while (_local6 < _local4.data.list.length) {
_local5 = _local4.data.list[_local6];
if ((((_local5.account == _arg1)) && ((_local5.id == _arg2)))){
_local7 = _local4.data.list[_local6].request;
_local4.data.list[_local6].account = "";
_local4.data.list[_local6].id = "";
_local4.data.list[_local6].request = "";
_local4.flush();
_local3.makeRequest("", "", _local7, "");
};
_local6++;
};
};
}
public function set trackOnLoad(_arg1:Boolean){
this._trackOnLoad = _arg1;
if (this._trackOnLoad){
this.trackOnLoadInterval = this.setupInterval(this, "doTrackOnLoad", 100, null);
};
}
public function variableOverridesApply(_arg1:Object){
var _local2:Object;
var _local3:Number;
var _local4:String;
var _local5:Array;
_local2 = this;
_local3 = 0;
while (_local3 < _local2.accountVarList.length) {
_local4 = _local2.accountVarList[_local3];
if (((_local2.isSet(_arg1[_local4])) || (_local2.isSet(_arg1[("!" + _local4)])))){
_local2[_local4] = _arg1[_local4];
};
_local3++;
};
_local3 = 0;
while (_local3 < _local2.accountConfigList.length) {
_local4 = _local2.accountConfigList[_local3];
if (((_local2.isSet(_arg1[_local4])) || (_local2.isSet(_arg1[("!" + _local4)])))){
if ((((((((((((((_local4 == "trackDownloadLinks")) || ((_local4 == "trackExternalLinks")))) || ((_local4 == "trackClickMap")))) || ((_local4 == "linkLeaveQueryString")))) || ((_local4 == "autoTrack")))) || ((_local4 == "trackLocal")))) || ((_local4 == "debugTracking")))){
if (typeof(_arg1[_local4]) == "string"){
if (_arg1[_local4].toLowerCase() == "true"){
_arg1[_local4] = true;
} else {
_arg1[_local4] = false;
};
} else {
_arg1[_local4] = _local2.isSet(_arg1[_local4]);
};
} else {
if (_local4 == "delayTracking"){
if (typeof(_arg1[_local4]) == "string"){
_arg1[_local4] = parseInt(_arg1[_local4]);
} else {
if (typeof(_arg1[_local4]) != "number"){
_arg1[_local4] = 0;
};
};
};
};
_local2[_local4] = _arg1[_local4];
};
_local3++;
};
for (_local4 in _arg1) {
if (_local4.indexOf(".") >= 0){
_local5 = _local4.split(".");
if (_local5.length == 2){
if (((!(_local2.isSet(_arg1[_local5[0]]))) || (!((typeof(_arg1[_local5[0]]) == "object"))))){
_arg1[_local5[0]] = new Object();
};
_arg1[_local4][_local5[1]] = _arg1[_local4];
_local4 = _local5[0];
} else {
_local4 = "";
};
};
};
for (_local4 in _arg1) {
if (typeof(_arg1[_local4]) == "object"){
if (_local4 == "config"){
_local2.variableOverridesApply(_arg1[_local4]);
} else {
if ((((((((_local4.substr(0, 1) == _local4.substr(0, 1).toUpperCase())) && (_local2.isSet(_local2[_local4])))) && ("boolean"))) && (_local2.isSet(_local2[_local4].variableOverridesApply)))){
_local2[_local4].variableOverridesApply(_arg1[_local4]);
};
};
};
};
}
public function get useExternalVariables():Boolean{
return (this._useExternalVariables);
}
public function set moduleMediaVariables(_arg1:Object){
this._moduleMediaVariables = _arg1;
this.modulesUpdate();
}
private function setVariableCallHandler(){
var _local1:Object;
var _local2:Object;
var _local3:String;
var _local4:String;
var _local5:Array;
var _local6:Number;
var _local7:Array;
var _local8:Object;
var _local9:Number;
_local1 = this;
for (_local3 in _local1) {
if (_local3.substr(0, 5) == "_svc_"){
_local5 = _local3.split("_");
if (((_local1.isSet(_local5)) && ((_local5.length >= 4)))){
if ((((_local5[3] == "dot")) && ((_local5.length > 4)))){
_local5[2] = (_local5[2] + ("_dot_" + _local5[4]));
_local6 = 5;
while (_local6 < _local5.length) {
_local5[(_local6 - 2)] = _local5[_local6];
_local6++;
};
};
_local8 = null;
if (_local1.isSet(_local7)){
_local9 = 0;
while (_local9 < _local7.length) {
if (_local7[_local9].methodName == _local5[2]){
_local8 = _local7[_local9];
};
_local9++;
};
};
if (!_local1.isSet(_local8)){
_local7 = new Array();
_local8 = new Object();
_local8.methodName = _local5[2];
_local7[0] = _local8;
};
if (_local5[3] == "call"){
if (_local1.isSet(_local1[_local3])){
_local8.call = true;
};
_local1[_local3] = null;
} else {
if ((((((_local5[3] == "param")) && ((_local5.length > 4)))) && (_local1.isSet(_local5[4])))){
if (!_local1.isSet(_local8.paramList)){
_local8.paramList = new Array();
};
_local8.paramList[_local5[4]] = _local1[_local3];
};
};
};
};
};
if (((_local1.isSet(_local7)) && ((_local7.length > 0)))){
_local9 = 0;
while (_local9 < _local7.length) {
_local8 = _local7[_local9];
if (((_local1.isSet(_local8.methodName)) && (_local1.isSet(_local8.call)))){
_local5 = _local8.methodName.split("_dot_");
if (_local5.length > 1){
_local2 = _local1[_local5[0]];
_local4 = _local5[1];
} else {
_local2 = _local1;
_local4 = _local8.methodName;
};
if (_local1.isSet(_local2[_local4])){
if (((_local1.isSet(_local8.paramList)) && ((_local8.paramList.length > 0)))){
if (_local8.paramList.length == 1){
_local1[("_svc_result_" + _local8.methodName)] = _local2[_local4](_local8.paramList[0]);
} else {
if (_local8.paramList.length == 2){
_local1[("_svc_result_" + _local8.methodName)] = _local2[_local4](_local8.paramList[0], _local8.paramList[1]);
} else {
if (_local8.paramList.length == 3){
_local1[("_svc_result_" + _local8.methodName)] = _local2[_local4](_local8.paramList[0], _local8.paramList[1], _local8.paramList[2]);
};
};
};
} else {
_local1[(("_svc_" + _local8.methodName) + "_result")] = _local2[_local4]();
};
};
};
_local9++;
};
};
}
private function getMovieClipURL(_arg1:Object):String{
var _local2:Object;
_local2 = this;
if (_local2.isSet(_arg1)){
if ((((((_local2.flashASVersion > 2)) && (_local2.isSet(_arg1, "loaderInfo")))) && (_local2.isSet(_arg1.loaderInfo, "loaderURL")))){
return (_arg1.loaderInfo.loaderURL);
};
if (_local2.isSet(_arg1, "_url")){
return (_arg1._url);
};
};
return ("");
}
public function get movie():Object{
return (this._movie);
}
private function getBufferedRequests(){
var s:Object;
var bufferedRequests:Object;
s = this;
if (!s.isSet(s.disableBufferedRequests)){
bufferedRequests = s.getSharedObject("s_br");
};
if (!s.isSet(bufferedRequests)){
bufferedRequests = s.bufferedRequests;
if (!s.isSet(bufferedRequests)){
s.bufferedRequests = new Object();
s.bufferedRequests.flush = function (){
};
bufferedRequests = s.bufferedRequests;
};
};
return (bufferedRequests);
}
private function modulesInit(){
var _local1:Object;
_local1 = this;
_local1.ClickMap = new ActionSource_Module_ClickMap(_local1);
_local1.Media = new ActionSource_Module_Media(_local1);
_local1.modulesUpdate();
}
private function modulesUpdate(){
var _local1:Object;
var _local2:String;
_local1 = this;
if (_local1.isSet(_local1.Media)){
if (_local1.isSet(_local1._moduleMediaVariables)){
for (_local2 in _local1._moduleMediaVariables) {
if (_local1.isSet(_local1._moduleMediaVariables[_local2])){
if ((((_local2 == "trackWhilePlaying")) || ((_local2 == "autoTrack")))){
if (("" + _local1._moduleMediaVariables[_local2]).toLowerCase() == "true"){
_local1._moduleMediaVariables[_local2] = true;
} else {
_local1._moduleMediaVariables[_local2] = false;
};
};
_local1.Media[_local2] = _local1._moduleMediaVariables[_local2];
};
};
};
_local1.Media.autoTrack = _local1.Media.autoTrack;
};
}
public function track(_arg1:Object=null, _arg2:String=""){
this._track(_arg1, _arg2);
}
public function logDebug(_arg1:String){
trace(_arg1);
this.callJavaScript((("function s_logDebug(){var e;try{console.log(\"" + this.replace(this.replace(_arg1, "\n", "\\n"), "\"", "\\\"")) + "\");}catch(e){}}"));
}
private function initPre(){
this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}
public function get moduleMediaVariables():Object{
return (this._moduleMediaVariables);
}
public function getMovieURL():String{
var _local1:Object;
var _local2:String;
_local1 = this;
_local2 = _local1.callJavaScript("function s_ActionSource_wl(){return window.location.href;}");
if (_local1.isSet(_local2)){
return (_local2);
};
if (_local1.isSet(_local1.movie)){
return (_local1.getMovieClipURL(_local1.movie));
};
return ("");
}
public function set configURL(_arg1:String){
var _local2:Object;
_local2 = this;
if (_arg1 != _local2._configURL){
_local2._configURL = _arg1;
if (_local2.isSet(_local2._configURL)){
if (!_local2.isSet(_local2.configXML)){
_local2.configXML = new ActionSource_XML(_local2);
_local2.configXML.onDataReady = "variableOverridesApply";
};
_local2.configXML.url = _local2._configURL;
};
};
}
private function onAddedToStage(_arg1:Event){
if ((((parent == null)) || (!((getQualifiedClassName(parent) == "fl.livepreview::LivePreviewParent"))))){
this.visible = false;
this.movie = root;
} else {
this.flashLivePreview = true;
};
}
private function getMovieReferrer():String{
var _local1:Object;
_local1 = this;
return (_local1.callJavaScript((((((((((((((((((((((((("" + "function s_ActionSource_r(){") + "\tvar ") + "\t\tr = '',") + "\t\tw = window,") + "\t\te,") + "\t\tp,") + "\t\tl,") + "\t\te;") + "\tif ((w) && (w.document)) {") + "\t\tr = w.document.referrer;") + "\t\ttry {") + "\t\t\tp = w.parent;") + "\t\t\tl = w.location;") + "\t\t\twhile ((p) && (p.location) && (l) && (''+p.location != ''+l) && (w.location) && (''+p.location != ''+w.location) && (p.location.host == l.host)) {") + "\t\t\t\tw = p;") + "\t\t\t\tp = w.parent;") + "\t\t\t}") + "\t\t} catch (e) {}") + "\t\tif ((w) && (w.document)) {") + "\t\t\tr = w.document.referrer;") + "\t\t}") + "\t}") + "\treturn r;") + "}")));
}
private function initPost(){
}
public function trackLink(_arg1, _arg2:String, _arg3:String, _arg4:Object=null){
this._trackLink(_arg1, _arg2, _arg3, _arg4);
}
private function _flushBufferedRequests(_arg1:String){
var _local2:Object;
var _local3:Object;
var _local4:Object;
var _local5:Number;
_local2 = this;
_local3 = _local2.getBufferedRequests();
if (((((_local2.isSet(_local3)) && (_local2.isSet(_local3.data)))) && (_local2.isSet(_local3.data.list)))){
_local5 = 0;
while (_local5 < _local3.data.list.length) {
_local4 = _local3.data.list[_local5];
if (_local4.account == _arg1){
_local2.flushBufferedRequest(_arg1, _local4.id);
};
_local5++;
};
};
}
private function delayTrackingDone(){
var _local1:Object;
_local1 = this;
clearInterval(_local1.delayTrackingInterval);
_local1.delayTrackingStage = 2;
_local1.flushRequestList();
}
}
}//package com.omniture
Section 36
//ActionSource_Module_ClickMap (com.omniture.ActionSource_Module_ClickMap)
package com.omniture {
import flash.events.*;
import flash.display.*;
import flash.geom.*;
import flash.external.*;
public dynamic class ActionSource_Module_ClickMap {
private var s:Object;
private static var isExternalSet:Boolean = false;
public function ActionSource_Module_ClickMap(_arg1:Object){
var m:Object;
var e:Object;
var s = _arg1;
super();
m = this;
m.s = s;
m.s.addEventListener(Event.ADDED_TO_STAGE, m.onAddedToStage, false, 0, true);
if (((ExternalInterface.available) && (!(m.isExternalSet)))){
m.isExternalSet = true;
try {
ExternalInterface.addCallback("s_getDOMIndex", m.getDOMIndex);
ExternalInterface.addCallback("s_getTrackClickMap", m.getTrackClickMap);
ExternalInterface.addCallback("s_getAccount", m.getAccount);
ExternalInterface.addCallback("s_getPageName", m.getPageName);
ExternalInterface.addCallback("s_getPageURL", m.getPageURL);
ExternalInterface.addCallback("s_getMovieID", m.getMovieID);
ExternalInterface.addCallback("s_getVersion", m.getVersion);
ExternalInterface.addCallback("s_getCharSet", m.getCharSet);
ExternalInterface.addCallback("s_getSWFURL", m.getSWFURL);
} catch(e) {
};
};
}
public function getSWFURL(){
var _local1:Object;
_local1 = this;
if (_local1.s.isSet(s.movie)){
if (((_local1.s.isSet(_local1.s.movie.loaderInfo)) && (_local1.s.isSet(_local1.s.movie.loaderInfo.loaderURL)))){
return (_local1.s.movie.loaderInfo.loaderURL);
};
if (_local1.s.isSet(_local1.s.movie._url)){
return (_local1.s.movie._url);
};
};
return ("");
}
public function getVersion(){
var _local1:Object;
_local1 = this;
return (_local1.s.version);
}
private function parentLocalToGlobal(_arg1:DisplayObject, _arg2:Object){
var _local3:*;
_local3 = new Point(_arg2.x, _arg2.y);
_arg1.parent.localToGlobal(_local3);
_arg2.x = _local3.x;
_arg2.y = _local3.y;
}
private function getFullPath(_arg1:DisplayObject){
var _local2:String;
var _local3:String;
var _local4:Array;
_local4 = new Array();
do {
_local4.splice(0, 0, _arg1.name);
_arg1 = _arg1.parent;
} while (_arg1.parent != null);
_local2 = _local4.join(".");
_local3 = _local2.substr((_local2.length - 4), 4);
if ((((_local3 == ".frs")) || ((_local3 == ".fds")))){
_local2 = _local2.substr(0, (_local2.length - 4));
};
return (_local2);
}
public function getObjectID(_arg1:Object){
var _local2:Object;
var _local3:String;
var _local4:String;
_local2 = this;
_local3 = _local2.getMovieID();
_local4 = "";
_local4 = _local2.getFullPath(_arg1);
if (_local2.s.isSet(_local4)){
_local4 = (((_local2.s.isSet(_local3)) ? _local3 : "" + ":") + _local4);
};
return (_local4);
}
public function getMovieID(){
var _local1:Object;
var _local2:String;
var _local3:String;
var _local4:Number;
var _local5:Number;
_local1 = this;
_local2 = _local1.getSWFURL();
_local3 = s.movieID;
if (((!(_local1.s.isSet(_local3))) && (_local1.s.isSet(_local2)))){
_local4 = _local2.lastIndexOf("/");
_local5 = _local2.lastIndexOf(".");
if (_local4 >= 0){
_local4++;
} else {
_local4 = 0;
};
if (_local5 >= 0){
_local5 = (_local5 - _local4);
} else {
_local5 = _local2.length;
};
_local3 = _local2.substr(_local4, _local5);
};
if (!_local1.s.isSet(_local3)){
_local3 = "movieID undefined";
};
return (_local3);
}
public function getIndex(){
var _local1:Object;
var _local2:String;
_local1 = this;
if (_local1.s.isSet(_local1.s.movie)){
_local2 = (((_local1.s.movie.stage.stageWidth + ",") + _local1.s.movie.stage.stageHeight) + _local1.indexChildren(_local1.s.movie));
return (_local2);
};
return ("");
}
private function sendClickMapEvent(_arg1:Object){
var _local2:Object;
var _local3:String;
var _local4:String;
var _local5:String;
var _local6:Number;
_local2 = this;
_local3 = _local2.s.getMovieURL();
_local4 = _local2.getMovieID();
if (_local2.s.isSet(_local2.s.trackClickMap)){
_local2.s.objectID = _local2.getObjectID(_arg1);
};
if (_local2.s.autoTrack){
_local5 = _local3;
_local6 = _local5.indexOf("?");
if (_local6 >= 0){
_local5 = _local5.substr(0, _local6);
};
if (_local5.length > (100 - 23)){
_local5 = _local5.substr(-((100 - 23)));
};
_local2.s.trackLink(_local3, "o", ("ActionSource.AutoTrack:" + _local5));
};
}
private function nodeShift(_arg1:DisplayObject, _arg2:Number, _arg3:Number){
_arg1.x = _arg2;
_arg1.y = _arg3;
}
private function parentGetBounds(_arg1:DisplayObject){
var _local2:*;
var _local3:*;
_local2 = _arg1.parent.getBounds(_arg1.parent);
_local3 = new Object();
_local3.xMin = _local2.x;
_local3.yMin = _local2.y;
_local3.xMax = (_local2.x + _local2.width);
_local3.yMax = (_local2.y + _local2.height);
return (_local3);
}
private function onAddedToStage(_arg1:Event):void{
var _local2:Object;
_local2 = this;
_local2.s.root.addEventListener(MouseEvent.CLICK, _local2.onMouseClick, true, 0, true);
}
private function getDOMID(_arg1:Object){
var _local2:Object;
var _local3:Object;
_local2 = this;
if (_local2.s.isSet(_arg1)){
_local3 = _local2.getGeom(_arg1);
return (((((((((_local2.getFullPath(_arg1) + ",") + _local3.x) + ",") + _local3.y) + ",") + _local3.w) + ",") + _local3.h));
};
return ("");
}
private function onMouseClick(_arg1:MouseEvent):void{
var m:Object;
var e:Object;
var event = _arg1;
m = this;
try {
m.sendClickMapEvent(InteractiveObject(event.target));
} catch(e) {
};
}
public function getPageURL(){
var _local1:Object;
_local1 = this;
return (_local1.s.pageURL);
}
public function getDOMIndex(){
var _local1:Object;
_local1 = this;
return (_local1.getIndex());
}
public function getTrackClickMap(){
var _local1:Object;
_local1 = this;
return (_local1.s.trackClickMap.toString());
}
private function indexChildren(_arg1:DisplayObjectContainer):String{
var _local2:Object;
var _local3:String;
var _local4:Number;
var _local5:DisplayObject;
_local2 = this;
_local3 = new String();
_local4 = 0;
while (_local4 < _arg1.numChildren) {
_local5 = _arg1.getChildAt(_local4);
if (_local2.s.isSet(_local5)){
_local3 = (_local3 + ("|" + _local2.getDOMID(_local5)));
if ((_local5 is DisplayObjectContainer)){
_local3 = (_local3 + _local2.indexChildren(DisplayObjectContainer(_local5)));
};
};
_local4++;
};
return (_local3);
}
private function nodePos(_arg1:DisplayObject){
var _local2:*;
_local2 = new Object();
_local2.x = _arg1.x;
_local2.y = _arg1.y;
return (_local2);
}
public function getCharSet(){
var _local1:Object;
_local1 = this;
return (_local1.s.charSet);
}
public function getAccount(){
var _local1:Object;
_local1 = this;
return (_local1.s.account);
}
private function getGeom(_arg1:Object){
var _local2:Object;
var _local3:Object;
var _local4:Object;
var _local5:Object;
var _local6:Object;
var _local7:Object;
var _local8:Object;
var _local9:Object;
_local2 = this;
_local3 = new Object();
_local4 = null;
_local3.x = 0;
_local3.y = 0;
_local3.w = 0;
_local3.h = 0;
if (((_local2.s.isSet(_arg1)) && (((_local2.s.isSet(_arg1, "_parent")) || (_local2.s.isSet(_arg1, "parent")))))){
if (s.isSet(_arg1, "_parent")){
_local4 = _local2.getGeom(_arg1._parent);
} else {
if (s.isSet(_arg1, "parent")){
_local4 = _local2.getGeom(_arg1.parent);
};
};
if (((((((((((_local2.s.isSet(_arg1, "size")) && ((typeof(_arg1.size) == "function")))) && (_local2.s.isSet(_arg1, "__width")))) && (_local2.s.isSet(_arg1, "__height")))) && (!((_arg1.__width == _arg1._width))))) && (!((_arg1.__height == _arg1._height))))){
_arg1.size();
};
if (((_local2.s.isSet(_arg1, "width")) && (_local2.s.isSet(_arg1, "height")))){
_local3.x = _arg1.x;
_local3.y = _arg1.y;
_local2.parentLocalToGlobal(_arg1, _local3);
_local3.w = _arg1.width;
_local3.h = _arg1.height;
} else {
_local7 = _local2.parentGetBounds(_arg1);
_local5 = _local2.nodePos(_arg1);
_local6 = _local2.nodePos(_arg1);
_local2.nodeShift(_arg1, _local7.xMin, _local7.yMin);
_local8 = _local2.parentGetBounds(_arg1);
_local2.nodeShift(_arg1, _local7.xMax, _local7.yMax);
_local9 = _local2.parentGetBounds(_arg1);
_local2.nodeShift(_arg1, _local5.x, _local5.y);
_local5.x = (_local5.x + (_local8.xMin - _local7.xMin));
_local5.y = (_local5.y + (_local8.yMin - _local7.yMin));
_local6.x = (_local6.x + (_local9.xMax - _local7.xMax));
_local6.y = (_local6.y + (_local9.yMax - _local7.yMax));
_local2.parentLocalToGlobal(_arg1, _local5);
_local2.parentLocalToGlobal(_arg1, _local6);
_local3.x = _local5.x;
_local3.y = _local5.y;
_local3.w = (_local6.x - _local5.x);
_local3.h = (_local6.y - _local5.y);
};
if (((((_local2.s.isSet(_local4)) && (_local2.s.isSet(_local4.x)))) && (_local2.s.isSet(_local4.y)))){
_local3.x = (_local3.x + _local4.x);
_local3.y = (_local3.y + _local4.y);
};
_local3.x = Math.round(_local3.x);
_local3.y = Math.round(_local3.y);
_local3.w = Math.ceil(_local3.w);
_local3.h = Math.ceil(_local3.h);
};
return (_local3);
}
public function getPageName(){
var _local1:Object;
_local1 = this;
return (_local1.s.pageName);
}
}
}//package com.omniture
Section 37
//ActionSource_Module_Media (com.omniture.ActionSource_Module_Media)
package com.omniture {
import flash.utils.*;
public dynamic class ActionSource_Module_Media {
private var autoTrackDone:Boolean;// = false
public var playerName:String;
public var trackVars:String;
private var list:Object;
private var monitorList:Array;
public var trackWhilePlaying:Boolean;// = false
public var trackMilestones:String;// = ""
public var trackSeconds:Number;// = 0
private var autoTrackInterval:Number;
public var trackEvents:String;
private var _autoTrack:Boolean;// = false
private var s:Object;
public function ActionSource_Module_Media(_arg1:Object){
var _local2:Object;
trackWhilePlaying = false;
trackSeconds = 0;
trackMilestones = "";
_autoTrack = false;
autoTrackDone = false;
super();
_local2 = this;
_local2.s = _arg1;
_local2.monitorList = null;
}
public function listenerMedia_scrubbing(_arg1){
this.listenerMedia.scrubbing(_arg1);
}
public function stop(_arg1:String, _arg2:Number){
this.event(_arg1, 2, _arg2);
}
public function listenerBrightcove_seek(_arg1){
this.listenerBrightcove.seek(_arg1);
}
public function doAutoTrack(){
var _local1:Object;
_local1 = this;
if (((!(_local1.s.isSet(_local1.s.account))) || (!(_local1.s.isSet(_local1.s.movie))))){
return;
};
clearInterval(_local1.autoTrackInterval);
if (((_local1._autoTrack) && (!(_local1.autoTrackDone)))){
if (_local1.attach(_local1.s.movie)){
_local1.autoTrackDone = true;
} else {
_local1.autoTrackInterval = _local1.s.setupInterval(this, "doAutoTrack", 1000, null);
};
};
}
public function listenerMedia_click(_arg1){
this.listenerMedia.click(_arg1);
}
private function event(_arg1:String, _arg2:Number, _arg3:Number){
var _local4:Object;
var _local5:Object;
var _local6:Date;
var _local7:Number;
var _local8:Number;
var _local9:String;
var _local10:Array;
var _local11:Number;
var _local12:String;
var _local13:Boolean;
var _local14:String;
var _local15:String;
var _local16:String;
var _local17:String;
var _local18:String;
var _local19:Object;
_local4 = this;
_local6 = new Date();
_local7 = Math.floor((_local6.getTime() / 1000));
_local8 = _local4.trackSeconds;
_local9 = _local4.trackMilestones;
_local12 = "--**--";
_local13 = true;
_local14 = null;
_local15 = _local4.trackVars;
_local16 = _local4.trackEvents;
_local17 = "media";
_local19 = new Object();
_arg1 = _local4.cleanName(_arg1);
_local5 = (((((_local4.s.isSet(_arg1)) && (_local4.s.isSet(_local4.list)))) && (_local4.s.isSet(_local4.list[_arg1])))) ? _local4.list[_arg1] : null;
if (_local4.s.isSet(_local5)){
_local19.name = _arg1;
_local19.length = _local5.length;
_local19.playerName = _local5.playerName;
if (_local5.lastTrackOffset < 0){
_local19.event = "OPEN";
} else {
_local19.event = ((_arg2 == 1)) ? "PLAY" : ((_arg2 == 2)) ? "STOP" : ((_arg2 == 3)) ? "MONITOR" : "CLOSE";
};
_local19.openTime = new Date();
_local19.openTime.setTime((_local5.timestamp * 1000));
if ((((_arg2 > 2)) || (((!((_arg2 == _local5.lastEventType))) && (((!((_arg2 == 2))) || ((_local5.lastEventType == 1)))))))){
_local14 = ("Media." + _arg1);
_local18 = (((((("" + escape(_local5.name)) + _local12) + _local5.length) + _local12) + escape(_local5.playerName)) + _local12);
if (_local4.s.isSet(_arg2)){
if ((((_arg3 < 0)) && ((_local5.lastEventTimestamp > 0)))){
_arg3 = ((_local7 - _local5.lastEventTimestamp) + _local5.lastEventOffset);
_arg3 = ((_arg3 < _local5.length)) ? _arg3 : (_local5.length - 1);
};
_arg3 = Math.floor(_arg3);
if ((((_arg2 >= 2)) && ((_local5.lastEventOffset < _arg3)))){
_local5.timePlayed = (_local5.timePlayed + (_arg3 - _local5.lastEventOffset));
_local5.timePlayedSinseTrack = (_local5.timePlayedSinseTrack + (_arg3 - _local5.lastEventOffset));
};
if (_arg2 <= 2){
_local5.session = (_local5.session + (((_arg2 == 1)) ? "S" : "E" + _arg3));
_local5.lastEventType = _arg2;
} else {
if (_local5.lastEventType != 1){
_local4.event(_arg1, 1, _arg3);
};
};
_local5.lastEventTimestamp = _local7;
_local5.lastEventOffset = _arg3;
_local18 = (_local18 + ((((((("" + _local5.timePlayed) + _local12) + _local5.timestamp) + _local12) + (((_local4.s.isSet(_local4.trackWhilePlaying)) && ((_local5.lastTrackOffset >= 0)))) ? ("L" + _local5.lastTrackOffset) : "") + _local5.session) + ((_arg2)!=2) ? ((_local4.s.isSet(_local4.trackWhilePlaying)) ? "L" : "E" + _arg3) : ""));
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local14 = null;
_local17 = "m_o";
if (_arg2 != 4){
_local19.offset = _arg3;
_local19.percent = (((_local19.offset + 1) / _local19.length) * 100);
_local19.percent = ((_local19.percent > 100)) ? 100 : Math.floor(_local19.percent);
_local19.timePlayed = _local5.timePlayed;
if (_local4.s.isSet(_local4.monitor)){
_local4.monitor(_local4.s, _local19);
};
};
if (_local5.lastTrackOffset < 0){
_local17 = "m_s";
} else {
if (_arg2 == 4){
_local17 = "m_i";
} else {
_local13 = false;
_local16 = "None";
_local15 = _local16;
_local8 = (_local4.s.isSet(_local8)) ? parseInt(("" + _local8)) : 0;
_local10 = (_local4.s.isSet(_local9)) ? _local9.split(",") : null;
if (((_local4.s.isSet(_local8)) && ((_local5.timePlayedSinseTrack >= _local8)))){
_local13 = true;
} else {
if (_local4.s.isSet(_local10)){
if (_arg3 < _local5.lastTrackOffset){
_local5.lastTrackOffset = _arg3;
} else {
_local11 = 0;
while (_local11 < _local10.length) {
_local8 = (_local4.s.isSet(_local10[_local11])) ? parseInt(("" + _local10[_local11])) : 0;
if (((((_local4.s.isSet(_local8)) && ((((_local5.lastTrackOffset + 1) / _local5.length) < (_local8 / 100))))) && ((((_arg3 + 1) / _local5.length) >= (_local8 / 100))))){
_local13 = true;
_local11 = _local10.length;
};
_local11++;
};
};
};
};
};
};
};
} else {
_local4.event(_arg1, 2, -1);
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local19.offset = _local5.lastEventOffset;
_local19.percent = (((_local19.offset + 1) / _local19.length) * 100);
_local19.percent = ((_local19.percent > 100)) ? 100 : Math.floor(_local19.percent);
_local19.timePlayed = _local5.timePlayed;
if (_local4.s.isSet(_local4.monitor)){
_local4.monitor(_local4.s, _local19);
};
};
_local4.list[_arg1] = 0;
if (_local4.s.isSet(_local5.session)){
_local18 = (_local18 + (((((("" + _local5.timePlayed) + _local12) + _local5.timestamp) + _local12) + (((_local4.s.isSet(_local4.trackWhilePlaying)) && ((_local5.lastTrackOffset >= 0)))) ? ("L" + _local5.lastTrackOffset) : "") + _local5.session));
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local16 = "None";
_local15 = _local16;
_local17 = "m_o";
} else {
_local13 = false;
_local4.s.flushBufferedRequest(_local4.s.account, _local14);
};
} else {
_local13 = false;
};
_local14 = null;
};
if (_local13){
_local4.s.track({linkTrackVars:_local15, linkTrackEvents:_local16, pe:_local17, pev3:_local18}, _local14);
if (_local4.s.isSet(_local4.trackWhilePlaying)){
_local5.timePlayedSinseTrack = 0;
_local5.lastTrackOffset = _arg3;
_local5.session = "";
};
};
};
};
}
public function listenerMedia_complete(_arg1){
this.listenerMedia.complete(_arg1);
}
public function listenerFLVPlayback_complete(_arg1){
this.listenerFLVPlayback.complete(_arg1);
}
public function variableOverridesApply(_arg1:Object){
var _local2:Object;
var _local3:String;
_local2 = this;
for (_local3 in _arg1) {
if ((((_local3 == "autoTrack")) || ((_local3 == "trackWhilePlaying")))){
if (typeof(_arg1[_local3]) == "string"){
if (_arg1[_local3].toLowerCase() == "true"){
_arg1[_local3] = true;
} else {
_arg1[_local3] = false;
};
} else {
if (typeof(_arg1[_local3]) != "boolean"){
_arg1[_local3] = false;
};
};
} else {
if (_local3 == "trackSeconds"){
if (typeof(_arg1[_local3]) == "string"){
(_arg1[_local3] == parseInt(_arg1[_local3]));
} else {
if (typeof(_arg1[_local3]) != "number"){
(_arg1[_local3] == 0);
};
};
};
};
if ((((((((typeof(_arg1[_local3]) == "string")) || ((typeof(_arg1[_local3]) == "number")))) || ((typeof(_arg1[_local3]) == "boolean")))) && ((((((((((((((_local3 == "autoTrack")) || ((_local3 == "trackWhilePlaying")))) || ((_local3 == "trackSeconds")))) || ((_local3 == "trackMilestones")))) || ((_local3 == "playerName")))) || ((_local3 == "trackVars")))) || ((_local3 == "trackEvents")))))){
_local2[_local3] = _arg1[_local3];
};
};
}
private function startMonitor(_arg1:Object){
var m:Object;
var monitorNum:Number;
var nextMonitorNum:Number;
var monitor = _arg1;
m = this;
nextMonitorNum = 0;
if (m.s.isSet(m.monitorList)){
nextMonitorNum = -1;
monitorNum = 0;
while (monitorNum < m.monitorList.length) {
if (m.s.isSet(m.monitorList[monitorNum])){
if (((((((m.s.isSet(m.monitorList[monitorNum].node)) && (m.s.isSet(monitor)))) && (m.s.isSet(monitor.node)))) && ((m.monitorList[monitorNum].node == monitor.node)))){
return;
};
} else {
if (nextMonitorNum < 0){
nextMonitorNum = monitorNum;
};
};
monitorNum = (monitorNum + 1);
};
if (nextMonitorNum < 0){
nextMonitorNum = m.monitorList.length;
};
} else {
m.monitorList = new Array();
};
monitor.update = function (_arg1:Object){
if ((((((((((((_arg1.m == null)) || ((_arg1.m == undefined)))) || ((_arg1.m.s == null)))) || ((_arg1.m.s == undefined)))) || ((_arg1.node == null)))) || ((_arg1.node == undefined)))){
clearInterval(_arg1.interval);
_arg1.m.monitorList[_arg1.num] = null;
} else {
_arg1.monitor();
};
};
monitor.interval = m.s.setupInterval(monitor, "update", 5000, monitor);
monitor.num = nextMonitorNum;
m.monitorList[monitor.num] = monitor;
}
private function _open(_arg1:String, _arg2:Number, _arg3:String, _arg4:Object){
var _local5:Object;
var _local6:Object;
var _local7:Date;
var _local8:String;
var _local9:String;
_local5 = this;
_local6 = new Object();
_local7 = new Date();
_local8 = "";
_arg1 = _local5.cleanName(_arg1);
_arg2 = Math.floor(_arg2);
if (!_local5.s.isSet(_arg2)){
_arg2 = 1;
};
if (((_local5.s.isSet(_arg1)) && (_local5.s.isSet(_arg3)))){
if (!_local5.s.isSet(_local5.list)){
_local5.list = new Object();
};
if (_local5.s.isSet(_local5.list[_arg1])){
_local5.close(_arg1);
};
if (_local5.s.isSet(_arg4)){
_local8 = ("" + _arg4);
};
for (_local9 in _local5.list) {
if (((_local5.s.isSet(_local5.list[_local9])) && ((_local5.list[_local9].playerID == _local8)))){
_local5.close(_local5.list[_local9].name);
};
};
_local6.name = _arg1;
_local6.length = _arg2;
_local6.playerName = _local5.cleanName((_local5.s.isSet(_local5.playerName)) ? _local5.playerName : _arg3);
_local6.playerID = _local8;
_local6.timePlayed = 0;
_local6.timePlayedSinseTrack = 0;
_local6.timestamp = Math.floor((_local7.getTime() / 1000));
_local6.lastEventType = 0;
_local6.lastEventTimestamp = _local6.timestamp;
_local6.lastEventOffset = 0;
_local6.session = "";
_local6.lastTrackOffset = -1;
_local5.list[_arg1] = _local6;
};
}
private function autoEvent(_arg1:String, _arg2:Number, _arg3:String, _arg4:Number, _arg5:Number, _arg6:Object){
var _local7:Object;
_local7 = this;
_arg1 = _local7.cleanName(_arg1);
if (((((_local7.s.isSet(_arg1)) && (_local7.s.isSet(_arg2)))) && (_local7.s.isSet(_arg3)))){
if (((!(_local7.s.isSet(_local7.list))) || (!(_local7.s.isSet(_local7.list[_arg1]))))){
_local7.open(_arg1, _arg2, _arg3, _arg6);
};
_local7.event(_arg1, _arg4, _arg5);
};
}
public function play(_arg1:String, _arg2:Number){
var m:Object;
var media:Object;
var monitor:Object;
var name = _arg1;
var offset = _arg2;
m = this;
m.event(name, 1, offset);
monitor = new Object();
monitor.m = m;
monitor.node = m.cleanName(name);
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
var _local3:Object;
_local1 = this.m;
_local2 = this.node;
_local3 = (((((_local1.s.isSet(_local2)) && (_local1.s.isSet(_local1.list)))) && (_local1.s.isSet(_local1.list[_local2])))) ? _local1.list[_local2] : null;
if (_local1.s.isSet(_local3)){
if (_local3.lastEventType == 1){
_local1.event(_local3.name, 3, -1);
};
} else {
this.node = null;
};
};
m.startMonitor(monitor);
}
public function set autoTrack(_arg1:Boolean){
this._autoTrack = _arg1;
if (this._autoTrack){
this.autoTrackInterval = this.s.setupInterval(this, "doAutoTrack", 100, null);
};
}
public function listenerFLVPlayback_stateChange(_arg1){
this.listenerFLVPlayback.stateChange(_arg1);
}
public function listenerBrightcove_videoStart(_arg1){
this.listenerBrightcove.videoStart(_arg1);
}
public function listenerMedia_change(_arg1){
this.listenerMedia.change(_arg1);
}
private function attach(_arg1:Object):Boolean{
var m:Object;
var member:String;
var childNum:Number;
var player:Object;
var monitor:Object;
var attached:Boolean;
var subAttached:Boolean;
var node = _arg1;
m = this;
attached = false;
if (m.s.isSet(node)){
if (((m.s.isSet(node, "getModule")) || (m.s.isSet(node, "showBrightcoveMenu")))){
player = node;
if ((((m.s.flashASVersion > 2)) && (m.s.isSet(node, "getModule")))){
player = node.getModule("experience");
if (((((m.s.isSet(player)) && (m.s.isSet(player, "getReady")))) && (player.getReady()))){
player = node.getModule("videoPlayer");
} else {
player = undefined;
};
};
if (((s.isSet(player)) && (s.isSet(player, "addEventListener")))){
if (!m.s.isSet(m.listenerBrightcove)){
m.listenerBrightcove = new Object();
m.listenerBrightcove.m = m;
m.listenerBrightcove.playerName = "Brightcove";
if (m.s.flashASVersion > 2){
m.listenerBrightcove.playerName = (m.listenerBrightcove.playerName + " 3");
} else {
m.listenerBrightcove.playerName = (m.listenerBrightcove.playerName + " 2");
};
m.listenerBrightcove.handleEvent = function (_arg1:Object, _arg2:Number, _arg3:Number){
var _local4:Object;
var _local5:String;
var _local6:Number;
var _local7:Object;
_local4 = this.m;
if (((_local4.s.isSet(_local4.autoTrack)) && (_local4.s.isSet(_arg1)))){
if (_local4.s.flashASVersion > 2){
_local7 = _arg1.getCurrentVideo();
} else {
_local7 = _arg1.getCurrentTitle();
};
if (((_local4.s.isSet(_local7)) && (_local4.s.isSet(_local7.id)))){
_local5 = ((this.playerName + ":") + _local7.id);
_local6 = (_local7.length / 1000);
if (_arg3 < 0){
_arg3 = _arg1.getVideoPosition();
};
if (!_local4.s.isSet(_arg3)){
_arg3 = 0;
};
_local4.autoEvent(_local5, _local6, this.playerName, _arg2, _arg3, _arg1);
};
};
};
m.listenerBrightcove.videoProgress = (m.listenerBrightcove.videoStart = (m.listenerBrightcove.progress = (m.listenerBrightcove.play = function (_arg1){
if (((((((this.m.s.isSet(_arg1)) && (this.m.s.isSet(_arg1.target)))) && (this.m.s.isSet(_arg1.target.isPlaying)))) && (_arg1.target.isPlaying()))){
this.handleEvent(_arg1.target, 1, ((typeof(_arg1.position) == "number")) ? _arg1.position : -1);
};
})));
m.listenerBrightcove.videoStop = (m.listenerBrightcove.startBuffering = (m.listenerBrightcove.pause = (m.listenerBrightcove.buffering = (m.listenerBrightcove.scrubber = (m.listenerBrightcove.seek = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 2, -1);
};
})))));
m.listenerBrightcove.videoComplete = (m.listenerBrightcove.mediaComplete = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 0, -1);
};
});
};
if (m.s.flashASVersion > 2){
player.addEventListener("videoProgress", m.listenerBrightcove_videoProgress);
player.addEventListener("videoStart", m.listenerBrightcove_videoStart);
player.addEventListener("videoStop", m.listenerBrightcove_videoStop);
player.addEventListener("startBuffering", m.listenerBrightcove_startBuffering);
player.addEventListener("seek", m.listenerBrightcove_seek);
player.addEventListener("videoComplete", m.listenerBrightcove_videoComplete);
} else {
player.addEventListener("progress", m.listenerBrightcove, "progress");
player.addEventListener("play", m.listenerBrightcove, "play");
player.addEventListener("pause", m.listenerBrightcove, "pause");
player.addEventListener("buffering", m.listenerBrightcove, "buffering");
player.addEventListener("scrubber", m.listenerBrightcove, "scrubber");
player.addEventListener("seek", m.listenerBrightcove, "seek");
player.addEventListener("mediaComplete", m.listenerBrightcove, "mediaComplete");
};
monitor = new Object();
monitor.m = m;
monitor.node = player;
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
_local1 = this.m;
_local2 = this.node;
if (((_local1.s.isSet(_local2.isPlaying)) && (_local2.isPlaying()))){
this.m.listenerBrightcove.handleEvent(_local2, 3, -1);
};
};
m.startMonitor(monitor);
attached = true;
return (attached);
};
};
if (((((((((0) && (m.s.isSet(node, "flvVideo")))) && (m.s.isSet(node.flvVideo, "mBandwidthDetector")))) && (m.s.isSet(node.flvVideo.mBandwidthDetector, "mVideoPlayer")))) && (m.s.isSet(node.flvVideo.mBandwidthDetector.mVideoPlayer, "addEventListener")))){
node = node.flvVideo.mBandwidthDetector.mVideoPlayer;
if (!m.s.isSet(m.listenerMaven)){
m.listenerMaven = new Object();
m.listenerMaven.m = m;
m.listenerMaven.playerName = "Maven Networks";
m.listenerMaven.handleEvent = function (_arg1:Object, _arg2:Number){
var _local3:Object;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local3 = this.m;
if (((_local3.s.isSet(_local3.autoTrack)) && (_local3.s.isSet(_arg1)))){
if (_local3.s.flashASVersion > 2){
_local4 = _arg1.source;
} else {
_local4 = _arg1.contentPath;
};
_local5 = _arg1.totalTime;
_local6 = _arg1.playheadTime;
_local3.autoEvent(_local4, _local5, this.playerName, _arg2, _local6, _arg1);
};
};
m.listenerMaven.stateChange = function (_arg1){
var _local2:Object;
var _local3:Number;
var _local4:Object;
_local2 = this.m;
_local3 = -1;
if (((_local2.s.isSet(_arg1)) && (_local2.s.isSet(_arg1.target)))){
_local4 = _arg1.target;
if (_local2.s.isSet(_local4, "state")){
if (_local4.state == "playing"){
_local3 = 1;
} else {
if ((((((((((_local4.state == "stopped")) || ((_local4.state == "paused")))) || ((_local4.state == "buffering")))) || ((_local4.state == "rewinding")))) || ((_local4.state == "seeking")))){
_local3 = 2;
};
};
if (_local3 >= 0){
this.handleEvent(_arg1.target, _local3);
};
};
};
};
m.listenerMaven.complete = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 0);
};
};
};
if (m.s.flashASVersion > 2){
node.addEventListener("complete", m.listenerMaven_complete);
node.addEventListener("stateChange", m.listenerMaven_stateChange);
} else {
node.addEventListener("complete", m.listenerMaven);
node.addEventListener("stateChange", m.listenerMaven);
};
monitor = new Object();
monitor.m = m;
monitor.node = node;
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
_local1 = this.m;
_local2 = this.node;
if (((_local1.s.isSet(_local2.state)) && ((_local2.state == "playing")))){
this.m.listenerMaven.handleEvent(_local2, 3);
};
};
m.startMonitor(monitor);
attached = true;
return (attached);
};
if (((m.s.isSet(node, "addEventListener")) && (m.s.isSet(node, "isFLVCuePointEnabled")))){
if (!m.s.isSet(m.listenerFLVPlayback)){
m.listenerFLVPlayback = new Object();
m.listenerFLVPlayback.m = m;
m.listenerFLVPlayback.playerName = "Flash FLVPlayback";
m.listenerFLVPlayback.handleEvent = function (_arg1:Object, _arg2:Number){
var _local3:Object;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local3 = this.m;
if (((_local3.s.isSet(_local3.autoTrack)) && (_local3.s.isSet(_arg1)))){
if (_local3.s.flashASVersion > 2){
_local4 = _arg1.source;
} else {
_local4 = _arg1.contentPath;
};
_local5 = _arg1.totalTime;
_local6 = _arg1.playheadTime;
_local3.autoEvent(_local4, _local5, this.playerName, _arg2, _local6, _arg1);
};
};
m.listenerFLVPlayback.stateChange = function (_arg1){
var _local2:Object;
var _local3:Number;
var _local4:Object;
_local2 = this.m;
_local3 = -1;
if (((_local2.s.isSet(_arg1)) && (_local2.s.isSet(_arg1.target)))){
_local4 = _arg1.target;
if (_local2.s.isSet(_local4, "state")){
if (_local4.state == "playing"){
_local3 = 1;
} else {
if ((((((((((_local4.state == "stopped")) || ((_local4.state == "paused")))) || ((_local4.state == "buffering")))) || ((_local4.state == "rewinding")))) || ((_local4.state == "seeking")))){
_local3 = 2;
};
};
if (_local3 >= 0){
this.handleEvent(_arg1.target, _local3);
};
};
};
};
m.listenerFLVPlayback.complete = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 0);
};
};
};
if (m.s.flashASVersion > 2){
node.addEventListener("complete", m.listenerFLVPlayback_complete);
node.addEventListener("stateChange", m.listenerFLVPlayback_stateChange);
} else {
node.addEventListener("complete", m.listenerFLVPlayback);
node.addEventListener("stateChange", m.listenerFLVPlayback);
};
monitor = new Object();
monitor.m = m;
monitor.node = node;
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
_local1 = this.m;
_local2 = this.node;
if (((_local1.s.isSet(_local2.state)) && ((_local2.state == "playing")))){
this.m.listenerFLVPlayback.handleEvent(_local2, 3);
};
};
m.startMonitor(monitor);
attached = true;
return (attached);
};
if (((m.s.isSet(node, "addEventListener")) && (m.s.isSet(node, "addCuePoint")))){
if (!m.s.isSet(m.listenerMedia)){
m.listenerMedia = new Object();
m.listenerMedia.m = m;
m.listenerMedia.playerName = "Flash Media";
m.listenerMedia.handleEvent = function (_arg1:Object, _arg2:Number){
var _local3:Object;
var _local4:String;
var _local5:Number;
var _local6:Number;
_local3 = this.m;
if (((_local3.s.isSet(_local3.autoTrack)) && (_local3.s.isSet(_arg1)))){
_local4 = _arg1.contentPath;
_local5 = _arg1.totalTime;
_local6 = _arg1.playheadTime;
_local3.autoEvent(_local4, _local5, this.playerName, _arg2, _local6, _arg1);
};
};
m.listenerMedia.complete = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 0);
};
};
m.listenerMedia.click = function (_arg1){
if (((this.m.s.isSet(_arg1)) && (this.m.s.isSet(_arg1.target)))){
this.handleEvent(_arg1.target, (this.m.s.isSet(_arg1.target.playing)) ? 1 : 2);
};
};
m.listenerMedia.change = function (_arg1){
if (((this.m.s.isSet(_arg1)) && (this.m.s.isSet(_arg1.target)))){
this.handleEvent(_arg1.target, (this.m.s.isSet(_arg1.target.playing)) ? 1 : 2);
};
};
m.listenerMedia.scrubbing = function (_arg1){
if (this.m.s.isSet(_arg1)){
this.handleEvent(_arg1.target, 2);
};
};
};
if (m.s.flashASVersion > 2){
node.addEventListener("complete", m.listenerMedia_complete);
node.addEventListener("click", m.listenerMedia_click);
node.addEventListener("change", m.listenerMedia_change);
node.addEventListener("scrubbing", m.listenerMedia_scrubbing);
} else {
node.addEventListener("complete", m.listenerMedia);
node.addEventListener("click", m.listenerMedia);
node.addEventListener("change", m.listenerMedia);
node.addEventListener("scrubbing", m.listenerMedia);
};
monitor = new Object();
monitor.m = m;
monitor.node = node;
monitor.monitor = function (){
var _local1:Object;
var _local2:Object;
_local1 = this.m;
_local2 = this.node;
if (_local1.s.isSet(_local2.playing)){
this.m.listenerMedia.handleEvent(_local2, 3);
};
};
m.startMonitor(monitor);
attached = true;
return (attached);
};
if (m.s.flashASVersion > 2){
if (((m.s.isSet(node, "numChildren")) && (m.s.isSet(node, "getChildAt")))){
childNum = 0;
while (childNum < node.numChildren) {
subAttached = m.attach(node.getChildAt(childNum));
if (m.s.isSet(subAttached)){
attached = subAttached;
};
childNum = (childNum + 1);
};
};
} else {
for (member in node) {
if (((((((m.s.isSet(node[member])) && (m.s.isSet(node[member]._name)))) && ((node[member]._name == member)))) && ((((("" + node) + ".") + member) == ("" + node[member]))))){
subAttached = m.attach(node[member]);
if (m.s.isSet(subAttached)){
attached = subAttached;
};
};
};
};
};
return (attached);
}
public function listenerBrightcove_videoStop(_arg1){
this.listenerBrightcove.videoStop(_arg1);
}
public function open(_arg1:String, _arg2:Number, _arg3:String, _arg4:Object=null){
this._open(_arg1, _arg2, _arg3, _arg4);
}
public function track(_arg1:String){
var _local2:Object;
_local2 = this;
if (_local2.s.isSet(_local2.trackWhilePlaying)){
_local2.event(_arg1, 4, -1);
};
}
public function get autoTrack():Boolean{
return (this._autoTrack);
}
public function listenerBrightcove_videoProgress(_arg1){
this.listenerBrightcove.videoProgress(_arg1);
}
private function cleanName(_arg1:String):String{
var _local2:Object;
_local2 = this;
return (_local2.s.replace(_local2.s.replace(_local2.s.replace(_arg1, "\n", ""), "\r", ""), "--**--", ""));
}
public function listenerBrightcove_startBuffering(_arg1){
this.listenerBrightcove.startBuffering(_arg1);
}
public function close(_arg1:String){
this.event(_arg1, 0, -1);
}
public function listenerBrightcove_videoComplete(_arg1){
this.listenerBrightcove.videoComplete(_arg1);
}
}
}//package com.omniture
Section 38
//ActionSource_XML (com.omniture.ActionSource_XML)
package com.omniture {
import flash.events.*;
import flash.net.*;
public dynamic class ActionSource_XML {
public var data:Object;
public var loaded:Boolean;// = true
public var onDataReady:String;// = ""
private var _url:String;
private var loader:URLLoader;
public function ActionSource_XML(_arg1:Object){
loaded = true;
onDataReady = "";
super();
this.s = _arg1;
this.loader = new URLLoader();
this.loader.addEventListener(Event.COMPLETE, this.onComplete);
}
private function handleNode(_arg1:XML, _arg2:Object){
var _local3:String;
var _local4:XMLList;
var _local5:Number;
_local3 = _arg1.name();
if (((this.s.isSet(_local3)) && ((_arg1.nodeKind() == "element")))){
_local4 = _arg1.children();
if (((this.s.isSet(_local4)) && ((_local4.length() > 0)))){
if (_local4[0].nodeKind() == "text"){
_arg2[_local3] = ("" + _local4[0]);
} else {
_arg2[_local3] = new Object();
_local5 = 0;
while (_local5 < _local4.length()) {
this.handleNode(_local4[_local5], _arg2[_local3]);
_local5++;
};
};
};
};
}
public function get url():String{
return (this._url);
}
private function loadXML(){
this.loaded = false;
this.loader.load(new URLRequest(this._url));
}
private function onComplete(_arg1:Event){
var _local2:Object;
var _local3:XML;
_local2 = XML.settings();
XML.ignoreWhitespace = true;
XML.ignoreProcessingInstructions = true;
XML.ignoreComments = true;
_local3 = new XML(this.loader.data);
this.data = new Object();
if ((((_local3.name() == "config")) && ((_local3.nodeKind() == "element")))){
this.handleNode(_local3, this.data);
};
XML.setSettings(_local2);
if (this.s.isSet(this.onDataReady)){
var _local4 = this.s;
_local4[onDataReady](this.data);
};
this.loaded = true;
}
public function set url(_arg1:String){
var _local2:String;
this._url = _arg1;
if (this.s.isSet(this._url)){
_local2 = this._url.toLowerCase();
if (this.s.isSet(this.s.ssl)){
if (_local2.substr(0, 7) == "http://"){
this._url = this._url.substr(7);
_local2 = this._url.toLowerCase();
};
if (_local2.substr(0, 8) != "https://"){
this._url = ("https://" + this._url);
};
} else {
if (((!((_local2.substr(0, 7) == "http://"))) && (!((_local2.substr(0, 8) == "https://"))))){
this._url = ("http://" + this._url);
};
};
this.loadXML();
};
}
}
}//package com.omniture
Section 39
//Linear (gs.easing.Linear)
package gs.easing {
public class Linear {
public function Linear(){
super();
}
public static function easeOut(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
public static function easeIn(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
public static function easeInOut(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
public static function easeNone(t:Number, b:Number, c:Number, d:Number):Number{
return ((((c * t) / d) + b));
}
}
}//package gs.easing
Section 40
//Sine (gs.easing.Sine)
package gs.easing {
public class Sine {
private static const _HALF_PI:Number = 1.5707963267949;
public function Sine(){
super();
}
public static function easeOut(t:Number, b:Number, c:Number, d:Number):Number{
return (((c * Math.sin(((t / d) * _HALF_PI))) + b));
}
public static function easeIn(t:Number, b:Number, c:Number, d:Number):Number{
return ((((-(c) * Math.cos(((t / d) * _HALF_PI))) + c) + b));
}
public static function easeInOut(t:Number, b:Number, c:Number, d:Number):Number{
return ((((-(c) / 2) * (Math.cos(((Math.PI * t) / d)) - 1)) + b));
}
}
}//package gs.easing
Section 41
//TweenEvent (gs.events.TweenEvent)
package gs.events {
import flash.events.*;
public class TweenEvent extends Event {
public var info:Object;
public static const UPDATE:String = "update";
public static const START:String = "start";
public static const version:Number = 0.9;
public static const COMPLETE:String = "complete";
public function TweenEvent($type:String, $info:Object=null, $bubbles:Boolean=false, $cancelable:Boolean=false){
super($type, $bubbles, $cancelable);
this.info = $info;
}
override public function clone():Event{
return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable));
}
}
}//package gs.events
Section 42
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class AutoAlphaPlugin extends TweenPlugin {
protected var _tweenVisible:Boolean;
protected var _target:Object;
protected var _visible:Boolean;
protected var _tween:TweenLite;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function AutoAlphaPlugin(){
super();
this.propName = "autoAlpha";
this.overwriteProps = ["alpha", "visible"];
this.onComplete = onCompleteTween;
}
override public function killProps($lookup:Object):void{
super.killProps($lookup);
_tweenVisible = !(Boolean(("visible" in $lookup)));
}
public function onCompleteTween():void{
if (((((_tweenVisible) && (!((_tween.vars.runBackwards == true))))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_tween = $tween;
_visible = Boolean(!(($value == 0)));
_tweenVisible = true;
addTween($target, "alpha", $target.alpha, $value, "alpha");
return (true);
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
if (((!((_target.visible == true))) && (_tweenVisible))){
_target.visible = true;
};
}
}
}//package gs.plugins
Section 43
//BevelFilterPlugin (gs.plugins.BevelFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class BevelFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function BevelFilterPlugin(){
super();
this.propName = "bevelFilter";
this.overwriteProps = ["bevelFilter"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_type = BevelFilter;
initFilter($value, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, (($value.quality) || (2))));
return (true);
}
}
}//package gs.plugins
Section 44
//BezierPlugin (gs.plugins.BezierPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class BezierPlugin extends TweenPlugin {
protected var _future:Object;
protected var _orient:Boolean;
protected var _orientData:Array;
protected var _target:Object;
protected var _beziers:Object;
protected static const _RAD2DEG:Number = 57.2957795130823;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function BezierPlugin(){
_future = {};
super();
this.propName = "bezier";
this.overwriteProps = [];
}
override public function killProps($lookup:Object):void{
var p:String;
for (p in _beziers) {
if ((p in $lookup)){
delete _beziers[p];
};
};
super.killProps($lookup);
}
protected function init($tween:TweenLite, $beziers:Array, $through:Boolean):void{
var i:int;
var p:String;
_target = $tween.target;
if ($tween.exposedVars.orientToBezier == true){
_orientData = [["x", "y", "rotation", 0]];
_orient = true;
} else {
if (($tween.exposedVars.orientToBezier is Array)){
_orientData = $tween.exposedVars.orientToBezier;
_orient = true;
};
};
var props:Object = {};
i = 0;
while (i < $beziers.length) {
for (p in $beziers[i]) {
if (props[p] == undefined){
props[p] = [$tween.target[p]];
};
if (typeof($beziers[i][p]) == "number"){
props[p].push($beziers[i][p]);
} else {
props[p].push(($tween.target[p] + Number($beziers[i][p])));
};
};
i++;
};
for (p in props) {
this.overwriteProps[this.overwriteProps.length] = p;
if ($tween.exposedVars[p] != undefined){
if (typeof($tween.exposedVars[p]) == "number"){
props[p].push($tween.exposedVars[p]);
} else {
props[p].push(($tween.target[p] + Number($tween.exposedVars[p])));
};
delete $tween.exposedVars[p];
i = ($tween.tweens.length - 1);
while (i > -1) {
if ($tween.tweens[i].name == p){
$tween.tweens.splice(i, 1);
};
i--;
};
};
};
_beziers = parseBeziers(props, $through);
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (!($value is Array)){
return (false);
};
init($tween, ($value as Array), false);
return (true);
}
override public function set changeFactor($n:Number):void{
var i:int;
var p:String;
var b:Object;
var t:Number;
var segments:uint;
var val:Number;
var neg:int;
var oldTarget:Object;
var oldRound:Boolean;
var dx:Number;
var dy:Number;
var cotb:Array;
var toAdd:Number;
if ($n == 1){
for (p in _beziers) {
i = (_beziers[p].length - 1);
_target[p] = _beziers[p][i][2];
};
} else {
for (p in _beziers) {
segments = _beziers[p].length;
if ($n < 0){
i = 0;
} else {
if ($n >= 1){
i = (segments - 1);
} else {
i = int((segments * $n));
};
};
t = (($n - (i * (1 / segments))) * segments);
b = _beziers[p][i];
if (this.round){
val = (b[0] + (t * (((2 * (1 - t)) * (b[1] - b[0])) + (t * (b[2] - b[0])))));
neg = ((val)<0) ? -1 : 1;
_target[p] = ((((val % 1) * neg))>0.5) ? (int(val) + neg) : int(val);
} else {
_target[p] = (b[0] + (t * (((2 * (1 - t)) * (b[1] - b[0])) + (t * (b[2] - b[0])))));
};
};
};
if (_orient){
oldTarget = _target;
oldRound = this.round;
_target = _future;
this.round = false;
_orient = false;
this.changeFactor = ($n + 0.01);
_target = oldTarget;
this.round = oldRound;
_orient = true;
i = 0;
while (i < _orientData.length) {
cotb = _orientData[i];
toAdd = ((cotb[3]) || (0));
dx = (_future[cotb[0]] - _target[cotb[0]]);
dy = (_future[cotb[1]] - _target[cotb[1]]);
_target[cotb[2]] = ((Math.atan2(dy, dx) * _RAD2DEG) + toAdd);
i++;
};
};
}
public static function parseBeziers($props:Object, $through:Boolean=false):Object{
var i:int;
var a:Array;
var b:Object;
var p:String;
var all:Object = {};
if ($through){
for (p in $props) {
a = $props[p];
b = [];
all[p] = b;
if (a.length > 2){
b[b.length] = [a[0], (a[1] - ((a[2] - a[0]) / 4)), a[1]];
i = 1;
while (i < (a.length - 1)) {
b[b.length] = [a[i], (a[i] + (a[i] - b[(i - 1)][1])), a[(i + 1)]];
i++;
};
} else {
b[b.length] = [a[0], ((a[0] + a[1]) / 2), a[1]];
};
};
} else {
for (p in $props) {
a = $props[p];
b = [];
all[p] = b;
if (a.length > 3){
b[b.length] = [a[0], a[1], ((a[1] + a[2]) / 2)];
i = 2;
while (i < (a.length - 2)) {
b[b.length] = [b[(i - 2)][2], a[i], ((a[i] + a[(i + 1)]) / 2)];
i++;
};
b[b.length] = [b[(b.length - 1)][2], a[(a.length - 2)], a[(a.length - 1)]];
} else {
if (a.length == 3){
b[b.length] = [a[0], a[1], a[2]];
} else {
if (a.length == 2){
b[b.length] = [a[0], ((a[0] + a[1]) / 2), a[1]];
};
};
};
};
};
return (all);
}
}
}//package gs.plugins
Section 45
//BezierThroughPlugin (gs.plugins.BezierThroughPlugin)
package gs.plugins {
import gs.*;
public class BezierThroughPlugin extends BezierPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function BezierThroughPlugin(){
super();
this.propName = "bezierThrough";
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (!($value is Array)){
return (false);
};
init($tween, ($value as Array), true);
return (true);
}
}
}//package gs.plugins
Section 46
//BlurFilterPlugin (gs.plugins.BlurFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class BlurFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function BlurFilterPlugin(){
super();
this.propName = "blurFilter";
this.overwriteProps = ["blurFilter"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_type = BlurFilter;
initFilter($value, new BlurFilter(0, 0, (($value.quality) || (2))));
return (true);
}
}
}//package gs.plugins
Section 47
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class ColorMatrixFilterPlugin extends FilterPlugin {
protected var _matrix:Array;
protected var _matrixTween:EndArrayPlugin;
public static const API:Number = 1;
public static const VERSION:Number = 1.1;
protected static var _lumG:Number = 0.71516;
protected static var _lumR:Number = 0.212671;
protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0];
protected static var _lumB:Number = 0.072169;
public function ColorMatrixFilterPlugin(){
super();
this.propName = "colorMatrixFilter";
this.overwriteProps = ["colorMatrixFilter"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_type = ColorMatrixFilter;
var cmf:Object = $value;
initFilter({remove:$value.remove, index:$value.index, addFilter:$value.addFilter}, new ColorMatrixFilter(_idMatrix.slice()));
_matrix = ColorMatrixFilter(_filter).matrix;
var endMatrix:Array = [];
if (((!((cmf.matrix == null))) && ((cmf.matrix is Array)))){
endMatrix = cmf.matrix;
} else {
if (cmf.relative == true){
endMatrix = _matrix.slice();
} else {
endMatrix = _idMatrix.slice();
};
endMatrix = setBrightness(endMatrix, cmf.brightness);
endMatrix = setContrast(endMatrix, cmf.contrast);
endMatrix = setHue(endMatrix, cmf.hue);
endMatrix = setSaturation(endMatrix, cmf.saturation);
endMatrix = setThreshold(endMatrix, cmf.threshold);
if (!isNaN(cmf.colorize)){
endMatrix = colorize(endMatrix, cmf.colorize, cmf.amount);
};
};
_matrixTween = new EndArrayPlugin();
_matrixTween.init(_matrix, endMatrix);
return (true);
}
override public function set changeFactor($n:Number):void{
_matrixTween.changeFactor = $n;
ColorMatrixFilter(_filter).matrix = _matrix;
super.changeFactor = $n;
}
public static function setSaturation($m:Array, $n:Number):Array{
if (isNaN($n)){
return ($m);
};
var inv:Number = (1 - $n);
var r:Number = (inv * _lumR);
var g:Number = (inv * _lumG);
var b:Number = (inv * _lumB);
var temp:Array = [(r + $n), g, b, 0, 0, r, (g + $n), b, 0, 0, r, g, (b + $n), 0, 0, 0, 0, 0, 1, 0];
return (applyMatrix(temp, $m));
}
public static function setHue($m:Array, $n:Number):Array{
if (isNaN($n)){
return ($m);
};
$n = ($n * (Math.PI / 180));
var c:Number = Math.cos($n);
var s:Number = Math.sin($n);
var temp:Array = [((_lumR + (c * (1 - _lumR))) + (s * -(_lumR))), ((_lumG + (c * -(_lumG))) + (s * -(_lumG))), ((_lumB + (c * -(_lumB))) + (s * (1 - _lumB))), 0, 0, ((_lumR + (c * -(_lumR))) + (s * 0.143)), ((_lumG + (c * (1 - _lumG))) + (s * 0.14)), ((_lumB + (c * -(_lumB))) + (s * -0.283)), 0, 0, ((_lumR + (c * -(_lumR))) + (s * -((1 - _lumR)))), ((_lumG + (c * -(_lumG))) + (s * _lumG)), ((_lumB + (c * (1 - _lumB))) + (s * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
return (applyMatrix(temp, $m));
}
public static function setThreshold($m:Array, $n:Number):Array{
if (isNaN($n)){
return ($m);
};
var temp:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * $n), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * $n), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * $n), 0, 0, 0, 1, 0];
return (applyMatrix(temp, $m));
}
public static function applyMatrix($m:Array, $m2:Array):Array{
var y:int;
var x:int;
if (((!(($m is Array))) || (!(($m2 is Array))))){
return ($m2);
};
var temp:Array = [];
var i:int;
var z:int;
y = 0;
while (y < 4) {
x = 0;
while (x < 5) {
if (x == 4){
z = $m[(i + 4)];
} else {
z = 0;
};
temp[(i + x)] = ((((($m[i] * $m2[x]) + ($m[(i + 1)] * $m2[(x + 5)])) + ($m[(i + 2)] * $m2[(x + 10)])) + ($m[(i + 3)] * $m2[(x + 15)])) + z);
x++;
};
i = (i + 5);
y++;
};
return (temp);
}
public static function colorize($m:Array, $color:Number, $amount:Number=1):Array{
if (isNaN($color)){
return ($m);
};
if (isNaN($amount)){
$amount = 1;
};
var r:Number = ((($color >> 16) & 0xFF) / 0xFF);
var g:Number = ((($color >> 8) & 0xFF) / 0xFF);
var b:Number = (($color & 0xFF) / 0xFF);
var inv:Number = (1 - $amount);
var temp:Array = [(inv + (($amount * r) * _lumR)), (($amount * r) * _lumG), (($amount * r) * _lumB), 0, 0, (($amount * g) * _lumR), (inv + (($amount * g) * _lumG)), (($amount * g) * _lumB), 0, 0, (($amount * b) * _lumR), (($amount * b) * _lumG), (inv + (($amount * b) * _lumB)), 0, 0, 0, 0, 0, 1, 0];
return (applyMatrix(temp, $m));
}
public static function setBrightness($m:Array, $n:Number):Array{
if (isNaN($n)){
return ($m);
};
$n = (($n * 100) - 100);
return (applyMatrix([1, 0, 0, 0, $n, 0, 1, 0, 0, $n, 0, 0, 1, 0, $n, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], $m));
}
public static function setContrast($m:Array, $n:Number):Array{
if (isNaN($n)){
return ($m);
};
$n = ($n + 0.01);
var temp:Array = [$n, 0, 0, 0, (128 * (1 - $n)), 0, $n, 0, 0, (128 * (1 - $n)), 0, 0, $n, 0, (128 * (1 - $n)), 0, 0, 0, 1, 0];
return (applyMatrix(temp, $m));
}
}
}//package gs.plugins
Section 48
//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class DropShadowFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function DropShadowFilterPlugin(){
super();
this.propName = "dropShadowFilter";
this.overwriteProps = ["dropShadowFilter"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_type = DropShadowFilter;
initFilter($value, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, (($value.quality) || (2)), $value.inner, $value.knockout, $value.hideObject));
return (true);
}
}
}//package gs.plugins
Section 49
//EndArrayPlugin (gs.plugins.EndArrayPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import gs.utils.tween.*;
public class EndArrayPlugin extends TweenPlugin {
protected var _a:Array;
protected var _info:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function EndArrayPlugin(){
_info = [];
super();
this.propName = "endArray";
this.overwriteProps = ["endArray"];
}
public function init($start:Array, $end:Array):void{
_a = $start;
var i:int = ($end.length - 1);
while (i > -1) {
if (((!(($start[i] == $end[i]))) && (!(($start[i] == null))))){
_info[_info.length] = new ArrayTweenInfo(i, _a[i], ($end[i] - _a[i]));
};
i--;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (((!(($target is Array))) || (!(($value is Array))))){
return (false);
};
init(($target as Array), $value);
return (true);
}
override public function set changeFactor($n:Number):void{
var i:int;
var ti:ArrayTweenInfo;
var val:Number;
var neg:int;
if (this.round){
i = (_info.length - 1);
while (i > -1) {
ti = _info[i];
val = (ti.start + (ti.change * $n));
neg = ((val)<0) ? -1 : 1;
_a[ti.index] = ((((val % 1) * neg))>0.5) ? (int(val) + neg) : int(val);
i--;
};
} else {
i = (_info.length - 1);
while (i > -1) {
ti = _info[i];
_a[ti.index] = (ti.start + (ti.change * $n));
i--;
};
};
}
}
}//package gs.plugins
Section 50
//FilterPlugin (gs.plugins.FilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
import gs.utils.tween.*;
public class FilterPlugin extends TweenPlugin {
protected var _remove:Boolean;
protected var _target:Object;
protected var _index:int;
protected var _filter:BitmapFilter;
protected var _type:Class;
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function FilterPlugin(){
super();
}
public function onCompleteTween():void{
var i:int;
var filters:Array;
if (_remove){
filters = _target.filters;
if (!(filters[_index] is _type)){
i = (filters.length - 1);
while (i > -1) {
if ((filters[i] is _type)){
filters.splice(i, 1);
break;
};
i--;
};
} else {
filters.splice(_index, 1);
};
_target.filters = filters;
};
}
protected function initFilter($props:Object, $default:BitmapFilter):void{
var p:String;
var i:int;
var colorTween:HexColorsPlugin;
var filters:Array = _target.filters;
_index = -1;
if ($props.index != null){
_index = $props.index;
} else {
i = (filters.length - 1);
while (i > -1) {
if ((filters[i] is _type)){
_index = i;
break;
};
i--;
};
};
if ((((((_index == -1)) || ((filters[_index] == null)))) || (($props.addFilter == true)))){
_index = (($props.index)!=null) ? $props.index : filters.length;
filters[_index] = $default;
_target.filters = filters;
};
_filter = filters[_index];
_remove = Boolean(($props.remove == true));
if (_remove){
this.onComplete = onCompleteTween;
};
var props:Object = (($props.isTV)==true) ? $props.exposedVars : $props;
for (p in props) {
if (((((((((!((p in _filter))) || ((_filter[p] == props[p])))) || ((p == "remove")))) || ((p == "index")))) || ((p == "addFilter")))){
} else {
if ((((((p == "color")) || ((p == "highlightColor")))) || ((p == "shadowColor")))){
colorTween = new HexColorsPlugin();
colorTween.initColor(_filter, p, _filter[p], props[p]);
_tweens[_tweens.length] = new TweenInfo(colorTween, "changeFactor", 0, 1, p, false);
} else {
if ((((((((p == "quality")) || ((p == "inner")))) || ((p == "knockout")))) || ((p == "hideObject")))){
_filter[p] = props[p];
} else {
addTween(_filter, p, _filter[p], props[p], p);
};
};
};
};
}
override public function set changeFactor($n:Number):void{
var i:int;
var ti:TweenInfo;
var filters:Array = _target.filters;
i = (_tweens.length - 1);
while (i > -1) {
ti = _tweens[i];
ti.target[ti.property] = (ti.start + (ti.change * $n));
i--;
};
if (!(filters[_index] is _type)){
_index = (filters.length - 1);
i = (filters.length - 1);
while (i > -1) {
if ((filters[i] is _type)){
_index = i;
break;
};
i--;
};
};
filters[_index] = _filter;
_target.filters = filters;
}
}
}//package gs.plugins
Section 51
//FramePlugin (gs.plugins.FramePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class FramePlugin extends TweenPlugin {
protected var _target:MovieClip;
public var frame:int;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function FramePlugin(){
super();
this.propName = "frame";
this.overwriteProps = ["frame"];
this.round = true;
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (((!(($target is MovieClip))) || (isNaN($value)))){
return (false);
};
_target = ($target as MovieClip);
this.frame = _target.currentFrame;
addTween(this, "frame", this.frame, $value, "frame");
return (true);
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
_target.gotoAndStop(this.frame);
}
}
}//package gs.plugins
Section 52
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.filters.*;
public class GlowFilterPlugin extends FilterPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function GlowFilterPlugin(){
super();
this.propName = "glowFilter";
this.overwriteProps = ["glowFilter"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_type = GlowFilter;
initFilter($value, new GlowFilter(0xFFFFFF, 0, 0, 0, (($value.strength) || (1)), (($value.quality) || (2)), $value.inner, $value.knockout));
return (true);
}
}
}//package gs.plugins
Section 53
//HexColorsPlugin (gs.plugins.HexColorsPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class HexColorsPlugin extends TweenPlugin {
protected var _colors:Array;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function HexColorsPlugin(){
super();
this.propName = "hexColors";
this.overwriteProps = [];
_colors = [];
}
override public function killProps($lookup:Object):void{
var i:int = (_colors.length - 1);
while (i > -1) {
if ($lookup[_colors[i][1]] != undefined){
_colors.splice(i, 1);
};
i--;
};
super.killProps($lookup);
}
public function initColor($target:Object, $propName:String, $start:uint, $end:uint):void{
var r:Number;
var g:Number;
var b:Number;
if ($start != $end){
r = ($start >> 16);
g = (($start >> 8) & 0xFF);
b = ($start & 0xFF);
_colors[_colors.length] = [$target, $propName, r, (($end >> 16) - r), g, ((($end >> 8) & 0xFF) - g), b, (($end & 0xFF) - b)];
this.overwriteProps[this.overwriteProps.length] = $propName;
};
}
override public function set changeFactor($n:Number):void{
var i:int;
var a:Array;
i = (_colors.length - 1);
while (i > -1) {
a = _colors[i];
a[0][a[1]] = ((((a[2] + ($n * a[3])) << 16) | ((a[4] + ($n * a[5])) << 8)) | (a[6] + ($n * a[7])));
i--;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
var p:String;
for (p in $value) {
initColor($target, p, uint($target[p]), uint($value[p]));
};
return (true);
}
}
}//package gs.plugins
Section 54
//RemoveTintPlugin (gs.plugins.RemoveTintPlugin)
package gs.plugins {
public class RemoveTintPlugin extends TintPlugin {
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function RemoveTintPlugin(){
super();
this.propName = "removeTint";
}
}
}//package gs.plugins
Section 55
//RoundPropsPlugin (gs.plugins.RoundPropsPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class RoundPropsPlugin extends TweenPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function RoundPropsPlugin(){
super();
this.propName = "roundProps";
this.overwriteProps = [];
this.round = true;
}
public function add($object:Object, $propName:String, $start:Number, $change:Number):void{
addTween($object, $propName, $start, ($start + $change), $propName);
this.overwriteProps[this.overwriteProps.length] = $propName;
}
}
}//package gs.plugins
Section 56
//ShortRotationPlugin (gs.plugins.ShortRotationPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class ShortRotationPlugin extends TweenPlugin {
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function ShortRotationPlugin(){
super();
this.propName = "shortRotation";
this.overwriteProps = [];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
var p:String;
if (typeof($value) == "number"){
trace("WARNING: You appear to be using the old shortRotation syntax. Instead of passing a number, please pass an object with properties that correspond to the rotations values For example, TweenMax.to(mc, 2, {shortRotation:{rotationX:-170, rotationY:25}})");
return (false);
};
for (p in $value) {
initRotation($target, p, $target[p], $value[p]);
};
return (true);
}
public function initRotation($target:Object, $propName:String, $start:Number, $end:Number):void{
var dif:Number = (($end - $start) % 360);
if (dif != (dif % 180)){
dif = ((dif)<0) ? (dif + 360) : (dif - 360);
};
addTween($target, $propName, $start, ($start + dif), $propName);
this.overwriteProps[this.overwriteProps.length] = $propName;
}
}
}//package gs.plugins
Section 57
//TintPlugin (gs.plugins.TintPlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.geom.*;
import gs.utils.tween.*;
public class TintPlugin extends TweenPlugin {
protected var _target:DisplayObject;
protected var _ct:ColorTransform;
protected var _ignoreAlpha:Boolean;
public static const VERSION:Number = 1.1;
public static const API:Number = 1;
protected static var _props:Array = ["redMultiplier", "greenMultiplier", "blueMultiplier", "alphaMultiplier", "redOffset", "greenOffset", "blueOffset", "alphaOffset"];
public function TintPlugin(){
super();
this.propName = "tint";
this.overwriteProps = ["tint"];
}
public function init($target:DisplayObject, $end:ColorTransform):void{
var i:int;
var p:String;
_target = $target;
_ct = _target.transform.colorTransform;
i = (_props.length - 1);
while (i > -1) {
p = _props[i];
if (_ct[p] != $end[p]){
_tweens[_tweens.length] = new TweenInfo(_ct, p, _ct[p], ($end[p] - _ct[p]), "tint", false);
};
i--;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (!($target is DisplayObject)){
return (false);
};
var end:ColorTransform = new ColorTransform();
if (((!(($value == null))) && (!(($tween.exposedVars.removeTint == true))))){
end.color = uint($value);
};
_ignoreAlpha = true;
init(($target as DisplayObject), end);
return (true);
}
override public function set changeFactor($n:Number):void{
var ct:ColorTransform;
updateTweens($n);
if (_ignoreAlpha){
ct = _target.transform.colorTransform;
_ct.alphaMultiplier = ct.alphaMultiplier;
_ct.alphaOffset = ct.alphaOffset;
};
_target.transform.colorTransform = _ct;
}
}
}//package gs.plugins
Section 58
//TweenPlugin (gs.plugins.TweenPlugin)
package gs.plugins {
import gs.*;
import gs.utils.tween.*;
public class TweenPlugin {
public var overwriteProps:Array;
protected var _tweens:Array;
public var propName:String;
public var onComplete:Function;
public var round:Boolean;
protected var _changeFactor:Number;// = 0
public static const VERSION:Number = 1.03;
public static const API:Number = 1;
public function TweenPlugin(){
_tweens = [];
super();
}
protected function updateTweens($changeFactor:Number):void{
var i:int;
var ti:TweenInfo;
var val:Number;
var neg:int;
if (this.round){
i = (_tweens.length - 1);
while (i > -1) {
ti = _tweens[i];
val = (ti.start + (ti.change * $changeFactor));
neg = ((val)<0) ? -1 : 1;
ti.target[ti.property] = ((((val % 1) * neg))>0.5) ? (int(val) + neg) : int(val);
i--;
};
} else {
i = (_tweens.length - 1);
while (i > -1) {
ti = _tweens[i];
ti.target[ti.property] = (ti.start + (ti.change * $changeFactor));
i--;
};
};
}
public function set changeFactor($n:Number):void{
updateTweens($n);
_changeFactor = $n;
}
protected function addTween($object:Object, $propName:String, $start:Number, $end, $overwriteProp:String=null):void{
var change:Number;
if ($end != null){
change = ((typeof($end))=="number") ? ($end - $start) : Number($end);
if (change != 0){
_tweens[_tweens.length] = new TweenInfo($object, $propName, $start, change, (($overwriteProp) || ($propName)), false);
};
};
}
public function killProps($lookup:Object):void{
var i:int;
i = (this.overwriteProps.length - 1);
while (i > -1) {
if ((this.overwriteProps[i] in $lookup)){
this.overwriteProps.splice(i, 1);
};
i--;
};
i = (_tweens.length - 1);
while (i > -1) {
if ((_tweens[i].name in $lookup)){
_tweens.splice(i, 1);
};
i--;
};
}
public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
addTween($target, this.propName, $target[this.propName], $value, this.propName);
return (true);
}
public function get changeFactor():Number{
return (_changeFactor);
}
public static function activate($plugins:Array):Boolean{
var i:int;
var instance:Object;
i = ($plugins.length - 1);
while (i > -1) {
instance = new ($plugins[i]);
TweenLite.plugins[instance.propName] = $plugins[i];
i--;
};
return (true);
}
}
}//package gs.plugins
Section 59
//VisiblePlugin (gs.plugins.VisiblePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
public class VisiblePlugin extends TweenPlugin {
protected var _target:Object;
protected var _visible:Boolean;
protected var _tween:TweenLite;
public static const VERSION:Number = 1;
public static const API:Number = 1;
public function VisiblePlugin(){
super();
this.propName = "visible";
this.overwriteProps = ["visible"];
this.onComplete = onCompleteTween;
}
public function onCompleteTween():void{
if (((!((_tween.vars.runBackwards == true))) && ((_tween.ease == _tween.vars.ease)))){
_target.visible = _visible;
};
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
_target = $target;
_tween = $tween;
_visible = Boolean($value);
return (true);
}
override public function set changeFactor($n:Number):void{
if (_target.visible != true){
_target.visible = true;
};
}
}
}//package gs.plugins
Section 60
//VolumePlugin (gs.plugins.VolumePlugin)
package gs.plugins {
import flash.display.*;
import gs.*;
import flash.media.*;
public class VolumePlugin extends TweenPlugin {
protected var _target:Object;
protected var _st:SoundTransform;
public static const VERSION:Number = 1.01;
public static const API:Number = 1;
public function VolumePlugin(){
super();
this.propName = "volume";
this.overwriteProps = ["volume"];
}
override public function onInitTween($target:Object, $value, $tween:TweenLite):Boolean{
if (((isNaN($value)) || (!($target.hasOwnProperty("soundTransform"))))){
return (false);
};
_target = $target;
_st = _target.soundTransform;
addTween(_st, "volume", _st.volume, $value, "volume");
return (true);
}
override public function set changeFactor($n:Number):void{
updateTweens($n);
_target.soundTransform = _st;
}
}
}//package gs.plugins
Section 61
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo)
package gs.utils.tween {
public class ArrayTweenInfo {
public var change:Number;
public var start:Number;
public var index:uint;
public function ArrayTweenInfo($index:uint, $start:Number, $change:Number){
super();
this.index = $index;
this.start = $start;
this.change = $change;
}
}
}//package gs.utils.tween
Section 62
//TweenInfo (gs.utils.tween.TweenInfo)
package gs.utils.tween {
public class TweenInfo {
public var start:Number;
public var name:String;
public var change:Number;
public var target:Object;
public var property:String;
public var isPlugin:Boolean;
public function TweenInfo($target:Object, $property:String, $start:Number, $change:Number, $name:String, $isPlugin:Boolean){
super();
this.target = $target;
this.property = $property;
this.start = $start;
this.change = $change;
this.name = $name;
this.isPlugin = $isPlugin;
}
}
}//package gs.utils.tween
Section 63
//OverwriteManager (gs.OverwriteManager)
package gs {
import flash.utils.*;
import gs.utils.tween.*;
import flash.errors.*;
public class OverwriteManager {
public static const ALL:int = 1;
public static const NONE:int = 0;
public static const AUTO:int = 2;
public static const CONCURRENT:int = 3;
public static const version:Number = 3.12;
public static var mode:int;
public static var enabled:Boolean;
public function OverwriteManager(){
super();
}
public static function killVars($killVars:Object, $vars:Object, $tweens:Array):void{
var i:int;
var p:String;
var ti:TweenInfo;
i = ($tweens.length - 1);
while (i > -1) {
ti = $tweens[i];
if ((ti.name in $killVars)){
$tweens.splice(i, 1);
} else {
if (((ti.isPlugin) && ((ti.name == "_MULTIPLE_")))){
ti.target.killProps($killVars);
if (ti.target.overwriteProps.length == 0){
$tweens.splice(i, 1);
};
};
};
i--;
};
for (p in $killVars) {
delete $vars[p];
};
}
public static function manageOverwrites($tween:TweenLite, $targetTweens:Array):void{
var i:int;
var tween:TweenLite;
var tweens:Array;
var v:Object;
var j:int;
var ti:TweenInfo;
var overwriteProps:Array;
var vars:Object = $tween.vars;
var m:int = ((vars.overwrite)==undefined) ? mode : int(vars.overwrite);
if ((((m < 2)) || (($targetTweens == null)))){
return;
};
var startTime:Number = $tween.startTime;
var a:Array = [];
var index = -1;
i = ($targetTweens.length - 1);
while (i > -1) {
tween = $targetTweens[i];
if (tween == $tween){
index = i;
} else {
if ((((((i < index)) && ((tween.startTime <= startTime)))) && (((tween.startTime + ((tween.duration * 1000) / tween.combinedTimeScale)) > startTime)))){
a[a.length] = tween;
};
};
i--;
};
if ((((a.length == 0)) || (($tween.tweens.length == 0)))){
return;
};
if (m == AUTO){
tweens = $tween.tweens;
v = {};
i = (tweens.length - 1);
while (i > -1) {
ti = tweens[i];
if (ti.isPlugin){
if (ti.name == "_MULTIPLE_"){
overwriteProps = ti.target.overwriteProps;
j = (overwriteProps.length - 1);
while (j > -1) {
v[overwriteProps[j]] = true;
j--;
};
} else {
v[ti.name] = true;
};
v[ti.target.propName] = true;
} else {
v[ti.name] = true;
};
i--;
};
i = (a.length - 1);
while (i > -1) {
killVars(v, a[i].exposedVars, a[i].tweens);
i--;
};
} else {
i = (a.length - 1);
while (i > -1) {
a[i].enabled = false;
i--;
};
};
}
public static function init($mode:int=2):int{
if (TweenLite.version < 10.09){
trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com.");
};
TweenLite.overwriteManager = OverwriteManager;
mode = $mode;
enabled = true;
return (mode);
}
}
}//package gs
Section 64
//TweenLite (gs.TweenLite)
package gs {
import flash.events.*;
import flash.display.*;
import flash.utils.*;
import gs.plugins.*;
import gs.utils.tween.*;
public class TweenLite {
public var started:Boolean;
public var delay:Number;
protected var _hasUpdate:Boolean;
protected var _hasPlugins:Boolean;
public var initted:Boolean;
public var active:Boolean;
public var startTime:Number;
public var target:Object;
public var duration:Number;
public var gc:Boolean;
public var tweens:Array;
public var vars:Object;
public var ease:Function;
public var exposedVars:Object;
public var initTime:Number;
public var combinedTimeScale:Number;
public static const version:Number = 10.091;
private static var _timer:Timer = new Timer(2000);
public static var defaultEase:Function = TweenLite.easeOut;
public static var plugins:Object = {};
public static var currentTime:uint;
public static var masterList:Dictionary = new Dictionary(false);
protected static var _reservedProps:Object = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, roundProps:1, onStart:1, onStartParams:1, persist:1, renderOnStart:1, proxiedEase:1, easeParams:1, yoyo:1, loop:1, onCompleteListener:1, onUpdateListener:1, onStartListener:1, orientToBezier:1, timeScale:1};
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
public static var timingSprite:Sprite = new Sprite();
public static var overwriteManager:Object;
private static var _tlInitted:Boolean;
public function TweenLite($target:Object, $duration:Number, $vars:Object){
super();
if ($target == null){
return;
};
if (!_tlInitted){
TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin]);
currentTime = getTimer();
timingSprite.addEventListener(Event.ENTER_FRAME, updateAll, false, 0, true);
if (overwriteManager == null){
overwriteManager = {mode:1, enabled:false};
};
_timer.addEventListener("timer", killGarbage, false, 0, true);
_timer.start();
_tlInitted = true;
};
this.vars = $vars;
this.duration = (($duration) || (0.001));
this.delay = (($vars.delay) || (0));
this.combinedTimeScale = (($vars.timeScale) || (1));
this.active = Boolean(((($duration == 0)) && ((this.delay == 0))));
this.target = $target;
if (typeof(this.vars.ease) != "function"){
this.vars.ease = defaultEase;
};
if (this.vars.easeParams != null){
this.vars.proxiedEase = this.vars.ease;
this.vars.ease = easeProxy;
};
this.ease = this.vars.ease;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedVars : this.vars;
this.tweens = [];
this.initTime = currentTime;
this.startTime = (this.initTime + (this.delay * 1000));
var mode:int = (((($vars.overwrite == undefined)) || (((!(overwriteManager.enabled)) && (($vars.overwrite > 1)))))) ? overwriteManager.mode : int($vars.overwrite);
if (((!(($target in masterList))) || ((mode == 1)))){
masterList[$target] = [this];
} else {
masterList[$target].push(this);
};
if ((((((this.vars.runBackwards == true)) && (!((this.vars.renderOnStart == true))))) || (this.active))){
initTweenVals();
if (this.active){
render((this.startTime + 1));
} else {
render(this.startTime);
};
if (((((!((this.exposedVars.visible == null))) && ((this.vars.runBackwards == true)))) && ((this.target is DisplayObject)))){
this.target.visible = this.exposedVars.visible;
};
};
}
public function get enabled():Boolean{
return ((this.gc) ? false : true);
}
public function set enabled($b:Boolean):void{
var a:Array;
var found:Boolean;
var i:int;
if ($b){
if (!(this.target in masterList)){
masterList[this.target] = [this];
} else {
a = masterList[this.target];
i = (a.length - 1);
while (i > -1) {
if (a[i] == this){
found = true;
break;
};
i--;
};
if (!found){
a[a.length] = this;
};
};
};
this.gc = ($b) ? false : true;
if (this.gc){
this.active = false;
} else {
this.active = this.started;
};
}
public function clear():void{
this.tweens = [];
this.vars = (this.exposedVars = {ease:this.vars.ease});
_hasUpdate = false;
}
public function render($t:uint):void{
var factor:Number;
var ti:TweenInfo;
var i:int;
var time:Number = (($t - this.startTime) * 0.001);
if (time >= this.duration){
time = this.duration;
factor = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
factor = this.ease(time, 0, 1, this.duration);
};
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
ti.target[ti.property] = (ti.start + (factor * ti.change));
i--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (time == this.duration){
complete(true);
};
}
public function activate():void{
this.started = (this.active = true);
if (!this.initted){
initTweenVals();
};
if (this.vars.onStart != null){
this.vars.onStart.apply(null, this.vars.onStartParams);
};
if (this.duration == 0.001){
this.startTime = (this.startTime - 1);
};
}
public function initTweenVals():void{
var p:String;
var i:int;
var plugin:*;
var ti:TweenInfo;
if (((!((this.exposedVars.timeScale == undefined))) && (this.target.hasOwnProperty("timeScale")))){
this.tweens[this.tweens.length] = new TweenInfo(this.target, "timeScale", this.target.timeScale, (this.exposedVars.timeScale - this.target.timeScale), "timeScale", false);
};
for (p in this.exposedVars) {
if ((p in _reservedProps)){
} else {
if ((p in plugins)){
plugin = new (plugins[p]);
if (plugin.onInitTween(this.target, this.exposedVars[p], this) == false){
this.tweens[this.tweens.length] = new TweenInfo(this.target, p, this.target[p], ((typeof(this.exposedVars[p]))=="number") ? (this.exposedVars[p] - this.target[p]) : Number(this.exposedVars[p]), p, false);
} else {
this.tweens[this.tweens.length] = new TweenInfo(plugin, "changeFactor", 0, 1, ((plugin.overwriteProps.length)==1) ? plugin.overwriteProps[0] : "_MULTIPLE_", true);
_hasPlugins = true;
};
} else {
this.tweens[this.tweens.length] = new TweenInfo(this.target, p, this.target[p], ((typeof(this.exposedVars[p]))=="number") ? (this.exposedVars[p] - this.target[p]) : Number(this.exposedVars[p]), p, false);
};
};
};
if (this.vars.runBackwards == true){
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
ti.start = (ti.start + ti.change);
ti.change = -(ti.change);
i--;
};
};
if (this.vars.onUpdate != null){
_hasUpdate = true;
};
if (((TweenLite.overwriteManager.enabled) && ((this.target in masterList)))){
overwriteManager.manageOverwrites(this, masterList[this.target]);
};
this.initted = true;
}
protected function easeProxy($t:Number, $b:Number, $c:Number, $d:Number):Number{
return (this.vars.proxiedEase.apply(null, arguments.concat(this.vars.easeParams)));
}
public function killVars($vars:Object):void{
if (overwriteManager.enabled){
overwriteManager.killVars($vars, this.exposedVars, this.tweens);
};
}
public function complete($skipRender:Boolean=false):void{
var i:int;
if (!$skipRender){
if (!this.initted){
initTweenVals();
};
this.startTime = (currentTime - ((this.duration * 1000) / this.combinedTimeScale));
render(currentTime);
return;
};
if (_hasPlugins){
i = (this.tweens.length - 1);
while (i > -1) {
if (((this.tweens[i].isPlugin) && (!((this.tweens[i].target.onComplete == null))))){
this.tweens[i].target.onComplete();
};
i--;
};
};
if (this.vars.persist != true){
this.enabled = false;
};
if (this.vars.onComplete != null){
this.vars.onComplete.apply(null, this.vars.onCompleteParams);
};
}
public static function updateAll($e:Event=null):void{
var a:Array;
var i:int;
var tween:TweenLite;
var time:uint = (currentTime = getTimer());
var ml:Dictionary = masterList;
for each (a in ml) {
i = (a.length - 1);
while (i > -1) {
tween = a[i];
if (tween.active){
tween.render(time);
} else {
if (tween.gc){
a.splice(i, 1);
} else {
if (time >= tween.startTime){
tween.activate();
tween.render(time);
};
};
};
i--;
};
};
}
public static function removeTween($tween:TweenLite, $clear:Boolean=true):void{
if ($tween != null){
if ($clear){
$tween.clear();
};
$tween.enabled = false;
};
}
public static function killTweensOf($target:Object=null, $complete:Boolean=false):void{
var a:Array;
var i:int;
var tween:TweenLite;
if (((!(($target == null))) && (($target in masterList)))){
a = masterList[$target];
i = (a.length - 1);
while (i > -1) {
tween = a[i];
if ((($complete) && (!(tween.gc)))){
tween.complete(false);
};
tween.clear();
i--;
};
delete masterList[$target];
};
}
public static function from($target:Object, $duration:Number, $vars:Object):TweenLite{
$vars.runBackwards = true;
return (new TweenLite($target, $duration, $vars));
}
public static function easeOut($t:Number, $b:Number, $c:Number, $d:Number):Number{
$t = ($t / $d);
return ((((-($c) * $t) * ($t - 2)) + $b));
}
protected static function killGarbage($e:TimerEvent):void{
var tgt:Object;
var ml:Dictionary = masterList;
for (tgt in ml) {
if (ml[tgt].length == 0){
delete ml[tgt];
};
};
}
public static function delayedCall($delay:Number, $onComplete:Function, $onCompleteParams:Array=null):TweenLite{
return (new TweenLite($onComplete, 0, {delay:$delay, onComplete:$onComplete, onCompleteParams:$onCompleteParams, overwrite:0}));
}
public static function to($target:Object, $duration:Number, $vars:Object):TweenLite{
return (new TweenLite($target, $duration, $vars));
}
}
}//package gs
Section 65
//TweenMax (gs.TweenMax)
package gs {
import flash.events.*;
import flash.utils.*;
import gs.plugins.*;
import gs.utils.tween.*;
import gs.events.*;
public class TweenMax extends TweenLite implements IEventDispatcher {
protected var _dispatcher:EventDispatcher;
protected var _callbacks:Object;
public var pauseTime:Number;
protected var _repeatCount:Number;
protected var _timeScale:Number;
public static const version:Number = 10.1;
public static var removeTween:Function = TweenLite.removeTween;
private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init();
;
protected static var _pausedTweens:Dictionary = new Dictionary(false);
protected static var _globalTimeScale:Number = 1;
public static var killTweensOf:Function = TweenLite.killTweensOf;
public static var killDelayedCallsTo:Function = TweenLite.killTweensOf;
private static var _activatedPlugins:Boolean = TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin, HexColorsPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, BevelFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, RoundPropsPlugin, BezierPlugin, BezierThroughPlugin, ShortRotationPlugin]);
public function TweenMax($target:Object, $duration:Number, $vars:Object){
super($target, $duration, $vars);
if (TweenLite.version < 10.09){
trace("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com.");
};
if (((!((this.combinedTimeScale == 1))) && ((this.target is TweenMax)))){
_timeScale = 1;
this.combinedTimeScale = _globalTimeScale;
} else {
_timeScale = this.combinedTimeScale;
this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale);
};
if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){
this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale)));
};
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
initDispatcher();
if (((($duration == 0)) && ((this.delay == 0)))){
onUpdateDispatcher();
onCompleteDispatcher();
};
};
_repeatCount = 0;
if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){
this.vars.persist = true;
};
if ((((this.delay == 0)) && (!((this.exposedVars.startAt == null))))){
this.exposedVars.startAt.overwrite = 0;
new TweenMax(this.target, 0, this.exposedVars.startAt);
};
}
public function dispatchEvent($e:Event):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.dispatchEvent($e));
}
public function get reversed():Boolean{
return ((this.ease == reverseEase));
}
public function set reversed($b:Boolean):void{
if (this.reversed != $b){
reverse();
};
}
public function get progress():Number{
var t:Number = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime;
var p:Number = (((((t - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale);
if (p > 1){
return (1);
};
if (p < 0){
return (0);
};
return (p);
}
override public function set enabled($b:Boolean):void{
if (!$b){
_pausedTweens[this] = null;
delete _pausedTweens[this];
};
super.enabled = $b;
if ($b){
this.combinedTimeScale = (_timeScale * _globalTimeScale);
};
}
protected function onStartDispatcher(... _args):void{
if (_callbacks.onStart != null){
_callbacks.onStart.apply(null, this.vars.onStartParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START));
}
public function setDestination($property:String, $value, $adjustStartValues:Boolean=true):void{
var i:int;
var ti:TweenInfo;
var varsOld:Object;
var exposedVarsOld:Object;
var tweensOld:Array;
var hadPlugins:Boolean;
var addedTweens:Array;
var killVars:Object;
var p:Number = this.progress;
if (this.initted){
if (!$adjustStartValues){
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
if (ti.name == $property){
ti.target[ti.property] = ti.start;
};
i--;
};
};
varsOld = this.vars;
exposedVarsOld = this.exposedVars;
tweensOld = this.tweens;
hadPlugins = _hasPlugins;
this.tweens = [];
this.vars = (this.exposedVars = {});
this.vars[$property] = $value;
initTweenVals();
if (((!((this.ease == reverseEase))) && ((varsOld.ease is Function)))){
this.ease = varsOld.ease;
};
if ((($adjustStartValues) && (!((p == 0))))){
adjustStartValues();
};
addedTweens = this.tweens;
this.vars = varsOld;
this.exposedVars = exposedVarsOld;
this.tweens = tweensOld;
killVars = {};
killVars[$property] = true;
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
if (ti.name == $property){
this.tweens.splice(i, 1);
} else {
if (((ti.isPlugin) && ((ti.name == "_MULTIPLE_")))){
ti.target.killProps(killVars);
if (ti.target.overwriteProps.length == 0){
this.tweens.splice(i, 1);
};
};
};
i--;
};
this.tweens = this.tweens.concat(addedTweens);
_hasPlugins = Boolean(((hadPlugins) || (_hasPlugins)));
};
this.vars[$property] = (this.exposedVars[$property] = $value);
}
override public function initTweenVals():void{
var i:int;
var j:int;
var prop:String;
var multiProps:String;
var rp:Array;
var plugin:Object;
var ti:TweenInfo;
if (((!((this.exposedVars.startAt == null))) && (!((this.delay == 0))))){
this.exposedVars.startAt.overwrite = 0;
new TweenMax(this.target, 0, this.exposedVars.startAt);
};
super.initTweenVals();
if ((((this.exposedVars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){
rp = this.exposedVars.roundProps;
i = (rp.length - 1);
while (i > -1) {
prop = rp[i];
j = (this.tweens.length - 1);
while (j > -1) {
ti = this.tweens[j];
if (ti.name == prop){
if (ti.isPlugin){
ti.target.round = true;
} else {
if (plugin == null){
plugin = new TweenLite.plugins.roundProps();
plugin.add(ti.target, prop, ti.start, ti.change);
_hasPlugins = true;
this.tweens[j] = new TweenInfo(plugin, "changeFactor", 0, 1, prop, true);
} else {
plugin.add(ti.target, prop, ti.start, ti.change);
this.tweens.splice(j, 1);
};
};
} else {
if (((((ti.isPlugin) && ((ti.name == "_MULTIPLE_")))) && (!(ti.target.round)))){
multiProps = ((" " + ti.target.overwriteProps.join(" ")) + " ");
if (multiProps.indexOf(((" " + prop) + " ")) != -1){
ti.target.round = true;
};
};
};
j--;
};
i--;
};
};
}
public function restart($includeDelay:Boolean=false):void{
if ($includeDelay){
this.initTime = currentTime;
this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale)));
} else {
this.startTime = currentTime;
this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale)));
};
_repeatCount = 0;
if (this.target != this.vars.onComplete){
render(this.startTime);
};
this.pauseTime = NaN;
_pausedTweens[this] = null;
delete _pausedTweens[this];
this.enabled = true;
}
public function removeEventListener($type:String, $listener:Function, $useCapture:Boolean=false):void{
if (_dispatcher != null){
_dispatcher.removeEventListener($type, $listener, $useCapture);
};
}
public function addEventListener($type:String, $listener:Function, $useCapture:Boolean=false, $priority:int=0, $useWeakReference:Boolean=false):void{
if (_dispatcher == null){
initDispatcher();
};
if (((($type == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){
this.vars.onUpdate = onUpdateDispatcher;
_hasUpdate = true;
};
_dispatcher.addEventListener($type, $listener, $useCapture, $priority, $useWeakReference);
}
protected function adjustStartValues():void{
var factor:Number;
var inv:Number;
var endValue:Number;
var ti:TweenInfo;
var i:int;
var p:Number = this.progress;
if (p != 0){
factor = this.ease(p, 0, 1, 1);
inv = (1 / (1 - factor));
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
endValue = (ti.start + ti.change);
if (ti.isPlugin){
ti.change = ((endValue - factor) * inv);
} else {
ti.change = ((endValue - ti.target[ti.property]) * inv);
};
ti.start = (endValue - ti.change);
i--;
};
};
}
override public function render($t:uint):void{
var factor:Number;
var ti:TweenInfo;
var i:int;
var time:Number = ((($t - this.startTime) * 0.001) * this.combinedTimeScale);
if (time >= this.duration){
time = this.duration;
factor = ((((this.ease == this.vars.ease)) || ((this.duration == 0.001)))) ? 1 : 0;
} else {
factor = this.ease(time, 0, 1, this.duration);
};
i = (this.tweens.length - 1);
while (i > -1) {
ti = this.tweens[i];
ti.target[ti.property] = (ti.start + (factor * ti.change));
i--;
};
if (_hasUpdate){
this.vars.onUpdate.apply(null, this.vars.onUpdateParams);
};
if (time == this.duration){
complete(true);
};
}
protected function initDispatcher():void{
var v:Object;
var p:String;
if (_dispatcher == null){
_dispatcher = new EventDispatcher(this);
_callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete};
if (this.vars.isTV == true){
this.vars = this.vars.clone();
} else {
v = {};
for (p in this.vars) {
v[p] = this.vars[p];
};
this.vars = v;
};
this.vars.onStart = onStartDispatcher;
this.vars.onComplete = onCompleteDispatcher;
if ((this.vars.onStartListener is Function)){
_dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true);
};
if ((this.vars.onUpdateListener is Function)){
_dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true);
this.vars.onUpdate = onUpdateDispatcher;
_hasUpdate = true;
};
if ((this.vars.onCompleteListener is Function)){
_dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true);
};
};
}
public function willTrigger($type:String):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.willTrigger($type));
}
public function set progress($n:Number):void{
this.startTime = (currentTime - ((this.duration * $n) * 1000));
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
if (!this.started){
activate();
};
render(currentTime);
if (!isNaN(this.pauseTime)){
this.pauseTime = currentTime;
this.startTime = 999999999999999;
this.active = false;
};
}
public function reverse($adjustDuration:Boolean=true, $forcePlay:Boolean=true):void{
this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease;
var p:Number = this.progress;
if ((($adjustDuration) && ((p > 0)))){
this.startTime = (currentTime - ((((1 - p) * this.duration) * 1000) / this.combinedTimeScale));
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
};
if ($forcePlay != false){
if (p < 1){
resume();
} else {
restart();
};
};
}
protected function onUpdateDispatcher(... _args):void{
if (_callbacks.onUpdate != null){
_callbacks.onUpdate.apply(null, this.vars.onUpdateParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE));
}
public function set paused($b:Boolean):void{
if ($b){
pause();
} else {
resume();
};
}
public function resume():void{
this.enabled = true;
if (!isNaN(this.pauseTime)){
this.initTime = (this.initTime + (currentTime - this.pauseTime));
this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale)));
this.pauseTime = NaN;
if (((!(this.started)) && ((currentTime >= this.startTime)))){
activate();
} else {
this.active = this.started;
};
_pausedTweens[this] = null;
delete _pausedTweens[this];
};
}
public function get paused():Boolean{
return (!(isNaN(this.pauseTime)));
}
public function reverseEase($t:Number, $b:Number, $c:Number, $d:Number):Number{
return (this.vars.ease(($d - $t), $b, $c, $d));
}
public function killProperties($names:Array):void{
var i:int;
var v:Object = {};
i = ($names.length - 1);
while (i > -1) {
v[$names[i]] = true;
i--;
};
killVars(v);
}
public function hasEventListener($type:String):Boolean{
if (_dispatcher == null){
return (false);
};
return (_dispatcher.hasEventListener($type));
}
public function pause():void{
if (isNaN(this.pauseTime)){
this.pauseTime = currentTime;
this.startTime = 999999999999999;
this.enabled = false;
_pausedTweens[this] = this;
};
}
override public function complete($skipRender:Boolean=false):void{
if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){
_repeatCount++;
if (!isNaN(this.vars.yoyo)){
this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease;
};
this.startTime = ($skipRender) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime;
this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale)));
} else {
if (this.vars.persist == true){
pause();
};
};
super.complete($skipRender);
}
public function set timeScale($n:Number):void{
if ($n < 1E-5){
$n = (_timeScale = 1E-5);
} else {
_timeScale = $n;
$n = ($n * _globalTimeScale);
};
this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / $n))) - (this.delay * (1000 / $n)));
if (this.startTime != 999999999999999){
this.startTime = (this.initTime + (this.delay * (1000 / $n)));
};
this.combinedTimeScale = $n;
}
public function invalidate($adjustStartValues:Boolean=true):void{
var p:Number;
if (this.initted){
p = this.progress;
if (((!($adjustStartValues)) && (!((p == 0))))){
this.progress = 0;
};
this.tweens = [];
_hasPlugins = false;
this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars;
initTweenVals();
_timeScale = ((this.vars.timeScale) || (1));
this.combinedTimeScale = (_timeScale * _globalTimeScale);
this.delay = ((this.vars.delay) || (0));
if (isNaN(this.pauseTime)){
this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale));
};
if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){
if (_dispatcher != null){
this.vars.onStart = _callbacks.onStart;
this.vars.onUpdate = _callbacks.onUpdate;
this.vars.onComplete = _callbacks.onComplete;
_dispatcher = null;
};
initDispatcher();
};
if (p != 0){
if ($adjustStartValues){
adjustStartValues();
} else {
this.progress = p;
};
};
};
}
public function get timeScale():Number{
return (_timeScale);
}
protected function onCompleteDispatcher(... _args):void{
if (_callbacks.onComplete != null){
_callbacks.onComplete.apply(null, this.vars.onCompleteParams);
};
_dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE));
}
public static function set globalTimeScale($n:Number):void{
setGlobalTimeScale($n);
}
public static function pauseAll($tweens:Boolean=true, $delayedCalls:Boolean=false):void{
changePause(true, $tweens, $delayedCalls);
}
public static function killAllDelayedCalls($complete:Boolean=false):void{
killAll($complete, false, true);
}
public static function setGlobalTimeScale($scale:Number):void{
var i:int;
var a:Array;
if ($scale < 1E-5){
$scale = 1E-5;
};
var ml:Dictionary = masterList;
_globalTimeScale = $scale;
for each (a in ml) {
i = (a.length - 1);
while (i > -1) {
if ((a[i] is TweenMax)){
a[i].timeScale = (a[i].timeScale * 1);
};
i--;
};
};
}
public static function get globalTimeScale():Number{
return (_globalTimeScale);
}
public static function getTweensOf($target:Object):Array{
var tween:TweenLite;
var i:int;
var a:Array = masterList[$target];
var toReturn:Array = [];
if (a != null){
i = (a.length - 1);
while (i > -1) {
if (!a[i].gc){
toReturn[toReturn.length] = a[i];
};
i--;
};
};
for each (tween in _pausedTweens) {
if (tween.target == $target){
toReturn[toReturn.length] = tween;
};
};
return (toReturn);
}
public static function delayedCall($delay:Number, $onComplete:Function, $onCompleteParams:Array=null, $persist:Boolean=false):TweenMax{
return (new TweenMax($onComplete, 0, {delay:$delay, onComplete:$onComplete, onCompleteParams:$onCompleteParams, persist:$persist, overwrite:0}));
}
public static function isTweening($target:Object):Boolean{
var a:Array = getTweensOf($target);
var i:int = (a.length - 1);
while (i > -1) {
if (((((a[i].active) || ((a[i].startTime == currentTime)))) && (!(a[i].gc)))){
return (true);
};
i--;
};
return (false);
}
public static function changePause($pause:Boolean, $tweens:Boolean=true, $delayedCalls:Boolean=false):void{
var isDC:Boolean;
var a:Array = getAllTweens();
var i:int = (a.length - 1);
while (i > -1) {
isDC = (a[i].target == a[i].vars.onComplete);
if ((((a[i] is TweenMax)) && ((((isDC == $delayedCalls)) || (!((isDC == $tweens))))))){
a[i].paused = $pause;
};
i--;
};
}
public static function killAllTweens($complete:Boolean=false):void{
killAll($complete, true, false);
}
public static function from($target:Object, $duration:Number, $vars:Object):TweenMax{
$vars.runBackwards = true;
return (new TweenMax($target, $duration, $vars));
}
public static function killAll($complete:Boolean=false, $tweens:Boolean=true, $delayedCalls:Boolean=true):void{
var isDC:Boolean;
var i:int;
var a:Array = getAllTweens();
i = (a.length - 1);
while (i > -1) {
isDC = (a[i].target == a[i].vars.onComplete);
if ((((isDC == $delayedCalls)) || (!((isDC == $tweens))))){
if ($complete){
a[i].complete(false);
a[i].clear();
} else {
TweenLite.removeTween(a[i], true);
};
};
i--;
};
}
public static function getAllTweens():Array{
var a:Array;
var i:int;
var tween:TweenLite;
var ml:Dictionary = masterList;
var toReturn:Array = [];
for each (a in ml) {
i = (a.length - 1);
while (i > -1) {
if (!a[i].gc){
toReturn[toReturn.length] = a[i];
};
i--;
};
};
for each (tween in _pausedTweens) {
toReturn[toReturn.length] = tween;
};
return (toReturn);
}
public static function resumeAll($tweens:Boolean=true, $delayedCalls:Boolean=false):void{
changePause(false, $tweens, $delayedCalls);
}
public static function to($target:Object, $duration:Number, $vars:Object):TweenMax{
return (new TweenMax($target, $duration, $vars));
}
}
}//package gs
Section 66
//attack_animation_50 (library_fla.attack_animation_50)
package library_fla {
import flash.display.*;
public dynamic class attack_animation_50 extends MovieClip {
public function attack_animation_50(){
addFrameScript(0, this.frame1, 65, this.frame66, 88, this.frame89, 148, this.frame149, 203, this.frame204, 238, this.frame239, 262, this.frame263, 350, this.frame351, 374, this.frame375, 392, this.frame393, 418, this.frame419, 439, this.frame440, 476, this.frame477, 541, this.frame542, 565, this.frame566, 601, this.frame602);
}
function frame393(){
stop();
}
function frame351(){
stop();
}
function frame440(){
stop();
}
function frame375(){
stop();
}
function frame542(){
stop();
}
function frame477(){
stop();
}
function frame566(){
stop();
}
function frame149(){
stop();
}
function frame1(){
}
function frame66(){
stop();
}
function frame89(){
stop();
}
function frame419(){
stop();
}
function frame204(){
stop();
}
function frame263(){
stop();
}
function frame239(){
stop();
}
function frame602(){
stop();
}
}
}//package library_fla
Section 67
//line1_54 (library_fla.line1_54)
package library_fla {
import flash.display.*;
public dynamic class line1_54 extends MovieClip {
public function line1_54(){
addFrameScript(61, this.frame62);
}
function frame62(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 68
//line3_bottom_92 (library_fla.line3_bottom_92)
package library_fla {
import flash.display.*;
public dynamic class line3_bottom_92 extends MovieClip {
public function line3_bottom_92(){
addFrameScript(56, this.frame57);
}
function frame57(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 69
//lines_2_69 (library_fla.lines_2_69)
package library_fla {
import flash.display.*;
public dynamic class lines_2_69 extends MovieClip {
public function lines_2_69(){
addFrameScript(93, this.frame94);
}
function frame94(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 70
//lines_2_right_70 (library_fla.lines_2_right_70)
package library_fla {
import flash.display.*;
public dynamic class lines_2_right_70 extends MovieClip {
public function lines_2_right_70(){
addFrameScript(79, this.frame80);
}
function frame80(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 71
//lines_download_left_107 (library_fla.lines_download_left_107)
package library_fla {
import flash.display.*;
public dynamic class lines_download_left_107 extends MovieClip {
public function lines_download_left_107(){
addFrameScript(78, this.frame79);
}
function frame79(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 72
//lines_download_right_109 (library_fla.lines_download_right_109)
package library_fla {
import flash.display.*;
public dynamic class lines_download_right_109 extends MovieClip {
public function lines_download_right_109(){
addFrameScript(73, this.frame74);
}
function frame74(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 73
//lines_upload_left_111 (library_fla.lines_upload_left_111)
package library_fla {
import flash.display.*;
public dynamic class lines_upload_left_111 extends MovieClip {
public function lines_upload_left_111(){
addFrameScript(78, this.frame79);
}
function frame79(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 74
//lines_upload_right_113 (library_fla.lines_upload_right_113)
package library_fla {
import flash.display.*;
public dynamic class lines_upload_right_113 extends MovieClip {
public function lines_upload_right_113(){
addFrameScript(73, this.frame74);
}
function frame74(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 75
//story1_frame1_enter_52 (library_fla.story1_frame1_enter_52)
package library_fla {
import flash.display.*;
public dynamic class story1_frame1_enter_52 extends MovieClip {
public function story1_frame1_enter_52(){
addFrameScript(149, this.frame150);
}
function frame150(){
stop();
}
}
}//package library_fla
Section 76
//story1_frame3_enter_65 (library_fla.story1_frame3_enter_65)
package library_fla {
import flash.display.*;
public dynamic class story1_frame3_enter_65 extends MovieClip {
public function story1_frame3_enter_65(){
addFrameScript(298, this.frame299);
}
function frame299(){
stop();
}
}
}//package library_fla
Section 77
//story1_frame3_exit_66 (library_fla.story1_frame3_exit_66)
package library_fla {
import flash.display.*;
public dynamic class story1_frame3_exit_66 extends MovieClip {
public function story1_frame3_exit_66(){
addFrameScript(24, this.frame25);
}
function frame25(){
stop();
}
}
}//package library_fla
Section 78
//story1_frame4_exit_85 (library_fla.story1_frame4_exit_85)
package library_fla {
import flash.display.*;
public dynamic class story1_frame4_exit_85 extends MovieClip {
public function story1_frame4_exit_85(){
addFrameScript(25, this.frame26);
}
function frame26(){
stop();
}
}
}//package library_fla
Section 79
//story1_frame4_exitflv_78 (library_fla.story1_frame4_exitflv_78)
package library_fla {
import flash.display.*;
public dynamic class story1_frame4_exitflv_78 extends MovieClip {
public function story1_frame4_exitflv_78(){
addFrameScript(103, this.frame104);
}
function frame104(){
stop();
}
}
}//package library_fla
Section 80
//story1_step2_line_64 (library_fla.story1_step2_line_64)
package library_fla {
import flash.display.*;
public dynamic class story1_step2_line_64 extends MovieClip {
public function story1_step2_line_64(){
addFrameScript(82, this.frame83);
}
function frame83(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 81
//story2_exit_99 (library_fla.story2_exit_99)
package library_fla {
import flash.display.*;
public dynamic class story2_exit_99 extends MovieClip {
public function story2_exit_99(){
addFrameScript(18, this.frame19, 268, this.frame269);
}
function frame269(){
stop();
}
function frame19(){
stop();
}
}
}//package library_fla
Section 82
//story2_frame1_enter_86 (library_fla.story2_frame1_enter_86)
package library_fla {
import flash.display.*;
public dynamic class story2_frame1_enter_86 extends MovieClip {
public function story2_frame1_enter_86(){
addFrameScript(104, this.frame105);
}
function frame105(){
stop();
}
}
}//package library_fla
Section 83
//story2_frame2_transition_98 (library_fla.story2_frame2_transition_98)
package library_fla {
import flash.display.*;
public dynamic class story2_frame2_transition_98 extends MovieClip {
public function story2_frame2_transition_98(){
addFrameScript(266, this.frame267);
}
function frame267(){
stop();
}
}
}//package library_fla
Section 84
//story2_step2_left_lines_94 (library_fla.story2_step2_left_lines_94)
package library_fla {
import flash.display.*;
public dynamic class story2_step2_left_lines_94 extends MovieClip {
public function story2_step2_left_lines_94(){
addFrameScript(64, this.frame65);
}
function frame65(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 85
//story2_step2_lines_right_90 (library_fla.story2_step2_lines_right_90)
package library_fla {
import flash.display.*;
public dynamic class story2_step2_lines_right_90 extends MovieClip {
public function story2_step2_lines_right_90(){
addFrameScript(78, this.frame79);
}
function frame79(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 86
//story3_frame1_enter_100 (library_fla.story3_frame1_enter_100)
package library_fla {
import flash.display.*;
public dynamic class story3_frame1_enter_100 extends MovieClip {
public function story3_frame1_enter_100(){
addFrameScript(180, this.frame181);
}
function frame181(){
stop();
}
}
}//package library_fla
Section 87
//story3_frame1_exit_1_101 (library_fla.story3_frame1_exit_1_101)
package library_fla {
import flash.display.*;
public dynamic class story3_frame1_exit_1_101 extends MovieClip {
public function story3_frame1_exit_1_101(){
addFrameScript(20, this.frame21);
}
function frame21(){
stop();
}
}
}//package library_fla
Section 88
//story3_frame2_enter_102 (library_fla.story3_frame2_enter_102)
package library_fla {
import flash.display.*;
public dynamic class story3_frame2_enter_102 extends MovieClip {
public function story3_frame2_enter_102(){
addFrameScript(44, this.frame45);
}
function frame45(){
stop();
}
}
}//package library_fla
Section 89
//story3_frame2_exit_106 (library_fla.story3_frame2_exit_106)
package library_fla {
import flash.display.*;
public dynamic class story3_frame2_exit_106 extends MovieClip {
public function story3_frame2_exit_106(){
addFrameScript(19, this.frame20);
}
function frame20(){
stop();
}
}
}//package library_fla
Section 90
//story3_step3_bottom_line_104 (library_fla.story3_step3_bottom_line_104)
package library_fla {
import flash.display.*;
public dynamic class story3_step3_bottom_line_104 extends MovieClip {
public function story3_step3_bottom_line_104(){
addFrameScript(56, this.frame57);
}
function frame57(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 91
//story3_step3_left_lines_105 (library_fla.story3_step3_left_lines_105)
package library_fla {
import flash.display.*;
public dynamic class story3_step3_left_lines_105 extends MovieClip {
public function story3_step3_left_lines_105(){
addFrameScript(71, this.frame72);
}
function frame72(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 92
//story3_step3_lines_rightcopy_103 (library_fla.story3_step3_lines_rightcopy_103)
package library_fla {
import flash.display.*;
public dynamic class story3_step3_lines_rightcopy_103 extends MovieClip {
public function story3_step3_lines_rightcopy_103(){
addFrameScript(78, this.frame79);
}
function frame79(){
gotoAndPlay("loop");
}
}
}//package library_fla
Section 93
//invisibutton (invisibutton)
package {
import com.domani.components.ui.*;
public dynamic class invisibutton extends Button {
}
}//package
Section 94
//LibCriminalLifeCycleNextButton (LibCriminalLifeCycleNextButton)
package {
import com.domani.components.ui.*;
public dynamic class LibCriminalLifeCycleNextButton extends Button {
}
}//package
Section 95
//LibCriminalLifeCyclePrevButton (LibCriminalLifeCyclePrevButton)
package {
import com.domani.components.ui.*;
public dynamic class LibCriminalLifeCyclePrevButton extends Button {
}
}//package
Section 96
//LibFonts (LibFonts)
package {
import flash.display.*;
public dynamic class LibFonts extends MovieClip {
}
}//package
Section 97
//LibInfection (LibInfection)
package {
import flash.display.*;
public dynamic class LibInfection extends MovieClip {
}
}//package
Section 98
//LibInfectionMap (LibInfectionMap)
package {
import flash.display.*;
public dynamic class LibInfectionMap extends MovieClip {
public var infection:MovieClip;
}
}//package
Section 99
//LibLaptops (LibLaptops)
package {
import flash.events.*;
import flash.display.*;
public dynamic class LibLaptops extends MovieClip {
public var btn1:invisibutton;
public var btn2:invisibutton;
public var btn3:invisibutton;
public function LibLaptops(){
addFrameScript(0, this.frame1, 19, this.frame20, 137, this.frame138, 153, this.frame154);
}
function frame154(){
dispatchEvent(new Event("onCollapsed"));
stop();
}
function frame1(){
stop();
}
function frame138(){
stop();
}
function frame20(){
dispatchEvent(new Event("onExpanded"));
}
}
}//package
Section 100
//LibLongYellowButtonBg (LibLongYellowButtonBg)
package {
import flash.display.*;
public dynamic class LibLongYellowButtonBg extends MovieClip {
}
}//package
Section 101
//LibLongYellowButtonDisabledBg (LibLongYellowButtonDisabledBg)
package {
import flash.display.*;
public dynamic class LibLongYellowButtonDisabledBg extends MovieClip {
}
}//package
Section 102
//LibMapAnim (LibMapAnim)
package {
import flash.display.*;
public dynamic class LibMapAnim extends MovieClip {
public var map:MovieClip;
public function LibMapAnim(){
addFrameScript(0, this.frame1, 35, this.frame36, 67, this.frame68, 86, this.frame87, 101, this.frame102);
}
function frame36(){
stop();
}
function frame1(){
stop();
}
function frame102(){
stop();
}
function frame87(){
stop();
}
function frame68(){
stop();
}
}
}//package
Section 103
//LibMapShading (LibMapShading)
package {
import flash.display.*;
public dynamic class LibMapShading extends MovieClip {
}
}//package
Section 104
//LibPin (LibPin)
package {
import flash.display.*;
public dynamic class LibPin extends MovieClip {
public function LibPin(){
addFrameScript(12, this.frame13);
}
function frame13(){
stop();
}
}
}//package
Section 105
//LibSiteLinkButtonArrow (LibSiteLinkButtonArrow)
package {
import flash.display.*;
public dynamic class LibSiteLinkButtonArrow extends MovieClip {
}
}//package
Section 106
//LibXIcon (LibXIcon)
package {
import flash.display.*;
public dynamic class LibXIcon extends MovieClip {
}
}//package