      * 
      *  <li> 
      *  <code>UP</code>
-     *  If the firstIndexInView item is partially visible then top justify
-     *  it, otherwise top justify the item at the previous index.
+     *  If the firstIndexInView element is partially visible then top justify
+     *  it, otherwise top justify the element at the previous index.
      *  </li>
      * 
      *  <li> 
      *  <code>DOWN</code>
-     *  If the lastIndexInView item is partially visible, then bottom justify
-     *  it, otherwise bottom justify the item at the following index.
+     *  If the lastIndexInView element is partially visible, then bottom justify
+     *  it, otherwise bottom justify the element at the following index.
      *  </li>
      * 
      *  <code>PAGE_UP</code>
      *  <li>
-     *  If the firstIndexInView item is partially visible, then bottom
-     *  justify it, otherwise bottom justify item at the previous index.  
+     *  If the firstIndexInView element is partially visible, then bottom
+     *  justify it, otherwise bottom justify element at the previous index.  
      *  </li>
      * 
      *  <li> 
      *  <code>PAGE_DOWN</code>
-     *  If the lastIndexInView item is partially visible, then top
-     *  justify it, otherwise top justify item at the following index.  
+     *  If the lastIndexInView element is partially visible, then top
+     *  justify it, otherwise top justify element at the following index.  
      *  </li>
      *  
      *  </ul>

        var visibleRows:uint = 0;
        var reqRows:int = requestedRowCount;
         
        var count:uint = layoutTarget.numLayoutItems;
        var totalCount:uint = count; // How many items will be laid out
        for (var i:int = 0; i < count; i++)
        {
            var li:ILayoutItem = layoutTarget.getLayoutItemAt(i);
            if (!li || !li.includeInLayout)
            {
            	totalCount--;
                continue;
            }            

            preferredWidth = Math.max(preferredWidth, li.preferredSize.x);
            preferredHeight += li.preferredSize.y; 
            
            var vrr:Boolean = (reqRows != -1) && (visibleRows < reqRows);

            if (vrr || (reqRows == -1))
            {
                var mw:Number =  hasPercentWidth(li) ? li.minSize.x : li.preferredSize.x;
                var mh:Number = hasPercentHeight(li) ? li.minSize.y : li.preferredSize.y;                   
                minWidth = Math.max(mw, minWidth);
                minHeight += mh;
            }

        if (isNaN(columnWidth)) 
        {
			minColumnWidth = columnWidth = 0;
	        var count:uint = layoutTarget.numLayoutElements;
	        for (var i:int = 0; i < count; i++)
	        {
	            var layoutElement:ILayoutElement = layoutTarget.getLayoutElementAt(i);
	            if (!layoutElement || !layoutElement.includeInLayout) 
	               continue;
	            columnWidth = Math.max(columnWidth, layoutElement.getPreferredWidth());
	            var elementMinWidth:Number = hasPercentWidth(layoutElement) ? layoutElement.getMinWidth() : layoutElement.getPreferredWidth();
	            minColumnWidth = Math.max(minColumnWidth, elementMinWidth);
	        }
        }     
        
