function debug(message) {

	debuggerId = 'debuggerr';
	if (!document.getElementById(debuggerId)) {
		buglog = document.createElement('div');
		buglog.id = debuggerId;
		document.body.appendChild(buglog);
	} else {
		buglog = getEl(debuggerId);
	}

	if (buglog.childNodes.length == 0) {
		logtitle = getEl(addNode(buglog.id, 'p'));
		logtitle.style.textAlign='right';
		logtitle.style.marginLeft='15px';
		logtitle.style.borderBottom = '1px dotted black';
		logtitle.innerHTML = '<strong>Activity Log</strong>';
		ol = getEl(addNode(buglog.id, 'ol'));
		clearbutton = getEl(addNode(buglog.id, 'p'));
		clearbutton.style.textAlign='right';
		clearbutton.innerHTML = '<button onclick="removeElementById(\''+ buglog.id +'\');return false;">Close</button>';
	} else {
		ol = buglog.childNodes[1];
	}

	var li = getEl(addNode(ol.id, 'li'));
	addText(li.id, message);
	buglog.style.display = 'block';
	buglog.style.position = 'absolute';
	buglog.style.top = '15px';
	buglog.style.right = '15px';
	buglog.style.backgroundColor = 'lightyellow';
	buglog.style.color = 'black';
	buglog.style.border = '1px solid black';
	buglog.style.paddingRight = '20px';
	buglog.style.opacity = '0.8';
}

function getEl(elementId) {
	return document.getElementById(elementId);
}

function removeElementById(elementId) {
	var node = getEl(elementId);
	node.parentNode.removeChild(node);
}

function addNode(parentId, eltag) {
	var parentEl = document.getElementById(parentId);
	var childEl = document.createElement(eltag);
	childEl.id = parentEl.id + '-child'+ parentEl.childNodes.length;
	parentEl.appendChild(childEl);
	return childEl.id;
}

function addText(elementId, text) {
	var el = document.getElementById(elementId);
	var txtNode = document.createTextNode(text);
	el.appendChild(txtNode);
}