 	import flash.display.StageScaleMode;
 	import flash.display3D.Context3DRenderMode;
 	import flash.events.Event;
+	import flash.events.MouseEvent;
 	import flash.geom.Point;
 	import flash.utils.Dictionary;
 	import flash.utils.getTimer;

			}
			
			resizeHandler();
			
			stage.addEventListener(Event.ADDED, displayObjectAddedToStageHandler);
		}

			}
		}
		
		private function updateStageListeners() : void
		{
			if (!stage)
				return ;
			
			if (_alwaysOnTop)
			{
				stage.addEventListener(MouseEvent.CLICK, stageMouseHandler);
				stage.addEventListener(MouseEvent.DOUBLE_CLICK, stageMouseHandler);
				stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseHandler);
				stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMouseHandler);
				stage.addEventListener(MouseEvent.MOUSE_OUT, stageMouseHandler);
				stage.addEventListener(MouseEvent.MOUSE_OVER, stageMouseHandler);
				stage.addEventListener(MouseEvent.MOUSE_WHEEL, stageMouseHandler);
				stage.addEventListener(MouseEvent.ROLL_OUT, stageMouseHandler);
				stage.addEventListener(MouseEvent.ROLL_OVER, stageMouseHandler);
			}
			else
			{
				stage.removeEventListener(MouseEvent.CLICK, stageMouseHandler);
				stage.removeEventListener(MouseEvent.DOUBLE_CLICK, stageMouseHandler);
				stage.removeEventListener(MouseEvent.MOUSE_DOWN, stageMouseHandler);
				stage.removeEventListener(MouseEvent.MOUSE_MOVE, stageMouseHandler);
				stage.removeEventListener(MouseEvent.MOUSE_OUT, stageMouseHandler);
				stage.removeEventListener(MouseEvent.MOUSE_OVER, stageMouseHandler);
				stage.removeEventListener(MouseEvent.MOUSE_WHEEL, stageMouseHandler);
				stage.removeEventListener(MouseEvent.ROLL_OUT, stageMouseHandler);
				stage.removeEventListener(MouseEvent.ROLL_OVER, stageMouseHandler);
			}
		}
		
		private function stageMouseHandler(event : MouseEvent) : void
		{
			if (!_alwaysOnTop || event.target == this)
				return ;
			
			var stageX	: Number	= event.stageX;
			var stageY	: Number	= event.stageY;
			
			if (stageX > _stageX && stageX < _stageX + _width
				&& stageY > _stageY && stageY < _stageY + _height)
			{
				dispatchEvent(event.clone());
			}
		}
		
		private function updateMask() : void
		{
			var numChildren : int = stage.numChildren;
