         return false;   // assume the worst
     }
 
-    //--------------------------------------------------------------------------
-    //
-    //  Methods: Focus
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @inheritDoc
-     *  
-     *  @langversion 3.0
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function activate(f:IFocusManagerContainer):void
-    {
-        activateForm(f);
-    }
-
-    /**
-     * @private
-     * 
-     * New version of activate that does not require a
-     * IFocusManagerContainer.
-     */
-    private function activateForm(f:Object):void
-    {
-
-        // trace("SM: activate " + f + " " + forms.length);
-        if (form)
-        {
-            if (form != f && forms.length > 1)
-            {
-                // Switch the active form.
-                if (isRemotePopUp(form))
-                {
-                    if (!areRemotePopUpsEqual(form, f))
-                        deactivateRemotePopUp(form);                                                    
-                }
-                else
-                {
-                    var z:IFocusManagerContainer = IFocusManagerContainer(form);
-                    // trace("OLW " + f + " deactivating old form " + z);
-                    z.focusManager.deactivate();
-                }
-            }
-        }
-
-        form = f;
-
-        // trace("f = " + f);
-        if (isRemotePopUp(f))
-        {
-            activateRemotePopUp(f);
-        }
-        else if (f.focusManager)
-        {
-            // trace("has focus manager");
-            f.focusManager.activate();
-        }
-
-        updateLastActiveForm();
-        
-        // trace("END SM: activate " + f);
-    }
-
-    /**
-     *  @inheritDoc
-     *  
-     *  @langversion 3.0
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function deactivate(f:IFocusManagerContainer):void
-    {
-        deactivateForm(Object(f));
-    }
-    
-    /**
-     * @private
-     * 
-     * New version of deactivate that works with remote pop ups.
-     * 
-     */
-    private function deactivateForm(f:Object):void
-    {
-        // trace(">>SM: deactivate " + f);
-
-        if (form)
-        {
-            // If there's more than one form and this is it, find a new form.
-            if (form == f && forms.length > 1)
-            {
-                if (isRemotePopUp(form))
-                    deactivateRemotePopUp(form);
-                else
-                    form.focusManager.deactivate();
-                    
-                form = findLastActiveForm(f);
-                
-                // make sure we have a valid top level window.
-                // This can be null if top level window has been hidden for some reason.
-                if (form)
-                {
-                    if (isRemotePopUp(form))
-                        activateRemotePopUp(form);                  
-                    else 
-                        form.focusManager.activate();
-                }
-            }
-        }
-
-        // trace("<<SM: deactivate " + f);
-    }
-
-
-    /**
-     * @private
-     * 
-     * @param f form being deactivated
-     * 
-     * @return the next form to activate, excluding the form being deactivated.
-     */
-    private function findLastActiveForm(f:Object):Object
-    {
-        var n:int = forms.length;
-        for (var i:int = forms.length - 1; i >= 0; i--)
-        {
-            // Verify the form is visible and enabled
-            if (forms[i] != f && canActivatePopUp(forms[i]))
-                return forms[i];
-        }
-        
-        return null;  // shouldn't get here     
-    }
-    
-    
-    /**
-     * @private
-     * 
-     * @return true if the form can be activated, false otherwise.
-     */
-     private function canActivatePopUp(f:Object):Boolean
-     {
-        if (isRemotePopUp(f))
-        {
-            var remotePopUp:RemotePopUp = RemotePopUp(f);
-            var event:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.CAN_ACTIVATE_POP_UP_REQUEST, 
-                                                                  false, false, null,
-                                                                  remotePopUp.window);
-            IEventDispatcher(remotePopUp.bridge).dispatchEvent(event);
-            return event.data;
-        }
-        else if (canActivateLocalComponent(f))
-            return true;
-            
-        return false;
-     }
-     
-     
-     /**
-     * @private
-     * 
-     * Test is a local component can be activated.
-     */
-     private function canActivateLocalComponent(o:Object):Boolean
-     {
-        
-        if (o is Sprite && o is IUIComponent &&
-            Sprite(o).visible && IUIComponent(o).enabled)
-            return true;
-            
-        return false;
-     }
-     
-    /**
-     * @private
-     * 
-     * @return true if the form is a RemotePopUp, false if the form is IFocusManagerContainer.
-     *
-     */
-    private static function isRemotePopUp(form:Object):Boolean
-    {
-        return !(form is IFocusManagerContainer);
-    }
-
-    /**
-     * @private
-     * 
-     * @return true if form1 and form2 are both of type RemotePopUp and are equal, false otherwise.
-     */
-    private static function areRemotePopUpsEqual(form1:Object, form2:Object):Boolean
-    {
-        if (!(form1 is RemotePopUp))
-            return false;
-        
-        if (!(form2 is RemotePopUp))
-            return false;
-        
-        var remotePopUp1:RemotePopUp = RemotePopUp(form1);
-        var remotePopUp2:RemotePopUp = RemotePopUp(form2);
-        
-        if (remotePopUp1.window == remotePopUp2.window && 
-            remotePopUp1.bridge && remotePopUp2.bridge)
-            return true;
-        
-        return false;
-    }
-
-
-    /**
-     * @private
-     * 
-     * Find a remote form that is hosted by this system manager.
-     * 
-     * @param window unique id of popUp within a bridged application
-     * @param bridge bridge of owning application.
-     * 
-     * @return RemotePopUp if hosted by this system manager, false otherwise.
-     */
-    private function findRemotePopUp(window:Object, bridge:IEventDispatcher):RemotePopUp
-    {
-        // remove the placeholder from forms array
-        var n:int = forms.length;
-        for (var i:int = 0; i < n; i++)
-        {
-            if (isRemotePopUp(forms[i]))
-            {
-                var popUp:RemotePopUp = RemotePopUp(forms[i]);
-                if (popUp.window == window && 
-                    popUp.bridge == bridge)
-                    return popUp;
-            }
-        }
-        
-        return null;
-    }
-    
-    /**
-     * Remote a remote form from the forms array.
-     * 
-     * form Locally created remote form.
-     *  
-     *  @langversion 3.0
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    private function removeRemotePopUp(form:RemotePopUp):void
-    {   
-        // remove popup from forms array
-        var n:int = forms.length;
-        for (var i:int = 0; i < n; i++)
-        {
-            if (isRemotePopUp(forms[i]))
-            {
-                if (forms[i].window == form.window &&
-                    forms[i].bridge == form.bridge)
-                {
-                    if (forms[i] == form)
-                        deactivateForm(form);
-                    forms.splice(i, 1);
-                    break;
-                }
-            }
-        }
-    }
-
-    /**
-     * @private
-     * 
-     * Activate a form that belongs to a system manager in another
-     * sandbox or peer application domain.
-     * 
-     * @param form  a RemotePopUp object.
-     * */ 
-    private function activateRemotePopUp(form:Object):void
-    {
-        var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.ACTIVATE_POP_UP_REQUEST, 
-                                                                    false, false,
-                                                                    form.bridge,
-                                                                    form.window);
-        var bridge:Object = form.bridge;
-        if (bridge)
-            bridge.dispatchEvent(request);
-    }
-    
-    
-    private function deactivateRemotePopUp(form:Object):void
-    {
-        var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.DEACTIVATE_POP_UP_REQUEST,
-                                                                    false, false,
-                                                                    form.bridge,
-                                                                    form.window);
-        var bridge:Object = form.bridge;
-        if (bridge)
-            bridge.dispatchEvent(request);
-    }
-    /**
-     * Test if two forms are equal.
-     * 
-     * @param form1 - may be of type a DisplayObjectContainer or a RemotePopUp
-     * @param form2 - may be of type a DisplayObjectContainer or a RemotePopUp
-     * 
-     * @return true if the forms are equal, false otherwise.
-     */
-    private function areFormsEqual(form1:Object, form2:Object):Boolean
-    {
-        if (form1 == form2)
-            return true;
-            
-        // if the forms are both remote forms, then compare them, otherwise
-        // return false.
-        if (form1 is RemotePopUp && form2 is RemotePopUp)
-        {
-            return areRemotePopUpsEqual(form1, form2);  
-        }
-        
-        return false;
-    }   
-
-    /**
-     *  @inheritDoc
-     *  
-     *  @langversion 3.0
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function addFocusManager(f:IFocusManagerContainer):void
-    {
-        // trace("OLW: add focus manager" + f);
-
-        forms.push(f);
-
-        // trace("END OLW: add focus manager" + f);
-    }
-
-    /**
-     *  @inheritDoc
-     *  
-     *  @langversion 3.0
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function removeFocusManager(f:IFocusManagerContainer):void
-    {
-        // trace("OLW: remove focus manager" + f);
-
-        var n:int = forms.length;
-        for (var i:int = 0; i < n; i++)
-        {
-            if (forms[i] == f)
-            {
-                if (form == f)
-                    deactivate(f);
-                forms.splice(i, 1);
-                // trace("END OLW: successful remove focus manager" + f);
-                return;
-            }
-        }
-
-        // trace("END OLW: remove focus manager" + f);
-    }
-    
     //--------------------------------------------------------------------------
     //
     //  Methods: Access to overridden methods of base classes

            bounds.height = s.height;
        }
        
        // send a message to parent for their visible rect.
        if (useSWFBridge())
        {
            var bridge:IEventDispatcher = swfBridgeGroup.parentBridge;
            var request:SWFBridgeRequest = new SWFBridgeRequest(SWFBridgeRequest.GET_VISIBLE_RECT_REQUEST,
                                                                    false, false,
                                                                    bridge,
                                                                    bounds);
            bridge.dispatchEvent(request);
            bounds = Rectangle(request.data);
        }
        
        return bounds;
    }
 
   /**
    *  @inheritdoc
    *  
    *  @langversion 3.0
    *  @playerversion AIR 1.1

        _applicationIndex = value;
    }
    
    
    //-----------------------------------
    //  ISystemManager implementations
