 	public class CustomCursorManager
 	{
 		public static var debug:Boolean = false;
+		
+		private static var _initialized:Boolean = false;
+		private static var _customCursorsSupported:Boolean = true;
+		public static function get customCursorsSupported():Boolean
+		{
+			if (!_initialized)
+			{
+				if (Capabilities.manufacturer == "Adobe Linux" && ExternalInterface.available)
+				{
+					_customCursorsSupported = ExternalInterface.call("function(id) {\
+						try {\
+							var weave = objectID ? document.getElementById(objectID) : document.body.firstChild;\
+							return weave.children.wmode.value != 'transparent';\
+						} catch (e) {\
+							return true;\
+						}\
+					}", ExternalInterface.objectID);
+				}
+				_initialized = true;
+			}
+			return _customCursorsSupported;
+		}
 		
 		/**
 		 * This will register an embedded cursor.

package weave.utils
{
	import flash.display.BitmapData;
	import flash.geom.Point;
	import flash.ui.Mouse;
	import flash.ui.MouseCursor;
	import flash.ui.MouseCursorData;

		}
	}
}
import flash.ui.MouseCursor;

import weave.utils.CustomCursorManager;

internal class CursorEntry
{
	public function CursorEntry(id:int, name:String)
	{
		this.id = id;
		if (CustomCursorManager.customCursorsSupported)
			this.name = name;
		else
			this.name = MouseCursor.BUTTON;
	}
	
	public var id:Number;
