
var promptMode = 0;
var promptText = 'C:\\&gt;';
var promptCommand = '';
var cursorVisible = 0;


function flashCursor()
{
	var cursor = document.getElementById('cursor');
	cursor.setAttribute('class', (cursorVisible ? 'cursoron' : 'cursoroff'));
	var prompt = document.getElementById('prompt');
	prompt.scrollTop = prompt.scrollHeight;
	cursorVisible = !cursorVisible;
	setTimeout('flashCursor();', 500);
}

window.onkeypress = function(e)
{
	e = (e) ? e : ((window.event) ? event : null);
	var alt = e.altKey || (e.modifiers & Event.ALT_MASK);
	var key = e.charCode || e.keyCode;
	var handled = false;
	
	if(!promptMode){
		if(key == 27 || (alt && key == 120)){ // esc || alt + x
			// show dos prompt for laughs
			document.getElementsByTagName('body')[0].innerHTML = 
				'<div id="prompt"><span id="promptText"><br>' + promptText + 
					'</span><span id="cursor" class="cursoron">&nbsp;</span></div>';
			setTimeout('flashCursor();', 500);
			promptMode = 1;
			handled = true;
		}else{
			var name;
			switch(key)
			{
				case 33: name = "pgup";  break; // pgup
				case 34: name = "pgdn";  break; // pgdn
				case 35: name = "end";   break; // end
				case 36: name = "home";  break; // home
				case 37: name = "left";  break; // left
				case 38: name = "up";    break; // up
				case 39: name = "right"; break; // right
				case 40: name = "down";  break; // down
				case 120: name = alt; break;
			}
			if(name != undefined){
				// alert(name);
				handled = true;
			}else{
				// testing
				// alert(key);
			}
		}
	}else{
		var prompt = document.getElementById('promptText');
		if(key == 13){
			if(promptCommand.length > 0){
				switch(promptCommand){
					case 'cls':
						prompt.innerHTML = '<br>';
						break;
					case 'exit':
					case 'help':
					case 'helppc':
						window.location.reload();
						return !true;
					default:
						prompt.innerHTML += "<br>Bad command or file name<br><br>";
						break;
				}
				promptCommand = '';
			}else{
				prompt.innerHTML += "<br>";
			}
			prompt.innerHTML += promptText;
			handled = true;
		}else{
			if(key == 8 && promptCommand.length > 0){
				prompt.innerHTML = prompt.innerHTML.substring(0, prompt.innerHTML.length - 1);
				promptCommand = promptCommand.substring(0, promptCommand.length - 1);
			}else if(key != 8 && e.charCode){
				prompt.innerHTML += String.fromCharCode(e.charCode);
				promptCommand += String.fromCharCode(e.charCode);
			}
			handled = true;
		}
	}
	
	return !handled;
}


