
	function clearDebugLog()
	{
		var dbgNode = document.getElementById('debug_console');
		if (dbgNode!=null)
		{
			var children = dbgNode.childNodes;
			if (children!=null)
			{
				var i, l =children.length;
				
				//lol paranoid defensive copy:
				var childrenCopy = new Array();
				for(i=0; i<l; i++)
				{
					childrenCopy[i]=children[i];
				}
				
				for(i=0; i<l; i++)
				{
					dbgNode.removeChild(childrenCopy[i]);
				}
				
				createDebugConsoleChildren(dbgNode);
			}
		}
	}
	
	
	function toggleDebugMenu()
	{
		//alert('toggle!');
		var dbgNode = document.getElementById('debug_console');
		if (dbgNode!=null)
		{
			var curClass = dbgNode.className;
			var bExpanded = false;
			if (curClass == "debug_console")
			{
				bExpanded=true;
			}
			bExpanded = !bExpanded;
			
			dbgNode.className = (bExpanded)?"debug_console":"debug_console_collapsed";
			
			var collapseLabel =document.getElementById("debug_console_collapse_label");
			if (collapseLabel!=null)
			{
				collapseLabel.innerHTML = (bExpanded)?"&laquo;":"&raquo;";
			}
		}
	}
	//var collapseLabel = null;
	function createDebugConsoleChildren(dbgNode)
	{
		//dbgNode = document.createElement('div');
		//dbgNode.setAttribute("style", "position: absolute; left: 0px; top: 0px; z-index: 999999; color: white; width: 25em;");
		//dbgNode.setAttribute("style", "position: absolute; left: 0px; top: 0px; z-index: 999999; color: white; ");//width: 25em;");
		//dbgNode.setAttribute('id', 'debug_console');
		
		var labelNode = document.createElement("span");
		//labelNode.innerHTML="<font color='black'><b>DEBUG CONSOLE:</B></font><br />";
		//labelNode.innerHTML="<font color='black'><b>DEBUG CONSOLE:</B></font>";
		//labelNode.innerHTML="<span style='text-align: center' ><font color='black'><b>DEBUG CONSOLE:</B></font></span>";
		//labelNode.innerHTML="<center><font color='black'><b>DEBUG CONSOLE:</B></font></center>";
		//labelNode.innerHTML="<center><font color='black'><b>DEBUG CONSOLE:</B></font></center>";
		//labelNode.innerHTML="DEBUG&nbsp;CONSOLE";
		labelNode.innerHTML="DEBUG";
		//labelNode.innerHTML="<center><font color='black'><b>DEBUG CONSOLE:</B></font></center>";
		labelNode.setAttribute('style', 'text-align: center; color: black; font-weight: bold;');
		labelNode.className = "debug_console_label";
		//dbgNode.appendChild(labelNode);///l
		
		var clearNode = document.createElement('a');
		var clearLabel = document.createElement('span');
		clearNode.onclick = clearDebugLog;
		//clearLabel.innerHTML = 'CLEAR DEBUG LOG';
		clearLabel.innerHTML = 'Clear';
		clearNode.appendChild(clearLabel);
		clearNode.setAttribute('style', 'color: blue; float: right;');
		//clearNode.className= "debug_console_clear_node";
		clearNode.className= "debug_console_clear_node";
		
		
		var collapseNode = document.createElement('a');
		var collapseLabel = document.createElement('span');
		collapseLabel.innerHTML = '&laquo;';
		collapseNode.appendChild(collapseLabel);
		//collapseLabel.setAttribute('style', 'color: blue; float: right;');
		collapseLabel.setAttribute('style', 'color: blue; float: left;');
		collapseNode.onclick = toggleDebugMenu;//();
		collapseLabel.setAttribute('id', "debug_console_collapse_label");
		
		//&raquo;
		
		//dbgNode.appendChild(labelNode);///l
		dbgNode.appendChild(collapseNode);
		//dbgNode.appendChild(labelNode);///l
		dbgNode.appendChild(clearNode);
		dbgNode.appendChild(labelNode);///l
		//dbgNode.appendChild(collapseNode);
		dbgNode.appendChild(document.createElement('hr'));
		//dbgNode.appendChild(document.createElement('br'));
		//dbgNode.appendChild(document.createElement('br'));
	}
	
	function debugMessage(msg)
	{
		//alert(msg);//lol///
		//document.write(msg);
		var dbgNode = document.getElementById('debug_console');
		if (dbgNode == null)
		{
			//alert('created debug console!');
			//dbgNode = document.createElement('div');
			//dbgNode = document.createElement('a');
			dbgNode = document.createElement('div');
			
			
			dbgNode.setAttribute('id', "debug_console");//lol
			//dbgNode.setAttribute('class', 'debug_console');
			
			//dbgNode.setAttribute('style', "position: absolute; left: 5px; top: 500px; ");
			//dbgNode.setAttribute('style', );
			createDebugConsoleChildren(dbgNode);
			
			
			
			//dbgNode.setAttribute("style", "position: absolute; left: 0px; top: 0px; z-index: 999999; color: white; ");//width: 25em;");
			dbgNode.className='debug_console';
			
			//var entriesNode = document.createElement('div');
			//entriesNode.setAttribute('id', 'debug_console_entries');
			//bgNode.appendChild(entriesNode);
			
			document.body.appendChild(dbgNode);
		}
		var imgNode = document.createElement('img');
		//imgNode.setAttribute('src', 'http://www.w3schools.com/images/up.gif');//lolz!
		imgNode.setAttribute('style', 'float: left; clear: left; ');
		
		var txtNode = document.createElement('div');
		//txtNode.setAttribute('class', 'debug_message_text');
		txtNode.className='debug_message_text';
		//msgNode.innerHMTL = msg;
		//msgNode.write(msg);
		//msgNode.a
		//txtNode.innerHTML="!!!"+msg;
		txtNode.innerHTML=msg;
		var msgNode = document.createElement('div');
		//msgNode.innerHTML = msg;
		//alert(msg);//ok...???
		msgNode.className = 'debug_message';
		msgNode.appendChild(imgNode);
		msgNode.appendChild(txtNode);
		var hrTag=document.createElement('hr');
		
		dbgNode.appendChild(msgNode);
		dbgNode.appendChild(document.createElement('br'));
		dbgNode.appendChild(hrTag);
		
		//msgNode.setAttribute('style', 'width: 50%;');
		//msgNode.setAttribute('style', 'clear: right;');
		
		
		//var msgNode = document.createElement('span');
		
		//var msgNode = document.createElement('span');
		//msgNode.setAttribute('class', 'debug_message');
		
		//msgNode.setAttribute('style', "clear: both; display:block; width: 100%;");
		//msgNode.setAttribute('style', "clear: both; display:block; width: 100%;");
		//msgNode.setAttribute('style', "clear: both; display:block; float: left;");
		//msgNode.setAttribute('style', "c");
		//alert(msg);
		//dbgNode.appendChild(msgNode);
		//var myTextNode=document.createTextNode("   ");//force ie hack?
		//var myTextNode=document.createTextNode(" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");//force ie hack?
		//var myTextNode=document.createTextNode("                            \n");//force ie hack?
		
		//var myTextNode=document.createTextNode(" ");//force ie hack?
		//dbgNode.appendChild(myTextNode);
		
		//var hrTag=document.createElement('hr');
		
		
		//var hrTag=document.createElement('hr');
		//hrTag.setAttribute('style', "clear: both; display: block;");
		//dbgNode.appendChild(document.createElement('br'));
		//dbgNode.appendChild(hrTag);
		
		//msgNode.appendChild(document.createElement('br'));
		//dbgNode.appendChild(document.createElement('br'));
		
		//dbgNode.appendChild(document.createElement('div'));
		//dbgNode.appendChild(document.createElement('img'));
		//dbgNode.appendChild(document.createElement(');
		/*
		dbgNode.appendChild(document.createElement('br'));
		var hrTag=document.createElement('hr');
		//hrTag.setAttribute('style', "clear: both; display: block;");
		dbgNode.appendChild(hrTag);
		*/
	}
	
	/*TheLoader.registerOnLoad(function()
	{
		var i, l =5;//40;
		var str="hello, world!";
		for(i=0; i<l; i++)
		{
			debugMessage(str);
			str+=" "+str;
		}
	});*/