     *  
     *  @private
     */
-    private static function itemScan(g:GroupBase, i:int, dir:int):Rectangle
+    private static function findLayoutItemBounds(g:GroupBase, i:int, dir:int):Rectangle
     {
         var n:int = g.numLayoutItems;
         while((i >= 0) && (i < n))

                lastIndex = lastIndexInView;
                if (inView(lastIndex) >= 1)
                   lastIndex = Math.min(maxIndex, lastIndex + 1);
                itemR = itemScan(g, lastIndex, +1);
                break;
            }
        }
                
    
        switch (unit)
        {
            case Keyboard.LEFT:
                return (itemR) ? Math.max(minDelta, itemR.left - scrollR.left) : 0;
                
            case Keyboard.RIGHT:
                return (itemR) ? Math.min(maxDelta, itemR.right - scrollR.right) : 0;
                
            case Keyboard.PAGE_UP:
                return (itemR) ? Math.max(minDelta, itemR.right - scrollR.right) : 0;

            case Keyboard.PAGE_DOWN:
                return (itemR) ? Math.min(maxDelta, itemR.left - scrollR.x) : 0;
                                
            default:
                return super.verticalScrollPositionDelta(unit);
        }       
    }     

    public function variableColumnWidthMeasure(layoutTarget:GroupBase):void

            
        var maxDelta:Number = g.contentWidth - scrollR.width - scrollR.x;
        var minDelta:Number = -scrollR.x; 
        var itemR:Rectangle = null;
        var firstIndex:int;
        var lastIndex:int;
        
