
if (!window.console)
{
	/**
	 * @class implementation of console for non mozilla browsers
	 */
	var console = window.console = {

		/**
		 * Should i print?
		 * @type boolean
		 */
		print: false,

		/**
		 * position absolute?
		 */
		position_absolute: false,

		/**
		 * The output container
		 * @type object
		 */
		print_container: null,

		/**
		 * log the text
		 * @param {string} txt the text to print
		 */
		log: function(txt) {
			if (this.print)
			{
				if (!this.print_container)
				{
					var style = 'color: black; background: white; width: 100%; height: 300px;';
					if (this.position_absolute)
						style += ' position: absolute; top: 1000px;';
					this.print_container = jQuery('<textarea id="ConsoleLogger" style="'+style+'"></textarea>').appendTo('body');
				}
				this.print_container[0].value += txt + '\n';
			}
		}
	}
}


/**
 * @class implementation for all browsers
 */

// last debug output
console.debug_output = '';


console.debug = function(message) {
	var d = new Date();
	var curr_hour = d.getHours();
	var curr_min = d.getMinutes();

	var curr_sec = d.getSeconds();
	var curr_msec = d.getMilliseconds();

	this.log(curr_hour + ":" + curr_min + ":" + curr_sec + "." + curr_msec + ': ' + message);
};

console.debug_cached = function(message)
{
	var d = new Date();
	var curr_hour = d.getHours();
	var curr_min = d.getMinutes();

	var curr_sec = d.getSeconds();
	var curr_msec = d.getMilliseconds();

	this.debug_output += curr_hour + ":" + curr_min + ":" + curr_sec + "." + curr_msec + ': ' + message + '\n';
};

console.clear_debug = function() {
	this.debug_output = '';
};

console.print_debug = function()
{
	console.log(this.debug_output);
};

