Morse Code v3

rewritten Matthias Tylkowski

by EnigmaMaster

HTML

<div id="two">
    Use arrow keys to produce morse code ; left arrow = "." right arrow = "-" down arrow = " ". After clicking run, click in the results box and start using arrow keys , dont click in the text area, it will not work properly
</div>
<div id="box">
    <textarea id="type"></textarea>
</div>
<!-- Created By Raul Rodriguez-->
<!-- Rewritten by Matthias Tylkowski-->

CSS

input[type="button"] {
    width:20px;
    clear:both;
   
}

#prompt {
border:thin solid black;
    width:100px;
    height: 100px;
    word-wrap: break-word;
    overflow: auto;
}

#two {
border: thin solid black;
float:left;
width:400px;
height:200px;
margin-right:10px;
}

JavaScript

$('#type').keydown(function(e) {
    switch(e.keyCode) {
        case 37: this.value += "."; break;
        case 39: this.value += "-"; break;
        case 40: this.value += " "; break;
        case 8: return; // allow backspace
    }
    e.preventDefault();

}).keyup(function() {
    var typedTextArray = $(this).val().split(/\s/g),
        typedTextDisplay = [];

    $(typedTextArray).each(function(index, elem){
        switch(elem){
            case '.-': typedTextDisplay.push('a'); break;
            case '-...': typedTextDisplay.push('b'); break;
            case '-.-.': typedTextDisplay.push('c'); break;
            case '-..': typedTextDisplay.push('d'); break;
            case '.': typedTextDisplay.push('e'); break;
            case '..-.': typedTextDisplay.push('f'); break;
            case '--.': typedTextDisplay.push('g'); break;
            case '....': typedTextDisplay.push('h'); break;
            case '..': typedTextDisplay.push('i'); break;
            case '.---': typedTextDisplay.push('j'); break;
            case '-.-': typedTextDisplay.push('k'); break;
            case '.-..': typedTextDisplay.push('l'); break;
            case '--': typedTextDisplay.push('m'); break;
            case '-.': typedTextDisplay.push('n'); break;
            case '---': typedTextDisplay.push('o'); break;
            case '.--.': typedTextDisplay.push('p'); break;
            case '--.-': typedTextDisplay.push('q'); break;
            case '.-.': typedTextDisplay.push('r'); break;
            case '...': typedTextDisplay.push('s'); break;
            case '-': typedTextDisplay.push('t'); break;
            case '..-': typedTextDisplay.push('u'); break;
            case '...-': typedTextDisplay.push('v'); break;
            case '.--': typedTextDisplay.push('w'); break;
            case '-..-': typedTextDisplay.push('x'); break;
            case '-.--': typedTextDisplay.push('y'); break;
            case '--..': typedTextDisplay.push('z'); break;
        }
    });
  ...