//call this function to run debugger
//doThis: default is write, 1 is clear, 2 is mark, 3 is initialize
//opacity: 0.0 to 1.0
//borderColor:  use name like 'pink', or hex with hash like '#ffcc99'
function write_error_log(msg,doThis,logHeight,logWidth,logOpacity,borderColor) {

var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
var ms=today.getMilliseconds();
var fullDT=today.toLocaleString();
h=formatTime(h,2);
m=formatTime(m,2);
s=formatTime(s,2);
ms=formatTime(ms,3);
var timestamp = h+":"+m+":"+s+":"+ms;
function formatTime(num,digits) {
	var len = num.toString().length;
	var addDigits = digits - len;
	var str = num;
	for (var i=0; i<addDigits; i++) {
		str = "0" + str;
	}
	return str;
}

	var errorDiv = document.getElementById('error_msg_container');
	if(!errorDiv) {
		var makeDiv = document.createElement("div");
		makeDiv.setAttribute("id", 'error_msg_container');
		window.document.body.appendChild(makeDiv);
		errorDiv = makeDiv;
		errorDiv.style.position = 'absolute';
		if(!logWidth) { errorDiv.style.width = '350px'; } else { errorDiv.style.width = logWidth+'px'; }
		if(!logHeight) { errorDiv.style.height = '350px'; } else { errorDiv.style.height = logHeight+'px'; }
		errorDiv.style.left = '0px';
		errorDiv.style.top = '0px';
		var borderSize = 10;
		if(!borderColor){ borderColor = '#abaab2'; }
		errorDiv.style.border = borderSize + 'px solid ' + borderColor;
		errorDiv.style.zIndex = '1000';
		errorDiv.style.font = 'bold 10px arial,serif';
		errorDiv.innerHTML = "<div id='container_bckgrd' style='background-color:red; height:100%;'>" +
			"<div class='errorlogheader' id='headerblock' style='cursor:move; padding:4px; background-color:white; color:black;'>" +
			"<div class='errorlogheader' style='float:right;'><form>" +
			"<input type='button' style='font-size:10px;' value='Clear' onClick='write_error_log(0,2)'> " +
			"<input type='button' style='font-size:10px;' value='Mark' onClick='write_error_log(1,1)'> " +
			"<input type='button' style='font-size:10px;' value='Collapse' id='toggleLoggerButton' onClick='toggleLogger(this.value)'></form></div>" +
			"<div class='errorlogheader' style='font-size:14px;'>DEBUGGING LOGGER</div>" +
			"(click and drag header, to move box)</div>" +
			"<div id='error_write_log' style='white-space:nowrap; overflow:auto; width:100%; color:white;'></div></div>";
		document.getElementById('error_write_log').style.height = (errorDiv.offsetHeight - (borderSize*2)) - document.getElementById('headerblock').offsetHeight + "px";
		if(!logOpacity) { document.getElementById('container_bckgrd').style.opacity = '1'; } else { document.getElementById('container_bckgrd').style.opacity = logOpacity; }

var dragobject={
z: 0, x: 0, y: 0, offsetx : null, offsety : null, targetobj : null, dragapproved : 0,
initialize:function(){
document.onmousedown=this.drag
document.onmouseup=function(){this.dragapproved=0}
document.onkeypress=function(){this.dragapproved=0}
},
drag:function(e){
var evtobj=window.event? window.event : e
this.targetobj=window.event? event.srcElement : e.target
if (this.targetobj.className=='errorlogheader'){
this.dragapproved=1
if (isNaN(parseInt(document.getElementById('error_msg_container').style.left))){document.getElementById('error_msg_container').style.left=0}
if (isNaN(parseInt(document.getElementById('error_msg_container').style.top))){document.getElementById('error_msg_container').style.top=0}
this.offsetx=parseInt(document.getElementById('error_msg_container').style.left)
this.offsety=parseInt(document.getElementById('error_msg_container').style.top)
this.x=evtobj.clientX
this.y=evtobj.clientY
if (evtobj.preventDefault)
evtobj.preventDefault()
document.onmousemove=dragobject.moveit
}
},
moveit:function(e){
var evtobj=window.event? window.event : e
if (this.dragapproved==1){
document.getElementById('error_msg_container').style.left=this.offsetx+evtobj.clientX-this.x+"px"
document.getElementById('error_msg_container').style.top=this.offsety+evtobj.clientY-this.y+"px"
return false
}
}
}
dragobject.initialize();

		
	}//if(!errorDiv)

		//initialize
		var start = "<div style='padding:4px 0 0 4px;'><span style='background-color:#00ea42; color:black;'>START</span> (" + fullDT + ")</div>";
		if(doThis==3 && !document.getElementById('error_write_log').innerHTML) {
			document.getElementById('error_write_log').innerHTML = start;
			toggleLogger('Collapse');
		}
	
		//mark log
		else if(doThis==1) {
			start = "<div style='padding:4px 0 0 4px;'><span style='background-color:#00ccff; color:black;'>MARK</span> (" + fullDT + ")</div>";
			document.getElementById('error_write_log').innerHTML = start + document.getElementById('error_write_log').innerHTML;
			toggleLogger('Expand');
		}
		
		//clear log
		else if(doThis==2) {
			start = "<div style='padding:4px 0 0 4px;'><span style='background-color:#facdff; color:black;'>CLEAR</span> (" + fullDT + ")</div>";
			document.getElementById('error_write_log').innerHTML = start;
			toggleLogger('Expand');
		}
		
		//default msg line
		else if(doThis!=3) {
			if(document.getElementById('error_write_log').innerHTML) { start = ""; }
			msg = "<div style='padding:4px 0 0 4px;'><span style='background-color:yellow; color:black;'>INFO</span> (" + timestamp + ") <span style='color:#ffffcc;'>" + msg + "</span></div>" + start;
			document.getElementById('error_write_log').innerHTML = msg + document.getElementById('error_write_log').innerHTML;
			toggleLogger('Expand');
		}
	
}




//store global vars
var loggerCSSstyle = 'empty';
var loggerOrigHeight;
function toggleLogger(tag) {
	if(loggerCSSstyle == 'empty') {
		loggerCSSstyle = document.getElementById('error_write_log').style.cssText;
		loggerOrigHeight = document.getElementById('error_msg_container').offsetHeight - (document.getElementById('error_msg_container').style.borderWidth.replace(/(\d+).*/,"$1") * 2);
	}
	if(tag == 'Expand') {
		document.getElementById('toggleLoggerButton').value = 'Collapse';
		document.getElementById('error_write_log').style.cssText = loggerCSSstyle;
		document.getElementById('error_write_log').style.display = 'block';
		document.getElementById('error_msg_container').style.height = loggerOrigHeight + 'px';
	} else {
		document.getElementById('toggleLoggerButton').value = 'Expand';
		document.getElementById('error_msg_container').style.height = document.getElementById('headerblock').offsetHeight;
		document.getElementById('error_write_log').style.display = 'none';
	}
}
