// Keyboard.js, by Johannes Jensen, 2009
// Allocate the keyboard object.
var keyboard = {
	backspace: false,
	tab: false,
	enter: false,
	shift: false,
	ctrl: false,
	alt: false,
	capslock: false,
	esc: false,
	space: false,
	arrows: {
		left: false, up: false, right: false, down: false
	},
	letters: {
		a: false, b: false, c: false, d: false, e: false, f: false, g: false, h: false, i: false, j: false, k: false, l: false, m: false, n: false, o: false, p: false, q: false, r: false, s: false, t: false, u: false, v: false, w: false, x: false, y: false, z: false
	}
};

function keyboardKeyDown(e) {
	// Is the e parameter not defined? Define it!
	if(!e) e = event;
	
	// Set keys of keyboard object to true if they are down.
	if(e.keyCode == 8) keyboard.backspace = true;
	if(e.keyCode == 9) keyboard.tab = true;
	if(e.keyCode == 13) keyboard.enter = true;
	if(e.keyCode == 16) keyboard.shift = true;
	if(e.keyCode == 17) keyboard.ctrl = true;
	if(e.keyCode == 18) keyboard.alt = true;
	if(e.keyCode == 20) keyboard.capslock = true;
	if(e.keyCode == 27) keyboard.esc = true;
	if(e.keyCode == 32) keyboard.space = true;
	if(e.keyCode == 37) keyboard.arrows.left = true;
	if(e.keyCode == 38) keyboard.arrows.up = true;
	if(e.keyCode == 39) keyboard.arrows.right = true;
	if(e.keyCode == 40) keyboard.arrows.down = true;
	if(e.keyCode == 65) keyboard.letters.a = true;
	if(e.keyCode == 66) keyboard.letters.b = true;
	if(e.keyCode == 67) keyboard.letters.c = true;
	if(e.keyCode == 68) keyboard.letters.d = true;
	if(e.keyCode == 69) keyboard.letters.e = true;
	if(e.keyCode == 70) keyboard.letters.f = true;
	if(e.keyCode == 71) keyboard.letters.g = true;
	if(e.keyCode == 72) keyboard.letters.h = true;
	if(e.keyCode == 73) keyboard.letters.i = true;
	if(e.keyCode == 74) keyboard.letters.j = true;
	if(e.keyCode == 75) keyboard.letters.k = true;
	if(e.keyCode == 76) keyboard.letters.l = true;
	if(e.keyCode == 77) keyboard.letters.m = true;
	if(e.keyCode == 78) keyboard.letters.n = true;
	if(e.keyCode == 79) keyboard.letters.o = true;
	if(e.keyCode == 80) keyboard.letters.p = true;
	if(e.keyCode == 81) keyboard.letters.q = true;
	if(e.keyCode == 82) keyboard.letters.r = true;
	if(e.keyCode == 83) keyboard.letters.s = true;
	if(e.keyCode == 84) keyboard.letters.t = true;
	if(e.keyCode == 85) keyboard.letters.u = true;
	if(e.keyCode == 86) keyboard.letters.v = true;
	if(e.keyCode == 87) keyboard.letters.w = true;
	if(e.keyCode == 88) keyboard.letters.x = true;
	if(e.keyCode == 89) keyboard.letters.y = true;
	if(e.keyCode == 90) keyboard.letters.z = true;
	
	keyboardUpdate();
}

function keyboardKeyUp(e) {
	// Is the e parameter not defined? Define it!
	if(!e) e = event;
	
	// Set keys of keyboard object to false if they are up.
	if(e.keyCode == 8) keyboard.backspace = false;
	if(e.keyCode == 9) keyboard.tab = false;
	if(e.keyCode == 13) keyboard.enter = false;
	if(e.keyCode == 16) keyboard.shift = false;
	if(e.keyCode == 17) keyboard.ctrl = false;
	if(e.keyCode == 18) keyboard.alt = false;
	if(e.keyCode == 20) keyboard.capslock = false;
	if(e.keyCode == 27) keyboard.esc = false;
	if(e.keyCode == 32) keyboard.space = false;
	if(e.keyCode == 37) keyboard.arrows.left = false;
	if(e.keyCode == 38) keyboard.arrows.up = false;
	if(e.keyCode == 39) keyboard.arrows.right = false;
	if(e.keyCode == 40) keyboard.arrows.down = false;
	if(e.keyCode == 65) keyboard.letters.a = false;
	if(e.keyCode == 66) keyboard.letters.b = false;
	if(e.keyCode == 67) keyboard.letters.c = false;
	if(e.keyCode == 68) keyboard.letters.d = false;
	if(e.keyCode == 69) keyboard.letters.e = false;
	if(e.keyCode == 70) keyboard.letters.f = false;
	if(e.keyCode == 71) keyboard.letters.g = false;
	if(e.keyCode == 72) keyboard.letters.h = false;
	if(e.keyCode == 73) keyboard.letters.i = false;
	if(e.keyCode == 74) keyboard.letters.j = false;
	if(e.keyCode == 75) keyboard.letters.k = false;
	if(e.keyCode == 76) keyboard.letters.l = false;
	if(e.keyCode == 77) keyboard.letters.m = false;
	if(e.keyCode == 78) keyboard.letters.n = false;
	if(e.keyCode == 79) keyboard.letters.o = false;
	if(e.keyCode == 80) keyboard.letters.p = false;
	if(e.keyCode == 81) keyboard.letters.q = false;
	if(e.keyCode == 82) keyboard.letters.r = false;
	if(e.keyCode == 83) keyboard.letters.s = false;
	if(e.keyCode == 84) keyboard.letters.t = false;
	if(e.keyCode == 85) keyboard.letters.u = false;
	if(e.keyCode == 86) keyboard.letters.v = false;
	if(e.keyCode == 87) keyboard.letters.w = false;
	if(e.keyCode == 88) keyboard.letters.x = false;
	if(e.keyCode == 89) keyboard.letters.y = false;
	if(e.keyCode == 90) keyboard.letters.z = false;
	
	keyboardUpdate();
}

// Runs once a key is pressed down or released.
function keyboardUpdate() {}

// Run this code in the onload section of your <body> tag.
function keyboardInit() {
	document.getElementsByTagName('body')[0].onkeydown = keyboardKeyDown;
	document.getElementsByTagName('body')[0].onkeyup = keyboardKeyUp;
}