         var delta:Number = 0;     
         switch (unit)
         {
-            case Keyboard.LEFT:
+            case ScrollUnit.LEFT:
                 delta = Math.max(-scrollR.width, itemR.left - scrollR.left);
                 break;
                 
-            case Keyboard.RIGHT:
+            case ScrollUnit.RIGHT:
                 delta = Math.min(scrollR.width, itemR.right - scrollR.right);
                 break;
                 
-            case Keyboard.PAGE_UP:
+            case ScrollUnit.PAGE_LEFT:
                 if ((itemR.left < scrollR.left) && (itemR.right >= scrollR.right))
                     delta = Math.max(-scrollR.width, itemR.left - scrollR.left);
                 else
                     delta = itemR.right - scrollR.right;
                 break;
 
-            case Keyboard.PAGE_DOWN:
+            case ScrollUnit.PAGE_RIGHT:
                 if ((itemR.left < scrollR.left) && (itemR.right >= scrollR.right))
                     delta = Math.min(scrollR.width, itemR.right - scrollR.right);
                 else

        var itemR:Rectangle = null;
        switch(unit)
        {
            case Keyboard.LEFT:
            case Keyboard.PAGE_UP:
                itemR = findLayoutItemBounds(g, firstIndexInView, -1, scrollR);
                break;

            case Keyboard.RIGHT:
            case Keyboard.PAGE_DOWN:
                itemR = findLayoutItemBounds(g, lastIndexInView, +1, scrollR);
                break;

            default:
                return super.horizontalScrollPositionDelta(unit);
        }
        
        if (!itemR)

     *  @see lastIndexInView
     *  @see horizontalScrollPosition
     */
    override public function getHorizontalScrollPositionDelta(unit:ScrollUnit):Number
    {
        var g:GroupBase = target;
        if (!g)
