/**
 * JavaScript log for Mozzila Firefox implementation.
 * IE works in a different way
 * 
 * hasznalata: if(logDebugEnabled()){logDebug('Hello');};
 */
var LOG_LEVEL_NONE  =  "NONE";
var LOG_LEVEL_TRACE = "TRACE";
var LOG_LEVEL_DEBUG = "DEBUG";
var LOG_LEVEL_INFO  =  "INFO";
var LOG_LEVEL_WARN  =  "WARN";
var LOG_LEVEL_ERROR = "ERROR";
var LOG_LEVEL_FATAL = "FATAL";

var consoleLogLevel = LOG_LEVEL_ERROR;
var consoleExists = true;
try{if(console){;}}catch(e){consoleExists = false;}

function logTraceEnabled(){if(!consoleExists) return false; return( consoleLogLevel==LOG_LEVEL_TRACE);};
function logDebugEnabled(){if(!consoleExists) return false; return((consoleLogLevel==LOG_LEVEL_TRACE||consoleLogLevel==LOG_LEVEL_DEBUG));};
function logInfoEnabled (){if(!consoleExists) return false; return((consoleLogLevel==LOG_LEVEL_TRACE||consoleLogLevel==LOG_LEVEL_DEBUG||consoleLogLevel==LOG_LEVEL_INFO));};
function logWarnEnabled (){if(!consoleExists) return false; return((consoleLogLevel==LOG_LEVEL_TRACE||consoleLogLevel==LOG_LEVEL_DEBUG||consoleLogLevel==LOG_LEVEL_INFO||consoleLogLevel==LOG_LEVEL_WARN));};
function logErrorEnabled(){if(!consoleExists) return false; return((consoleLogLevel==LOG_LEVEL_TRACE||consoleLogLevel==LOG_LEVEL_DEBUG||consoleLogLevel==LOG_LEVEL_INFO||consoleLogLevel==LOG_LEVEL_WARN||consoleLogLevel==LOG_LEVEL_ERROR));};
function logFatalEnabled(){if(!consoleExists) return false; return((consoleLogLevel==LOG_LEVEL_TRACE||consoleLogLevel==LOG_LEVEL_DEBUG||consoleLogLevel==LOG_LEVEL_INFO||consoleLogLevel==LOG_LEVEL_WARN||consoleLogLevel==LOG_LEVEL_ERROR||consoleLogLevel==LOG_LEVEL_FATAL));};

function logTrace(message){if(logTraceEnabled()) console.log(getTimeStamp() + ' - TRACE - ' + message);}
function logDebug(message){if(logDebugEnabled()) console.log(getTimeStamp() + ' - DEBUG - ' + message);}
function logInfo (message){if(logInfoEnabled())  console.log(getTimeStamp() + ' -  INFO - ' + message);}
function logWarn (message){if(logWarnEnabled())  console.log(getTimeStamp() + ' -  WARN - ' + message);}
function logError(message){if(logErrorEnabled()) console.log(getTimeStamp() + ' - ERROR - ' + message);}
function logFatal(message){if(logFatalEnabled()) console.log(getTimeStamp() + ' - FATAL - ' + message);}

function getTimeStamp()
{
    var date = new Date();
    var month = date.getMonth()+1;
    return date.getFullYear() + '.' + (month<10?"0":"") + month + '.' + (date.getDate()<10?"0":"") + date.getDate() + ' ' + 
          (date.getHours()  <10?"0":"") + date.getHours()   + ':' + 
          (date.getMinutes()<10?"0":"") + date.getMinutes() + ':' + 
          (date.getSeconds()<10?"0":"") + date.getSeconds() + '.' + (''+date.getTime()).substr(10,13);
}
