
var sdbg = {}

sdbg.DEBUG = false;

sdbg.DebugEl = null;

sdbg.width = 190;
sdbg.height = 700;
sdbg.wrapLines = false;

sdbg.updateDebugLayout = function(props) {
	sdbg.width = props.width;
	sdbg.height = props.height;
	sdbg.wrapLines = props.wrapLines;
	if(sdbg.DebugEl) sdbg.layoutDebug(sdbg.DebugEl);
}

sdbg.layoutDebug = function(dbgEl) {
	dbgEl.style.color = '#333';
	dbgEl.style.display = 'inline';
	dbgEl.style.position = 'absolute';
	if(sdbg.wrapLines) {
		dbgEl.style.overflow = 'visible';
	} else {
		dbgEl.style.overflow = 'auto';
	}
	dbgEl.style.top = '5px';
	dbgEl.style.left = '5px';
	dbgEl.style.width = sdbg.width + 'px';
	dbgEl.style.height = sdbg.height + 'px';
	dbgEl.style.padding = '2px';
	dbgEl.style.backgroundColor = '#CCFF99';
	dbgEl.style.zIndex = 99999;
} 


sdbg.initDebug = function() {
	var dbgEl = document.getElementById('sdbgdbg');
	if(dbgEl) {
		dbgEl.innerHTML = null;
	} else {
		dbgEl = document.createElement('div');
		sdbg.layoutDebug(dbgEl);
		document.body.appendChild(dbgEl);
		dbgEl.innerHTML += '<a href="javascript: void(0);" onclick="sdbg.hideDbg();return false;">Ausblenden</a><br/>';
	}
	sdbg.DebugEl = dbgEl;
}

sdbg.dbg = function(str, noLineBreak) {
	if(sdbg.DEBUG == false) return false;
	if(sdbg.DebugEl == null) sdbg.initDebug();
	sdbg.showDbg();
	sdbg.DebugEl.innerHTML += str + ((noLineBreak)?'':'<br/>');
	return true;
}

sdbg.showDbg = function() {
	if(sdbg.DebugEl && sdbg.DebugEl.style.display == 'none') {
		sdbg.DebugEl.style.display = sdbg.DebugEl.orig_display;
	}
}

sdbg.hideDbg = function() {
	if(sdbg.DebugEl && sdbg.DebugEl.style.display != 'none') {
		sdbg.DebugEl.orig_display = sdbg.DebugEl.style.display;
		sdbg.DebugEl.style.display = 'none';
	}
}

sdbg.getCaller = function(fn) {
	var p = /function (.*)\(/;
	p.exec(fn);	
	return RegExp.$1;
}


