	/**
	 * 
	 * Javascript Basket class
	 * 
	 * @name ModuleBasket
	 * @author Vincent Cantin Bellemre
	 * @since 2008-01-11
	 * @version 1.0.0
	 * @package reptileframework
	 * 
	 */
	
	var Plugins = {};
	
	Plugins.basepath 			= null;
	Plugins.pluginsElements 	= Array();
	Plugins.JS_DIRECTORY 		= 'js/ecom/plugins';
	
	Plugins.add = function(className,pluginSrc)
	{
		pluginSrc = Plugins.basepath + '/' + Plugins.JS_DIRECTORY + '/' + pluginSrc.underscore();
		
		Plugins.pluginsElements.push
		(
			{
				className : className,
				pluginSrc : pluginSrc
			}	
		);
	};
	
	Plugins.initialize = function(basepath)
	{		
		Plugins.basepath = basepath;
	};
		
	Plugins._triggerEvent = function(className)
	{
		var toCall = eval(className + '.' + Plugins._eventFunction);

		if(Object.isFunction(toCall))
		{				
			Site.log('Plugin ' + className + ':' + Plugins._eventFunction + ' initialised');
			setTimeout(toCall.curry(Plugins._params),0);
		}
	};
	
	Plugins.triggerEvent = function(eventFunction,params)
	{
		Plugins._eventFunction 		= eventFunction;
		Plugins._params 			= params;
		
		Plugins.pluginsElements.each
		(
			function(pluginElement)
			{
				LazyLoad.loadOnce(pluginElement.pluginSrc, Plugins._triggerEvent.curry(pluginElement.className));
			}
		);
	};
