/*
 * This logging object will allow us to log directly to the firebug console,
 * but only when its available.
 * 
 * @author DRS
 * @package Fanball.Core
 * @version 1.0
 */

var	Log = {
	
	level : 0,
	levels : {
		debug : 1,
		info : 2,
		warn : 3,
		error : 4
	},
	available : false,
	init: function(opts){
		try{
			if(opts != null){
				this.setLevel(opts.level);
			}
			this.available = ((console !== null) && (typeof( console ) == 'object'));
		}
		catch(e){
			this.available = false;
		}
	},
	
	setLevel : function(lvl){
		this.level = lvl;
	},
	disable : function(){
		this.available = false;
	},
	
	debug : function(e){this.log(Log.levels.debug,e);},
	info : function(e){this.log(Log.levels.info,e);},
	warn : function(e){this.log(Log.levels.warn,e);},
	error : function(e){this.log(Log.levels.error,e);}, 
	log : function(t,e){
		try{
			if(this.available){
				switch(t){
					case 0: 
						//logging disabled;
						break;
					case 1: 
						if(Log.level <= 1){
							console.debug(e);
						}
					break;
					case 2: 
						if(Log.level <= 2){
							console.info(e); 
						}
					break;
					case 3: 
						if(Log.level <= 3){
							console.warn(e); 
						}
						break;
					case 4: 
						if(Log.level <= 4){
							console.error(e); 
						}
						break;
				}
			}
		}
		catch(e){
			//do nothing on errors..
		}
	}
};

//Initialize the logger object for use, the individual pages can set the log level as needed.
//by default, we will only log warnings or higher.
//Log.init({level: Log.levels.debug});
Log.disable();