     }
 
     /**
-     * @private
-     * If we are still in the middle of track-scrolling, restart the
-     * timer when the mouse re-enters the track area.
+     *  @private
+     *  If we are still in the middle of track-scrolling, restart the
+     *  timer when the mouse re-enters the track area.
      */
     private function track_rollOverHandler(event:MouseEvent):void
     {

    }

    /**
     * @private
     * Stop scrolling the track if the mouse leaves the stage
     * area. Remove the listeners and stop the Timer.
     */
    private function track_mouseLeaveHandler(event:Event):void
    {
        trackScrolling = false;
        removeSystemHandlers(MouseEvent.MOUSE_MOVE, track_mouseMoveHandler,
                stage_track_mouseMoveHandler);
        systemManager.removeEventListener(
            MouseEvent.MOUSE_UP, track_mouseLeaveHandler, true);
        systemManager.stage.removeEventListener(Event.MOUSE_LEAVE, 
                            track_mouseLeaveHandler);


        var pt:Point = new Point(event.stageX, event.stageY);
        // Cache original event location for use on later repeating events
        trackPosition = track.globalToLocal(pt);
        var newScrollPosition:Number = pointToPosition(trackPosition.x, trackPosition.y);
        var newScrollValue:Number = positionToValue(newScrollPosition);
        
        trackScrollDown = (newScrollValue > value);
        
        var oldValue:Number = value;
        
        page(trackScrollDown);
        
        if (value != oldValue)
        {
            positionThumb(valueToPosition(value));
            dispatchEvent(new Event("change"));
        }

        trackScrolling = true;

