  *  @productversion Flex 4
  */ 
 [Style(name="symbolColor", type="uint", format="Color", inherit="yes")]
+
+/**
+ *  Number of milliseconds after the first pageevent
+ *  until subsequent page events occur.
+ * 
+ *  @default 500
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="repeatDelay", type="Number", format="Time", inherit="no")]
+
+/**
+ *  Number of milliseconds between page events
+ *  if the user presses and holds the mouse on the track.
+ *  
+ *  @default 35
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="repeatInterval", type="Number", format="Time", inherit="no")]
 
 /**
  *  The ScrollBar class helps to position

            if (range == 0)
                return;
            
            //if (newScrollValue <= (value + (thumbSize / trackSize) * range))
            if ((value + pageSize) > newScrollValue)
                return;
        }

        
        var oldValue:Number = value;
        
        if (event.shiftKey)
        {
            // shift-click positions jumps to the clicked location instead
            // of incrementally paging
            var slideDuration:Number = getStyle("slideDuration");
            // Adjust the position - we want the clicked position to be at the
            // half-way point of the thumb when it's done moving
            newScrollPosition -= thumbSize/2;
            newScrollValue = positionToValue(newScrollPosition);
            var adjustedValue:Number = nearestValidValue(newScrollValue, valueInterval);
            if (smoothScrolling && 
                slideDuration != 0 && 
                (maximum - minimum) != 0)
            {
                // Animate the shift-click operation
                startAnimation(slideDuration * 
                    (Math.abs(value - newScrollValue) / (maximum - minimum)),
                    adjustedValue, deceleratingSineEaser);
            }
            else
            {
                setValue(adjustedValue);
                dispatchEvent(new Event("change"));
            }
            return;
        }
        
        page(trackScrollDown);
        
        trackScrolling = true;

        // Add event handlers for drag and up events
