home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / managers / PopUpManagerImpl.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  46.2 KB  |  1,277 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.Sprite;
  8.    import flash.display.Stage;
  9.    import flash.events.Event;
  10.    import flash.events.IEventDispatcher;
  11.    import flash.events.MouseEvent;
  12.    import flash.geom.Point;
  13.    import flash.geom.Rectangle;
  14.    import mx.automation.IAutomationObject;
  15.    import mx.core.ApplicationGlobals;
  16.    import mx.core.FlexSprite;
  17.    import mx.core.IChildList;
  18.    import mx.core.IFlexDisplayObject;
  19.    import mx.core.IFlexModule;
  20.    import mx.core.IInvalidating;
  21.    import mx.core.ISWFLoader;
  22.    import mx.core.IUIComponent;
  23.    import mx.core.UIComponent;
  24.    import mx.core.UIComponentGlobals;
  25.    import mx.core.mx_internal;
  26.    import mx.effects.Blur;
  27.    import mx.effects.Fade;
  28.    import mx.effects.IEffect;
  29.    import mx.events.EffectEvent;
  30.    import mx.events.FlexEvent;
  31.    import mx.events.FlexMouseEvent;
  32.    import mx.events.InterManagerRequest;
  33.    import mx.events.MoveEvent;
  34.    import mx.events.SWFBridgeRequest;
  35.    import mx.events.SandboxMouseEvent;
  36.    import mx.styles.IStyleClient;
  37.    import mx.utils.NameUtil;
  38.    
  39.    use namespace mx_internal;
  40.    
  41.    public class PopUpManagerImpl implements IPopUpManager
  42.    {
  43.       private static var instance:IPopUpManager;
  44.       
  45.       mx_internal static const VERSION:String = "3.5.0.12683";
  46.       
  47.       private var popupInfo:Array;
  48.       
  49.       mx_internal var modalWindowClass:Class;
  50.       
  51.       public function PopUpManagerImpl()
  52.       {
  53.          super();
  54.          var _loc1_:ISystemManager = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0]);
  55.          _loc1_.addEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,createModalWindowRequestHandler,false,0,true);
  56.          _loc1_.addEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,showModalWindowRequest,false,0,true);
  57.          _loc1_.addEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,hideModalWindowRequest,false,0,true);
  58.       }
  59.       
  60.       private static function nonmodalMouseWheelOutsideHandler(param1:DisplayObject, param2:MouseEvent) : void
  61.       {
  62.          if(!param1.hitTestPoint(param2.stageX,param2.stageY,true))
  63.          {
  64.             if(param1 is IUIComponent)
  65.             {
  66.                if(IUIComponent(param1).owns(DisplayObject(param2.target)))
  67.                {
  68.                   return;
  69.                }
  70.             }
  71.             dispatchMouseWheelOutsideEvent(param1,param2);
  72.          }
  73.       }
  74.       
  75.       private static function dispatchMouseWheelOutsideEvent(param1:DisplayObject, param2:MouseEvent) : void
  76.       {
  77.          if(!param1)
  78.          {
  79.             return;
  80.          }
  81.          var _loc3_:MouseEvent = new FlexMouseEvent(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE);
  82.          var _loc4_:Point = param1.globalToLocal(new Point(param2.stageX,param2.stageY));
  83.          _loc3_.localX = _loc4_.x;
  84.          _loc3_.localY = _loc4_.y;
  85.          _loc3_.buttonDown = param2.buttonDown;
  86.          _loc3_.shiftKey = param2.shiftKey;
  87.          _loc3_.altKey = param2.altKey;
  88.          _loc3_.ctrlKey = param2.ctrlKey;
  89.          _loc3_.delta = param2.delta;
  90.          _loc3_.relatedObject = InteractiveObject(param2.target);
  91.          param1.dispatchEvent(_loc3_);
  92.       }
  93.       
  94.       mx_internal static function updateModalMask(param1:ISystemManager, param2:DisplayObject, param3:IUIComponent, param4:Rectangle, param5:Sprite) : void
  95.       {
  96.          var _loc7_:Rectangle = null;
  97.          var _loc8_:Point = null;
  98.          var _loc9_:Rectangle = null;
  99.          var _loc6_:Rectangle = param2.getBounds(DisplayObject(param1));
  100.          if(param3 is ISWFLoader)
  101.          {
  102.             _loc7_ = ISWFLoader(param3).getVisibleApplicationRect();
  103.             _loc8_ = new Point(_loc7_.x,_loc7_.y);
  104.             _loc8_ = DisplayObject(param1).globalToLocal(_loc8_);
  105.             _loc7_.x = _loc8_.x;
  106.             _loc7_.y = _loc8_.y;
  107.          }
  108.          else if(!param3)
  109.          {
  110.             _loc7_ = _loc6_.clone();
  111.          }
  112.          else
  113.          {
  114.             _loc7_ = DisplayObject(param3).getBounds(DisplayObject(param1));
  115.          }
  116.          if(param4)
  117.          {
  118.             _loc8_ = new Point(param4.x,param4.y);
  119.             _loc8_ = DisplayObject(param1).globalToLocal(_loc8_);
  120.             _loc9_ = new Rectangle(_loc8_.x,_loc8_.y,param4.width,param4.height);
  121.             _loc7_ = _loc7_.intersection(_loc9_);
  122.          }
  123.          param5.graphics.clear();
  124.          param5.graphics.beginFill(0);
  125.          if(_loc7_.y > _loc6_.y)
  126.          {
  127.             param5.graphics.drawRect(_loc6_.x,_loc6_.y,_loc6_.width,_loc7_.y - _loc6_.y);
  128.          }
  129.          if(_loc6_.x < _loc7_.x)
  130.          {
  131.             param5.graphics.drawRect(_loc6_.x,_loc7_.y,_loc7_.x - _loc6_.x,_loc7_.height);
  132.          }
  133.          if(_loc6_.x + _loc6_.width > _loc7_.x + _loc7_.width)
  134.          {
  135.             param5.graphics.drawRect(_loc7_.x + _loc7_.width,_loc7_.y,_loc6_.x + _loc6_.width - _loc7_.x - _loc7_.width,_loc7_.height);
  136.          }
  137.          if(_loc7_.y + _loc7_.height < _loc6_.y + _loc6_.height)
  138.          {
  139.             param5.graphics.drawRect(_loc6_.x,_loc7_.y + _loc7_.height,_loc6_.width,_loc6_.y + _loc6_.height - _loc7_.y - _loc7_.height);
  140.          }
  141.          param5.graphics.endFill();
  142.       }
  143.       
  144.       private static function dispatchMouseDownOutsideEvent(param1:DisplayObject, param2:MouseEvent) : void
  145.       {
  146.          if(!param1)
  147.          {
  148.             return;
  149.          }
  150.          var _loc3_:MouseEvent = new FlexMouseEvent(FlexMouseEvent.MOUSE_DOWN_OUTSIDE);
  151.          var _loc4_:Point = param1.globalToLocal(new Point(param2.stageX,param2.stageY));
  152.          _loc3_.localX = _loc4_.x;
  153.          _loc3_.localY = _loc4_.y;
  154.          _loc3_.buttonDown = param2.buttonDown;
  155.          _loc3_.shiftKey = param2.shiftKey;
  156.          _loc3_.altKey = param2.altKey;
  157.          _loc3_.ctrlKey = param2.ctrlKey;
  158.          _loc3_.delta = param2.delta;
  159.          _loc3_.relatedObject = InteractiveObject(param2.target);
  160.          param1.dispatchEvent(_loc3_);
  161.       }
  162.       
  163.       public static function getInstance() : IPopUpManager
  164.       {
  165.          if(!instance)
  166.          {
  167.             instance = new PopUpManagerImpl();
  168.          }
  169.          return instance;
  170.       }
  171.       
  172.       private static function nonmodalMouseDownOutsideHandler(param1:DisplayObject, param2:MouseEvent) : void
  173.       {
  174.          if(!param1.hitTestPoint(param2.stageX,param2.stageY,true))
  175.          {
  176.             if(param1 is IUIComponent)
  177.             {
  178.                if(IUIComponent(param1).owns(DisplayObject(param2.target)))
  179.                {
  180.                   return;
  181.                }
  182.             }
  183.             dispatchMouseDownOutsideEvent(param1,param2);
  184.          }
  185.       }
  186.       
  187.       private function showModalWindow(param1:PopUpData, param2:ISystemManager, param3:Boolean = true) : void
  188.       {
  189.          var _loc4_:IStyleClient = param1.owner as IStyleClient;
  190.          var _loc5_:Number = 0;
  191.          var _loc6_:Number = 0;
  192.          if(!isNaN(param1.modalTransparencyDuration))
  193.          {
  194.             _loc5_ = param1.modalTransparencyDuration;
  195.          }
  196.          else if(_loc4_)
  197.          {
  198.             _loc5_ = Number(_loc4_.getStyle("modalTransparencyDuration"));
  199.             param1.modalTransparencyDuration = _loc5_;
  200.          }
  201.          if(!isNaN(param1.modalTransparency))
  202.          {
  203.             _loc6_ = param1.modalTransparency;
  204.          }
  205.          else if(_loc4_)
  206.          {
  207.             _loc6_ = Number(_loc4_.getStyle("modalTransparency"));
  208.             param1.modalTransparency = _loc6_;
  209.          }
  210.          param1.modalWindow.alpha = _loc6_;
  211.          var _loc7_:Number = 0;
  212.          if(!isNaN(param1.modalTransparencyBlur))
  213.          {
  214.             _loc7_ = param1.modalTransparencyBlur;
  215.          }
  216.          else if(_loc4_)
  217.          {
  218.             _loc7_ = Number(_loc4_.getStyle("modalTransparencyBlur"));
  219.             param1.modalTransparencyBlur = _loc7_;
  220.          }
  221.          var _loc8_:Number = 16777215;
  222.          if(!isNaN(param1.modalTransparencyColor))
  223.          {
  224.             _loc8_ = param1.modalTransparencyColor;
  225.          }
  226.          else if(_loc4_)
  227.          {
  228.             _loc8_ = Number(_loc4_.getStyle("modalTransparencyColor"));
  229.             param1.modalTransparencyColor = _loc8_;
  230.          }
  231.          if(param2 is SystemManagerProxy)
  232.          {
  233.             param2 = SystemManagerProxy(param2).systemManager;
  234.          }
  235.          var _loc9_:DisplayObject = param2.getSandboxRoot();
  236.          showModalWindowInternal(param1,_loc5_,_loc6_,_loc8_,_loc7_,param2,_loc9_);
  237.          if(param3 && Boolean(param2.useSWFBridge()))
  238.          {
  239.             dispatchModalWindowRequest(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,param2,_loc9_,param1,true);
  240.          }
  241.       }
  242.       
  243.       private function popupShowHandler(param1:FlexEvent) : void
  244.       {
  245.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  246.          if(_loc2_)
  247.          {
  248.             showModalWindow(_loc2_,getTopLevelSystemManager(_loc2_.parent));
  249.          }
  250.       }
  251.       
  252.       public function bringToFront(param1:IFlexDisplayObject) : void
  253.       {
  254.          var _loc2_:PopUpData = null;
  255.          var _loc3_:ISystemManager = null;
  256.          var _loc4_:InterManagerRequest = null;
  257.          if(Boolean(param1) && Boolean(param1.parent))
  258.          {
  259.             _loc2_ = findPopupInfoByOwner(param1);
  260.             if(_loc2_)
  261.             {
  262.                _loc3_ = ISystemManager(param1.parent);
  263.                if(_loc3_ is SystemManagerProxy)
  264.                {
  265.                   _loc4_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"bringToFront",{
  266.                      "topMost":_loc2_.topMost,
  267.                      "popUp":_loc3_
  268.                   });
  269.                   _loc3_.getSandboxRoot().dispatchEvent(_loc4_);
  270.                }
  271.                else if(_loc2_.topMost)
  272.                {
  273.                   _loc3_.popUpChildren.setChildIndex(DisplayObject(param1),_loc3_.popUpChildren.numChildren - 1);
  274.                }
  275.                else
  276.                {
  277.                   _loc3_.setChildIndex(DisplayObject(param1),_loc3_.numChildren - 1);
  278.                }
  279.             }
  280.          }
  281.       }
  282.       
  283.       public function centerPopUp(param1:IFlexDisplayObject) : void
  284.       {
  285.          var _loc4_:ISystemManager = null;
  286.          var _loc5_:Number = NaN;
  287.          var _loc6_:Number = NaN;
  288.          var _loc7_:Number = NaN;
  289.          var _loc8_:Number = NaN;
  290.          var _loc9_:Number = NaN;
  291.          var _loc10_:Number = NaN;
  292.          var _loc11_:Rectangle = null;
  293.          var _loc12_:Rectangle = null;
  294.          var _loc13_:Point = null;
  295.          var _loc14_:Point = null;
  296.          var _loc15_:Boolean = false;
  297.          var _loc16_:DisplayObject = null;
  298.          var _loc17_:InterManagerRequest = null;
  299.          var _loc18_:Point = null;
  300.          if(param1 is IInvalidating)
  301.          {
  302.             IInvalidating(param1).validateNow();
  303.          }
  304.          var _loc2_:PopUpData = findPopupInfoByOwner(param1);
  305.          var _loc3_:DisplayObject = _loc2_ && _loc2_.parent && Boolean(_loc2_.parent.stage) ? _loc2_.parent : param1.parent;
  306.          if(_loc3_)
  307.          {
  308.             _loc4_ = _loc2_.systemManager;
  309.             _loc13_ = new Point();
  310.             _loc16_ = _loc4_.getSandboxRoot();
  311.             if(_loc4_ != _loc16_)
  312.             {
  313.                _loc17_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  314.                _loc16_.dispatchEvent(_loc17_);
  315.                _loc15_ = Boolean(_loc17_.value);
  316.             }
  317.             else
  318.             {
  319.                _loc15_ = Boolean(_loc4_.isTopLevelRoot());
  320.             }
  321.             if(_loc15_)
  322.             {
  323.                _loc11_ = _loc4_.screen;
  324.                _loc7_ = _loc11_.width;
  325.                _loc8_ = _loc11_.height;
  326.             }
  327.             else
  328.             {
  329.                if(_loc4_ != _loc16_)
  330.                {
  331.                   _loc17_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"getVisibleApplicationRect");
  332.                   _loc16_.dispatchEvent(_loc17_);
  333.                   _loc12_ = Rectangle(_loc17_.value);
  334.                }
  335.                else
  336.                {
  337.                   _loc12_ = _loc4_.getVisibleApplicationRect();
  338.                }
  339.                _loc13_ = new Point(_loc12_.x,_loc12_.y);
  340.                _loc13_ = DisplayObject(_loc4_).globalToLocal(_loc13_);
  341.                _loc7_ = _loc12_.width;
  342.                _loc8_ = _loc12_.height;
  343.             }
  344.             if(_loc3_ is UIComponent)
  345.             {
  346.                _loc12_ = UIComponent(_loc3_).getVisibleRect();
  347.                _loc18_ = _loc3_.globalToLocal(_loc12_.topLeft);
  348.                _loc13_.x += _loc18_.x;
  349.                _loc13_.y += _loc18_.y;
  350.                _loc9_ = _loc12_.width;
  351.                _loc10_ = _loc12_.height;
  352.             }
  353.             else
  354.             {
  355.                _loc9_ = _loc3_.width;
  356.                _loc10_ = _loc3_.height;
  357.             }
  358.             _loc5_ = Math.max(0,(Math.min(_loc7_,_loc9_) - param1.width) / 2);
  359.             _loc6_ = Math.max(0,(Math.min(_loc8_,_loc10_) - param1.height) / 2);
  360.             _loc14_ = new Point(_loc13_.x,_loc13_.y);
  361.             _loc14_ = _loc3_.localToGlobal(_loc14_);
  362.             _loc14_ = param1.parent.globalToLocal(_loc14_);
  363.             param1.move(Math.round(_loc5_) + _loc14_.x,Math.round(_loc6_) + _loc14_.y);
  364.          }
  365.       }
  366.       
  367.       private function showModalWindowRequest(param1:Event) : void
  368.       {
  369.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  370.          if(param1 is SWFBridgeRequest)
  371.          {
  372.             _loc2_ = SWFBridgeRequest(param1);
  373.          }
  374.          else
  375.          {
  376.             _loc2_ = SWFBridgeRequest.marshal(param1);
  377.          }
  378.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  379.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  380.          var _loc5_:PopUpData = findHighestRemoteModalPopupInfo();
  381.          _loc5_.excludeRect = Rectangle(_loc2_.data);
  382.          _loc5_.modalTransparency = _loc2_.data.transparency;
  383.          _loc5_.modalTransparencyBlur = 0;
  384.          _loc5_.modalTransparencyColor = _loc2_.data.transparencyColor;
  385.          _loc5_.modalTransparencyDuration = _loc2_.data.transparencyDuration;
  386.          if(Boolean(_loc5_.owner) || Boolean(_loc5_.parent))
  387.          {
  388.             throw new Error();
  389.          }
  390.          showModalWindow(_loc5_,_loc3_);
  391.       }
  392.       
  393.       private function hideOwnerHandler(param1:FlexEvent) : void
  394.       {
  395.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  396.          if(_loc2_)
  397.          {
  398.             removeMouseOutEventListeners(_loc2_);
  399.          }
  400.       }
  401.       
  402.       private function fadeOutDestroyEffectEndHandler(param1:EffectEvent) : void
  403.       {
  404.          var _loc4_:ISystemManager = null;
  405.          effectEndHandler(param1);
  406.          var _loc2_:DisplayObject = DisplayObject(param1.effectInstance.target);
  407.          var _loc3_:DisplayObject = _loc2_.mask;
  408.          if(_loc3_)
  409.          {
  410.             _loc2_.mask = null;
  411.             _loc4_.popUpChildren.removeChild(_loc3_);
  412.          }
  413.          if(_loc2_.parent is ISystemManager)
  414.          {
  415.             _loc4_ = ISystemManager(_loc2_.parent);
  416.             if(_loc4_.popUpChildren.contains(_loc2_))
  417.             {
  418.                _loc4_.popUpChildren.removeChild(_loc2_);
  419.             }
  420.             else
  421.             {
  422.                _loc4_.removeChild(_loc2_);
  423.             }
  424.          }
  425.          else if(_loc2_.parent)
  426.          {
  427.             _loc2_.parent.removeChild(_loc2_);
  428.          }
  429.       }
  430.       
  431.       private function createModalWindowRequestHandler(param1:Event) : void
  432.       {
  433.          var _loc2_:SWFBridgeRequest = null;
  434.          if(param1 is SWFBridgeRequest)
  435.          {
  436.             _loc2_ = SWFBridgeRequest(param1);
  437.          }
  438.          else
  439.          {
  440.             _loc2_ = SWFBridgeRequest.marshal(param1);
  441.          }
  442.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  443.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  444.          var _loc5_:PopUpData = new PopUpData();
  445.          _loc5_.isRemoteModalWindow = true;
  446.          _loc5_.systemManager = _loc3_;
  447.          _loc5_.modalTransparency = _loc2_.data.transparency;
  448.          _loc5_.modalTransparencyBlur = 0;
  449.          _loc5_.modalTransparencyColor = _loc2_.data.transparencyColor;
  450.          _loc5_.modalTransparencyDuration = _loc2_.data.transparencyDuration;
  451.          _loc5_.exclude = _loc3_.swfBridgeGroup.getChildBridgeProvider(_loc2_.requestor) as IUIComponent;
  452.          _loc5_.useExclude = _loc2_.data.useExclude;
  453.          _loc5_.excludeRect = Rectangle(_loc2_.data.excludeRect);
  454.          if(!popupInfo)
  455.          {
  456.             popupInfo = [];
  457.          }
  458.          popupInfo.push(_loc5_);
  459.          createModalWindow(null,_loc5_,_loc3_.popUpChildren,_loc2_.data.show,_loc3_,_loc4_);
  460.       }
  461.       
  462.       private function showOwnerHandler(param1:FlexEvent) : void
  463.       {
  464.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  465.          if(_loc2_)
  466.          {
  467.             addMouseOutEventListeners(_loc2_);
  468.          }
  469.       }
  470.       
  471.       private function addMouseOutEventListeners(param1:PopUpData) : void
  472.       {
  473.          var _loc2_:DisplayObject = param1.systemManager.getSandboxRoot();
  474.          if(param1.modalWindow)
  475.          {
  476.             param1.modalWindow.addEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  477.             param1.modalWindow.addEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  478.          }
  479.          else
  480.          {
  481.             _loc2_.addEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  482.             _loc2_.addEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  483.          }
  484.          _loc2_.addEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,param1.marshalMouseOutsideHandler);
  485.          _loc2_.addEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,param1.marshalMouseOutsideHandler,true);
  486.       }
  487.       
  488.       private function fadeInEffectEndHandler(param1:EffectEvent) : void
  489.       {
  490.          var _loc4_:PopUpData = null;
  491.          effectEndHandler(param1);
  492.          var _loc2_:int = int(popupInfo.length);
  493.          var _loc3_:int = 0;
  494.          while(_loc3_ < _loc2_)
  495.          {
  496.             _loc4_ = popupInfo[_loc3_];
  497.             if(Boolean(_loc4_.owner) && _loc4_.modalWindow == param1.effectInstance.target)
  498.             {
  499.                IUIComponent(_loc4_.owner).setVisible(true,true);
  500.                break;
  501.             }
  502.             _loc3_++;
  503.          }
  504.       }
  505.       
  506.       private function hideModalWindowRequest(param1:Event) : void
  507.       {
  508.          var _loc2_:SWFBridgeRequest = null;
  509.          if(param1 is SWFBridgeRequest)
  510.          {
  511.             _loc2_ = SWFBridgeRequest(param1);
  512.          }
  513.          else
  514.          {
  515.             _loc2_ = SWFBridgeRequest.marshal(param1);
  516.          }
  517.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  518.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  519.          var _loc5_:PopUpData = findHighestRemoteModalPopupInfo();
  520.          if(!_loc5_ || _loc5_.owner || Boolean(_loc5_.parent))
  521.          {
  522.             throw new Error();
  523.          }
  524.          hideModalWindow(_loc5_,_loc2_.data.remove);
  525.          if(_loc2_.data.remove)
  526.          {
  527.             popupInfo.splice(popupInfo.indexOf(_loc5_),1);
  528.             --_loc3_.numModalWindows;
  529.          }
  530.       }
  531.       
  532.       private function getTopLevelSystemManager(param1:DisplayObject) : ISystemManager
  533.       {
  534.          var _loc2_:DisplayObjectContainer = null;
  535.          var _loc3_:ISystemManager = null;
  536.          if(param1.parent is SystemManagerProxy)
  537.          {
  538.             _loc2_ = DisplayObjectContainer(SystemManagerProxy(param1.parent).systemManager);
  539.          }
  540.          else if(param1 is IUIComponent && IUIComponent(param1).systemManager is SystemManagerProxy)
  541.          {
  542.             _loc2_ = DisplayObjectContainer(SystemManagerProxy(IUIComponent(param1).systemManager).systemManager);
  543.          }
  544.          else
  545.          {
  546.             _loc2_ = DisplayObjectContainer(param1.root);
  547.          }
  548.          if((!_loc2_ || _loc2_ is Stage) && param1 is IUIComponent)
  549.          {
  550.             _loc2_ = DisplayObjectContainer(IUIComponent(param1).systemManager);
  551.          }
  552.          if(_loc2_ is ISystemManager)
  553.          {
  554.             _loc3_ = ISystemManager(_loc2_);
  555.             if(!_loc3_.isTopLevel())
  556.             {
  557.                _loc3_ = _loc3_.topLevelSystemManager;
  558.             }
  559.          }
  560.          return _loc3_;
  561.       }
  562.       
  563.       private function hideModalWindow(param1:PopUpData, param2:Boolean = false) : void
  564.       {
  565.          var _loc6_:Fade = null;
  566.          var _loc7_:Number = NaN;
  567.          var _loc8_:Blur = null;
  568.          var _loc9_:DisplayObject = null;
  569.          var _loc10_:SWFBridgeRequest = null;
  570.          var _loc11_:IEventDispatcher = null;
  571.          var _loc12_:IEventDispatcher = null;
  572.          var _loc13_:InterManagerRequest = null;
  573.          if(param2 && Boolean(param1.exclude))
  574.          {
  575.             param1.exclude.removeEventListener(Event.RESIZE,param1.resizeHandler);
  576.             param1.exclude.removeEventListener(MoveEvent.MOVE,param1.resizeHandler);
  577.          }
  578.          var _loc3_:IStyleClient = param1.owner as IStyleClient;
  579.          var _loc4_:Number = 0;
  580.          if(_loc3_)
  581.          {
  582.             _loc4_ = Number(_loc3_.getStyle("modalTransparencyDuration"));
  583.          }
  584.          endEffects(param1);
  585.          if(_loc4_)
  586.          {
  587.             _loc6_ = new Fade(param1.modalWindow);
  588.             _loc6_.alphaFrom = param1.modalWindow.alpha;
  589.             _loc6_.alphaTo = 0;
  590.             _loc6_.duration = _loc4_;
  591.             _loc6_.addEventListener(EffectEvent.EFFECT_END,param2 ? fadeOutDestroyEffectEndHandler : fadeOutCloseEffectEndHandler);
  592.             param1.modalWindow.visible = true;
  593.             param1.fade = _loc6_;
  594.             _loc6_.play();
  595.             _loc7_ = Number(_loc3_.getStyle("modalTransparencyBlur"));
  596.             if(_loc7_)
  597.             {
  598.                _loc8_ = new Blur(param1.blurTarget);
  599.                _loc8_.blurXFrom = _loc8_.blurYFrom = _loc7_;
  600.                _loc8_.blurXTo = _loc8_.blurYTo = 0;
  601.                _loc8_.duration = _loc4_;
  602.                _loc8_.addEventListener(EffectEvent.EFFECT_END,effectEndHandler);
  603.                param1.blur = _loc8_;
  604.                _loc8_.play();
  605.             }
  606.          }
  607.          else
  608.          {
  609.             param1.modalWindow.visible = false;
  610.          }
  611.          var _loc5_:ISystemManager = ISystemManager(ApplicationGlobals.application.systemManager);
  612.          if(_loc5_.useSWFBridge())
  613.          {
  614.             _loc9_ = _loc5_.getSandboxRoot();
  615.             if(!param1.isRemoteModalWindow && _loc5_ != _loc9_)
  616.             {
  617.                _loc13_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  618.                _loc9_.dispatchEvent(_loc13_);
  619.                if(Boolean(_loc13_.value))
  620.                {
  621.                   return;
  622.                }
  623.             }
  624.             _loc10_ = new SWFBridgeRequest(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,false,false,null,{
  625.                "skip":!param1.isRemoteModalWindow && _loc5_ != _loc9_,
  626.                "show":false,
  627.                "remove":param2
  628.             });
  629.             _loc11_ = _loc5_.swfBridgeGroup.parentBridge;
  630.             _loc10_.requestor = _loc11_;
  631.             _loc11_.dispatchEvent(_loc10_);
  632.          }
  633.       }
  634.       
  635.       private function popupHideHandler(param1:FlexEvent) : void
  636.       {
  637.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  638.          if(_loc2_)
  639.          {
  640.             hideModalWindow(_loc2_);
  641.          }
  642.       }
  643.       
  644.       private function showModalWindowInternal(param1:PopUpData, param2:Number, param3:Number, param4:Number, param5:Number, param6:ISystemManager, param7:DisplayObject) : void
  645.       {
  646.          var _loc8_:Fade = null;
  647.          var _loc9_:Number = NaN;
  648.          var _loc10_:Blur = null;
  649.          var _loc11_:Object = null;
  650.          var _loc12_:InterManagerRequest = null;
  651.          endEffects(param1);
  652.          if(param2)
  653.          {
  654.             _loc8_ = new Fade(param1.modalWindow);
  655.             _loc8_.alphaFrom = 0;
  656.             _loc8_.alphaTo = param3;
  657.             _loc8_.duration = param2;
  658.             _loc8_.addEventListener(EffectEvent.EFFECT_END,fadeInEffectEndHandler);
  659.             param1.modalWindow.alpha = 0;
  660.             param1.modalWindow.visible = true;
  661.             param1.fade = _loc8_;
  662.             if(param1.owner)
  663.             {
  664.                IUIComponent(param1.owner).setVisible(false,true);
  665.             }
  666.             _loc8_.play();
  667.             _loc9_ = param5;
  668.             if(_loc9_)
  669.             {
  670.                if(DisplayObject(param6).parent is Stage)
  671.                {
  672.                   param1.blurTarget = param6.document;
  673.                }
  674.                else if(param6 != param7)
  675.                {
  676.                   _loc12_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"application",_loc11_);
  677.                   param7.dispatchEvent(_loc12_);
  678.                   param1.blurTarget = _loc12_.value;
  679.                }
  680.                else
  681.                {
  682.                   param1.blurTarget = ApplicationGlobals.application;
  683.                }
  684.                _loc10_ = new Blur(param1.blurTarget);
  685.                _loc10_.blurXFrom = _loc10_.blurYFrom = 0;
  686.                _loc10_.blurXTo = _loc10_.blurYTo = _loc9_;
  687.                _loc10_.duration = param2;
  688.                _loc10_.addEventListener(EffectEvent.EFFECT_END,effectEndHandler);
  689.                param1.blur = _loc10_;
  690.                _loc10_.play();
  691.             }
  692.          }
  693.          else
  694.          {
  695.             if(param1.owner)
  696.             {
  697.                IUIComponent(param1.owner).setVisible(true,true);
  698.             }
  699.             param1.modalWindow.visible = true;
  700.          }
  701.       }
  702.       
  703.       private function effectEndHandler(param1:EffectEvent) : void
  704.       {
  705.          var _loc4_:PopUpData = null;
  706.          var _loc5_:IEffect = null;
  707.          var _loc2_:int = int(popupInfo.length);
  708.          var _loc3_:int = 0;
  709.          while(_loc3_ < _loc2_)
  710.          {
  711.             _loc4_ = popupInfo[_loc3_];
  712.             _loc5_ = param1.effectInstance.effect;
  713.             if(_loc5_ == _loc4_.fade)
  714.             {
  715.                _loc4_.fade = null;
  716.             }
  717.             else if(_loc5_ == _loc4_.blur)
  718.             {
  719.                _loc4_.blur = null;
  720.             }
  721.             _loc3_++;
  722.          }
  723.       }
  724.       
  725.       private function createModalWindow(param1:DisplayObject, param2:PopUpData, param3:IChildList, param4:Boolean, param5:ISystemManager, param6:DisplayObject) : void
  726.       {
  727.          var _loc7_:IFlexDisplayObject = null;
  728.          var _loc10_:Sprite = null;
  729.          var _loc11_:SystemManagerProxy = null;
  730.          var _loc12_:ISystemManager = null;
  731.          _loc7_ = IFlexDisplayObject(param2.owner);
  732.          var _loc8_:IStyleClient = _loc7_ as IStyleClient;
  733.          var _loc9_:Number = 0;
  734.          if(mx_internal::modalWindowClass)
  735.          {
  736.             _loc10_ = new mx_internal::modalWindowClass();
  737.          }
  738.          else
  739.          {
  740.             _loc10_ = new FlexSprite();
  741.             _loc10_.name = "modalWindow";
  742.          }
  743.          if(!param5 && Boolean(param1))
  744.          {
  745.             param5 = IUIComponent(param1).systemManager;
  746.          }
  747.          if(param5 is SystemManagerProxy)
  748.          {
  749.             _loc11_ = SystemManagerProxy(param5);
  750.             _loc12_ = _loc11_.systemManager;
  751.          }
  752.          else
  753.          {
  754.             _loc12_ = param5;
  755.          }
  756.          ++_loc12_.numModalWindows;
  757.          if(_loc7_)
  758.          {
  759.             param3.addChildAt(_loc10_,param3.getChildIndex(DisplayObject(_loc7_)));
  760.          }
  761.          else
  762.          {
  763.             param3.addChild(_loc10_);
  764.          }
  765.          if(_loc7_ is IAutomationObject)
  766.          {
  767.             IAutomationObject(_loc7_).showInAutomationHierarchy = true;
  768.          }
  769.          if(!isNaN(param2.modalTransparency))
  770.          {
  771.             _loc10_.alpha = param2.modalTransparency;
  772.          }
  773.          else if(_loc8_)
  774.          {
  775.             _loc10_.alpha = _loc8_.getStyle("modalTransparency");
  776.          }
  777.          else
  778.          {
  779.             _loc10_.alpha = 0;
  780.          }
  781.          param2.modalTransparency = _loc10_.alpha;
  782.          _loc10_.tabEnabled = false;
  783.          var _loc13_:Rectangle = _loc12_.screen;
  784.          var _loc14_:Graphics = _loc10_.graphics;
  785.          var _loc15_:Number = 16777215;
  786.          if(!isNaN(param2.modalTransparencyColor))
  787.          {
  788.             _loc15_ = param2.modalTransparencyColor;
  789.          }
  790.          else if(_loc8_)
  791.          {
  792.             _loc15_ = Number(_loc8_.getStyle("modalTransparencyColor"));
  793.             param2.modalTransparencyColor = _loc15_;
  794.          }
  795.          _loc14_.clear();
  796.          _loc14_.beginFill(_loc15_,100);
  797.          _loc14_.drawRect(_loc13_.x,_loc13_.y,_loc13_.width,_loc13_.height);
  798.          _loc14_.endFill();
  799.          param2.modalWindow = _loc10_;
  800.          if(param2.exclude)
  801.          {
  802.             param2.modalMask = new Sprite();
  803.             mx_internal::updateModalMask(_loc12_,_loc10_,param2.useExclude ? param2.exclude : null,param2.excludeRect,param2.modalMask);
  804.             _loc10_.mask = param2.modalMask;
  805.             param3.addChild(param2.modalMask);
  806.             param2.exclude.addEventListener(Event.RESIZE,param2.resizeHandler);
  807.             param2.exclude.addEventListener(MoveEvent.MOVE,param2.resizeHandler);
  808.          }
  809.          param2._mouseDownOutsideHandler = dispatchMouseDownOutsideEvent;
  810.          param2._mouseWheelOutsideHandler = dispatchMouseWheelOutsideEvent;
  811.          _loc12_.addEventListener(Event.RESIZE,param2.resizeHandler);
  812.          if(_loc7_)
  813.          {
  814.             _loc7_.addEventListener(FlexEvent.SHOW,popupShowHandler);
  815.             _loc7_.addEventListener(FlexEvent.HIDE,popupHideHandler);
  816.          }
  817.          if(param4)
  818.          {
  819.             showModalWindow(param2,param5,false);
  820.          }
  821.          else
  822.          {
  823.             _loc7_.visible = param4;
  824.          }
  825.          if(_loc12_.useSWFBridge())
  826.          {
  827.             if(_loc8_)
  828.             {
  829.                param2.modalTransparencyDuration = _loc8_.getStyle("modalTransparencyDuration");
  830.                param2.modalTransparencyBlur = _loc8_.getStyle("modalTransparencyBlur");
  831.             }
  832.             dispatchModalWindowRequest(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,_loc12_,param6,param2,param4);
  833.          }
  834.       }
  835.       
  836.       private function findPopupInfoByOwner(param1:Object) : PopUpData
  837.       {
  838.          var _loc4_:PopUpData = null;
  839.          var _loc2_:int = int(popupInfo.length);
  840.          var _loc3_:int = 0;
  841.          while(_loc3_ < _loc2_)
  842.          {
  843.             _loc4_ = popupInfo[_loc3_];
  844.             if(_loc4_.owner == param1)
  845.             {
  846.                return _loc4_;
  847.             }
  848.             _loc3_++;
  849.          }
  850.          return null;
  851.       }
  852.       
  853.       private function popupRemovedHandler(param1:Event) : void
  854.       {
  855.          var _loc4_:PopUpData = null;
  856.          var _loc5_:DisplayObject = null;
  857.          var _loc6_:DisplayObject = null;
  858.          var _loc7_:DisplayObject = null;
  859.          var _loc8_:ISystemManager = null;
  860.          var _loc9_:ISystemManager = null;
  861.          var _loc10_:IEventDispatcher = null;
  862.          var _loc11_:SWFBridgeRequest = null;
  863.          var _loc2_:int = int(popupInfo.length);
  864.          var _loc3_:int = 0;
  865.          while(_loc3_ < _loc2_)
  866.          {
  867.             _loc4_ = popupInfo[_loc3_];
  868.             _loc5_ = _loc4_.owner;
  869.             if(_loc5_ == param1.target)
  870.             {
  871.                _loc6_ = _loc4_.parent;
  872.                _loc7_ = _loc4_.modalWindow;
  873.                _loc8_ = _loc4_.systemManager;
  874.                if(_loc8_ is SystemManagerProxy)
  875.                {
  876.                   _loc9_ = SystemManagerProxy(_loc8_).systemManager;
  877.                }
  878.                else
  879.                {
  880.                   _loc9_ = _loc8_;
  881.                }
  882.                if(!_loc8_.isTopLevel())
  883.                {
  884.                   _loc8_ = _loc8_.topLevelSystemManager;
  885.                }
  886.                if(_loc5_ is IUIComponent)
  887.                {
  888.                   IUIComponent(_loc5_).isPopUp = false;
  889.                }
  890.                if(_loc5_ is IFocusManagerContainer)
  891.                {
  892.                   _loc8_.removeFocusManager(IFocusManagerContainer(_loc5_));
  893.                }
  894.                _loc5_.removeEventListener(Event.REMOVED,popupRemovedHandler);
  895.                if(_loc8_ is SystemManagerProxy)
  896.                {
  897.                   _loc10_ = _loc9_.swfBridgeGroup.parentBridge;
  898.                   _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,false,false,_loc10_,{
  899.                      "window":DisplayObject(_loc8_),
  900.                      "parent":_loc4_.parent,
  901.                      "modal":_loc4_.modalWindow != null
  902.                   });
  903.                   _loc9_.getSandboxRoot().dispatchEvent(_loc11_);
  904.                }
  905.                else if(_loc8_.useSWFBridge())
  906.                {
  907.                   _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,false,false,null,{"window":DisplayObject(_loc5_)});
  908.                   _loc11_.requestor = _loc8_.swfBridgeGroup.parentBridge;
  909.                   _loc11_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(_loc5_));
  910.                   _loc8_.dispatchEvent(_loc11_);
  911.                }
  912.                if(_loc4_.owner)
  913.                {
  914.                   _loc4_.owner.removeEventListener(FlexEvent.SHOW,showOwnerHandler);
  915.                   _loc4_.owner.removeEventListener(FlexEvent.HIDE,hideOwnerHandler);
  916.                }
  917.                removeMouseOutEventListeners(_loc4_);
  918.                if(_loc7_)
  919.                {
  920.                   _loc9_.removeEventListener(Event.RESIZE,_loc4_.resizeHandler);
  921.                   _loc5_.removeEventListener(FlexEvent.SHOW,popupShowHandler);
  922.                   _loc5_.removeEventListener(FlexEvent.HIDE,popupHideHandler);
  923.                   hideModalWindow(_loc4_,true);
  924.                   --_loc9_.numModalWindows;
  925.                }
  926.                popupInfo.splice(_loc3_,1);
  927.                break;
  928.             }
  929.             _loc3_++;
  930.          }
  931.       }
  932.       
  933.       private function fadeOutCloseEffectEndHandler(param1:EffectEvent) : void
  934.       {
  935.          effectEndHandler(param1);
  936.          DisplayObject(param1.effectInstance.target).visible = false;
  937.       }
  938.       
  939.       private function endEffects(param1:PopUpData) : void
  940.       {
  941.          if(param1.fade)
  942.          {
  943.             param1.fade.end();
  944.             param1.fade = null;
  945.          }
  946.          if(param1.blur)
  947.          {
  948.             param1.blur.end();
  949.             param1.blur = null;
  950.          }
  951.       }
  952.       
  953.       public function removePopUp(param1:IFlexDisplayObject) : void
  954.       {
  955.          var _loc2_:PopUpData = null;
  956.          var _loc3_:ISystemManager = null;
  957.          var _loc4_:IUIComponent = null;
  958.          if(Boolean(param1) && Boolean(param1.parent))
  959.          {
  960.             _loc2_ = findPopupInfoByOwner(param1);
  961.             if(_loc2_)
  962.             {
  963.                _loc3_ = _loc2_.systemManager;
  964.                if(!_loc3_)
  965.                {
  966.                   _loc4_ = param1 as IUIComponent;
  967.                   if(!_loc4_)
  968.                   {
  969.                      return;
  970.                   }
  971.                   _loc3_ = ISystemManager(_loc4_.systemManager);
  972.                }
  973.                if(_loc2_.topMost)
  974.                {
  975.                   _loc3_.popUpChildren.removeChild(DisplayObject(param1));
  976.                }
  977.                else
  978.                {
  979.                   _loc3_.removeChild(DisplayObject(param1));
  980.                }
  981.             }
  982.          }
  983.       }
  984.       
  985.       public function addPopUp(param1:IFlexDisplayObject, param2:DisplayObject, param3:Boolean = false, param4:String = null) : void
  986.       {
  987.          var _loc7_:IChildList = null;
  988.          var _loc8_:* = false;
  989.          var _loc5_:Boolean = Boolean(param1.visible);
  990.          if(param2 is IUIComponent && param1 is IUIComponent && IUIComponent(param1).document == null)
  991.          {
  992.             IUIComponent(param1).document = IUIComponent(param2).document;
  993.          }
  994.          if(param2 is IUIComponent && IUIComponent(param2).document is IFlexModule && param1 is UIComponent && UIComponent(param1).moduleFactory == null)
  995.          {
  996.             UIComponent(param1).moduleFactory = IFlexModule(IUIComponent(param2).document).moduleFactory;
  997.          }
  998.          var _loc6_:ISystemManager = getTopLevelSystemManager(param2);
  999.          if(!_loc6_)
  1000.          {
  1001.             _loc6_ = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0]);
  1002.             if(_loc6_.getSandboxRoot() != param2)
  1003.             {
  1004.                return;
  1005.             }
  1006.          }
  1007.          var _loc9_:ISystemManager = _loc6_;
  1008.          var _loc10_:DisplayObject = _loc6_.getSandboxRoot();
  1009.          var _loc11_:SWFBridgeRequest = null;
  1010.          if(_loc6_.useSWFBridge())
  1011.          {
  1012.             if(_loc10_ != _loc6_)
  1013.             {
  1014.                _loc9_ = new SystemManagerProxy(_loc6_);
  1015.                _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_REQUEST,false,false,_loc6_.swfBridgeGroup.parentBridge,{
  1016.                   "window":DisplayObject(_loc9_),
  1017.                   "parent":param2,
  1018.                   "modal":param3,
  1019.                   "childList":param4
  1020.                });
  1021.                _loc10_.dispatchEvent(_loc11_);
  1022.             }
  1023.             else
  1024.             {
  1025.                _loc9_ = _loc6_;
  1026.             }
  1027.          }
  1028.          if(param1 is IUIComponent)
  1029.          {
  1030.             IUIComponent(param1).isPopUp = true;
  1031.          }
  1032.          if(!param4 || param4 == PopUpManagerChildList.PARENT)
  1033.          {
  1034.             _loc8_ = Boolean(_loc9_.popUpChildren.contains(param2));
  1035.          }
  1036.          else
  1037.          {
  1038.             _loc8_ = param4 == PopUpManagerChildList.POPUP;
  1039.          }
  1040.          _loc7_ = _loc8_ ? _loc9_.popUpChildren : _loc9_;
  1041.          _loc7_.addChild(DisplayObject(param1));
  1042.          param1.visible = false;
  1043.          if(!popupInfo)
  1044.          {
  1045.             popupInfo = [];
  1046.          }
  1047.          var _loc12_:PopUpData = new PopUpData();
  1048.          _loc12_.owner = DisplayObject(param1);
  1049.          _loc12_.topMost = _loc8_;
  1050.          _loc12_.systemManager = _loc9_;
  1051.          popupInfo.push(_loc12_);
  1052.          if(param1 is IFocusManagerContainer)
  1053.          {
  1054.             if(IFocusManagerContainer(param1).focusManager)
  1055.             {
  1056.                _loc9_.addFocusManager(IFocusManagerContainer(param1));
  1057.             }
  1058.             else
  1059.             {
  1060.                IFocusManagerContainer(param1).focusManager = new FocusManager(IFocusManagerContainer(param1),true);
  1061.             }
  1062.          }
  1063.          if(!_loc6_.isTopLevelRoot() && _loc10_ && _loc6_ == _loc10_)
  1064.          {
  1065.             _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,false,false,null,{"window":DisplayObject(param1)});
  1066.             _loc11_.requestor = _loc6_.swfBridgeGroup.parentBridge;
  1067.             _loc11_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(param1));
  1068.             _loc6_.dispatchEvent(_loc11_);
  1069.          }
  1070.          if(param1 is IAutomationObject)
  1071.          {
  1072.             IAutomationObject(param1).showInAutomationHierarchy = true;
  1073.          }
  1074.          if(param1 is ILayoutManagerClient)
  1075.          {
  1076.             UIComponentGlobals.mx_internal::layoutManager.validateClient(ILayoutManagerClient(param1),true);
  1077.          }
  1078.          _loc12_.parent = param2;
  1079.          if(param1 is IUIComponent)
  1080.          {
  1081.             IUIComponent(param1).setActualSize(IUIComponent(param1).getExplicitOrMeasuredWidth(),IUIComponent(param1).getExplicitOrMeasuredHeight());
  1082.          }
  1083.          if(param3)
  1084.          {
  1085.             createModalWindow(param2,_loc12_,_loc7_,_loc5_,_loc9_,_loc10_);
  1086.          }
  1087.          else
  1088.          {
  1089.             _loc12_._mouseDownOutsideHandler = nonmodalMouseDownOutsideHandler;
  1090.             _loc12_._mouseWheelOutsideHandler = nonmodalMouseWheelOutsideHandler;
  1091.             param1.visible = _loc5_;
  1092.          }
  1093.          _loc12_.owner.addEventListener(FlexEvent.SHOW,showOwnerHandler);
  1094.          _loc12_.owner.addEventListener(FlexEvent.HIDE,hideOwnerHandler);
  1095.          addMouseOutEventListeners(_loc12_);
  1096.          param1.addEventListener(Event.REMOVED,popupRemovedHandler);
  1097.          if(param1 is IFocusManagerContainer && _loc5_)
  1098.          {
  1099.             if(!(_loc9_ is SystemManagerProxy) && Boolean(_loc9_.useSWFBridge()))
  1100.             {
  1101.                SystemManager(_loc9_).mx_internal::dispatchActivatedWindowEvent(DisplayObject(param1));
  1102.             }
  1103.             else
  1104.             {
  1105.                _loc9_.activate(IFocusManagerContainer(param1));
  1106.             }
  1107.          }
  1108.       }
  1109.       
  1110.       private function dispatchModalWindowRequest(param1:String, param2:ISystemManager, param3:DisplayObject, param4:PopUpData, param5:Boolean) : void
  1111.       {
  1112.          var _loc8_:InterManagerRequest = null;
  1113.          if(!param4.isRemoteModalWindow && param2 != param3)
  1114.          {
  1115.             _loc8_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  1116.             param3.dispatchEvent(_loc8_);
  1117.             if(Boolean(_loc8_.value))
  1118.             {
  1119.                return;
  1120.             }
  1121.          }
  1122.          var _loc6_:SWFBridgeRequest = new SWFBridgeRequest(param1,false,false,null,{
  1123.             "skip":!param4.isRemoteModalWindow && param2 != param3,
  1124.             "useExclude":param4.useExclude,
  1125.             "show":param5,
  1126.             "remove":false,
  1127.             "transparencyDuration":param4.modalTransparencyDuration,
  1128.             "transparency":param4.modalTransparency,
  1129.             "transparencyColor":param4.modalTransparencyColor,
  1130.             "transparencyBlur":param4.modalTransparencyBlur
  1131.          });
  1132.          var _loc7_:IEventDispatcher = param2.swfBridgeGroup.parentBridge;
  1133.          _loc6_.requestor = _loc7_;
  1134.          _loc7_.dispatchEvent(_loc6_);
  1135.       }
  1136.       
  1137.       public function createPopUp(param1:DisplayObject, param2:Class, param3:Boolean = false, param4:String = null) : IFlexDisplayObject
  1138.       {
  1139.          var _loc5_:IUIComponent = new param2();
  1140.          addPopUp(_loc5_,param1,param3,param4);
  1141.          return _loc5_;
  1142.       }
  1143.       
  1144.       private function removeMouseOutEventListeners(param1:PopUpData) : void
  1145.       {
  1146.          var _loc2_:DisplayObject = param1.systemManager.getSandboxRoot();
  1147.          if(param1.modalWindow)
  1148.          {
  1149.             param1.modalWindow.removeEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  1150.             param1.modalWindow.removeEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  1151.          }
  1152.          else
  1153.          {
  1154.             _loc2_.removeEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  1155.             _loc2_.removeEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  1156.          }
  1157.          _loc2_.removeEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,param1.marshalMouseOutsideHandler);
  1158.          _loc2_.removeEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,param1.marshalMouseOutsideHandler,true);
  1159.       }
  1160.       
  1161.       private function findHighestRemoteModalPopupInfo() : PopUpData
  1162.       {
  1163.          var _loc3_:PopUpData = null;
  1164.          var _loc1_:int = int(popupInfo.length - 1);
  1165.          var _loc2_:int = _loc1_;
  1166.          while(_loc2_ >= 0)
  1167.          {
  1168.             _loc3_ = popupInfo[_loc2_];
  1169.             if(_loc3_.isRemoteModalWindow)
  1170.             {
  1171.                return _loc3_;
  1172.             }
  1173.             _loc2_--;
  1174.          }
  1175.          return null;
  1176.       }
  1177.    }
  1178. }
  1179.  
  1180. import flash.display.DisplayObject;
  1181. import flash.display.Sprite;
  1182. import flash.events.Event;
  1183. import flash.events.MouseEvent;
  1184. import flash.geom.Rectangle;
  1185. import mx.core.IUIComponent;
  1186. import mx.core.mx_internal;
  1187. import mx.effects.Effect;
  1188. import mx.events.SandboxMouseEvent;
  1189.  
  1190. use namespace mx_internal;
  1191.  
  1192. class PopUpData
  1193. {
  1194.    public var fade:Effect;
  1195.    
  1196.    public var modalTransparencyColor:Number;
  1197.    
  1198.    public var exclude:IUIComponent;
  1199.    
  1200.    public var isRemoteModalWindow:Boolean;
  1201.    
  1202.    public var useExclude:Boolean;
  1203.    
  1204.    public var blurTarget:Object;
  1205.    
  1206.    public var modalTransparencyDuration:Number;
  1207.    
  1208.    public var _mouseWheelOutsideHandler:Function;
  1209.    
  1210.    public var excludeRect:Rectangle;
  1211.    
  1212.    public var modalTransparency:Number;
  1213.    
  1214.    public var blur:Effect;
  1215.    
  1216.    public var parent:DisplayObject;
  1217.    
  1218.    public var modalTransparencyBlur:Number;
  1219.    
  1220.    public var _mouseDownOutsideHandler:Function;
  1221.    
  1222.    public var owner:DisplayObject;
  1223.    
  1224.    public var topMost:Boolean;
  1225.    
  1226.    public var modalMask:Sprite;
  1227.    
  1228.    public var modalWindow:DisplayObject;
  1229.    
  1230.    public var systemManager:ISystemManager;
  1231.    
  1232.    public function PopUpData()
  1233.    {
  1234.       super();
  1235.       useExclude = true;
  1236.    }
  1237.    
  1238.    public function marshalMouseOutsideHandler(param1:Event) : void
  1239.    {
  1240.       if(!(param1 is SandboxMouseEvent))
  1241.       {
  1242.          param1 = SandboxMouseEvent.marshal(param1);
  1243.       }
  1244.       if(owner)
  1245.       {
  1246.          owner.dispatchEvent(param1);
  1247.       }
  1248.    }
  1249.    
  1250.    public function mouseDownOutsideHandler(param1:MouseEvent) : void
  1251.    {
  1252.       _mouseDownOutsideHandler(owner,param1);
  1253.    }
  1254.    
  1255.    public function mouseWheelOutsideHandler(param1:MouseEvent) : void
  1256.    {
  1257.       _mouseWheelOutsideHandler(owner,param1);
  1258.    }
  1259.    
  1260.    public function resizeHandler(param1:Event) : void
  1261.    {
  1262.       var _loc2_:Rectangle = null;
  1263.       if(owner && owner.stage == DisplayObject(param1.target).stage || modalWindow && modalWindow.stage == DisplayObject(param1.target).stage)
  1264.       {
  1265.          _loc2_ = systemManager.screen;
  1266.          modalWindow.width = _loc2_.width;
  1267.          modalWindow.height = _loc2_.height;
  1268.          modalWindow.x = _loc2_.x;
  1269.          modalWindow.y = _loc2_.y;
  1270.          if(modalMask)
  1271.          {
  1272.             PopUpManagerImpl.mx_internal::updateModalMask(systemManager,modalWindow,exclude,excludeRect,modalMask);
  1273.          }
  1274.       }
  1275.    }
  1276. }
  1277.