var __debug = "";
var __debug_visible = false;
var __debugging = true;

function __DebugObject(oPrm, bPrmValue, iPrmStart) {
	var s = ""; i = 0;
	var iStart = ((iPrmStart != null) ? iPrmStart : 0);
	for (var o in oPrm) {
		if (i++ >= iPrmStart) {
			s += o;
			if (bPrmValue)
				s += ": " + oPrm[o];
			s += "\r\n";
		}
	}
	return s;
}

function __ShowDebug() {
	var d = document.createElement("div");
	d.style.backgroundColor = "beige";
	d.style.border = "lightblue 2px solid";
	d.style.color = "darkblue";
	d.style.position = "absolute";
	d.style.left = "25px";
	d.style.top = "25px";
	d.style.width = "700px";
	d.style.height = "500px";
	d.style.zIndex = 999999;
	d.style.overflow = "auto";
	d.style.padding = "2px";
	
	d.id = "__divDebug";
	d.innerHTML = __debug;
	document.body.appendChild(d);
	__debug_visible = true;
}

function __HideDebug() {
	var d = document.getElementById("__divDebug");
	if (d != null)
		document.body.removeChild(d);
	__debug_visible = false;
}

function __ClearDebug() {
	__debug = "";
}

function __DebugWrite(s, level) {
	 if (__debugging) {
		if (level != null && level > 0)
			for (var i = 0; i < level; i++)
				__debug += "-";
		__debug += s + "<br />\r\n";
	}
}

setTimeout(__InitDebug, 1000);

function __InitDebug() {
	
	if (! this.document.all)
		document.captureEvents(Event.KEYPRESS);
		
	document.onkeypress = function (e) {
		var iKey = 0;
		if (e != null && e.which != null)
			iKey = e.which;
		else
			iKey = event.keyCode;
		switch (iKey) {
			case 100: //d
				__debugging = (! __debugging);
				/*
				if (__debugging)
					alert("DEBUG ON");
				else
					alert("DEBUG OFF");
				*/
				break;
			case 96: //~
				if (__debug_visible)
					__HideDebug();
				else
					__ShowDebug();
				break;
			case 32: // [space]
				__ClearDebug();
				break;
		}
	}
}