 
 package spark.layouts
 {
-import flash.geom.Point;
 import flash.geom.Rectangle;
 
-import mx.core.FlexVersion;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
-import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
 import mx.events.PropertyChangeEvent;
-import mx.managers.ILayoutManagerClient;
 
 import spark.components.supportClasses.GroupBase;
 import spark.core.NavigationUnit;


    /**
     *  @private
     *  customize handling of a few cases
     */
    override protected function estimateSizeOfElement(layoutElement:ILayoutElement, 
                                                               percentWidth:Number,
                                                               percentHeight:Number,
                                                               parentEstimatedWidth:Number,
                                                               parentEstimatedHeight:Number,
                                                               estimatedSize:Point):void
    {
        super.estimateSizeOfElement(layoutElement,
                                                percentWidth,
                                                percentHeight,
                                                parentEstimatedWidth,
                                                parentEstimatedHeight,
                                                estimatedSize);
        
        var c:Number;
        if (isNaN(estimatedSize.y) || !isNaN(explicitRowHeight))
        {
            c = explicitRowHeight;
            if (isNaN(c))
            {
                if (requestedRowCount > 0)
                {
                    c = target.estimatedHeight;
                    if (isNaN(c) && !isNaN(target.explicitHeight))
                        c = target.explicitHeight;
                    c = (c - (requestedRowCount - 1) * verticalGap) / requestedRowCount;
                }
            }
            if (!isNaN(c))
            {
                // if verticalAlign is "justify" or "contentJustify", 
                // restrict the height to constrainedHeight.  Otherwise, 
                // size it normally
                if (verticalAlign == VerticalAlign.JUSTIFY)
				// ||
                //    verticalAlign == VerticalAlign.CONTENT_JUSTIFY)
                    estimatedSize.y = c;
            }
        }
        if (isNaN(estimatedSize.x) || !isNaN(explicitColumnWidth))
        {
            c = explicitColumnWidth;
            if (isNaN(c))
            {
                if (requestedColumnCount > 0)
                {
                    c = target.estimatedWidth;
                    if (isNaN(c) && !isNaN(target.explicitWidth))
                        c = target.explicitWidth;
                    c = (c - (requestedColumnCount - 1) * horizontalGap) / requestedColumnCount;                    
                }
            }
            if (!isNaN(c))
            {
                // if horizontalAlign is "justify" or "contentJustify", 
                // restrict the width to restrictedWidth.  Otherwise, 
                // size it normally
                if (horizontalAlign == HorizontalAlign.JUSTIFY)
				// ||
                //    horizontalAlign == HorizontalAlign.CONTENT_JUSTIFY)
                    estimatedSize.x = c;
            }
        }
    }

    /**
     *  @private
     */
    override protected function scrollPositionChanged():void
    {


        // If actual values have chnaged, notify listeners
        dispatchEventsForActualValueChanges();
    }

    /**
