/*
Written by John Hasson
john@johnhasson.com
*/
document.onkeypress = bodyKeyPress;
document.onkeydown = bodyKeyDown;
document.onclick = setFocus;
var console;
var pageBottom;
var consolefocus = false;
var commandText = "";
function bodyKeyPress(e)
{
	var KeyID = (window.event) ? event.keyCode : e.which;
	//alert(KeyID);
	if (KeyID == 13)
	{
		//Enter was presses
		processCommand();		
		//console.innerHTML += "<br>>";			
	} 
	else if (KeyID == 8)  //Catch Firefox
	{		
		backSpace();				
		return false;
	}
	else
	{
		//Show it on the screen
		strKey = String.fromCharCode(KeyID);
		console.innerHTML += strKey;
		commandText += strKey;
	}	
	pageBottom.scrollIntoView();
}
function processCommand()
{
	var url = "http://matrixreport.com/console/message.aspx?c=" + escape(commandText) + "&g=" + guid + "&sc=" + Math.random()
	//TODO: Make it scroll slow?
	console.innerHTML += "<br>" + fnReturnHtml(url) + "<BR>>";
	commandText = "";
}

function backSpace()
{
	var l = console.innerHTML.length;
	if (console.innerHTML.substr(l -5, 5) != "<BR>>")
	{
		console.innerHTML = console.innerHTML.substring(0, l-1);
	}
	if (commandText.length > 0)
	{
		commandText = commandText.substring(0, commandText.length - 1);
	}
	
}

function bodyKeyDown(e)
{
	//Catch Backspace, IE.	
	var KeyID = (window.event) ? event.keyCode : 0;//e.which;
	if (KeyID == 8)
	{		
		backSpace();
		return false;
	}
	//pageBottom.scrollIntoView();
	
}

function setFocus()
{
	console = window.document.getElementById("console");
}

function startUp()
{
	pageBottom = window.document.getElementById("bottom");
	pageBottom.scrollIntoView();
}

function fnReturnHtml(strPage)
{
	// code for Mozilla, etc.
	if (window.XMLHttpRequest)
	{
		var xmlhttp=new XMLHttpRequest()
		xmlhttp.open("GET",strPage,false)
		xmlhttp.send(null)
		return xmlhttp.responseText;
	}
	else
	{
		var oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		oXmlHttp.Open("GET",strPage, false);
		oXmlHttp.Send();
		return oXmlHttp.responseText;	
	}
				
}