 	{
 		switch(placement)
 		{
-			case "below":
+			case RelativePosition.BELOW:
 				registrationPoint.x = 0;
 				registrationPoint.y = unscaledHeight;
 				break;
-			case "above":
+			case RelativePosition.ABOVE:
 				registrationPoint.x = 0;
 				registrationPoint.y = -popUpHeight;
 				break;
-			case "left":
+			case RelativePosition.LEFT:
 				registrationPoint.x = -popUpWidth;
 				registrationPoint.y = 0;
 				break;
-			case "right":
+			case RelativePosition.RIGHT:
 				registrationPoint.x = unscaledWidth;
 				registrationPoint.y = 0;
 				break;			
-			case "center":
+			case RelativePosition.CENTER:
 				registrationPoint.x = (unscaledWidth - popUpWidth) / 2;
 				registrationPoint.y = (unscaledHeight - popUpHeight) / 2;
 				break;			
-			case "exact":
+			case RelativePosition.EXACT:
 				// already 0,0
 				break;
 		}

    //  popUpPosition
    //----------------------------------
	
	private var _popUpPosition:String = "exact";
	
	/**
	 *  Position of the popUp when it is opened. 
	 *  Possible values are "left", "right", "above", "below", "center", and "exact"
	 * 
	 *  @default "exact" 
	 * 
	 *  @langversion 3.0
	 *  @playerversion Flash 10

{
	
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.events.Event;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;

import mx.core.IFactory;
import mx.core.IFlexDisplayObject;
import mx.core.ITransientDeferredInstance;
import mx.core.UIComponent;
import mx.core.mx_internal;
import mx.managers.PopUpManager;
import mx.utils.MatrixUtil;

import spark.core.RelativePosition;

use namespace mx_internal;

[DefaultProperty("popUp")]

