/**
 * @author DREDroot
 *
 */
dojo.declare("dojom.Logger", null, 
{	
	msg_console: null,
	log_console: null,
	toaster: null,
	params : {'DEBUG':false,'ERROR':true,'FATAL':true},
	logs: [],
	
	constructor: function ()
	{		
	},	
	
	setMsgConsole: function(msg_console)
	{
		if(msg_console && msg_console.setContent)
		{
			this.msg_console = msg_console;
			console.debug('LOG. set msgConsole');
			return true;
		}
		else return false;
	},
	
	setLogConsole: function(log_console)
	{
		if(log_console && log_console.setContent)
		{
			this.log_console = log_console;
			console.debug('LOG. set logConsole');
			return true;
		}
		else return false;
	},
		
	addClass: function(className, params)
	{		
		var obj = this;
		var tmp = {};		
		if(!params)
			params = {};

		tmp['DEBUG'] = (params['DEBUG'] != null ? params['DEBUG'] : this.params['DEBUG']);
		tmp['ERROR'] = (params['ERROR'] != null ? params['ERROR'] : this.params['ERROR']);
		tmp['FATAL'] = (params['FATAL'] != null ? params['FATAL'] : this.params['FATAL']);
		

				
		var log = new dojom.Log(className,tmp);

		dojo.connect(log,'_addLog',function(msg,level){			
			console.debug(log.className+' (' + level +') : '+ msg);
			if(obj.log_console && level !='FATAL')
				obj.log_console.setContent(log.className+' (' + level +') : '+ msg);
		});

		dojo.connect(log,'msg',function(msg,type){
			if(obj.msg_console)			
				obj.msg_console.setContent(msg,type);
			else alert(msg);
		});
		
		log.debug(className + ' connect LOG')
		
		this.logs.push(log);
		return log;
	}
	
});

dojo.declare("dojom.Log", null, 
{
	errors: [],
	params: {},
	className: null,
	
	constructor: function (className,params)
	{
		this.className = className;
		this.params = params;
	},
	
	debug: function(msg)
	{
		this.catchLog(msg,'DEBUG');
	},
	
	error: function(msg)
	{
		this.catchLog(msg,'ERROR')
	},
	
	fatal: function(msg)
	{
		this.catchLog(msg,'FATAL');
	},
	
	msg: function(msg,type)
	{
		
	},
	
	catchLog : function(msg, level)
	{		
		if(this.params[level])	
			this._addLog(msg, level);
	},
	
	_addLog: function(msg, level)
	{
		this.errors.push({'msg': msg, 'level': level});	
	},
	
	_clear: function()
	{
		this.errors=[];
	}
	
});

if (!window.LOG) LOG = new dojom.Logger();
else alert('can`t create Loger')
