     }
     
     //----------------------------------
-    //  index
-    //----------------------------------
-    
-    /**
-     *  @private
-     *  storage for the index property 
-     */    
-    private var _index:int;
+    //  itemIndex
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  storage for the itemIndex property 
+     */    
+    private var _itemIndex:int;
     
     /**
      *  @inheritDoc 
      *
      *  @default false
      */    
-    public function get index():int
-    {
-        return _index;
-    }
-    
-    /**
-     *  @private
-     */    
-    public function set index(value:int):void
-    {
-        if (value == _index)
+    public function get itemIndex():int
+    {
+        return _itemIndex;
+    }
+    
+    /**
+     *  @private
+     */    
+    public function set itemIndex(value:int):void
+    {
+        if (value == _itemIndex)
             return;
         
-        _index = value;
+        _itemIndex = value;
         dispatchEvent(new Event("contentBackgroundColorChanged"));
-        if (handleHighlightBackground)
+        if (autoDrawBackground)
         {
             redrawRequested = true;
             super.$invalidateDisplayList();

    {
        hovered = false;
        setCurrentState(getCurrentRendererState(), playTransitions);
        if (handleHighlightBackground)
        {
            redrawRequested = true;
            super.$invalidateDisplayList();

        
        super.styleChanged(styleName);
        
        if (autoDrawBackground && (allStyles || styleName == "alternatingItemColors" || 
            styleName == "contentBackgroundColor" || styleName == "rollOverColor" || 
            styleName == "selectionColor"))
        {
            redrawRequested = true;
            super.$invalidateDisplayList();
        }
    }
    
    /**
     *  @private
     */
    override mx_internal function drawBackground():void
    {
        // if handleHighlightBackground is set to true, we always 
        // draw a background and don't need to worry about mouseEnabledWhereTransparent.
        // However, if it's false, then we should just let super.drawBackground()
        // do its job.
        if (!autoDrawBackground)
        {
            super.drawBackground();
            return;
        }
        
        // TODO (rfrishbe): Would be good to remove this duplicate code with the 
        // super.drawBackground() version
        var w:Number = (resizeMode == ResizeMode.SCALE) ? measuredWidth : unscaledWidth;
        var h:Number = (resizeMode == ResizeMode.SCALE) ? measuredHeight : unscaledHeight;
        
