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

function initEvents() {
	// Keyboard Events
	//$(document).bind("mousedown", function() {
		//return false;
	//}).bind("keydown", function(event) {
	
	$(document).bind("mousedown", function(event) {
		//$("#debug").text($(event.target).parent().html());
	});
	
	$(document).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;
		}
	});
	
// Toggle moet remove/add worden

	// 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("mouseleave", function() {
		$(this).toggleClass("multiple-down", false);
		//return false;
	});
	$(".yesno").bind("mousedown", function() {
		$(this).toggleClass("yesno-down", true);
		//return false;
	}).bind("mouseleave", function() {
		$(this).toggleClass("yesno-down", false);
		//return false;
	});
	$(".delete").bind("mousedown", function() {
		$(this).toggleClass("delete-down", true);
		//return false;
	}).bind("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
	$("#questionImage").bind("mousedown", function(){ return false; });
				
}

var timer = null;
var data = null;
var question = -1;
var answerEnabled = false;

function deinitEvents() {
	
	// Timer events
	window.clearTimeout(timer);
	
	// Sound events
	if(soundEnabled) {
		if(sound) soundManager.destroySound(sound);
		soundManager.stopAll();
	}
	
	data = null;
	question = -1;
	answerEnabled = false;
	
	deinitDocumentEvents();
				
}

function deinitDocumentEvents() {
	
	//$("#questionImage IMG").attr("src", "../images/blank_image.gif");
	
	
	// Keyboard Events
	$(document).unbind("keyup keydown");
	
	// Mouse events
	$(".digits").unbind();
	$(".multiple").unbind();
	$(".yesno").unbind();
	$(".delete").unbind();
	
	// Button events
	$("#digit0").unbind();
	$("#digit1").unbind();
	$("#digit2").unbind();
	$("#digit3").unbind();
	$("#digit4").unbind();
	$("#digit5").unbind();
	$("#digit6").unbind();
	$("#digit7").unbind();
	$("#digit8").unbind();
	$("#digit9").unbind();
	$("#comma").unbind();
	$("#a").unbind();
	$("#b").unbind();
	$("#c").unbind();
	$("#d").unbind();
	$("#yes").unbind();
	$("#no").unbind();
	$("#delete").unbind();
	
	// Image
	$("#image").unbind();
		
}