         
         return new Rectangle(0,0,0,0);
     }
+    
+    /**
+     *  @private 
+     *  Convert the localBounds of a descendant element into the target's coordinate system
+     */ 
+    private function convertLocalToTarget(element:IVisualElement, elementLocalBounds:Rectangle):Rectangle
+    {
+        // use localToContent
+        if (!element)
+            return new Rectangle(0,0,0,0);
+        
+        var parentUIC:UIComponent = element.parent as UIComponent;
+        
+        // Note that we don't check that the element is a descendant of the target
+        // since it can be expensive to calculae. 
+        if (parentUIC)
+        {
+            var g:GroupBase = target;
+            // Get the position in local coordinate
+            var posPointStart:Point = new Point(element.getLayoutBoundsX() + elementLocalBounds.x, 
+                                                element.getLayoutBoundsY() + elementLocalBounds.y);
+            
+            // Convert from local to global coordinate space
+            var posPoint:Point = parentUIC.localToGlobal(posPointStart);
+            // Convert from global to target's local coordinate space
+            posPoint = g.globalToLocal(posPoint);
+            
+            return new Rectangle(posPoint.x, posPoint.y, elementLocalBounds.width, elementLocalBounds.height);
+        }
+        
+        return new Rectangle(0,0,0,0);
+    }
      
     /**
      *  @private

     *  @param rightOffset Number of pixels to position the element to the left of the right edge.
     */ 
    protected function getScrollPositionDeltaToElementHelperHelper(
                                    elementR:Rectangle, topOffset:Number = NaN, 
                                    bottomOffset:Number = NaN, 
                                    leftOffset:Number = NaN,
                                    rightOffset:Number = NaN):Point

     *  @param leftOffset Number of pixels to position the element to the right of the left edge.
     *  @param rightOffset Number of pixels to position the element to the left of the right edge.
     */ 
    mx_internal function getScrollPositionDeltaToElementHelper(index:int, 
                                                               topOffset:Number = NaN, 
                                                               bottomOffset:Number = NaN, 
                                                               leftOffset:Number = NaN,
                                                               rightOffset:Number = NaN):Point
    {
        var elementR:Rectangle = getElementBounds(index);
        return getScrollPositionDeltaToElementHelperHelper(
                                                elementR, null,
                                                topOffset, bottomOffset, 
                                                leftOffset, rightOffset);
    }
