﻿/**
	 * Widget Developer should include this class into their widget if they want to use some resoruces ( image, animations, video ) 
	 * in their widget. 
*/

package com.adobe.captivate.widgets
{
	import flash.utils.ByteArray;
	/**
		* This class decscribes the handle Adobe Captivate passes  to the widget during runtime using the cpSetValue function.
	*/
	public class CPWidgetInternalResourceLoader
	{
		public static const RESOURCE_FILE:uint = 0;		
		public static const RESOURCE_MULTIPLE_FILES:uint = 1;
		
		/**
     		* @private
     	*/		
		private var _browseResouce:Function;
		/**
     		* @private
     	*/
		private var _getResourceStream:Function;

		public function CPWidgetInternalResourceLoader(aBrowseResouce:Function=null,aGetResourceStream:Function=null)
		{
			_browseResouce = aBrowseResouce;
			_getResourceStream = aGetResourceStream;
		}
		
		/**
     		* The widget parameter provided by the widget during edit time.			
			* @return A Integer that's the resource id
     	*/
		public function browseResource(aResType:int = 0) :Object
		{
			var lResourceID :Object = -1;
			if(_browseResouce!= null)
			{
				lResourceID = _browseResouce(aResType);
			}
			return lResourceID;
		}

		/**
     		* This function returns the resource stream as byte array
			
			* @return A ByteArray
			
		*/
		public function getResourceStream( resourceID:int ) : ByteArray
		{
			var lResourceStream:ByteArray;
			if(_getResourceStream != null)
			{
				lResourceStream = _getResourceStream(resourceID);
			}
			return lResourceStream;
		}
	}
}

