home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / managers / WindowedSystemManager.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  103.5 KB  |  3,062 lines

  1. package mx.managers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.display.Graphics;
  6.    import flash.display.InteractiveObject;
  7.    import flash.display.Loader;
  8.    import flash.display.LoaderInfo;
  9.    import flash.display.MovieClip;
  10.    import flash.display.Sprite;
  11.    import flash.display.Stage;
  12.    import flash.display.StageAlign;
  13.    import flash.display.StageScaleMode;
  14.    import flash.events.Event;
  15.    import flash.events.IEventDispatcher;
  16.    import flash.events.MouseEvent;
  17.    import flash.geom.Point;
  18.    import flash.geom.Rectangle;
  19.    import flash.system.ApplicationDomain;
  20.    import flash.text.Font;
  21.    import flash.text.TextFormat;
  22.    import flash.ui.ContextMenu;
  23.    import flash.utils.Dictionary;
  24.    import mx.core.EventPriority;
  25.    import mx.core.FlexSprite;
  26.    import mx.core.IChildList;
  27.    import mx.core.IFlexDisplayObject;
  28.    import mx.core.IFlexModule;
  29.    import mx.core.ISWFBridgeGroup;
  30.    import mx.core.ISWFBridgeProvider;
  31.    import mx.core.ISWFLoader;
  32.    import mx.core.IUIComponent;
  33.    import mx.core.SWFBridgeGroup;
  34.    import mx.core.Singleton;
  35.    import mx.core.Window;
  36.    import mx.core.mx_internal;
  37.    import mx.events.EventListenerRequest;
  38.    import mx.events.FlexChangeEvent;
  39.    import mx.events.FlexEvent;
  40.    import mx.events.InterManagerRequest;
  41.    import mx.events.SWFBridgeEvent;
  42.    import mx.events.SWFBridgeRequest;
  43.    import mx.events.SandboxMouseEvent;
  44.    import mx.managers.systemClasses.EventProxy;
  45.    import mx.managers.systemClasses.PlaceholderData;
  46.    import mx.managers.systemClasses.RemotePopUp;
  47.    import mx.styles.ISimpleStyleClient;
  48.    import mx.styles.IStyleClient;
  49.    import mx.utils.EventUtil;
  50.    import mx.utils.NameUtil;
  51.    import mx.utils.SecurityUtil;
  52.    
  53.    use namespace mx_internal;
  54.    
  55.    public class WindowedSystemManager extends MovieClip implements ISystemManager, ISWFBridgeProvider
  56.    {
  57.       mx_internal var nestLevel:int = 0;
  58.       
  59.       private var currentSandboxEvent:Event;
  60.       
  61.       private var originalSystemManager:SystemManager;
  62.       
  63.       private var forms:Array = [];
  64.       
  65.       private var mouseCatcher:Sprite;
  66.       
  67.       private var _height:Number;
  68.       
  69.       private var dispatchingToSystemManagers:Boolean = false;
  70.       
  71.       private var strongReferenceProxies:Dictionary = new Dictionary(false);
  72.       
  73.       private var _document:Object;
  74.       
  75.       private var _rawChildren:WindowedSystemRawChildrenList;
  76.       
  77.       private var _topLevelSystemManager:ISystemManager;
  78.       
  79.       private var _toolTipIndex:int = 0;
  80.       
  81.       private var _bridgeToFocusManager:Dictionary;
  82.       
  83.       private var idToPlaceholder:Object;
  84.       
  85.       private var _swfBridgeGroup:ISWFBridgeGroup;
  86.       
  87.       private var myWindow:Window;
  88.       
  89.       private var _toolTipChildren:WindowedSystemChildrenList;
  90.       
  91.       private var form:Object;
  92.       
  93.       private var _width:Number;
  94.       
  95.       private var initialized:Boolean = false;
  96.       
  97.       private var _focusPane:Sprite;
  98.       
  99.       private var _popUpChildren:WindowedSystemChildrenList;
  100.       
  101.       private var isStageRoot:Boolean = true;
  102.       
  103.       private var _fontList:Object = null;
  104.       
  105.       private var _window:Window = null;
  106.       
  107.       private var _topMostIndex:int = 0;
  108.       
  109.       private var topLevel:Boolean = true;
  110.       
  111.       private var weakReferenceProxies:Dictionary = new Dictionary(true);
  112.       
  113.       private var _cursorIndex:int = 0;
  114.       
  115.       private var isBootstrapRoot:Boolean = false;
  116.       
  117.       mx_internal var _mouseY:*;
  118.       
  119.       mx_internal var _mouseX:*;
  120.       
  121.       private var _numModalWindows:int = 0;
  122.       
  123.       mx_internal var idleCounter:int = 0;
  124.       
  125.       private var _screen:Rectangle;
  126.       
  127.       private var _cursorChildren:WindowedSystemChildrenList;
  128.       
  129.       private var _noTopMostIndex:int = 0;
  130.       
  131.       private var _applicationIndex:int = 1;
  132.       
  133.       private var isDispatchingResizeEvent:Boolean;
  134.       
  135.       private var eventProxy:EventProxy;
  136.       
  137.       mx_internal var topLevelWindow:IUIComponent;
  138.       
  139.       public function WindowedSystemManager(param1:IUIComponent)
  140.       {
  141.          super();
  142.          _topLevelSystemManager = this;
  143.          mx_internal::topLevelWindow = param1;
  144.          SystemManagerGlobals.topLevelSystemManagers.push(this);
  145.          addEventListener(Event.ADDED,docFrameHandler);
  146.       }
  147.       
  148.       private static function areRemotePopUpsEqual(param1:Object, param2:Object) : Boolean
  149.       {
  150.          if(!(param1 is RemotePopUp))
  151.          {
  152.             return false;
  153.          }
  154.          if(!(param2 is RemotePopUp))
  155.          {
  156.             return false;
  157.          }
  158.          var _loc3_:RemotePopUp = RemotePopUp(param1);
  159.          var _loc4_:RemotePopUp = RemotePopUp(param2);
  160.          if(_loc3_.window == _loc4_.window && _loc3_.bridge && Boolean(_loc4_.bridge))
  161.          {
  162.             return true;
  163.          }
  164.          return false;
  165.       }
  166.       
  167.       private static function isRemotePopUp(param1:Object) : Boolean
  168.       {
  169.          return !(param1 is IFocusManagerContainer);
  170.       }
  171.       
  172.       private static function getChildListIndex(param1:IChildList, param2:Object) : int
  173.       {
  174.          var childList:IChildList = param1;
  175.          var f:Object = param2;
  176.          var index:int = -1;
  177.          try
  178.          {
  179.             index = int(childList.getChildIndex(DisplayObject(f)));
  180.          }
  181.          catch(e:ArgumentError)
  182.          {
  183.          }
  184.          return index;
  185.       }
  186.       
  187.       private function removeEventListenerFromSandboxes(param1:String, param2:Function, param3:Boolean = false, param4:IEventDispatcher = null) : void
  188.       {
  189.          var _loc8_:int = 0;
  190.          if(!swfBridgeGroup)
  191.          {
  192.             return;
  193.          }
  194.          var _loc5_:EventListenerRequest = new EventListenerRequest(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,false,false,param1,param3);
  195.          var _loc6_:IEventDispatcher = swfBridgeGroup.parentBridge;
  196.          if((Boolean(_loc6_)) && _loc6_ != param4)
  197.          {
  198.             _loc6_.removeEventListener(param1,param2,param3);
  199.          }
  200.          var _loc7_:Array = swfBridgeGroup.getChildBridges();
  201.          while(_loc8_ < _loc7_.length)
  202.          {
  203.             if(_loc7_[_loc8_] != param4)
  204.             {
  205.                IEventDispatcher(_loc7_[_loc8_]).removeEventListener(param1,param2,param3);
  206.             }
  207.             _loc8_++;
  208.          }
  209.          dispatchEventFromSWFBridges(_loc5_,param4);
  210.       }
  211.       
  212.       private function dispatchEventToOtherSystemManagers(param1:Event) : void
  213.       {
  214.          SystemManagerGlobals.dispatchingEventToOtherSystemManagers = true;
  215.          var _loc2_:Array = SystemManagerGlobals.topLevelSystemManagers;
  216.          var _loc3_:int = int(_loc2_.length);
  217.          var _loc4_:int = 0;
  218.          while(_loc4_ < _loc3_)
  219.          {
  220.             if(_loc2_[_loc4_] != this)
  221.             {
  222.                _loc2_[_loc4_].dispatchEvent(param1);
  223.             }
  224.             _loc4_++;
  225.          }
  226.          SystemManagerGlobals.dispatchingEventToOtherSystemManagers = false;
  227.       }
  228.       
  229.       private function initManagerHandler(param1:Event) : void
  230.       {
  231.          var name:String;
  232.          var event:Event = param1;
  233.          if(!SystemManagerGlobals.dispatchingEventToOtherSystemManagers)
  234.          {
  235.             dispatchEventToOtherSystemManagers(event);
  236.          }
  237.          if(event is InterManagerRequest)
  238.          {
  239.             return;
  240.          }
  241.          name = event["name"];
  242.          try
  243.          {
  244.             Singleton.getInstance(name);
  245.          }
  246.          catch(e:Error)
  247.          {
  248.          }
  249.       }
  250.       
  251.       mx_internal function rawChildren_getObjectsUnderPoint(param1:Point) : Array
  252.       {
  253.          return super.getObjectsUnderPoint(param1);
  254.       }
  255.       
  256.       public function get preloadedRSLs() : Dictionary
  257.       {
  258.          return null;
  259.       }
  260.       
  261.       private function getSizeRequestHandler(param1:Event) : void
  262.       {
  263.       }
  264.       
  265.       mx_internal function findFocusManagerContainer(param1:SystemManagerProxy) : IFocusManagerContainer
  266.       {
  267.          var _loc5_:DisplayObject = null;
  268.          var _loc2_:IChildList = param1.rawChildren;
  269.          var _loc3_:int = int(_loc2_.numChildren);
  270.          var _loc4_:int = 0;
  271.          while(_loc4_ < _loc3_)
  272.          {
  273.             _loc5_ = _loc2_.getChildAt(_loc4_);
  274.             if(_loc5_ is IFocusManagerContainer)
  275.             {
  276.                return IFocusManagerContainer(_loc5_);
  277.             }
  278.             _loc4_++;
  279.          }
  280.          return null;
  281.       }
  282.       
  283.       private function addPlaceholderPopupRequestHandler(param1:Event) : void
  284.       {
  285.          var _loc3_:RemotePopUp = null;
  286.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  287.          if(param1.target != this && param1 is SWFBridgeRequest)
  288.          {
  289.             return;
  290.          }
  291.          if(!forwardPlaceholderRequest(_loc2_,true))
  292.          {
  293.             _loc3_ = new RemotePopUp(_loc2_.data.placeHolderId,_loc2_.requestor);
  294.             forms.push(_loc3_);
  295.          }
  296.       }
  297.       
  298.       private function activateApplicationSandboxEventHandler(param1:Event) : void
  299.       {
  300.          if(!isTopLevelRoot())
  301.          {
  302.             swfBridgeGroup.parentBridge.dispatchEvent(param1);
  303.             return;
  304.          }
  305.          activateForm(document);
  306.       }
  307.       
  308.       private function getVisibleRectRequestHandler(param1:Event) : void
  309.       {
  310.          var _loc5_:Rectangle = null;
  311.          var _loc7_:Point = null;
  312.          var _loc8_:IEventDispatcher = null;
  313.          if(param1 is SWFBridgeRequest)
  314.          {
  315.             return;
  316.          }
  317.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  318.          var _loc3_:Rectangle = Rectangle(_loc2_.data);
  319.          var _loc4_:DisplayObject = DisplayObject(swfBridgeGroup.getChildBridgeProvider(_loc2_.requestor));
  320.          var _loc6_:Boolean = true;
  321.          if(!DisplayObjectContainer(document).contains(_loc4_))
  322.          {
  323.             _loc6_ = false;
  324.          }
  325.          if(_loc4_ is ISWFLoader)
  326.          {
  327.             _loc5_ = ISWFLoader(_loc4_).getVisibleApplicationRect();
  328.          }
  329.          else
  330.          {
  331.             _loc5_ = _loc4_.getBounds(this);
  332.             _loc7_ = localToGlobal(_loc5_.topLeft);
  333.             _loc5_.x = _loc7_.x;
  334.             _loc5_.y = _loc7_.y;
  335.          }
  336.          _loc3_ = _loc3_.intersection(_loc5_);
  337.          _loc2_.data = _loc3_;
  338.          if(_loc6_ && useSWFBridge())
  339.          {
  340.             _loc8_ = swfBridgeGroup.parentBridge;
  341.             _loc2_.requestor = _loc8_;
  342.             _loc8_.dispatchEvent(_loc2_);
  343.          }
  344.          Object(param1).data = _loc2_.data;
  345.       }
  346.       
  347.       mx_internal function notifyStyleChangeInChildren(param1:String, param2:Boolean) : void
  348.       {
  349.          var _loc6_:IStyleClient = null;
  350.          var _loc3_:Boolean = false;
  351.          var _loc4_:int = int(rawChildren.numChildren);
  352.          var _loc5_:int = 0;
  353.          while(_loc5_ < _loc4_)
  354.          {
  355.             _loc6_ = rawChildren.getChildAt(_loc5_) as IStyleClient;
  356.             if(_loc6_)
  357.             {
  358.                _loc6_.styleChanged(param1);
  359.                _loc6_.notifyStyleChangeInChildren(param1,param2);
  360.             }
  361.             if(isTopLevelWindow(DisplayObject(_loc6_)))
  362.             {
  363.                _loc3_ = true;
  364.             }
  365.             _loc4_ = int(rawChildren.numChildren);
  366.             _loc5_++;
  367.          }
  368.          if(!_loc3_ && mx_internal::topLevelWindow is IStyleClient)
  369.          {
  370.             IStyleClient(mx_internal::topLevelWindow).styleChanged(param1);
  371.             IStyleClient(mx_internal::topLevelWindow).notifyStyleChangeInChildren(param1,param2);
  372.          }
  373.       }
  374.       
  375.       private function addEventListenerToOtherSystemManagers(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false) : void
  376.       {
  377.          var _loc6_:Array = SystemManagerGlobals.topLevelSystemManagers;
  378.          if(_loc6_.length < 2)
  379.          {
  380.             return;
  381.          }
  382.          SystemManagerGlobals.changingListenersInOtherSystemManagers = true;
  383.          var _loc7_:int = int(_loc6_.length);
  384.          var _loc8_:int = 0;
  385.          while(_loc8_ < _loc7_)
  386.          {
  387.             if(_loc6_[_loc8_] != this)
  388.             {
  389.                _loc6_[_loc8_].addEventListener(param1,param2,param3,param4,param5);
  390.             }
  391.             _loc8_++;
  392.          }
  393.          SystemManagerGlobals.changingListenersInOtherSystemManagers = false;
  394.       }
  395.       
  396.       private function modalWindowRequestHandler(param1:Event) : void
  397.       {
  398.          if(param1 is SWFBridgeRequest)
  399.          {
  400.             return;
  401.          }
  402.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  403.          if(!preProcessModalWindowRequest(_loc2_,getSandboxRoot()))
  404.          {
  405.             return;
  406.          }
  407.          Singleton.getInstance("mx.managers::IPopUpManager");
  408.          dispatchEvent(_loc2_);
  409.       }
  410.       
  411.       public function getDefinitionByName(param1:String) : Object
  412.       {
  413.          var _loc3_:Object = null;
  414.          var _loc2_:ApplicationDomain = ApplicationDomain.currentDomain;
  415.          if(_loc2_.hasDefinition(param1))
  416.          {
  417.             _loc3_ = _loc2_.getDefinition(param1);
  418.          }
  419.          return _loc3_;
  420.       }
  421.       
  422.       public function removeChildFromSandboxRoot(param1:String, param2:DisplayObject) : void
  423.       {
  424.          var _loc3_:InterManagerRequest = null;
  425.          if(getSandboxRoot() == this)
  426.          {
  427.             this[param1].removeChild(param2);
  428.          }
  429.          else
  430.          {
  431.             mx_internal::removingChild(param2);
  432.             _loc3_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  433.             _loc3_.name = param1 + ".removeChild";
  434.             _loc3_.value = param2;
  435.             getSandboxRoot().dispatchEvent(_loc3_);
  436.             mx_internal::childRemoved(param2);
  437.          }
  438.       }
  439.       
  440.       private function removeEventListenerFromOtherSystemManagers(param1:String, param2:Function, param3:Boolean = false) : void
  441.       {
  442.          var _loc4_:Array = SystemManagerGlobals.topLevelSystemManagers;
  443.          if(_loc4_.length < 2)
  444.          {
  445.             return;
  446.          }
  447.          SystemManagerGlobals.changingListenersInOtherSystemManagers = true;
  448.          var _loc5_:int = int(_loc4_.length);
  449.          var _loc6_:int = 0;
  450.          while(_loc6_ < _loc5_)
  451.          {
  452.             if(_loc4_[_loc6_] != this)
  453.             {
  454.                _loc4_[_loc6_].removeEventListener(param1,param2,param3);
  455.             }
  456.             _loc6_++;
  457.          }
  458.          SystemManagerGlobals.changingListenersInOtherSystemManagers = false;
  459.       }
  460.       
  461.       public function set document(param1:Object) : void
  462.       {
  463.          _document = param1;
  464.       }
  465.       
  466.       public function get embeddedFontList() : Object
  467.       {
  468.          var _loc1_:Object = null;
  469.          var _loc2_:String = null;
  470.          var _loc3_:Object = null;
  471.          if(_fontList == null)
  472.          {
  473.             _fontList = {};
  474.             _loc1_ = info()["fonts"];
  475.             for(_loc2_ in _loc1_)
  476.             {
  477.                _fontList[_loc2_] = _loc1_[_loc2_];
  478.             }
  479.             if(!topLevel && Boolean(_topLevelSystemManager))
  480.             {
  481.                _loc3_ = _topLevelSystemManager.embeddedFontList;
  482.                for(_loc2_ in _loc3_)
  483.                {
  484.                   _fontList[_loc2_] = _loc3_[_loc2_];
  485.                }
  486.             }
  487.          }
  488.          return _fontList;
  489.       }
  490.       
  491.       mx_internal function set cursorIndex(param1:int) : void
  492.       {
  493.          var _loc2_:int = param1 - _cursorIndex;
  494.          _cursorIndex = param1;
  495.       }
  496.       
  497.       mx_internal function addChildBridgeListeners(param1:IEventDispatcher) : void
  498.       {
  499.          if(!topLevel && Boolean(topLevelSystemManager))
  500.          {
  501.             SystemManager(topLevelSystemManager).mx_internal::addChildBridgeListeners(param1);
  502.             return;
  503.          }
  504.          param1.addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST,addPopupRequestHandler);
  505.          param1.addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,removePopupRequestHandler);
  506.          param1.addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,addPlaceholderPopupRequestHandler);
  507.          param1.addEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,removePlaceholderPopupRequestHandler);
  508.          param1.addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,activateFormSandboxEventHandler);
  509.          param1.addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,deactivateFormSandboxEventHandler);
  510.          param1.addEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE,activateApplicationSandboxEventHandler);
  511.          param1.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler,false,0,true);
  512.          param1.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler,false,0,true);
  513.          param1.addEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  514.          param1.addEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  515.          param1.addEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  516.          param1.addEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,getVisibleRectRequestHandler);
  517.          param1.addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST,hideMouseCursorRequestHandler);
  518.          param1.addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST,showMouseCursorRequestHandler);
  519.          param1.addEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST,resetMouseCursorRequestHandler);
  520.       }
  521.       
  522.       private function findLastActiveForm(param1:Object) : Object
  523.       {
  524.          var _loc2_:int = int(forms.length);
  525.          var _loc3_:int = int(forms.length - 1);
  526.          while(_loc3_ >= 0)
  527.          {
  528.             if(forms[_loc3_] != param1 && canActivatePopUp(forms[_loc3_]))
  529.             {
  530.                return forms[_loc3_];
  531.             }
  532.             _loc3_--;
  533.          }
  534.          return null;
  535.       }
  536.       
  537.       private function preProcessModalWindowRequest(param1:SWFBridgeRequest, param2:DisplayObject) : Boolean
  538.       {
  539.          var _loc3_:IEventDispatcher = null;
  540.          var _loc4_:ISWFLoader = null;
  541.          var _loc5_:Rectangle = null;
  542.          if(param1.data.skip)
  543.          {
  544.             param1.data.skip = false;
  545.             if(useSWFBridge())
  546.             {
  547.                _loc3_ = swfBridgeGroup.parentBridge;
  548.                param1.requestor = _loc3_;
  549.                _loc3_.dispatchEvent(param1);
  550.             }
  551.             return false;
  552.          }
  553.          if(this != param2)
  554.          {
  555.             if(param1.type == SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST || param1.type == SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST)
  556.             {
  557.                _loc4_ = swfBridgeGroup.getChildBridgeProvider(param1.requestor) as ISWFLoader;
  558.                if(_loc4_)
  559.                {
  560.                   _loc5_ = ISWFLoader(_loc4_).getVisibleApplicationRect();
  561.                   param1.data.excludeRect = _loc5_;
  562.                   if(!DisplayObjectContainer(document).contains(DisplayObject(_loc4_)))
  563.                   {
  564.                      param1.data.useExclude = false;
  565.                   }
  566.                }
  567.             }
  568.             _loc3_ = swfBridgeGroup.parentBridge;
  569.             param1.requestor = _loc3_;
  570.             if(param1.type == SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST)
  571.             {
  572.                param2.dispatchEvent(param1);
  573.             }
  574.             else
  575.             {
  576.                _loc3_.dispatchEvent(param1);
  577.             }
  578.             return false;
  579.          }
  580.          param1.data.skip = false;
  581.          return true;
  582.       }
  583.       
  584.       public function get rawChildren() : IChildList
  585.       {
  586.          if(!topLevel)
  587.          {
  588.             return _topLevelSystemManager.rawChildren;
  589.          }
  590.          if(!_rawChildren)
  591.          {
  592.             _rawChildren = new WindowedSystemRawChildrenList(this);
  593.          }
  594.          return _rawChildren;
  595.       }
  596.       
  597.       override public function getChildAt(param1:int) : DisplayObject
  598.       {
  599.          return super.getChildAt(mx_internal::applicationIndex + param1);
  600.       }
  601.       
  602.       private function multiWindowRedispatcher(param1:Event) : void
  603.       {
  604.          if(!SystemManagerGlobals.dispatchingEventToOtherSystemManagers)
  605.          {
  606.             dispatchEventToOtherSystemManagers(param1);
  607.          }
  608.       }
  609.       
  610.       public function deployMouseShields(param1:Boolean) : void
  611.       {
  612.          var _loc2_:InterManagerRequest = new InterManagerRequest(InterManagerRequest.DRAG_MANAGER_REQUEST,false,false,"mouseShield",param1);
  613.          getSandboxRoot().dispatchEvent(_loc2_);
  614.       }
  615.       
  616.       override public function addEventListener(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false) : void
  617.       {
  618.          var actualType:String = null;
  619.          var type:String = param1;
  620.          var listener:Function = param2;
  621.          var useCapture:Boolean = param3;
  622.          var priority:int = param4;
  623.          var useWeakReference:Boolean = param5;
  624.          if(type == FlexEvent.RENDER || type == FlexEvent.ENTER_FRAME)
  625.          {
  626.             if(type == FlexEvent.RENDER)
  627.             {
  628.                type = Event.RENDER;
  629.             }
  630.             else
  631.             {
  632.                type = Event.ENTER_FRAME;
  633.             }
  634.             try
  635.             {
  636.                if(stage)
  637.                {
  638.                   stage.addEventListener(type,listener,useCapture,priority,useWeakReference);
  639.                }
  640.                else
  641.                {
  642.                   super.addEventListener(type,listener,useCapture,priority,useWeakReference);
  643.                }
  644.             }
  645.             catch(error:SecurityError)
  646.             {
  647.                super.addEventListener(type,listener,useCapture,priority,useWeakReference);
  648.             }
  649.             if(Boolean(stage) && type == Event.RENDER)
  650.             {
  651.                stage.invalidate();
  652.             }
  653.             return;
  654.          }
  655.          if(type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN || type == Event.ACTIVATE || type == Event.DEACTIVATE)
  656.          {
  657.             try
  658.             {
  659.                if(stage)
  660.                {
  661.                   stage.addEventListener(type,stageEventHandler,false,0,true);
  662.                }
  663.             }
  664.             catch(error:SecurityError)
  665.             {
  666.             }
  667.          }
  668.          if(hasSWFBridges() || SystemManagerGlobals.topLevelSystemManagers.length > 1)
  669.          {
  670.             if(!eventProxy)
  671.             {
  672.                eventProxy = new EventProxy(this);
  673.             }
  674.             actualType = EventUtil.sandboxMouseEventMap[type];
  675.             if(actualType)
  676.             {
  677.                if(isTopLevelRoot())
  678.                {
  679.                   stage.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  680.                   addEventListenerToSandboxes(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  681.                }
  682.                else
  683.                {
  684.                   super.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  685.                }
  686.                addEventListenerToSandboxes(type,sandboxMouseListener,useCapture,priority,useWeakReference);
  687.                if(!SystemManagerGlobals.changingListenersInOtherSystemManagers)
  688.                {
  689.                   addEventListenerToOtherSystemManagers(type,otherSystemManagerMouseListener,useCapture,priority,useWeakReference);
  690.                }
  691.                if(getSandboxRoot() == this)
  692.                {
  693.                   super.addEventListener(actualType,eventProxy.marshalListener,useCapture,priority,useWeakReference);
  694.                   if(actualType == MouseEvent.MOUSE_UP)
  695.                   {
  696.                      try
  697.                      {
  698.                         if(stage)
  699.                         {
  700.                            stage.addEventListener(Event.MOUSE_LEAVE,eventProxy.marshalListener,useCapture,priority,useWeakReference);
  701.                         }
  702.                         else
  703.                         {
  704.                            super.addEventListener(Event.MOUSE_LEAVE,eventProxy.marshalListener,useCapture,priority,useWeakReference);
  705.                         }
  706.                      }
  707.                      catch(e:SecurityError)
  708.                      {
  709.                         super.addEventListener(Event.MOUSE_LEAVE,eventProxy.marshalListener,useCapture,priority,useWeakReference);
  710.                      }
  711.                   }
  712.                }
  713.                super.addEventListener(type,listener,false,priority,useWeakReference);
  714.                return;
  715.             }
  716.          }
  717.          if(type == SandboxMouseEvent.MOUSE_UP_SOMEWHERE)
  718.          {
  719.             try
  720.             {
  721.                if(stage)
  722.                {
  723.                   stage.addEventListener(Event.MOUSE_LEAVE,mouseLeaveHandler,false,0,true);
  724.                }
  725.                else
  726.                {
  727.                   super.addEventListener(Event.MOUSE_LEAVE,mouseLeaveHandler,false,0,true);
  728.                }
  729.             }
  730.             catch(error:SecurityError)
  731.             {
  732.                super.addEventListener(Event.MOUSE_LEAVE,mouseLeaveHandler,false,0,true);
  733.             }
  734.          }
  735.          super.addEventListener(type,listener,useCapture,priority,useWeakReference);
  736.       }
  737.       
  738.       final mx_internal function $removeChild(param1:DisplayObject) : DisplayObject
  739.       {
  740.          return super.removeChild(param1);
  741.       }
  742.       
  743.       private function Stage_resizeHandler(param1:Event = null) : void
  744.       {
  745.          var _loc2_:Number = stage.stageWidth;
  746.          var _loc3_:Number = stage.stageHeight;
  747.          var _loc4_:Number = 0;
  748.          var _loc5_:Number = 0;
  749.          if(!_screen)
  750.          {
  751.             _screen = new Rectangle();
  752.          }
  753.          _screen.x = _loc5_;
  754.          _screen.y = _loc4_;
  755.          _screen.width = _loc2_;
  756.          _screen.height = _loc3_;
  757.          _width = stage.stageWidth;
  758.          _height = stage.stageHeight;
  759.          if(param1)
  760.          {
  761.             resizeMouseCatcher();
  762.             dispatchEvent(param1);
  763.          }
  764.       }
  765.       
  766.       private function activateForm(param1:Object) : void
  767.       {
  768.          var _loc2_:IFocusManagerContainer = null;
  769.          if(form)
  770.          {
  771.             if(form != param1 && forms.length > 1)
  772.             {
  773.                if(isRemotePopUp(form))
  774.                {
  775.                   if(!areRemotePopUpsEqual(form,param1))
  776.                   {
  777.                      deactivateRemotePopUp(form);
  778.                   }
  779.                }
  780.                else
  781.                {
  782.                   _loc2_ = IFocusManagerContainer(form);
  783.                   _loc2_.focusManager.deactivate();
  784.                }
  785.             }
  786.          }
  787.          form = param1;
  788.          if(isRemotePopUp(param1))
  789.          {
  790.             activateRemotePopUp(param1);
  791.          }
  792.          else if(param1.focusManager)
  793.          {
  794.             param1.focusManager.activate();
  795.          }
  796.          updateLastActiveForm();
  797.       }
  798.       
  799.       public function removeFocusManager(param1:IFocusManagerContainer) : void
  800.       {
  801.          var _loc2_:int = int(forms.length);
  802.          var _loc3_:int = 0;
  803.          while(_loc3_ < _loc2_)
  804.          {
  805.             if(forms[_loc3_] == param1)
  806.             {
  807.                if(form == param1)
  808.                {
  809.                   deactivate(param1);
  810.                }
  811.                forms.splice(_loc3_,1);
  812.                return;
  813.             }
  814.             _loc3_++;
  815.          }
  816.       }
  817.       
  818.       override public function get mouseY() : Number
  819.       {
  820.          if(mx_internal::_mouseY === undefined)
  821.          {
  822.             return super.mouseY;
  823.          }
  824.          return mx_internal::_mouseY;
  825.       }
  826.       
  827.       public function get focusPane() : Sprite
  828.       {
  829.          return _focusPane;
  830.       }
  831.       
  832.       override public function get mouseX() : Number
  833.       {
  834.          if(mx_internal::_mouseX === undefined)
  835.          {
  836.             return super.mouseX;
  837.          }
  838.          return mx_internal::_mouseX;
  839.       }
  840.       
  841.       private function mouseDownHandler(param1:MouseEvent) : void
  842.       {
  843.          var _loc2_:int = 0;
  844.          var _loc3_:DisplayObject = null;
  845.          var _loc4_:Boolean = false;
  846.          var _loc5_:int = 0;
  847.          var _loc6_:Object = null;
  848.          var _loc7_:int = 0;
  849.          var _loc8_:int = 0;
  850.          var _loc9_:int = 0;
  851.          var _loc10_:IChildList = null;
  852.          var _loc11_:DisplayObject = null;
  853.          var _loc12_:Boolean = false;
  854.          var _loc13_:int = 0;
  855.          mx_internal::idleCounter = 0;
  856.          if(isDisplayObjectInABridgedApplication(param1.target as DisplayObject))
  857.          {
  858.             if(isTopLevelRoot())
  859.             {
  860.                activateForm(document);
  861.             }
  862.             else
  863.             {
  864.                dispatchActivatedApplicationEvent();
  865.             }
  866.             return;
  867.          }
  868.          if(numModalWindows == 0)
  869.          {
  870.             if(forms.length > 1)
  871.             {
  872.                _loc2_ = int(forms.length);
  873.                _loc3_ = DisplayObject(param1.target);
  874.                _loc4_ = Boolean(document.rawChildren.contains(_loc3_));
  875.                while(_loc3_)
  876.                {
  877.                   _loc5_ = 0;
  878.                   while(_loc5_ < _loc2_)
  879.                   {
  880.                      _loc6_ = isRemotePopUp(forms[_loc5_]) ? forms[_loc5_].window : forms[_loc5_];
  881.                      if(_loc6_ == _loc3_)
  882.                      {
  883.                         _loc7_ = 0;
  884.                         if(_loc3_ != form && _loc3_ is IFocusManagerContainer)
  885.                         {
  886.                            activate(IFocusManagerContainer(_loc3_));
  887.                         }
  888.                         if(popUpChildren.contains(_loc3_))
  889.                         {
  890.                            _loc10_ = popUpChildren;
  891.                         }
  892.                         else
  893.                         {
  894.                            _loc10_ = this;
  895.                         }
  896.                         _loc9_ = _loc8_ = int(_loc10_.getChildIndex(_loc3_));
  897.                         _loc2_ = int(forms.length);
  898.                         _loc7_ = 0;
  899.                         for(; _loc7_ < _loc2_; _loc7_++)
  900.                         {
  901.                            _loc12_ = isRemotePopUp(forms[_loc7_]);
  902.                            if(_loc12_)
  903.                            {
  904.                               if(forms[_loc7_].window is String)
  905.                               {
  906.                                  continue;
  907.                               }
  908.                               _loc11_ = forms[_loc7_].window;
  909.                            }
  910.                            else
  911.                            {
  912.                               _loc11_ = forms[_loc7_];
  913.                            }
  914.                            if(_loc12_)
  915.                            {
  916.                               _loc13_ = getChildListIndex(_loc10_,_loc11_);
  917.                               if(_loc13_ > _loc8_)
  918.                               {
  919.                                  _loc9_ = Math.max(_loc13_,_loc9_);
  920.                               }
  921.                            }
  922.                            else if(_loc10_.contains(_loc11_))
  923.                            {
  924.                               if(_loc10_.getChildIndex(_loc11_) > _loc8_)
  925.                               {
  926.                                  _loc9_ = Math.max(_loc10_.getChildIndex(_loc11_),_loc9_);
  927.                               }
  928.                            }
  929.                         }
  930.                         if(_loc9_ > _loc8_ && !_loc4_)
  931.                         {
  932.                            _loc10_.setChildIndex(_loc3_,_loc9_);
  933.                         }
  934.                         return;
  935.                      }
  936.                      _loc5_++;
  937.                   }
  938.                   _loc3_ = _loc3_.parent;
  939.                }
  940.             }
  941.          }
  942.       }
  943.       
  944.       public function addChildBridge(param1:IEventDispatcher, param2:DisplayObject) : void
  945.       {
  946.          var _loc3_:IFocusManager = null;
  947.          var _loc4_:DisplayObject = param2;
  948.          while(_loc4_)
  949.          {
  950.             if(_loc4_ is IFocusManagerContainer)
  951.             {
  952.                _loc3_ = IFocusManagerContainer(_loc4_).focusManager;
  953.                break;
  954.             }
  955.             _loc4_ = _loc4_.parent;
  956.          }
  957.          if(!_loc3_)
  958.          {
  959.             return;
  960.          }
  961.          if(!swfBridgeGroup)
  962.          {
  963.             swfBridgeGroup = new SWFBridgeGroup(this);
  964.          }
  965.          swfBridgeGroup.addChildBridge(param1,ISWFBridgeProvider(param2));
  966.          _loc3_.addSWFBridge(param1,param2);
  967.          if(!mx_internal::bridgeToFocusManager)
  968.          {
  969.             mx_internal::bridgeToFocusManager = new Dictionary();
  970.          }
  971.          mx_internal::bridgeToFocusManager[param1] = _loc3_;
  972.          mx_internal::addChildBridgeListeners(param1);
  973.          dispatchEvent(new FlexChangeEvent(FlexChangeEvent.ADD_CHILD_BRIDGE,false,false,param1));
  974.       }
  975.       
  976.       public function allowInsecureDomain(... rest) : void
  977.       {
  978.       }
  979.       
  980.       private function removePopupRequestHandler(param1:Event) : void
  981.       {
  982.          var _loc3_:SWFBridgeRequest = null;
  983.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  984.          if(Boolean(swfBridgeGroup.parentBridge) && SecurityUtil.hasMutualTrustBetweenParentAndChild(this))
  985.          {
  986.             _loc2_.requestor = swfBridgeGroup.parentBridge;
  987.             getSandboxRoot().dispatchEvent(_loc2_);
  988.             return;
  989.          }
  990.          if(popUpChildren.contains(_loc2_.data.window))
  991.          {
  992.             popUpChildren.removeChild(_loc2_.data.window);
  993.          }
  994.          else
  995.          {
  996.             removeChild(DisplayObject(_loc2_.data.window));
  997.          }
  998.          if(_loc2_.data.modal)
  999.          {
  1000.             --numModalWindows;
  1001.          }
  1002.          removeRemotePopUp(new RemotePopUp(_loc2_.data.window,_loc2_.requestor));
  1003.          if(!isTopLevelRoot() && Boolean(swfBridgeGroup))
  1004.          {
  1005.             _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,false,false,_loc2_.requestor,{"placeHolderId":NameUtil.displayObjectToString(_loc2_.data.window)});
  1006.             dispatchEvent(_loc3_);
  1007.          }
  1008.       }
  1009.       
  1010.       public function get screen() : Rectangle
  1011.       {
  1012.          if(!_screen)
  1013.          {
  1014.             _screen = new Rectangle();
  1015.          }
  1016.          _screen.x = 0;
  1017.          _screen.y = 0;
  1018.          _screen.width = stage.stageWidth;
  1019.          _screen.height = stage.stageHeight;
  1020.          return _screen;
  1021.       }
  1022.       
  1023.       private function resetMouseCursorRequestHandler(param1:Event) : void
  1024.       {
  1025.          var _loc3_:IEventDispatcher = null;
  1026.          if(!isTopLevelRoot() && param1 is SWFBridgeRequest)
  1027.          {
  1028.             return;
  1029.          }
  1030.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  1031.          if(!isTopLevelRoot())
  1032.          {
  1033.             _loc3_ = swfBridgeGroup.parentBridge;
  1034.             _loc2_.requestor = _loc3_;
  1035.             _loc3_.dispatchEvent(_loc2_);
  1036.          }
  1037.          else if(eventProxy)
  1038.          {
  1039.             SystemManagerGlobals.showMouseCursor = true;
  1040.          }
  1041.       }
  1042.       
  1043.       private function resetMouseCursorTracking(param1:Event) : void
  1044.       {
  1045.          var _loc2_:SWFBridgeRequest = null;
  1046.          var _loc3_:IEventDispatcher = null;
  1047.          if(isTopLevelRoot())
  1048.          {
  1049.             SystemManagerGlobals.showMouseCursor = true;
  1050.          }
  1051.          else if(swfBridgeGroup.parentBridge)
  1052.          {
  1053.             _loc2_ = new SWFBridgeRequest(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST);
  1054.             _loc3_ = swfBridgeGroup.parentBridge;
  1055.             _loc2_.requestor = _loc3_;
  1056.             _loc3_.dispatchEvent(_loc2_);
  1057.          }
  1058.       }
  1059.       
  1060.       mx_internal function set topMostIndex(param1:int) : void
  1061.       {
  1062.          var _loc2_:int = param1 - _topMostIndex;
  1063.          _topMostIndex = param1;
  1064.          mx_internal::toolTipIndex += _loc2_;
  1065.       }
  1066.       
  1067.       protected function docFrameHandler(param1:Event = null) : void
  1068.       {
  1069.          var _loc3_:int = 0;
  1070.          var _loc4_:int = 0;
  1071.          var _loc5_:Class = null;
  1072.          removeEventListener(Event.ADDED,docFrameHandler);
  1073.          getSandboxRoot().addEventListener(InterManagerRequest.INIT_MANAGER_REQUEST,initManagerHandler,false,0,true);
  1074.          if(getSandboxRoot() == this)
  1075.          {
  1076.             addEventListener(InterManagerRequest.SYSTEM_MANAGER_REQUEST,systemManagerHandler);
  1077.             addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST,multiWindowRedispatcher);
  1078.             addEventListener("dispatchDragEvent",multiWindowRedispatcher);
  1079.             addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST,addPopupRequestHandler);
  1080.             addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,removePopupRequestHandler);
  1081.             addEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,addPlaceholderPopupRequestHandler);
  1082.             addEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,removePlaceholderPopupRequestHandler);
  1083.             addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,activateFormSandboxEventHandler);
  1084.             addEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,deactivateFormSandboxEventHandler);
  1085.             addEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST,hideMouseCursorRequestHandler);
  1086.             addEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST,showMouseCursorRequestHandler);
  1087.             addEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST,resetMouseCursorRequestHandler);
  1088.          }
  1089.          if(stage)
  1090.          {
  1091.             stage.scaleMode = StageScaleMode.NO_SCALE;
  1092.             stage.align = StageAlign.TOP_LEFT;
  1093.          }
  1094.          var _loc2_:Array = info()["mixins"];
  1095.          if(Boolean(_loc2_) && _loc2_.length > 0)
  1096.          {
  1097.             _loc3_ = int(_loc2_.length);
  1098.             _loc4_ = 0;
  1099.             while(_loc4_ < _loc3_)
  1100.             {
  1101.                _loc5_ = Class(getDefinitionByName(_loc2_[_loc4_]));
  1102.                _loc5_["init"](this);
  1103.                _loc4_++;
  1104.             }
  1105.          }
  1106.          initializeTopLevelWindow(null);
  1107.          if(Singleton.getClass("mx.managers::IDragManager").getInstance() is NativeDragManagerImpl)
  1108.          {
  1109.             NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance()).mx_internal::registerSystemManager(this);
  1110.          }
  1111.       }
  1112.       
  1113.       public function isTopLevel() : Boolean
  1114.       {
  1115.          return topLevel;
  1116.       }
  1117.       
  1118.       public function deactivate(param1:IFocusManagerContainer) : void
  1119.       {
  1120.          deactivateForm(Object(param1));
  1121.       }
  1122.       
  1123.       private function initContextMenu() : void
  1124.       {
  1125.          var _loc1_:ContextMenu = new ContextMenu();
  1126.          _loc1_.hideBuiltInItems();
  1127.          _loc1_.builtInItems.print = true;
  1128.          contextMenu = _loc1_;
  1129.       }
  1130.       
  1131.       mx_internal function addParentBridgeListeners() : void
  1132.       {
  1133.          if(!topLevel && Boolean(topLevelSystemManager))
  1134.          {
  1135.             SystemManager(topLevelSystemManager).mx_internal::addParentBridgeListeners();
  1136.             return;
  1137.          }
  1138.          var _loc1_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1139.          _loc1_.addEventListener(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST,setActualSizeRequestHandler);
  1140.          _loc1_.addEventListener(SWFBridgeRequest.GET_SIZE_REQUEST,getSizeRequestHandler);
  1141.          _loc1_.addEventListener(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST,activateRequestHandler);
  1142.          _loc1_.addEventListener(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,deactivateRequestHandler);
  1143.          _loc1_.addEventListener(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST,isBridgeChildHandler);
  1144.          _loc1_.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1145.          _loc1_.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1146.          _loc1_.addEventListener(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,canActivateHandler);
  1147.       }
  1148.       
  1149.       private function showMouseCursorRequestHandler(param1:Event) : void
  1150.       {
  1151.          var _loc3_:IEventDispatcher = null;
  1152.          if(!isTopLevelRoot() && param1 is SWFBridgeRequest)
  1153.          {
  1154.             return;
  1155.          }
  1156.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  1157.          if(!isTopLevelRoot())
  1158.          {
  1159.             _loc3_ = swfBridgeGroup.parentBridge;
  1160.             _loc2_.requestor = _loc3_;
  1161.             _loc3_.dispatchEvent(_loc2_);
  1162.             Object(param1).data = _loc2_.data;
  1163.          }
  1164.          else if(eventProxy)
  1165.          {
  1166.             Object(param1).data = SystemManagerGlobals.showMouseCursor;
  1167.          }
  1168.       }
  1169.       
  1170.       public function get swfBridgeGroup() : ISWFBridgeGroup
  1171.       {
  1172.          if(topLevel)
  1173.          {
  1174.             return _swfBridgeGroup;
  1175.          }
  1176.          if(topLevelSystemManager)
  1177.          {
  1178.             return topLevelSystemManager.swfBridgeGroup;
  1179.          }
  1180.          return null;
  1181.       }
  1182.       
  1183.       mx_internal function removeParentBridgeListeners() : void
  1184.       {
  1185.          if(!topLevel && Boolean(topLevelSystemManager))
  1186.          {
  1187.             SystemManager(topLevelSystemManager).mx_internal::removeParentBridgeListeners();
  1188.             return;
  1189.          }
  1190.          var _loc1_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1191.          _loc1_.removeEventListener(SWFBridgeRequest.SET_ACTUAL_SIZE_REQUEST,setActualSizeRequestHandler);
  1192.          _loc1_.removeEventListener(SWFBridgeRequest.GET_SIZE_REQUEST,getSizeRequestHandler);
  1193.          _loc1_.removeEventListener(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST,activateRequestHandler);
  1194.          _loc1_.removeEventListener(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,deactivateRequestHandler);
  1195.          _loc1_.removeEventListener(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST,isBridgeChildHandler);
  1196.          _loc1_.removeEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1197.          _loc1_.removeEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1198.          _loc1_.removeEventListener(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,canActivateHandler);
  1199.       }
  1200.       
  1201.       mx_internal function removeChildBridgeListeners(param1:IEventDispatcher) : void
  1202.       {
  1203.          if(!topLevel && Boolean(topLevelSystemManager))
  1204.          {
  1205.             SystemManager(topLevelSystemManager).mx_internal::removeChildBridgeListeners(param1);
  1206.             return;
  1207.          }
  1208.          param1.removeEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST,addPopupRequestHandler);
  1209.          param1.removeEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,removePopupRequestHandler);
  1210.          param1.removeEventListener(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,addPlaceholderPopupRequestHandler);
  1211.          param1.removeEventListener(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,removePlaceholderPopupRequestHandler);
  1212.          param1.removeEventListener(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,activateFormSandboxEventHandler);
  1213.          param1.removeEventListener(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,deactivateFormSandboxEventHandler);
  1214.          param1.removeEventListener(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE,activateApplicationSandboxEventHandler);
  1215.          param1.removeEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1216.          param1.removeEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST,eventListenerRequestHandler);
  1217.          param1.removeEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  1218.          param1.removeEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  1219.          param1.removeEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,modalWindowRequestHandler);
  1220.          param1.removeEventListener(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,getVisibleRectRequestHandler);
  1221.          param1.removeEventListener(SWFBridgeRequest.HIDE_MOUSE_CURSOR_REQUEST,hideMouseCursorRequestHandler);
  1222.          param1.removeEventListener(SWFBridgeRequest.SHOW_MOUSE_CURSOR_REQUEST,showMouseCursorRequestHandler);
  1223.          param1.removeEventListener(SWFBridgeRequest.RESET_MOUSE_CURSOR_REQUEST,resetMouseCursorRequestHandler);
  1224.       }
  1225.       
  1226.       override public function getChildByName(param1:String) : DisplayObject
  1227.       {
  1228.          return super.getChildByName(param1);
  1229.       }
  1230.       
  1231.       public function removeChildBridge(param1:IEventDispatcher) : void
  1232.       {
  1233.          dispatchEvent(new FlexChangeEvent(FlexChangeEvent.REMOVE_CHILD_BRIDGE,false,false,param1));
  1234.          var _loc2_:IFocusManager = IFocusManager(mx_internal::bridgeToFocusManager[param1]);
  1235.          _loc2_.removeSWFBridge(param1);
  1236.          swfBridgeGroup.removeChildBridge(param1);
  1237.          delete mx_internal::bridgeToFocusManager[param1];
  1238.          mx_internal::removeChildBridgeListeners(param1);
  1239.       }
  1240.       
  1241.       mx_internal function cleanup(param1:Event) : void
  1242.       {
  1243.          if(Singleton.getClass("mx.managers::IDragManager").getInstance() is NativeDragManagerImpl)
  1244.          {
  1245.             NativeDragManagerImpl(Singleton.getClass("mx.managers::IDragManager").getInstance()).mx_internal::unregisterSystemManager(this);
  1246.          }
  1247.          SystemManagerGlobals.topLevelSystemManagers.splice(SystemManagerGlobals.topLevelSystemManagers.indexOf(this),1);
  1248.          myWindow.nativeWindow.removeEventListener(Event.CLOSE,mx_internal::cleanup);
  1249.          myWindow = null;
  1250.       }
  1251.       
  1252.       override public function addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  1253.       {
  1254.          ++mx_internal::noTopMostIndex;
  1255.          return mx_internal::rawChildren_addChildAt(param1,mx_internal::applicationIndex + param2);
  1256.       }
  1257.       
  1258.       public function get swfBridge() : IEventDispatcher
  1259.       {
  1260.          if(swfBridgeGroup)
  1261.          {
  1262.             return swfBridgeGroup.parentBridge;
  1263.          }
  1264.          return null;
  1265.       }
  1266.       
  1267.       private function findRemotePopUp(param1:Object, param2:IEventDispatcher) : RemotePopUp
  1268.       {
  1269.          var _loc5_:RemotePopUp = null;
  1270.          var _loc3_:int = int(forms.length);
  1271.          var _loc4_:int = 0;
  1272.          while(_loc4_ < _loc3_)
  1273.          {
  1274.             if(isRemotePopUp(forms[_loc4_]))
  1275.             {
  1276.                _loc5_ = RemotePopUp(forms[_loc4_]);
  1277.                if(_loc5_.window == param1 && _loc5_.bridge == param2)
  1278.                {
  1279.                   return _loc5_;
  1280.                }
  1281.             }
  1282.             _loc4_++;
  1283.          }
  1284.          return null;
  1285.       }
  1286.       
  1287.       public function info() : Object
  1288.       {
  1289.          return {};
  1290.       }
  1291.       
  1292.       mx_internal function get toolTipIndex() : int
  1293.       {
  1294.          return _toolTipIndex;
  1295.       }
  1296.       
  1297.       private function removePlaceholderPopupRequestHandler(param1:Event) : void
  1298.       {
  1299.          var _loc3_:int = 0;
  1300.          var _loc4_:int = 0;
  1301.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  1302.          if(!forwardPlaceholderRequest(_loc2_,false))
  1303.          {
  1304.             _loc3_ = int(forms.length);
  1305.             _loc4_ = 0;
  1306.             while(_loc4_ < _loc3_)
  1307.             {
  1308.                if(isRemotePopUp(forms[_loc4_]))
  1309.                {
  1310.                   if(forms[_loc4_].window == _loc2_.data.placeHolderId && forms[_loc4_].bridge == _loc2_.requestor)
  1311.                   {
  1312.                      forms.splice(_loc4_,1);
  1313.                      break;
  1314.                   }
  1315.                }
  1316.                _loc4_++;
  1317.             }
  1318.          }
  1319.       }
  1320.       
  1321.       public function set focusPane(param1:Sprite) : void
  1322.       {
  1323.          if(param1)
  1324.          {
  1325.             addChild(param1);
  1326.             param1.x = 0;
  1327.             param1.y = 0;
  1328.             param1.scrollRect = null;
  1329.             _focusPane = param1;
  1330.          }
  1331.          else
  1332.          {
  1333.             removeChild(_focusPane);
  1334.             _focusPane = null;
  1335.          }
  1336.       }
  1337.       
  1338.       private function eventListenerRequestHandler(param1:Event) : void
  1339.       {
  1340.          var _loc2_:String = null;
  1341.          if(param1 is EventListenerRequest)
  1342.          {
  1343.             return;
  1344.          }
  1345.          var _loc3_:EventListenerRequest = EventListenerRequest.marshal(param1);
  1346.          if(param1.type == EventListenerRequest.ADD_EVENT_LISTENER_REQUEST)
  1347.          {
  1348.             if(!eventProxy)
  1349.             {
  1350.                eventProxy = new EventProxy(this);
  1351.             }
  1352.             _loc2_ = EventUtil.sandboxMouseEventMap[_loc3_.eventType];
  1353.             if(_loc2_)
  1354.             {
  1355.                if(isTopLevelRoot())
  1356.                {
  1357.                   stage.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  1358.                }
  1359.                else
  1360.                {
  1361.                   super.addEventListener(MouseEvent.MOUSE_MOVE,resetMouseCursorTracking,true,EventPriority.CURSOR_MANAGEMENT + 1,true);
  1362.                }
  1363.                addEventListenerToSandboxes(_loc3_.eventType,sandboxMouseListener,true,_loc3_.priority,_loc3_.useWeakReference,param1.target as IEventDispatcher);
  1364.                addEventListenerToOtherSystemManagers(_loc3_.eventType,otherSystemManagerMouseListener,true,_loc3_.priority,_loc3_.useWeakReference);
  1365.                if(getSandboxRoot() == this)
  1366.                {
  1367.                   if(isTopLevelRoot() && (_loc2_ == MouseEvent.MOUSE_UP || _loc2_ == MouseEvent.MOUSE_MOVE))
  1368.                   {
  1369.                      stage.addEventListener(_loc2_,eventProxy.marshalListener,false,_loc3_.priority,_loc3_.useWeakReference);
  1370.                   }
  1371.                   super.addEventListener(_loc2_,eventProxy.marshalListener,true,_loc3_.priority,_loc3_.useWeakReference);
  1372.                }
  1373.             }
  1374.          }
  1375.          else if(param1.type == EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST)
  1376.          {
  1377.             _loc2_ = EventUtil.sandboxMouseEventMap[_loc3_.eventType];
  1378.             if(_loc2_)
  1379.             {
  1380.                removeEventListenerFromOtherSystemManagers(_loc3_.eventType,otherSystemManagerMouseListener,true);
  1381.                removeEventListenerFromSandboxes(_loc3_.eventType,sandboxMouseListener,true,param1.target as IEventDispatcher);
  1382.                if(getSandboxRoot() == this)
  1383.                {
  1384.                   if(isTopLevelRoot() && (_loc2_ == MouseEvent.MOUSE_UP || _loc2_ == MouseEvent.MOUSE_MOVE))
  1385.                   {
  1386.                      stage.removeEventListener(_loc2_,eventProxy.marshalListener);
  1387.                   }
  1388.                   super.removeEventListener(_loc2_,eventProxy.marshalListener,true);
  1389.                }
  1390.             }
  1391.          }
  1392.       }
  1393.       
  1394.       mx_internal function set applicationIndex(param1:int) : void
  1395.       {
  1396.          _applicationIndex = param1;
  1397.       }
  1398.       
  1399.       private function addPlaceholderId(param1:String, param2:String, param3:IEventDispatcher, param4:Object) : void
  1400.       {
  1401.          if(!param3)
  1402.          {
  1403.             throw new Error();
  1404.          }
  1405.          if(!idToPlaceholder)
  1406.          {
  1407.             idToPlaceholder = [];
  1408.          }
  1409.          idToPlaceholder[param1] = new PlaceholderData(param2,param3,param4);
  1410.       }
  1411.       
  1412.       public function get childAllowsParent() : Boolean
  1413.       {
  1414.          try
  1415.          {
  1416.             return loaderInfo.childAllowsParent;
  1417.          }
  1418.          catch(error:Error)
  1419.          {
  1420.          }
  1421.          return false;
  1422.       }
  1423.       
  1424.       public function dispatchEventFromSWFBridges(param1:Event, param2:IEventDispatcher = null, param3:Boolean = false, param4:Boolean = false) : void
  1425.       {
  1426.          var _loc5_:Event = null;
  1427.          if(param4)
  1428.          {
  1429.             dispatchEventToOtherSystemManagers(param1);
  1430.          }
  1431.          if(!swfBridgeGroup)
  1432.          {
  1433.             return;
  1434.          }
  1435.          _loc5_ = param1.clone();
  1436.          if(param3)
  1437.          {
  1438.             currentSandboxEvent = _loc5_;
  1439.          }
  1440.          var _loc6_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1441.          if((Boolean(_loc6_)) && _loc6_ != param2)
  1442.          {
  1443.             if(_loc5_ is SWFBridgeRequest)
  1444.             {
  1445.                SWFBridgeRequest(_loc5_).requestor = _loc6_;
  1446.             }
  1447.             _loc6_.dispatchEvent(_loc5_);
  1448.          }
  1449.          var _loc7_:Array = swfBridgeGroup.getChildBridges();
  1450.          var _loc8_:int = 0;
  1451.          while(_loc8_ < _loc7_.length)
  1452.          {
  1453.             if(_loc7_[_loc8_] != param2)
  1454.             {
  1455.                _loc5_ = param1.clone();
  1456.                if(param3)
  1457.                {
  1458.                   currentSandboxEvent = _loc5_;
  1459.                }
  1460.                if(_loc5_ is SWFBridgeRequest)
  1461.                {
  1462.                   SWFBridgeRequest(_loc5_).requestor = IEventDispatcher(_loc7_[_loc8_]);
  1463.                }
  1464.                IEventDispatcher(_loc7_[_loc8_]).dispatchEvent(_loc5_);
  1465.             }
  1466.             _loc8_++;
  1467.          }
  1468.          currentSandboxEvent = null;
  1469.       }
  1470.       
  1471.       private function setActualSizeRequestHandler(param1:Event) : void
  1472.       {
  1473.       }
  1474.       
  1475.       public function useSWFBridge() : Boolean
  1476.       {
  1477.          var sbRoot:DisplayObject;
  1478.          if(isStageRoot)
  1479.          {
  1480.             return false;
  1481.          }
  1482.          if(!topLevel && Boolean(topLevelSystemManager))
  1483.          {
  1484.             return topLevelSystemManager.useSWFBridge();
  1485.          }
  1486.          sbRoot = getSandboxRoot();
  1487.          if(topLevel && sbRoot != this)
  1488.          {
  1489.             return true;
  1490.          }
  1491.          if(sbRoot == this)
  1492.          {
  1493.             try
  1494.             {
  1495.                root.loaderInfo.parentAllowsChild;
  1496.                if(!(parentAllowsChild && childAllowsParent))
  1497.                {
  1498.                   return true;
  1499.                }
  1500.                try
  1501.                {
  1502.                   if(!parent.dispatchEvent(new Event("mx.managers.SystemManager.isStageRoot",false,true)))
  1503.                   {
  1504.                      return true;
  1505.                   }
  1506.                }
  1507.                catch(e:Error)
  1508.                {
  1509.                }
  1510.             }
  1511.             catch(e1:Error)
  1512.             {
  1513.                return false;
  1514.             }
  1515.          }
  1516.          return false;
  1517.       }
  1518.       
  1519.       private function canActivateHandler(param1:Event) : void
  1520.       {
  1521.          var _loc3_:SWFBridgeRequest = null;
  1522.          var _loc6_:PlaceholderData = null;
  1523.          var _loc7_:RemotePopUp = null;
  1524.          var _loc8_:SystemManagerProxy = null;
  1525.          var _loc9_:IFocusManagerContainer = null;
  1526.          var _loc10_:IEventDispatcher = null;
  1527.          var _loc2_:Object = Object(param1);
  1528.          var _loc4_:Object = _loc2_.data;
  1529.          var _loc5_:String = null;
  1530.          if(_loc2_.data is String)
  1531.          {
  1532.             _loc6_ = idToPlaceholder[_loc2_.data];
  1533.             _loc4_ = _loc6_.data;
  1534.             _loc5_ = _loc6_.id;
  1535.             if(_loc5_ == null)
  1536.             {
  1537.                _loc7_ = findRemotePopUp(_loc4_,_loc6_.bridge);
  1538.                if(_loc7_)
  1539.                {
  1540.                   _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,false,false,IEventDispatcher(_loc7_.bridge),_loc7_.window);
  1541.                   if(_loc7_.bridge)
  1542.                   {
  1543.                      _loc7_.bridge.dispatchEvent(_loc3_);
  1544.                      _loc2_.data = _loc3_.data;
  1545.                   }
  1546.                   return;
  1547.                }
  1548.             }
  1549.          }
  1550.          if(_loc4_ is SystemManagerProxy)
  1551.          {
  1552.             _loc8_ = SystemManagerProxy(_loc4_);
  1553.             _loc9_ = mx_internal::findFocusManagerContainer(_loc8_);
  1554.             _loc2_.data = _loc8_ && _loc9_ && canActivateLocalComponent(_loc9_);
  1555.          }
  1556.          else if(_loc4_ is IFocusManagerContainer)
  1557.          {
  1558.             _loc2_.data = canActivateLocalComponent(_loc4_);
  1559.          }
  1560.          else
  1561.          {
  1562.             if(!(_loc4_ is IEventDispatcher))
  1563.             {
  1564.                throw new Error();
  1565.             }
  1566.             _loc10_ = IEventDispatcher(_loc4_);
  1567.             _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,false,false,_loc10_,_loc5_);
  1568.             if(_loc10_)
  1569.             {
  1570.                _loc10_.dispatchEvent(_loc3_);
  1571.                _loc2_.data = _loc3_.data;
  1572.             }
  1573.          }
  1574.       }
  1575.       
  1576.       private function addEventListenerToSandboxes(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false, param6:IEventDispatcher = null) : void
  1577.       {
  1578.          var _loc10_:int = 0;
  1579.          var _loc11_:IEventDispatcher = null;
  1580.          if(!swfBridgeGroup)
  1581.          {
  1582.             return;
  1583.          }
  1584.          var _loc7_:EventListenerRequest = new EventListenerRequest(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST,false,false,param1,param3,param4,param5);
  1585.          var _loc8_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1586.          if((Boolean(_loc8_)) && _loc8_ != param6)
  1587.          {
  1588.             _loc8_.addEventListener(param1,param2,false,param4,param5);
  1589.          }
  1590.          var _loc9_:Array = swfBridgeGroup.getChildBridges();
  1591.          while(_loc10_ < _loc9_.length)
  1592.          {
  1593.             _loc11_ = IEventDispatcher(_loc9_[_loc10_]);
  1594.             if(_loc11_ != param6)
  1595.             {
  1596.                _loc11_.addEventListener(param1,param2,false,param4,param5);
  1597.             }
  1598.             _loc10_++;
  1599.          }
  1600.          dispatchEventFromSWFBridges(_loc7_,param6);
  1601.       }
  1602.       
  1603.       private function forwardFormEvent(param1:SWFBridgeEvent) : Boolean
  1604.       {
  1605.          var _loc3_:DisplayObject = null;
  1606.          if(isTopLevelRoot())
  1607.          {
  1608.             return false;
  1609.          }
  1610.          var _loc2_:IEventDispatcher = swfBridgeGroup.parentBridge;
  1611.          if(_loc2_)
  1612.          {
  1613.             _loc3_ = getSandboxRoot();
  1614.             param1.data.notifier = _loc2_;
  1615.             if(_loc3_ == this)
  1616.             {
  1617.                if(!(param1.data.window is String))
  1618.                {
  1619.                   param1.data.window = NameUtil.displayObjectToString(DisplayObject(param1.data.window));
  1620.                }
  1621.                else
  1622.                {
  1623.                   param1.data.window = NameUtil.displayObjectToString(DisplayObject(this)) + "." + param1.data.window;
  1624.                }
  1625.                _loc2_.dispatchEvent(param1);
  1626.             }
  1627.             else
  1628.             {
  1629.                if(param1.data.window is String)
  1630.                {
  1631.                   param1.data.window = NameUtil.displayObjectToString(DisplayObject(this)) + "." + param1.data.window;
  1632.                }
  1633.                _loc3_.dispatchEvent(param1);
  1634.             }
  1635.          }
  1636.          return true;
  1637.       }
  1638.       
  1639.       public function activate(param1:IFocusManagerContainer) : void
  1640.       {
  1641.          activateForm(param1);
  1642.       }
  1643.       
  1644.       private function sandboxMouseListener(param1:Event) : void
  1645.       {
  1646.          if(param1 is SandboxMouseEvent)
  1647.          {
  1648.             return;
  1649.          }
  1650.          var _loc2_:Event = SandboxMouseEvent.marshal(param1);
  1651.          dispatchEventFromSWFBridges(_loc2_,param1.target as IEventDispatcher);
  1652.          var _loc3_:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  1653.          _loc3_.name = "sameSandbox";
  1654.          _loc3_.value = param1;
  1655.          getSandboxRoot().dispatchEvent(_loc3_);
  1656.          if(!_loc3_.value)
  1657.          {
  1658.             dispatchEvent(_loc2_);
  1659.          }
  1660.       }
  1661.       
  1662.       override public function removeChild(param1:DisplayObject) : DisplayObject
  1663.       {
  1664.          --mx_internal::noTopMostIndex;
  1665.          return mx_internal::rawChildren_removeChild(param1);
  1666.       }
  1667.       
  1668.       mx_internal function rawChildren_removeChild(param1:DisplayObject) : DisplayObject
  1669.       {
  1670.          mx_internal::removingChild(param1);
  1671.          super.removeChild(param1);
  1672.          mx_internal::childRemoved(param1);
  1673.          return param1;
  1674.       }
  1675.       
  1676.       final mx_internal function get $numChildren() : int
  1677.       {
  1678.          return super.numChildren;
  1679.       }
  1680.       
  1681.       public function get toolTipChildren() : IChildList
  1682.       {
  1683.          if(!topLevel)
  1684.          {
  1685.             return _topLevelSystemManager.toolTipChildren;
  1686.          }
  1687.          if(!_toolTipChildren)
  1688.          {
  1689.             _toolTipChildren = new WindowedSystemChildrenList(this,new QName(mx_internal,"topMostIndex"),new QName(mx_internal,"toolTipIndex"));
  1690.          }
  1691.          return _toolTipChildren;
  1692.       }
  1693.       
  1694.       public function get popUpChildren() : IChildList
  1695.       {
  1696.          if(!topLevel)
  1697.          {
  1698.             return _topLevelSystemManager.popUpChildren;
  1699.          }
  1700.          if(!_popUpChildren)
  1701.          {
  1702.             _popUpChildren = new WindowedSystemChildrenList(this,new QName(mx_internal,"noTopMostIndex"),new QName(mx_internal,"topMostIndex"));
  1703.          }
  1704.          return _popUpChildren;
  1705.       }
  1706.       
  1707.       public function addFocusManager(param1:IFocusManagerContainer) : void
  1708.       {
  1709.          forms.push(param1);
  1710.       }
  1711.       
  1712.       public function isTopLevelRoot() : Boolean
  1713.       {
  1714.          return isStageRoot || isBootstrapRoot;
  1715.       }
  1716.       
  1717.       public function create(... rest) : Object
  1718.       {
  1719.          var _loc2_:String = String(rest[0]);
  1720.          var _loc3_:Class = Class(getDefinitionByName(_loc2_));
  1721.          if(!_loc3_)
  1722.          {
  1723.             throw new Error("Class \'" + _loc2_ + "\' not found.");
  1724.          }
  1725.          var _loc4_:Object = new _loc3_();
  1726.          if(_loc4_ is IFlexModule)
  1727.          {
  1728.             IFlexModule(_loc4_).moduleFactory = this;
  1729.          }
  1730.          return _loc4_;
  1731.       }
  1732.       
  1733.       private function systemManagerHandler(param1:Event) : void
  1734.       {
  1735.          if(param1["name"] == "sameSandbox")
  1736.          {
  1737.             param1["value"] = currentSandboxEvent == param1["value"];
  1738.             return;
  1739.          }
  1740.          if(param1["name"] == "hasSWFBridges")
  1741.          {
  1742.             param1["value"] = hasSWFBridges();
  1743.             return;
  1744.          }
  1745.          if(param1 is InterManagerRequest)
  1746.          {
  1747.             return;
  1748.          }
  1749.          var _loc2_:String = param1["name"];
  1750.          switch(_loc2_)
  1751.          {
  1752.             case "popUpChildren.addChild":
  1753.                popUpChildren.addChild(param1["value"]);
  1754.                break;
  1755.             case "popUpChildren.removeChild":
  1756.                popUpChildren.removeChild(param1["value"]);
  1757.                break;
  1758.             case "cursorChildren.addChild":
  1759.                cursorChildren.addChild(param1["value"]);
  1760.                break;
  1761.             case "cursorChildren.removeChild":
  1762.                cursorChildren.removeChild(param1["value"]);
  1763.                break;
  1764.             case "toolTipChildren.addChild":
  1765.                toolTipChildren.addChild(param1["value"]);
  1766.                break;
  1767.             case "toolTipChildren.removeChild":
  1768.                toolTipChildren.removeChild(param1["value"]);
  1769.                break;
  1770.             case "screen":
  1771.                param1["value"] = screen;
  1772.                break;
  1773.             case "application":
  1774.                param1["value"] = document;
  1775.                break;
  1776.             case "isTopLevelRoot":
  1777.                param1["value"] = isTopLevelRoot();
  1778.                break;
  1779.             case "getVisibleApplicationRect":
  1780.                param1["value"] = getVisibleApplicationRect();
  1781.                break;
  1782.             case "bringToFront":
  1783.                if(param1["value"].topMost)
  1784.                {
  1785.                   popUpChildren.setChildIndex(DisplayObject(param1["value"].popUp),popUpChildren.numChildren - 1);
  1786.                }
  1787.                else
  1788.                {
  1789.                   setChildIndex(DisplayObject(param1["value"].popUp),numChildren - 1);
  1790.                }
  1791.          }
  1792.       }
  1793.       
  1794.       private function removeRemotePopUp(param1:RemotePopUp) : void
  1795.       {
  1796.          var _loc2_:int = int(forms.length);
  1797.          var _loc3_:int = 0;
  1798.          while(_loc3_ < _loc2_)
  1799.          {
  1800.             if(isRemotePopUp(forms[_loc3_]))
  1801.             {
  1802.                if(forms[_loc3_].window == param1.window && forms[_loc3_].bridge == param1.bridge)
  1803.                {
  1804.                   if(forms[_loc3_] == param1)
  1805.                   {
  1806.                      deactivateForm(param1);
  1807.                   }
  1808.                   forms.splice(_loc3_,1);
  1809.                   break;
  1810.                }
  1811.             }
  1812.             _loc3_++;
  1813.          }
  1814.       }
  1815.       
  1816.       private function deactivateRemotePopUp(param1:Object) : void
  1817.       {
  1818.          var _loc2_:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,false,false,param1.bridge,param1.window);
  1819.          var _loc3_:Object = param1.bridge;
  1820.          if(_loc3_)
  1821.          {
  1822.             _loc3_.dispatchEvent(_loc2_);
  1823.          }
  1824.       }
  1825.       
  1826.       private function dispatchDeactivatedWindowEvent(param1:DisplayObject) : void
  1827.       {
  1828.          var _loc3_:DisplayObject = null;
  1829.          var _loc4_:* = false;
  1830.          var _loc5_:SWFBridgeEvent = null;
  1831.          var _loc2_:IEventDispatcher = !!swfBridgeGroup ? swfBridgeGroup.parentBridge : null;
  1832.          if(_loc2_)
  1833.          {
  1834.             _loc3_ = getSandboxRoot();
  1835.             _loc4_ = _loc3_ != this;
  1836.             _loc5_ = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_DEACTIVATE,false,false,{
  1837.                "notifier":_loc2_,
  1838.                "window":(_loc4_ ? param1 : NameUtil.displayObjectToString(param1))
  1839.             });
  1840.             if(_loc4_)
  1841.             {
  1842.                _loc3_.dispatchEvent(_loc5_);
  1843.             }
  1844.             else
  1845.             {
  1846.                _loc2_.dispatchEvent(_loc5_);
  1847.             }
  1848.          }
  1849.       }
  1850.       
  1851.       public function getSandboxRoot() : DisplayObject
  1852.       {
  1853.          var parent:DisplayObject = null;
  1854.          var lastParent:DisplayObject = null;
  1855.          var loader:Loader = null;
  1856.          var loaderInfo:LoaderInfo = null;
  1857.          var sm:ISystemManager = this;
  1858.          try
  1859.          {
  1860.             if(sm.topLevelSystemManager)
  1861.             {
  1862.                sm = ISystemManager(sm.topLevelSystemManager);
  1863.             }
  1864.             parent = DisplayObject(sm).parent;
  1865.             if(parent is Stage)
  1866.             {
  1867.                return DisplayObject(sm);
  1868.             }
  1869.             if(Boolean(parent) && !parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot",false,true)))
  1870.             {
  1871.                return this;
  1872.             }
  1873.             lastParent = this;
  1874.             while(parent)
  1875.             {
  1876.                if(parent is Stage)
  1877.                {
  1878.                   return lastParent;
  1879.                }
  1880.                if(!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot",false,true)))
  1881.                {
  1882.                   return lastParent;
  1883.                }
  1884.                if(parent is Loader)
  1885.                {
  1886.                   loader = Loader(parent);
  1887.                   loaderInfo = loader.contentLoaderInfo;
  1888.                   if(!loaderInfo.childAllowsParent)
  1889.                   {
  1890.                      return loaderInfo.content;
  1891.                   }
  1892.                }
  1893.                if(parent.hasEventListener(InterManagerRequest.SYSTEM_MANAGER_REQUEST))
  1894.                {
  1895.                   lastParent = parent;
  1896.                }
  1897.                parent = parent.parent;
  1898.             }
  1899.          }
  1900.          catch(error:Error)
  1901.          {
  1902.          }
  1903.          return lastParent != null ? lastParent : DisplayObject(sm);
  1904.       }
  1905.       
  1906.       public function get document() : Object
  1907.       {
  1908.          return _document;
  1909.       }
  1910.       
  1911.       mx_internal function get cursorIndex() : int
  1912.       {
  1913.          return _cursorIndex;
  1914.       }
  1915.       
  1916.       private function resizeMouseCatcher() : void
  1917.       {
  1918.          var _loc1_:Graphics = null;
  1919.          if(mouseCatcher)
  1920.          {
  1921.             _loc1_ = mouseCatcher.graphics;
  1922.             _loc1_.clear();
  1923.             _loc1_.beginFill(0,0);
  1924.             _loc1_.drawRect(0,0,stage.stageWidth,stage.stageHeight);
  1925.             _loc1_.endFill();
  1926.          }
  1927.       }
  1928.       
  1929.       final mx_internal function $addChild(param1:DisplayObject) : DisplayObject
  1930.       {
  1931.          return super.addChild(param1);
  1932.       }
  1933.       
  1934.       override public function getChildIndex(param1:DisplayObject) : int
  1935.       {
  1936.          return super.getChildIndex(param1) - mx_internal::applicationIndex;
  1937.       }
  1938.       
  1939.       override public function getObjectsUnderPoint(param1:Point) : Array
  1940.       {
  1941.          var _loc5_:DisplayObject = null;
  1942.          var _loc6_:Array = null;
  1943.          var _loc2_:Array = [];
  1944.          var _loc3_:int = mx_internal::topMostIndex;
  1945.          var _loc4_:int = 0;
  1946.          while(_loc4_ < _loc3_)
  1947.          {
  1948.             _loc5_ = super.getChildAt(_loc4_);
  1949.             if(_loc5_ is DisplayObjectContainer)
  1950.             {
  1951.                _loc6_ = DisplayObjectContainer(_loc5_).getObjectsUnderPoint(param1);
  1952.                if(_loc6_)
  1953.                {
  1954.                   _loc2_ = _loc2_.concat(_loc6_);
  1955.                }
  1956.             }
  1957.             _loc4_++;
  1958.          }
  1959.          return _loc2_;
  1960.       }
  1961.       
  1962.       mx_internal function rawChildren_contains(param1:DisplayObject) : Boolean
  1963.       {
  1964.          return super.contains(param1);
  1965.       }
  1966.       
  1967.       override public function get height() : Number
  1968.       {
  1969.          return _height;
  1970.       }
  1971.       
  1972.       public function getFocus() : InteractiveObject
  1973.       {
  1974.          try
  1975.          {
  1976.             return stage.focus;
  1977.          }
  1978.          catch(e:SecurityError)
  1979.          {
  1980.          }
  1981.          return null;
  1982.       }
  1983.       
  1984.       mx_internal function rawChildren_getChildIndex(param1:DisplayObject) : int
  1985.       {
  1986.          return super.getChildIndex(param1);
  1987.       }
  1988.       
  1989.       private function addPopupRequestHandler(param1:Event) : void
  1990.       {
  1991.          var _loc3_:* = false;
  1992.          var _loc4_:IChildList = null;
  1993.          var _loc6_:ISWFBridgeProvider = null;
  1994.          var _loc7_:SWFBridgeRequest = null;
  1995.          if(param1.target != this && param1 is SWFBridgeRequest)
  1996.          {
  1997.             return;
  1998.          }
  1999.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2000.          if(param1.target != this)
  2001.          {
  2002.             _loc6_ = swfBridgeGroup.getChildBridgeProvider(IEventDispatcher(param1.target));
  2003.             if(!SecurityUtil.hasMutualTrustBetweenParentAndChild(_loc6_))
  2004.             {
  2005.                return;
  2006.             }
  2007.          }
  2008.          if(Boolean(swfBridgeGroup.parentBridge) && SecurityUtil.hasMutualTrustBetweenParentAndChild(this))
  2009.          {
  2010.             _loc2_.requestor = swfBridgeGroup.parentBridge;
  2011.             getSandboxRoot().dispatchEvent(_loc2_);
  2012.             return;
  2013.          }
  2014.          if(!_loc2_.data.childList || _loc2_.data.childList == PopUpManagerChildList.PARENT)
  2015.          {
  2016.             _loc3_ = Boolean(_loc2_.data.parent) && Boolean(popUpChildren.contains(_loc2_.data.parent));
  2017.          }
  2018.          else
  2019.          {
  2020.             _loc3_ = _loc2_.data.childList == PopUpManagerChildList.POPUP;
  2021.          }
  2022.          _loc4_ = _loc3_ ? popUpChildren : this;
  2023.          _loc4_.addChild(DisplayObject(_loc2_.data.window));
  2024.          if(_loc2_.data.modal)
  2025.          {
  2026.             ++numModalWindows;
  2027.          }
  2028.          var _loc5_:RemotePopUp = new RemotePopUp(_loc2_.data.window,_loc2_.requestor);
  2029.          forms.push(_loc5_);
  2030.          if(!isTopLevelRoot() && Boolean(swfBridgeGroup))
  2031.          {
  2032.             _loc7_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,false,false,_loc2_.requestor,{"window":_loc2_.data.window});
  2033.             _loc7_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(_loc2_.data.window));
  2034.             dispatchEvent(_loc7_);
  2035.          }
  2036.       }
  2037.       
  2038.       public function getTopLevelRoot() : DisplayObject
  2039.       {
  2040.          var sm:ISystemManager = null;
  2041.          var parent:DisplayObject = null;
  2042.          var lastParent:DisplayObject = null;
  2043.          try
  2044.          {
  2045.             sm = this;
  2046.             if(sm.topLevelSystemManager)
  2047.             {
  2048.                sm = ISystemManager(sm.topLevelSystemManager);
  2049.             }
  2050.             parent = DisplayObject(sm).parent;
  2051.             lastParent = parent;
  2052.             while(parent)
  2053.             {
  2054.                if(parent is Stage)
  2055.                {
  2056.                   return lastParent;
  2057.                }
  2058.                lastParent = parent;
  2059.                parent = parent.parent;
  2060.             }
  2061.          }
  2062.          catch(error:SecurityError)
  2063.          {
  2064.          }
  2065.          return null;
  2066.       }
  2067.       
  2068.       mx_internal function regenerateStyleCache(param1:Boolean) : void
  2069.       {
  2070.          var _loc5_:IStyleClient = null;
  2071.          var _loc2_:Boolean = false;
  2072.          var _loc3_:int = int(rawChildren.numChildren);
  2073.          var _loc4_:int = 0;
  2074.          while(_loc4_ < _loc3_)
  2075.          {
  2076.             _loc5_ = rawChildren.getChildAt(_loc4_) as IStyleClient;
  2077.             if(_loc5_)
  2078.             {
  2079.                _loc5_.regenerateStyleCache(param1);
  2080.             }
  2081.             if(isTopLevelWindow(DisplayObject(_loc5_)))
  2082.             {
  2083.                _loc2_ = true;
  2084.             }
  2085.             _loc3_ = int(rawChildren.numChildren);
  2086.             _loc4_++;
  2087.          }
  2088.          if(!_loc2_ && mx_internal::topLevelWindow is IStyleClient)
  2089.          {
  2090.             IStyleClient(mx_internal::topLevelWindow).regenerateStyleCache(param1);
  2091.          }
  2092.       }
  2093.       
  2094.       private function activateRemotePopUp(param1:Object) : void
  2095.       {
  2096.          var _loc2_:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST,false,false,param1.bridge,param1.window);
  2097.          var _loc3_:Object = param1.bridge;
  2098.          if(_loc3_)
  2099.          {
  2100.             _loc3_.dispatchEvent(_loc2_);
  2101.          }
  2102.       }
  2103.       
  2104.       override public function addChild(param1:DisplayObject) : DisplayObject
  2105.       {
  2106.          ++mx_internal::noTopMostIndex;
  2107.          return mx_internal::rawChildren_addChildAt(param1,mx_internal::noTopMostIndex - 1);
  2108.       }
  2109.       
  2110.       mx_internal function set noTopMostIndex(param1:int) : void
  2111.       {
  2112.          var _loc2_:int = param1 - _noTopMostIndex;
  2113.          _noTopMostIndex = param1;
  2114.          mx_internal::topMostIndex += _loc2_;
  2115.       }
  2116.       
  2117.       public function set swfBridgeGroup(param1:ISWFBridgeGroup) : void
  2118.       {
  2119.          if(topLevel)
  2120.          {
  2121.             _swfBridgeGroup = param1;
  2122.          }
  2123.          else if(topLevelSystemManager)
  2124.          {
  2125.             SystemManager(topLevelSystemManager).swfBridgeGroup = param1;
  2126.          }
  2127.       }
  2128.       
  2129.       mx_internal function rawChildren_getChildAt(param1:int) : DisplayObject
  2130.       {
  2131.          return super.getChildAt(param1);
  2132.       }
  2133.       
  2134.       mx_internal function get topMostIndex() : int
  2135.       {
  2136.          return _topMostIndex;
  2137.       }
  2138.       
  2139.       private function addChildAndMouseCatcher() : void
  2140.       {
  2141.          var _loc1_:IUIComponent = mx_internal::topLevelWindow;
  2142.          mouseCatcher = new FlexSprite();
  2143.          mouseCatcher.name = "mouseCatcher";
  2144.          ++mx_internal::noTopMostIndex;
  2145.          super.addChildAt(mouseCatcher,0);
  2146.          resizeMouseCatcher();
  2147.          if(!topLevel)
  2148.          {
  2149.             mouseCatcher.visible = false;
  2150.             mask = mouseCatcher;
  2151.          }
  2152.          ++mx_internal::noTopMostIndex;
  2153.          super.addChild(DisplayObject(_loc1_));
  2154.       }
  2155.       
  2156.       mx_internal function rawChildren_setChildIndex(param1:DisplayObject, param2:int) : void
  2157.       {
  2158.          super.setChildIndex(param1,param2);
  2159.       }
  2160.       
  2161.       mx_internal function childAdded(param1:DisplayObject) : void
  2162.       {
  2163.          param1.dispatchEvent(new FlexEvent(FlexEvent.ADD));
  2164.          if(param1 is IUIComponent)
  2165.          {
  2166.             IUIComponent(param1).initialize();
  2167.          }
  2168.       }
  2169.       
  2170.       override public function setChildIndex(param1:DisplayObject, param2:int) : void
  2171.       {
  2172.          super.setChildIndex(param1,mx_internal::applicationIndex + param2);
  2173.       }
  2174.       
  2175.       private function deactivateFormSandboxEventHandler(param1:Event) : void
  2176.       {
  2177.          if(param1 is SWFBridgeRequest)
  2178.          {
  2179.             return;
  2180.          }
  2181.          var _loc2_:SWFBridgeEvent = SWFBridgeEvent.marshal(param1);
  2182.          if(!forwardFormEvent(_loc2_))
  2183.          {
  2184.             if(isRemotePopUp(form) && RemotePopUp(form).window == _loc2_.data.window && RemotePopUp(form).bridge == _loc2_.data.notifier)
  2185.             {
  2186.                deactivateForm(form);
  2187.             }
  2188.          }
  2189.       }
  2190.       
  2191.       public function isFontFaceEmbedded(param1:TextFormat) : Boolean
  2192.       {
  2193.          var _loc6_:Font = null;
  2194.          var _loc7_:String = null;
  2195.          var _loc2_:String = param1.font;
  2196.          var _loc3_:Array = Font.enumerateFonts();
  2197.          var _loc4_:int = 0;
  2198.          while(_loc4_ < _loc3_.length)
  2199.          {
  2200.             _loc6_ = Font(_loc3_[_loc4_]);
  2201.             if(_loc6_.fontName == _loc2_)
  2202.             {
  2203.                _loc7_ = "regular";
  2204.                if(Boolean(param1.bold) && Boolean(param1.italic))
  2205.                {
  2206.                   _loc7_ = "boldItalic";
  2207.                }
  2208.                else if(param1.bold)
  2209.                {
  2210.                   _loc7_ = "bold";
  2211.                }
  2212.                else if(param1.italic)
  2213.                {
  2214.                   _loc7_ = "italic";
  2215.                }
  2216.                if(_loc6_.fontStyle == _loc7_)
  2217.                {
  2218.                   return true;
  2219.                }
  2220.             }
  2221.             _loc4_++;
  2222.          }
  2223.          if(!_loc2_ || !embeddedFontList || !embeddedFontList[_loc2_])
  2224.          {
  2225.             return false;
  2226.          }
  2227.          var _loc5_:Object = embeddedFontList[_loc2_];
  2228.          return !(Boolean(param1.bold) && !_loc5_.bold || Boolean(param1.italic) && !_loc5_.italic || !param1.bold && !param1.italic && !_loc5_.regular);
  2229.       }
  2230.       
  2231.       private function forwardPlaceholderRequest(param1:SWFBridgeRequest, param2:Boolean) : Boolean
  2232.       {
  2233.          if(isTopLevelRoot())
  2234.          {
  2235.             return false;
  2236.          }
  2237.          var _loc3_:Object = null;
  2238.          var _loc4_:String = null;
  2239.          if(param1.data.window)
  2240.          {
  2241.             _loc3_ = param1.data.window;
  2242.             param1.data.window = null;
  2243.          }
  2244.          else
  2245.          {
  2246.             _loc3_ = param1.requestor;
  2247.             _loc4_ = param1.data.placeHolderId;
  2248.             param1.data.placeHolderId = NameUtil.displayObjectToString(this) + "." + param1.data.placeHolderId;
  2249.          }
  2250.          if(param2)
  2251.          {
  2252.             addPlaceholderId(param1.data.placeHolderId,_loc4_,param1.requestor,_loc3_);
  2253.          }
  2254.          else
  2255.          {
  2256.             removePlaceholderId(param1.data.placeHolderId);
  2257.          }
  2258.          var _loc5_:DisplayObject = getSandboxRoot();
  2259.          var _loc6_:IEventDispatcher = swfBridgeGroup.parentBridge;
  2260.          param1.requestor = _loc6_;
  2261.          if(_loc5_ == this)
  2262.          {
  2263.             _loc6_.dispatchEvent(param1);
  2264.          }
  2265.          else
  2266.          {
  2267.             _loc5_.dispatchEvent(param1);
  2268.          }
  2269.          return true;
  2270.       }
  2271.       
  2272.       private function updateLastActiveForm() : void
  2273.       {
  2274.          var _loc1_:int = int(forms.length);
  2275.          if(_loc1_ < 2)
  2276.          {
  2277.             return;
  2278.          }
  2279.          var _loc2_:int = -1;
  2280.          var _loc3_:int = 0;
  2281.          while(_loc3_ < _loc1_)
  2282.          {
  2283.             if(areFormsEqual(form,forms[_loc3_]))
  2284.             {
  2285.                _loc2_ = _loc3_;
  2286.                break;
  2287.             }
  2288.             _loc3_++;
  2289.          }
  2290.          if(_loc2_ >= 0)
  2291.          {
  2292.             forms.splice(_loc2_,1);
  2293.             forms.push(form);
  2294.          }
  2295.       }
  2296.       
  2297.       override public function removeEventListener(param1:String, param2:Function, param3:Boolean = false) : void
  2298.       {
  2299.          var actualType:String = null;
  2300.          var type:String = param1;
  2301.          var listener:Function = param2;
  2302.          var useCapture:Boolean = param3;
  2303.          if(type == FlexEvent.RENDER || type == FlexEvent.ENTER_FRAME)
  2304.          {
  2305.             if(type == FlexEvent.RENDER)
  2306.             {
  2307.                type = Event.RENDER;
  2308.             }
  2309.             else
  2310.             {
  2311.                type = Event.ENTER_FRAME;
  2312.             }
  2313.             try
  2314.             {
  2315.                if(stage)
  2316.                {
  2317.                   stage.removeEventListener(type,listener,useCapture);
  2318.                }
  2319.             }
  2320.             catch(error:SecurityError)
  2321.             {
  2322.             }
  2323.             super.removeEventListener(type,listener,useCapture);
  2324.             return;
  2325.          }
  2326.          if(hasSWFBridges() || SystemManagerGlobals.topLevelSystemManagers.length > 1)
  2327.          {
  2328.             actualType = EventUtil.sandboxMouseEventMap[type];
  2329.             if(actualType)
  2330.             {
  2331.                if(getSandboxRoot() == this && Boolean(eventProxy))
  2332.                {
  2333.                   super.removeEventListener(actualType,eventProxy.marshalListener,useCapture);
  2334.                   if(actualType == MouseEvent.MOUSE_UP)
  2335.                   {
  2336.                      try
  2337.                      {
  2338.                         if(stage)
  2339.                         {
  2340.                            stage.removeEventListener(Event.MOUSE_LEAVE,eventProxy.marshalListener,useCapture);
  2341.                         }
  2342.                      }
  2343.                      catch(e:SecurityError)
  2344.                      {
  2345.                      }
  2346.                      super.removeEventListener(Event.MOUSE_LEAVE,eventProxy.marshalListener,useCapture);
  2347.                   }
  2348.                }
  2349.                if(!SystemManagerGlobals.changingListenersInOtherSystemManagers)
  2350.                {
  2351.                   removeEventListenerFromOtherSystemManagers(type,otherSystemManagerMouseListener,useCapture);
  2352.                }
  2353.                removeEventListenerFromSandboxes(type,sandboxMouseListener,useCapture);
  2354.                super.removeEventListener(type,listener,false);
  2355.                return;
  2356.             }
  2357.          }
  2358.          super.removeEventListener(type,listener,useCapture);
  2359.          if(type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN || type == Event.ACTIVATE || type == Event.DEACTIVATE)
  2360.          {
  2361.             if(!hasEventListener(type))
  2362.             {
  2363.                try
  2364.                {
  2365.                   if(stage)
  2366.                   {
  2367.                      stage.removeEventListener(type,stageEventHandler,false);
  2368.                   }
  2369.                }
  2370.                catch(error:SecurityError)
  2371.                {
  2372.                }
  2373.             }
  2374.          }
  2375.          if(type == SandboxMouseEvent.MOUSE_UP_SOMEWHERE)
  2376.          {
  2377.             if(!hasEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE))
  2378.             {
  2379.                try
  2380.                {
  2381.                   if(stage)
  2382.                   {
  2383.                      stage.removeEventListener(Event.MOUSE_LEAVE,mouseLeaveHandler);
  2384.                   }
  2385.                }
  2386.                catch(error:SecurityError)
  2387.                {
  2388.                }
  2389.                super.removeEventListener(Event.MOUSE_LEAVE,mouseLeaveHandler);
  2390.             }
  2391.          }
  2392.       }
  2393.       
  2394.       override public function removeChildAt(param1:int) : DisplayObject
  2395.       {
  2396.          --mx_internal::noTopMostIndex;
  2397.          return mx_internal::rawChildren_removeChildAt(mx_internal::applicationIndex + param1);
  2398.       }
  2399.       
  2400.       mx_internal function rawChildren_removeChildAt(param1:int) : DisplayObject
  2401.       {
  2402.          var _loc2_:DisplayObject = super.getChildAt(param1);
  2403.          mx_internal::removingChild(_loc2_);
  2404.          super.removeChildAt(param1);
  2405.          mx_internal::childRemoved(_loc2_);
  2406.          return _loc2_;
  2407.       }
  2408.       
  2409.       private function deactivateRequestHandler(param1:Event) : void
  2410.       {
  2411.          var _loc5_:PlaceholderData = null;
  2412.          var _loc6_:RemotePopUp = null;
  2413.          var _loc7_:SystemManagerProxy = null;
  2414.          var _loc8_:IFocusManagerContainer = null;
  2415.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2416.          var _loc3_:Object = _loc2_.data;
  2417.          var _loc4_:String = null;
  2418.          if(_loc2_.data is String)
  2419.          {
  2420.             _loc5_ = idToPlaceholder[_loc2_.data];
  2421.             _loc3_ = _loc5_.data;
  2422.             _loc4_ = _loc5_.id;
  2423.             if(_loc4_ == null)
  2424.             {
  2425.                _loc6_ = findRemotePopUp(_loc3_,_loc5_.bridge);
  2426.                if(_loc6_)
  2427.                {
  2428.                   deactivateRemotePopUp(_loc6_);
  2429.                   return;
  2430.                }
  2431.             }
  2432.          }
  2433.          if(_loc3_ is SystemManagerProxy)
  2434.          {
  2435.             _loc7_ = SystemManagerProxy(_loc3_);
  2436.             _loc8_ = mx_internal::findFocusManagerContainer(_loc7_);
  2437.             if(Boolean(_loc7_) && Boolean(_loc8_))
  2438.             {
  2439.                _loc7_.deactivateByProxy(_loc8_);
  2440.             }
  2441.          }
  2442.          else
  2443.          {
  2444.             if(!(_loc3_ is IFocusManagerContainer))
  2445.             {
  2446.                if(_loc3_ is IEventDispatcher)
  2447.                {
  2448.                   _loc2_.data = _loc4_;
  2449.                   _loc2_.requestor = IEventDispatcher(_loc3_);
  2450.                   IEventDispatcher(_loc3_).dispatchEvent(_loc2_);
  2451.                   return;
  2452.                }
  2453.                throw new Error();
  2454.             }
  2455.             IFocusManagerContainer(_loc3_).focusManager.deactivate();
  2456.          }
  2457.       }
  2458.       
  2459.       private function deactivateForm(param1:Object) : void
  2460.       {
  2461.          if(form)
  2462.          {
  2463.             if(form == param1 && forms.length > 1)
  2464.             {
  2465.                if(isRemotePopUp(form))
  2466.                {
  2467.                   deactivateRemotePopUp(form);
  2468.                }
  2469.                else
  2470.                {
  2471.                   form.focusManager.deactivate();
  2472.                }
  2473.                form = findLastActiveForm(param1);
  2474.                if(form)
  2475.                {
  2476.                   if(isRemotePopUp(form))
  2477.                   {
  2478.                      activateRemotePopUp(form);
  2479.                   }
  2480.                   else
  2481.                   {
  2482.                      form.focusManager.activate();
  2483.                   }
  2484.                }
  2485.             }
  2486.          }
  2487.       }
  2488.       
  2489.       mx_internal function removingChild(param1:DisplayObject) : void
  2490.       {
  2491.          param1.dispatchEvent(new FlexEvent(FlexEvent.REMOVE));
  2492.       }
  2493.       
  2494.       mx_internal function set toolTipIndex(param1:int) : void
  2495.       {
  2496.          var _loc2_:int = param1 - _toolTipIndex;
  2497.          _toolTipIndex = param1;
  2498.          mx_internal::cursorIndex += _loc2_;
  2499.       }
  2500.       
  2501.       mx_internal function get applicationIndex() : int
  2502.       {
  2503.          return _applicationIndex;
  2504.       }
  2505.       
  2506.       private function hasSWFBridges() : Boolean
  2507.       {
  2508.          if(swfBridgeGroup)
  2509.          {
  2510.             return true;
  2511.          }
  2512.          return false;
  2513.       }
  2514.       
  2515.       private function stageEventHandler(param1:Event) : void
  2516.       {
  2517.          if(param1.target is Stage)
  2518.          {
  2519.             mouseCatcher.dispatchEvent(param1);
  2520.          }
  2521.       }
  2522.       
  2523.       mx_internal function set bridgeToFocusManager(param1:Dictionary) : void
  2524.       {
  2525.          if(topLevel)
  2526.          {
  2527.             _bridgeToFocusManager = param1;
  2528.          }
  2529.          else if(topLevelSystemManager)
  2530.          {
  2531.             SystemManager(topLevelSystemManager).mx_internal::bridgeToFocusManager = param1;
  2532.          }
  2533.       }
  2534.       
  2535.       public function get cursorChildren() : IChildList
  2536.       {
  2537.          if(!topLevel)
  2538.          {
  2539.             return _topLevelSystemManager.cursorChildren;
  2540.          }
  2541.          if(!_cursorChildren)
  2542.          {
  2543.             _cursorChildren = new WindowedSystemChildrenList(this,new QName(mx_internal,"toolTipIndex"),new QName(mx_internal,"cursorIndex"));
  2544.          }
  2545.          return _cursorChildren;
  2546.       }
  2547.       
  2548.       public function set numModalWindows(param1:int) : void
  2549.       {
  2550.          _numModalWindows = param1;
  2551.       }
  2552.       
  2553.       mx_internal function rawChildren_getChildByName(param1:String) : DisplayObject
  2554.       {
  2555.          return super.getChildByName(param1);
  2556.       }
  2557.       
  2558.       private function isBridgeChildHandler(param1:Event) : void
  2559.       {
  2560.          if(param1 is SWFBridgeRequest)
  2561.          {
  2562.             return;
  2563.          }
  2564.          var _loc2_:Object = Object(param1);
  2565.          _loc2_.data = _loc2_.data && rawChildren.contains(_loc2_.data as DisplayObject);
  2566.       }
  2567.       
  2568.       public function allowDomain(... rest) : void
  2569.       {
  2570.       }
  2571.       
  2572.       mx_internal function rawChildren_addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  2573.       {
  2574.          mx_internal::addingChild(param1);
  2575.          super.addChildAt(param1,param2);
  2576.          mx_internal::childAdded(param1);
  2577.          return param1;
  2578.       }
  2579.       
  2580.       public function get topLevelSystemManager() : ISystemManager
  2581.       {
  2582.          if(topLevel)
  2583.          {
  2584.             return this;
  2585.          }
  2586.          return _topLevelSystemManager;
  2587.       }
  2588.       
  2589.       public function getVisibleApplicationRect(param1:Rectangle = null) : Rectangle
  2590.       {
  2591.          var _loc2_:Rectangle = null;
  2592.          var _loc3_:Point = null;
  2593.          var _loc4_:IEventDispatcher = null;
  2594.          var _loc5_:SWFBridgeRequest = null;
  2595.          if(!param1)
  2596.          {
  2597.             param1 = getBounds(DisplayObject(this));
  2598.             _loc2_ = screen;
  2599.             _loc3_ = new Point(Math.max(0,param1.x),Math.max(0,param1.y));
  2600.             _loc3_ = localToGlobal(_loc3_);
  2601.             param1.x = _loc3_.x;
  2602.             param1.y = _loc3_.y;
  2603.             param1.width = _loc2_.width;
  2604.             param1.height = _loc2_.height;
  2605.          }
  2606.          if(useSWFBridge())
  2607.          {
  2608.             _loc4_ = swfBridgeGroup.parentBridge;
  2609.             _loc5_ = new SWFBridgeRequest(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,false,false,_loc4_,param1);
  2610.             _loc4_.dispatchEvent(_loc5_);
  2611.             param1 = Rectangle(_loc5_.data);
  2612.          }
  2613.          return param1;
  2614.       }
  2615.       
  2616.       mx_internal function dispatchActivatedWindowEvent(param1:DisplayObject) : void
  2617.       {
  2618.          var _loc3_:DisplayObject = null;
  2619.          var _loc4_:* = false;
  2620.          var _loc5_:SWFBridgeEvent = null;
  2621.          var _loc2_:IEventDispatcher = !!swfBridgeGroup ? swfBridgeGroup.parentBridge : null;
  2622.          if(_loc2_)
  2623.          {
  2624.             _loc3_ = getSandboxRoot();
  2625.             _loc4_ = _loc3_ != this;
  2626.             _loc5_ = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_WINDOW_ACTIVATE,false,false,{
  2627.                "notifier":_loc2_,
  2628.                "window":(_loc4_ ? param1 : NameUtil.displayObjectToString(param1))
  2629.             });
  2630.             if(_loc4_)
  2631.             {
  2632.                _loc3_.dispatchEvent(_loc5_);
  2633.             }
  2634.             else
  2635.             {
  2636.                _loc2_.dispatchEvent(_loc5_);
  2637.             }
  2638.          }
  2639.       }
  2640.       
  2641.       private function canActivateLocalComponent(param1:Object) : Boolean
  2642.       {
  2643.          if(param1 is Sprite && param1 is IUIComponent && Sprite(param1).visible && Boolean(IUIComponent(param1).enabled))
  2644.          {
  2645.             return true;
  2646.          }
  2647.          return false;
  2648.       }
  2649.       
  2650.       mx_internal function get noTopMostIndex() : int
  2651.       {
  2652.          return _noTopMostIndex;
  2653.       }
  2654.       
  2655.       private function activateRequestHandler(param1:Event) : void
  2656.       {
  2657.          var _loc5_:PlaceholderData = null;
  2658.          var _loc6_:RemotePopUp = null;
  2659.          var _loc7_:SystemManagerProxy = null;
  2660.          var _loc8_:IFocusManagerContainer = null;
  2661.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2662.          var _loc3_:Object = _loc2_.data;
  2663.          var _loc4_:String = null;
  2664.          if(_loc2_.data is String)
  2665.          {
  2666.             _loc5_ = idToPlaceholder[_loc2_.data];
  2667.             _loc3_ = _loc5_.data;
  2668.             _loc4_ = _loc5_.id;
  2669.             if(_loc4_ == null)
  2670.             {
  2671.                _loc6_ = findRemotePopUp(_loc3_,_loc5_.bridge);
  2672.                if(_loc6_)
  2673.                {
  2674.                   activateRemotePopUp(_loc6_);
  2675.                   return;
  2676.                }
  2677.             }
  2678.          }
  2679.          if(_loc3_ is SystemManagerProxy)
  2680.          {
  2681.             _loc7_ = SystemManagerProxy(_loc3_);
  2682.             _loc8_ = mx_internal::findFocusManagerContainer(_loc7_);
  2683.             if(Boolean(_loc7_) && Boolean(_loc8_))
  2684.             {
  2685.                _loc7_.activateByProxy(_loc8_);
  2686.             }
  2687.          }
  2688.          else if(_loc3_ is IFocusManagerContainer)
  2689.          {
  2690.             IFocusManagerContainer(_loc3_).focusManager.activate();
  2691.          }
  2692.          else
  2693.          {
  2694.             if(!(_loc3_ is IEventDispatcher))
  2695.             {
  2696.                throw new Error();
  2697.             }
  2698.             _loc2_.data = _loc4_;
  2699.             _loc2_.requestor = IEventDispatcher(_loc3_);
  2700.             IEventDispatcher(_loc3_).dispatchEvent(_loc2_);
  2701.          }
  2702.       }
  2703.       
  2704.       public function addChildToSandboxRoot(param1:String, param2:DisplayObject) : void
  2705.       {
  2706.          var _loc3_:InterManagerRequest = null;
  2707.          if(getSandboxRoot() == this)
  2708.          {
  2709.             this[param1].addChild(param2);
  2710.          }
  2711.          else
  2712.          {
  2713.             mx_internal::addingChild(param2);
  2714.             _loc3_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  2715.             _loc3_.name = param1 + ".addChild";
  2716.             _loc3_.value = param2;
  2717.             getSandboxRoot().dispatchEvent(_loc3_);
  2718.             mx_internal::childAdded(param2);
  2719.          }
  2720.       }
  2721.       
  2722.       mx_internal function childRemoved(param1:DisplayObject) : void
  2723.       {
  2724.          if(param1 is IUIComponent)
  2725.          {
  2726.             IUIComponent(param1).parentChanged(null);
  2727.          }
  2728.       }
  2729.       
  2730.       final mx_internal function $removeChildAt(param1:int) : DisplayObject
  2731.       {
  2732.          return super.removeChildAt(param1);
  2733.       }
  2734.       
  2735.       private function canActivatePopUp(param1:Object) : Boolean
  2736.       {
  2737.          var _loc2_:RemotePopUp = null;
  2738.          var _loc3_:SWFBridgeRequest = null;
  2739.          if(isRemotePopUp(param1))
  2740.          {
  2741.             _loc2_ = RemotePopUp(param1);
  2742.             _loc3_ = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST,false,false,null,_loc2_.window);
  2743.             IEventDispatcher(_loc2_.bridge).dispatchEvent(_loc3_);
  2744.             return _loc3_.data;
  2745.          }
  2746.          if(canActivateLocalComponent(param1))
  2747.          {
  2748.             return true;
  2749.          }
  2750.          return false;
  2751.       }
  2752.       
  2753.       override public function get numChildren() : int
  2754.       {
  2755.          return mx_internal::noTopMostIndex - mx_internal::applicationIndex;
  2756.       }
  2757.       
  2758.       protected function initializeTopLevelWindow(param1:Event) : void
  2759.       {
  2760.          var _loc2_:IUIComponent = null;
  2761.          var _loc3_:DisplayObjectContainer = null;
  2762.          initialized = true;
  2763.          if(!parent)
  2764.          {
  2765.             return;
  2766.          }
  2767.          initContextMenu();
  2768.          if(!topLevel)
  2769.          {
  2770.             if(!parent)
  2771.             {
  2772.                return;
  2773.             }
  2774.             _loc3_ = parent.parent;
  2775.             if(!_loc3_)
  2776.             {
  2777.                return;
  2778.             }
  2779.             while(_loc3_)
  2780.             {
  2781.                if(_loc3_ is IUIComponent)
  2782.                {
  2783.                   _topLevelSystemManager = IUIComponent(_loc3_).systemManager;
  2784.                   break;
  2785.                }
  2786.                _loc3_ = _loc3_.parent;
  2787.             }
  2788.          }
  2789.          addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandler,true);
  2790.          stage.addEventListener(Event.RESIZE,Stage_resizeHandler,false,0,true);
  2791.          document = _loc2_ = mx_internal::topLevelWindow;
  2792.          if(document)
  2793.          {
  2794.             if(topLevel && Boolean(stage))
  2795.             {
  2796.                _width = stage.stageWidth;
  2797.                _height = stage.stageHeight;
  2798.                IFlexDisplayObject(_loc2_).setActualSize(stage.stageWidth,stage.stageHeight);
  2799.             }
  2800.             else
  2801.             {
  2802.                IFlexDisplayObject(_loc2_).setActualSize(loaderInfo.width,loaderInfo.height);
  2803.             }
  2804.             mx_internal::addingChild(DisplayObject(_loc2_));
  2805.             mx_internal::childAdded(DisplayObject(_loc2_));
  2806.          }
  2807.          else
  2808.          {
  2809.             document = this;
  2810.          }
  2811.          addChildAndMouseCatcher();
  2812.       }
  2813.       
  2814.       final mx_internal function $addChildAt(param1:DisplayObject, param2:int) : DisplayObject
  2815.       {
  2816.          return super.addChildAt(param1,param2);
  2817.       }
  2818.       
  2819.       mx_internal function get bridgeToFocusManager() : Dictionary
  2820.       {
  2821.          if(topLevel)
  2822.          {
  2823.             return _bridgeToFocusManager;
  2824.          }
  2825.          if(topLevelSystemManager)
  2826.          {
  2827.             return SystemManager(topLevelSystemManager).mx_internal::bridgeToFocusManager;
  2828.          }
  2829.          return null;
  2830.       }
  2831.       
  2832.       private function areFormsEqual(param1:Object, param2:Object) : Boolean
  2833.       {
  2834.          if(param1 == param2)
  2835.          {
  2836.             return true;
  2837.          }
  2838.          if(param1 is RemotePopUp && param2 is RemotePopUp)
  2839.          {
  2840.             return areRemotePopUpsEqual(param1,param2);
  2841.          }
  2842.          return false;
  2843.       }
  2844.       
  2845.       public function get numModalWindows() : int
  2846.       {
  2847.          return _numModalWindows;
  2848.       }
  2849.       
  2850.       override public function get width() : Number
  2851.       {
  2852.          return _width;
  2853.       }
  2854.       
  2855.       private function dispatchActivatedApplicationEvent() : void
  2856.       {
  2857.          var _loc2_:SWFBridgeEvent = null;
  2858.          var _loc1_:IEventDispatcher = !!swfBridgeGroup ? swfBridgeGroup.parentBridge : null;
  2859.          if(_loc1_)
  2860.          {
  2861.             _loc2_ = new SWFBridgeEvent(SWFBridgeEvent.BRIDGE_APPLICATION_ACTIVATE,false,false);
  2862.             _loc1_.dispatchEvent(_loc2_);
  2863.          }
  2864.       }
  2865.       
  2866.       public function isTopLevelWindow(param1:DisplayObject) : Boolean
  2867.       {
  2868.          return param1 is IUIComponent && IUIComponent(param1) == mx_internal::topLevelWindow;
  2869.       }
  2870.       
  2871.       private function removePlaceholderId(param1:String) : void
  2872.       {
  2873.          delete idToPlaceholder[param1];
  2874.       }
  2875.       
  2876.       private function otherSystemManagerMouseListener(param1:SandboxMouseEvent) : void
  2877.       {
  2878.          if(SystemManagerGlobals.dispatchingEventToOtherSystemManagers)
  2879.          {
  2880.             return;
  2881.          }
  2882.          dispatchEventFromSWFBridges(param1);
  2883.          var _loc2_:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST);
  2884.          _loc2_.name = "sameSandbox";
  2885.          _loc2_.value = param1;
  2886.          getSandboxRoot().dispatchEvent(_loc2_);
  2887.          if(!_loc2_.value)
  2888.          {
  2889.             dispatchEvent(param1);
  2890.          }
  2891.       }
  2892.       
  2893.       private function hideMouseCursorRequestHandler(param1:Event) : void
  2894.       {
  2895.          var _loc3_:IEventDispatcher = null;
  2896.          if(!isTopLevelRoot() && param1 is SWFBridgeRequest)
  2897.          {
  2898.             return;
  2899.          }
  2900.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  2901.          if(!isTopLevelRoot())
  2902.          {
  2903.             _loc3_ = swfBridgeGroup.parentBridge;
  2904.             _loc2_.requestor = _loc3_;
  2905.             _loc3_.dispatchEvent(_loc2_);
  2906.          }
  2907.          else if(eventProxy)
  2908.          {
  2909.             SystemManagerGlobals.showMouseCursor = false;
  2910.          }
  2911.       }
  2912.       
  2913.       public function isDisplayObjectInABridgedApplication(param1:DisplayObject) : Boolean
  2914.       {
  2915.          var _loc2_:SWFBridgeRequest = null;
  2916.          var _loc3_:Array = null;
  2917.          var _loc4_:int = 0;
  2918.          var _loc5_:int = 0;
  2919.          var _loc6_:IEventDispatcher = null;
  2920.          var _loc7_:ISWFBridgeProvider = null;
  2921.          if(swfBridgeGroup)
  2922.          {
  2923.             _loc2_ = new SWFBridgeRequest(SWFBridgeRequest.IS_BRIDGE_CHILD_REQUEST,false,false,null,param1);
  2924.             _loc3_ = swfBridgeGroup.getChildBridges();
  2925.             _loc4_ = int(_loc3_.length);
  2926.             _loc5_ = 0;
  2927.             while(_loc5_ < _loc4_)
  2928.             {
  2929.                _loc6_ = IEventDispatcher(_loc3_[_loc5_]);
  2930.                _loc7_ = swfBridgeGroup.getChildBridgeProvider(_loc6_);
  2931.                if(SecurityUtil.hasMutualTrustBetweenParentAndChild(_loc7_))
  2932.                {
  2933.                   _loc6_.dispatchEvent(_loc2_);
  2934.                   if(_loc2_.data == true)
  2935.                   {
  2936.                      return true;
  2937.                   }
  2938.                   _loc2_.data = param1;
  2939.                }
  2940.                _loc5_++;
  2941.             }
  2942.          }
  2943.          return false;
  2944.       }
  2945.       
  2946.       mx_internal function set window(param1:Window) : void
  2947.       {
  2948.          _window = param1;
  2949.       }
  2950.       
  2951.       private function activateFormSandboxEventHandler(param1:Event) : void
  2952.       {
  2953.          var _loc2_:SWFBridgeEvent = SWFBridgeEvent.marshal(param1);
  2954.          if(!forwardFormEvent(_loc2_))
  2955.          {
  2956.             activateForm(new RemotePopUp(_loc2_.data.window,_loc2_.data.notifier));
  2957.          }
  2958.       }
  2959.       
  2960.       public function get parentAllowsChild() : Boolean
  2961.       {
  2962.          try
  2963.          {
  2964.             return loaderInfo.parentAllowsChild;
  2965.          }
  2966.          catch(error:Error)
  2967.          {
  2968.          }
  2969.          return false;
  2970.       }
  2971.       
  2972.       mx_internal function get window() : Window
  2973.       {
  2974.          return _window;
  2975.       }
  2976.       
  2977.       mx_internal function addWindow(param1:Window) : void
  2978.       {
  2979.          myWindow = param1;
  2980.          myWindow.nativeWindow.addEventListener("close",mx_internal::cleanup);
  2981.       }
  2982.       
  2983.       mx_internal function rawChildren_addChild(param1:DisplayObject) : DisplayObject
  2984.       {
  2985.          mx_internal::addingChild(param1);
  2986.          super.addChild(param1);
  2987.          mx_internal::childAdded(param1);
  2988.          return param1;
  2989.       }
  2990.       
  2991.       private function mouseLeaveHandler(param1:Event) : void
  2992.       {
  2993.          dispatchEvent(new SandboxMouseEvent(SandboxMouseEvent.MOUSE_UP_SOMEWHERE));
  2994.       }
  2995.       
  2996.       mx_internal function addingChild(param1:DisplayObject) : void
  2997.       {
  2998.          var _loc4_:DisplayObjectContainer = null;
  2999.          var _loc2_:int = 1;
  3000.          if(!topLevel)
  3001.          {
  3002.             _loc4_ = parent.parent;
  3003.             while(_loc4_)
  3004.             {
  3005.                if(_loc4_ is ILayoutManagerClient)
  3006.                {
  3007.                   _loc2_ = ILayoutManagerClient(_loc4_).nestLevel + 1;
  3008.                   break;
  3009.                }
  3010.                _loc4_ = _loc4_.parent;
  3011.             }
  3012.          }
  3013.          mx_internal::nestLevel = _loc2_;
  3014.          if(param1 is IUIComponent)
  3015.          {
  3016.             IUIComponent(param1).systemManager = this;
  3017.          }
  3018.          var _loc3_:Class = Class(getDefinitionByName("mx.core.UIComponent"));
  3019.          if(param1 is IUIComponent && !IUIComponent(param1).document)
  3020.          {
  3021.             IUIComponent(param1).document = document;
  3022.          }
  3023.          if(param1 is ILayoutManagerClient)
  3024.          {
  3025.             ILayoutManagerClient(param1).nestLevel = mx_internal::nestLevel + 1;
  3026.          }
  3027.          if(param1 is InteractiveObject)
  3028.          {
  3029.             if(doubleClickEnabled)
  3030.             {
  3031.                InteractiveObject(param1).doubleClickEnabled = true;
  3032.             }
  3033.          }
  3034.          if(param1 is IUIComponent)
  3035.          {
  3036.             IUIComponent(param1).parentChanged(this);
  3037.          }
  3038.          if(param1 is IStyleClient)
  3039.          {
  3040.             IStyleClient(param1).regenerateStyleCache(true);
  3041.          }
  3042.          if(param1 is ISimpleStyleClient)
  3043.          {
  3044.             ISimpleStyleClient(param1).styleChanged(null);
  3045.          }
  3046.          if(param1 is IStyleClient)
  3047.          {
  3048.             IStyleClient(param1).notifyStyleChangeInChildren(null,true);
  3049.          }
  3050.          if(Boolean(_loc3_) && param1 is _loc3_)
  3051.          {
  3052.             _loc3_(param1).initThemeColor();
  3053.          }
  3054.          if(Boolean(_loc3_) && param1 is _loc3_)
  3055.          {
  3056.             _loc3_(param1).stylesInitialized();
  3057.          }
  3058.       }
  3059.    }
  3060. }
  3061.  
  3062.