var ModuleRunner = function (){
	this._Module = [];
};

ModuleRunner.getInstance = function(id)
{
	if ( !this._pool )
			this._pool={};
	if ( !this._pool[id] )
	{
		this._pool[id]=new ModuleRunner;
	}
		
	return this._pool[id];
}

ModuleRunner.prototype = {
	addModule : function(m) {
		this._Module.push(m);
	},

	runAll : function(){
		for(var i=0;i<this._Module.length;i++)
			if(this._Module[i].url!="")
				this._loadXml(i);
	},

	runOne : function(eid){
		for(var i=0;i<this._Module.length;i++)
			if(this._Module[i].eid==eid)
				this._loadXml(i);
	},

	clear : function () {
		this._Module = [];
	},

	_loadXml : function(i){
		var theRunner=this;
		var theModule=this._Module[i];
		
		var url=theModule.url;
		new Ajax.Request(url, {
			response: "Object",
			onSuccess: function(evt){
				var rr = evt.response;

				if (theModule.successCallback)
					theModule.successCallback(i,rr);
				
			},
			onException: function(evt){
				if(theModule.onException)
					theModule.onException(evt);
			}
		});
	}
};