﻿/**
 *
 * Generic client side logger component. 
 * 
 * Available under an attribution Creative Commons License. 
 * Read about it here:
 * http://creativecommons.org/licenses/by/2.5/
 *  
 *
 * @author Paul Daniell <paul.d@mm.st>
 * @requires none
 *
 *
 *
 **/
 
var DEBUG = 300;
var INFO = 200; 
var WARN = 100;
var OFF = 0; 
	
function Logger(name){ 

	
	this.name = name;
	this.debugConsole = null;
	this.level = 0;
	

	Logger.prototype.log = function(msg){
		
		if(this.debugConsole == null || (this.debugConsole.closed)){
			this.debugConsole = window.open("", this.name, "height=300,width=600,scrollbars=yes"); 
			this.debugConsole.document.open("text/html"); 
			this.debugConsole.document.writeln("<html><body>");
		}
		this.debugConsole.document.writeln("<div dir=rtl style=\"text-align:right\">" + msg + "</div>");
		
	}
	
	Logger.prototype.debug = function(msg) { 
		if(this.level >= DEBUG) {
			this.log("DEBG[" + new Date().getTime() +"]: " + msg); 
		}
	}
	
	Logger.prototype.warn = function(msg) { 
		if(this.level >= WARN){ 
			this.log("<span style=\"color:red;\">WARN[" + new Date().getTime() + "]: " + msg + "</span>");
		}
		
	}
	
	Logger.prototype.info = function(msg) { 
		if(this.level >= INFO) { 
			this.log("INFO[" + new Date().getTime() + "]: " + msg); 
		}
	}
	
	Logger.prototype.debugMode =  function(){ 
		this.level = DEBUG;
	}
	
	Logger.prototype.warnMode = function(){ 
		this.level = WARN; 
	}
	
	Logger.prototype.infoMode = function() {
		this.level = INFO; 
	}
	
	Logger.prototype.off = function() { 
		this.level = OFF;
	}
	
}




 