         return "normal";
     }
     
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Methods
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  @private
+     */ 
+    override protected function commitProperties():void
+    {
+    	super.commitProperties();
+    	
+        if (rendererStateIsDirty)
+        {
+            currentState = getCurrentRendererState();
+            rendererStateIsDirty = false;
+        }
+    }
+    
+    /**
+     *  @private
+     */ 
+    override public function styleChanged(styleName:String):void
+    {
+        var allStyles:Boolean = styleName == null || styleName == "styleName";
+        
+        super.styleChanged(styleName);
+        
+        if (allStyles || styleName == "alternatingItemColors")
+        {
+            conditionalEventDispatch("contentBackgroundColorChanged");
+        }
+        
+        if (allStyles || styleName == "contentBackgroundColor")
+        {
+            conditionalEventDispatch("contentBackgroundColorChanged");
+        }
+        
+        if (allStyles || styleName == "rollOverColor")
+        {
+            conditionalEventDispatch("rollOverColorChanged");
+        }
+        
+        if (allStyles || styleName == "selectionColor")
+        {
+            conditionalEventDispatch("selectionColorChanged");
+        }
+    }
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Event handling
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  @private
+     *  Attach the mouse events.
+     */
+    private function addHandlers():void
+    {
+        addEventListener(MouseEvent.ROLL_OVER, itemRenderer_rollOverHandler);
+        addEventListener(MouseEvent.ROLL_OUT, itemRenderer_rollOutHandler);
+        addEventListener(MouseEvent.MOUSE_DOWN, itemRenderer_mouseDownHandler);
+    }
+    
     /**
      *  @private
      */

    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  hovered
    //----------------------------------

    /**
     *  @private
     *  Flag that is set when the mouse is hovered over the item renderer.

    
    //--------------------------------------------------------------------------
    //
    //  Public Properties 
    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  labelElement
    //----------------------------------
    
    /**
     * Optional item renderer label component. 
     * This component is used to determine the renderer's 
     * parent component baselinePosition. 
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
