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