 			});
 		}
 		
-		private static var lastHtml5WindowName:String;
+		private static const windowName:String = ExternalTool.generateWindowName();
 		
 		public static function get shown():Boolean
 		{

		{
			return {
				WEAVE_EXTERNAL_TOOLS: ExternalTool.WEAVE_EXTERNAL_TOOLS,
				'windowName': lastHtml5WindowName,
				'catch': catchErrors && function():*{}
			};
		}
		
		public static function get exported():Boolean
		{
			return JavaScript.exec(

		
		public static function export():void
		{
			// clear all old window pointers because it gets very slow otherwise
			JavaScript.exec(
				jsVars(true),
				'window[WEAVE_EXTERNAL_TOOLS][windowName].window.close();'
			);
			
			ExternalTool.launch(WeaveAPI.globalHashMap, url, windowName);
		}
		
		public static function disableScripts(exportUrl:String = null):void
