var currentTyped = "";
var currentTypedBuffer = "";

function keyListener(ev){
   if(!ev){
      //for IE
      ev = window.event;
   }
	var code = ev.keyCode;
   	var typedChar = getCharacterTyped(code, ev.shiftKey);
   	if (typedChar == " " || typedChar == "\n" || typedChar == "\r") {
   		currentTyped = "";
   		currentTypedBuffer = "";
   	} else {
		if (code < 48) return;
		if (typedChar == "ý") typedChar = "å";
		if (typedChar == "þ") typedChar = "ä";
		if (typedChar == "à") typedChar = "ö";
		currentTyped = currentTyped + typedChar;
		currentTypedBuffer = currentTypedBuffer + typedChar;
	}
	soundManager.play("keysound");
	checkAndPlay(currentTyped);
	checkAndPlay(currentTypedBuffer); 
	debugText();

}

function checkAndPlay(currentTyped) {
	//Inte så snyggt, borde göra en loop på nått vis...
	if (currentTyped == snd1) { soundManager.play("snd1"); currentTypedBuffer=""; }
	if (currentTyped == snd2) { soundManager.play("snd2"); currentTypedBuffer=""; }
	if (currentTyped == snd3) {soundManager.play("snd3"); currentTypedBuffer=""; }
	if (currentTyped == snd4) {soundManager.play("snd4"); currentTypedBuffer=""; }
	if (currentTyped == snd5) {soundManager.play("snd5"); currentTypedBuffer=""; }
	if (currentTyped == snd6) {soundManager.play("snd6"); currentTypedBuffer=""; }
	if (currentTyped == snd7) {soundManager.play("snd7"); currentTypedBuffer=""; }
	if (currentTyped == snd8) {soundManager.play("snd8"); currentTypedBuffer=""; }
	if (currentTyped == snd9) {soundManager.play("snd9"); currentTypedBuffer=""; }
	if (currentTyped == snd10) {soundManager.play("snd10"); currentTypedBuffer=""; }
	if (currentTyped == snd11) {soundManager.play("snd11"); currentTypedBuffer=""; } 
	if (currentTyped == snd12) {soundManager.play("snd12"); currentTypedBuffer=""; }
	if (currentTyped == snd13) {soundManager.play("snd13"); currentTypedBuffer=""; }
	if (currentTyped == snd14) {soundManager.play("snd14"); currentTypedBuffer=""; }
	if (currentTyped == snd15) {soundManager.play("snd15"); currentTypedBuffer=""; }
	if (currentTyped == snd16) {soundManager.play("snd16"); currentTypedBuffer=""; }
	if (currentTyped == snd17) {soundManager.play("snd17"); currentTypedBuffer=""; }
	if (currentTyped == snd18) {soundManager.play("snd18"); currentTypedBuffer=""; }
	if (currentTyped == snd19) {soundManager.play("snd19"); currentTypedBuffer=""; }
	if (currentTyped == snd20) {soundManager.play("snd20"); currentTypedBuffer=""; }
	if (currentTyped == snd21) {soundManager.play("snd21"); currentTypedBuffer=""; }
	if (currentTyped == snd22) {soundManager.play("snd22"); currentTypedBuffer=""; }
	if (currentTyped == snd23) {soundManager.play("snd23"); currentTypedBuffer=""; }
	if (currentTyped == snd24) {soundManager.play("snd24"); currentTypedBuffer=""; }
	if (currentTyped == snd25) {soundManager.play("snd25"); currentTypedBuffer=""; }
	if (currentTyped == snd26) {soundManager.play("snd26"); currentTypedBuffer=""; }
	if (currentTyped == snd27) {soundManager.play("snd27"); currentTypedBuffer=""; }
	if (currentTyped == snd28) {soundManager.play("snd28"); currentTypedBuffer=""; }
	if (currentTyped == snd29) {soundManager.play("snd29"); currentTypedBuffer=""; }
	if (currentTyped == snd30) {soundManager.play("snd30"); currentTypedBuffer=""; }
	if (currentTyped == snd31) {soundManager.play("snd31"); currentTypedBuffer=""; }
	if (currentTyped == snd32) {soundManager.play("snd32"); currentTypedBuffer=""; }
	if (currentTyped == snd33) {soundManager.play("snd33"); currentTypedBuffer=""; }
	if (currentTyped == snd34) {soundManager.play("snd34"); currentTypedBuffer=""; }
	if (currentTyped == snd35) {soundManager.play("snd35"); currentTypedBuffer=""; }
	if (currentTyped == snd36) {soundManager.play("snd36"); currentTypedBuffer=""; }
	if (currentTyped == snd37) {soundManager.play("snd37"); currentTypedBuffer=""; }
	if (currentTyped == snd38) {soundManager.play("snd38"); currentTypedBuffer=""; }
	if (currentTyped == snd39) {soundManager.play("snd39"); currentTypedBuffer=""; }
}

function debugText() {
	document.getElementById("debug").value = "Typed: " + currentTyped;
}

function getCharacterTyped(code, shiftPressed) {
	var result = String.fromCharCode(code).toLowerCase();
	if (shiftPressed) {
		if (result == "1") result = "!";
		if (result == "2") result = "\"";
	}
	return result;
}