var metaKey = false;
var altKey = false;
var ctrlKey = false;

function initEvents() {
	// Keyboard Events
	$(document).bind("mousedown", function() {
		//return false;
	}).bind("keydown", function(event) {
		if(event.metaKey) metaKey = true;
		if(event.ctrlKey) ctrlKey = true;
		if(event.altKey) altKey = true;
		if(!metaKey && !ctrlKey && !altKey) {
			switch(event.keyCode) {
				case  48: $("#digit0").trigger("mousedown"); break;
				case  49: $("#digit1").trigger("mousedown"); break;
				case  50: $("#digit2").trigger("mousedown"); break;
				case  51: $("#digit3").trigger("mousedown"); break;
				case  52: $("#digit4").trigger("mousedown"); break;
				case  53: $("#digit5").trigger("mousedown"); break;
				case  54: $("#digit6").trigger("mousedown"); break;
				case  55: $("#digit7").trigger("mousedown"); break;
				case  56: $("#digit8").trigger("mousedown"); break;
				case  57: $("#digit9").trigger("mousedown"); break;
				case  96: $("#digit0").trigger("mousedown"); break;
				case  97: $("#digit1").trigger("mousedown"); break;
				case  98: $("#digit2").trigger("mousedown"); break;
				case  99: $("#digit3").trigger("mousedown"); break;
				case 100: $("#digit4").trigger("mousedown"); break;
				case 101: $("#digit5").trigger("mousedown"); break;
				case 102: $("#digit6").trigger("mousedown"); break;
				case 103: $("#digit7").trigger("mousedown"); break;
				case 104: $("#digit8").trigger("mousedown"); break;
				case 105: $("#digit9").trigger("mousedown"); break;
				case 110: $("#comma").trigger("mousedown"); break;
				case 190: $("#comma").trigger("mousedown"); break;
				case 188: $("#comma").trigger("mousedown"); break;
				case  65: $("#a").trigger("mousedown"); break;
				case  66: $("#b").trigger("mousedown"); break;
				case  67: $("#c").trigger("mousedown"); break;
				case   8: $("#delete").trigger("mousedown"); break;
				case  46: $("#delete").trigger("mousedown"); break;
				case  74: $("#yes").trigger("mousedown"); break;
				case  78: $("#no").trigger("mousedown"); break;
			}
			return false;
		}
	}).bind("keyup", function(event) {
		if(event.metaKey) metaKey = false;
		if(event.ctrlKey) ctrlKey = false;
		if(event.altKey) altKey = false;
		if(!metaKey && !ctrlKey && !altKey) {
			switch(event.keyCode) {
				case  48: $("#digit0").trigger("mouseup"); break;
				case  49: $("#digit1").trigger("mouseup"); break;
				case  50: $("#digit2").trigger("mouseup"); break;
				case  51: $("#digit3").trigger("mouseup"); break;
				case  52: $("#digit4").trigger("mouseup"); break;
				case  53: $("#digit5").trigger("mouseup"); break;
				case  54: $("#digit6").trigger("mouseup"); break;
				case  55: $("#digit7").trigger("mouseup"); break;
				case  56: $("#digit8").trigger("mouseup"); break;
				case  57: $("#digit9").trigger("mouseup"); break;
				case  96: $("#digit0").trigger("mouseup"); break;
				case  97: $("#digit1").trigger("mouseup"); break;
				case  98: $("#digit2").trigger("mouseup"); break;
				case  99: $("#digit3").trigger("mouseup"); break;
				case 100: $("#digit4").trigger("mouseup"); break;
				case 101: $("#digit5").trigger("mouseup"); break;
				case 102: $("#digit6").trigger("mouseup"); break;
				case 103: $("#digit7").trigger("mouseup"); break;
				case 104: $("#digit8").trigger("mouseup"); break;
				case 105: $("#digit9").trigger("mouseup"); break;
				case 110: $("#comma").trigger("mouseup"); break;
				case 190: $("#comma").trigger("mouseup"); break;
				case 188: $("#comma").trigger("mouseup"); break;
				case  65: $("#a").trigger("mouseup"); break;
				case  66: $("#b").trigger("mouseup"); break;
				case  67: $("#c").trigger("mouseup"); break;
				case   8: $("#delete").trigger("mouseup"); break;
				case  46: $("#delete").trigger("mouseup"); break;
				case  74: $("#yes").trigger("mouseup"); break;
				case  78: $("#no").trigger("mouseup"); break;
				case  13: next();
			}
			return false;
		}
	});
	
	// Mouse events
	$(".digits").bind("mousedown", function() {
		$(this).toggleClass("digit-down", true);
		return false;
	}).bind("mouseleave", function() {
		$(this).toggleClass("digit-down", false);
		return false;
	});
	$(".multiple").bind("mousedown", function() {
		$(this).toggleClass("multiple-down", true);
		return false;
	}).bind("mouseup mouseleave", function() {
		$(this).toggleClass("multiple-down", false);
		return false;
	});
	$(".yesno").bind("mousedown", function() {
		$(this).toggleClass("yesno-down", true);
		return false;
	}).bind("mouseup mouseleave", function() {
		$(this).toggleClass("yesno-down", false);
		return false;
	});
	$(".delete").bind("mousedown", function() {
		$(this).toggleClass("delete-down", true);
		return false;
	}).bind("mouseup mouseleave", function() {
		$(this).toggleClass("delete-down", false);
		return false;
	});
	
	// Button events
	$("#digit0").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("0");
	});
	$("#digit1").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("1");
	});
	$("#digit2").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("2");
	});
	$("#digit3").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("3");
	});
	$("#digit4").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("4");
	});
	$("#digit5").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("5");
	});
	$("#digit6").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("6");
	});
	$("#digit7").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("7");
	});
	$("#digit8").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("8");
	});
	$("#digit9").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer("9");
	});
	$("#comma").bind("mouseup", function() {
		$(this).toggleClass("digit-down", false);
		setAnswer(".");
	});
	$("#a").bind("mouseup", function() {
		$(this).toggleClass("multiple-down", false);
		setAnswer("A");
	});
	$("#b").bind("mouseup", function() {
		$(this).toggleClass("multiple-down", false);
		setAnswer("B");
	});
	$("#c").bind("mouseup", function() {
		$(this).toggleClass("multiple-down", false);
		setAnswer("C");
	});
	$("#d").bind("mouseup", function() {
		$(this).toggleClass("multiple-down", false);
		// Disabled
	});
	$("#yes").bind("mouseup", function() {
		$(this).toggleClass("yesno-down", false);
		setAnswer("J");
	});
	$("#no").bind("mouseup", function() {
		$(this).toggleClass("yesno-down", false);
		setAnswer("N");
	});
	$("#delete").bind("mouseup", function() {
		$(this).toggleClass("delete-down", false);
		setAnswer("");
	});
	
	// Image
	$("#image").bind("mousedown", function(){ return false; });
				
}
