 import flash.geom.Rectangle;
 
 import spark.components.supportClasses.Slider;
-import mx.core.UIComponent;
-import mx.core.ILayoutElement;
 
 //--------------------------------------
 //  Other metadata

    {
    	var tipAsDisplayObject:DisplayObject = dataTipInstance as DisplayObject;
    	
    	if (tipAsDisplayObject)
    	{
			var relY:Number = thumb.y + (thumb.height - tipAsDisplayObject.height) / 2;
	        var o:Point = new Point(dataTipOriginalPosition.x, relY);

    
    //--------------------------------------------------------------------------
    //
    // Methods
    //
    //--------------------------------------------------------------------------

    /**
     *  @private
     *  Note that this method is slightly different than the HSlider version because
     *  the minimum occurs at the bottom of the VSlider, where y is largest.
     */
    override protected function pointToValue(x:Number, y:Number):Number
    {
        if (!thumb || !track)
            return 0;
        
        var thumbRange:Number = track.getLayoutBoundsHeight() - thumb.getLayoutBoundsHeight();
        var range:Number = maximum - minimum;
        return minimum + ((thumbRange != 0) ? ((thumbRange - y) / thumbRange) * range : 0); 
    }
    
    /**
     *  @private
     */
    override protected function updateSkinDisplayList():void
    {
        if (!thumb || !track)
            return;
        
        var thumbRange:Number = track.getLayoutBoundsHeight() - thumb.getLayoutBoundsHeight();
        var range:Number = maximum - minimum;
        var thumbPos:Number = (range > 0) ? thumbRange - (((pendingValue - minimum) / range) * thumbRange) : 0;
        thumb.setLayoutBoundsPosition(thumb.getLayoutBoundsX(), Math.round(track.getLayoutBoundsY() + thumbPos));
    }
    
    /**
