/**
 * Initialisation de la fonction de log.
 *
 * FIXME choisir
 * // Par défaut, elle ne fait rien.
 * Par défaut, elle est null.
 */
var log=null;//=new Function();

var logServerSide=null;
///**
// * Méthode permettant de logger un message (dans catalina).
// *
// * NB : nécessite l'inclusion du fichier 'timelineLog.js'
// *
// * @param {Object} _message : message à logger
// */
//var logServerSide=function(_message){
//	// init timeline
//	var logTimeline=new Timeline(100);
//
//	// init listener
//	LogTimelineListener.prototype=new TimelineListener();
//	logTimeline.addTimelineListener(new LogTimelineListener(2000, Context().BASE_XML+"/log.jsp", _message));
//
//	// start timeline
//	logTimeline.start();
//}

var logClientSide=new Function();

if(typeof(window['console'])!='undefined'){
	logClientSide=function(_content, _level){
		if(!_level){
			_level='debug';
		}
		_level=_level.toLowerCase();
		switch(_level){
			case 'info':
				console.info(_content);
				break;
			case 'warn':
				console.warn(_content);
				break;
			case 'error':
				console.error(_content);
				break;
			case 'debug':
			default:
				console.log(_content);
				break;
		}
		return true;
	};
}
else if(typeof(window['opera'])!='undefined'&&typeof(opera.postError)!='undefined'){
	logClientSide=function(_content, _level){
		if(!_level){
			_level='debug';
		}
		opera.postError('['+_level.toUpperCase()+'] '+_content);
		return true;
	};
}
else{
	logClientSide=function(_content, _level){
		if(!_level){
			_level='debug';
		}
		setTimeout(function(){ throw new Error('['+_level.toUpperCase()+'] '+_content); }, 0);
	}

// UTILISATION DE LA CONSOLE YAHOO ???
	// CSS file (default YUI Sam Skin)
//	document.writeln('<link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.6.0/build/logger/assets/skins/sam/logger.css">');
	// Dependencies
//	document.writeln('<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>');
	// Source file
//	document.writeln('<script type="text/javascript" src="http://yui.yahooapis.com/2.6.0/build/logger/logger-min.js"></script>');

//	if(typeof(window['YAHOO'])!='undefined'&&typeof(YAHOO.log)!='undefined'){
//		logClientSide=function(_content, _level){
//			if(!_level){
//				_level='debug';
//			}
//			_level=_level.toLowerCase();
//			YAHOO.log(_content, _level);
//			return true;
//		};
//	}
}

/**
 * Permet d'activer/désactiver le mode debug.
 * @param _debug : true pour activer le mode debug, false pour le désactiver
 * @param _side : 'server' pour écrire côté server (catalina), 'client' pour écrire dans la console de firebug (par défaut 'client')
 */
function setDebug(_debug, _side){
	if(!_debug){
		log=null;
		return;
	}
	if(!_side){
		_side='client';
	}
	_side=_side.toLowerCase();
	switch(_side){
		case 'server':
			if(typeof(logServerSide)!='function') throw new Error("function logServerSide() not defined!");
			log=logServerSide;
			break;
		case 'client':
		default:
			log=logClientSide;
			break;
	}
}

