// dependency: none

var logger = 
{
	debugLevel: 0,
	warningLevel: 1,
	errorLevel: 2,
	loggers: new Array(),
	
	level: 1,	
	
	loggers: new Array(),
	
	setLevel: function(level)
	{
		this.level = level;
	},
	
	setDebugLevel: function()
	{
		this.level = this.debugLevel;
	},
	
	setWarningLevel: function()
	{
		this.level = this.warningLevel;
	},
	
	setErrorLevel: function()
	{
		this.level = this.errorLevel;
	},
	
	attachLogger: function(logFunc)
	{
		this.loggers[this.loggers.length] = logFunc;
	},
	
	debug: function(message, from)
	{
		if (this.level <= this.debugLevel)
		{
			this.log(message, "debug", from);
		}
	},
	
	warn: function(message, from)
	{
		if (this.level <= this.warningLevel)
		{
			this.log(message, "warning", from);
		}
	},
	
	error: function(message, from)
	{
		if (this.level <= this.errorLevel)
		{
			this.log(message, "error", from);
		}
	},
	
	log: function(message, className, from)
	{
		for (var i=0; i<this.loggers.length; i++)
		{
			this.loggers[i] (message, className, from);
		}
	}
}

