 			}
 		}
 		
+		/**
+		* Generates a string from the current state. This method is used for internal 
+		* debugging purposes
+		* 
+		* @return A string representation of the current state
+		*/
 		protected function stateToString():String
 		{
 			var state:String = 'PLAYING';

	import reprise.utils.MathUtil;
	
	
	public class AbstractPlayer extends EventDispatcher
	{
		

		***************************************************************************/
		public static var SETTINGS_TIMEOUT_DURATION:uint = 10;
		
		/** 
		* active when the player has really nothing to do
		*/
		public static const STATE_IDLE:uint = 0;
		
		/**
		* active when the player gathers information like filesize etc.
		*/
		public static const STATE_PREBUFFERING:uint = 1;
		
		/**
		* active when the player is buffering
		*/
		public static const STATE_BUFFERING:uint = 2;
		
		/**
		* active when the player is playing
		*/
		public static const STATE_PLAYING:uint = 3;
		
		/**
		* active when the player is paused
		*/
		public static const STATE_PAUSED:uint = 4;
		
		/**
		* active when the player is stopped, will switch to idle when the media is 
		* fully loaded
		*/
		public static const STATE_STOPPED:uint = 5;
		
		/**
		* set when the duration of the media is known
		*/
		public static const STATUS_DURATION_KNOWN:uint = 1 << 0;
		
		/**
		* set when the filesize of the mediafile is known
		*/
		public static const STATUS_FILESIZE_KNOWN:uint = 1 << 1;
		
		/**
		* set when the bandwidth of the user is known
		*/
		public static const STATUS_BANDWIDTH_KNOWN:uint = 1 << 2;
		
		/**
		* set while the mediafile is loaded
		*/
		public static const STATUS_IS_LOADING:uint = 1 << 3;
		
		/**
		* set after the media file was fully loaded
		*/
		public static const STATUS_LOAD_FINISHED:uint = 1 << 4;
		
		/**
		* set when the player should start instanly after the buffer was filled
		* e.g. autoplay is active, or the stream was interrupted due to a buffer underrun
		*/
		public static const STATUS_SHOULD_PLAY:uint = 1 << 5;
		
		/**
		* set when the buffer is full enough to play the mediafile with the current bandwidth
		* of the user, without interrupting
		*/
		public static const STATUS_BUFFER_FULL:uint = 1 << 6;
		
		/**
		* set after autoplay was executed. this flag is deleted if the user clicked stop. 
		* so the user can override that behaviour
		*/
		public static const STATUS_DID_AUTOPLAY:uint = 1 << 7;
		
		/**
		* set when the mediafile is paused at the last frame (video). therefore 
		* OPTIONS_REVERSE_ON_COMPLETE must be turned off
		*/
		public static const STATUS_PAUSED_AT_END:uint = 1 << 8;
		
		/**
		* a collection of properties which must be known to determine the required buffer time.
		* when this is set buffering can happen.
		*/
		public static const BUFFERING_RELEVANT_STATUS:uint = 
			STATUS_DURATION_KNOWN | STATUS_FILESIZE_KNOWN | STATUS_BANDWIDTH_KNOWN;
		
