var FunctionCollection = {};
FunctionCollection.names = new Array();
FunctionCollection.functions = new Array();

FunctionCollection.replaceFunction = function(name, functionHadler)
{
	if (typeof(functionHadler) != 'function')
	{
		return false;
	}

	for (var i = 0; i < this.names.length; i++)
	{
		if (this.names[i] == name)
		{
			this.functions[i] = functionHadler;
			return true;
		}
	}
	
	this.addFunction(name, functionHadler);
	return true;
}

FunctionCollection.addFunction = function(name, functionHadler)
{
	if (typeof(functionHadler) != 'function')
	{
		return false;
	}

	for (var i = 0; i < this.names.length; i++)
	{
		if (this.names[i] == name)
		{
			return false;
		}
	}
	
	this.names.push(name);
	this.functions.push(functionHadler);
	return true;
}

FunctionCollection.Run = function()
{
	for (var i = 0; i < this.functions.length; i++)
	{
		this.functions[i].call();
	}
}
