//Morse code converter- By Luke Watson (luke@lukewatson.f2s.com)
//Script featured on JK (http://javascriptkit.com)
//Visit http://javascriptkit.com for this script and more

var charCodes=new Array(36); 
charCodes["a"]=".-/";
charCodes["b"]="-.../";
charCodes["c"]="-.-./";
charCodes["d"]="-../";
charCodes["e"]="./";
charCodes["f"]="..-./";
charCodes["g"]="--./";
charCodes["h"]="..../";
charCodes["i"]="../";
charCodes["j"]=".---/";
charCodes["k"]="-.-/";
charCodes["l"]=".-../";
charCodes["m"]="--/";
charCodes["n"]="-./";
charCodes["o"]="---/";
charCodes["p"]=".--./";
charCodes["q"]="--.-/";
charCodes["r"]=".-./";
charCodes["s"]=".../";
charCodes["t"]="-/";
charCodes["u"]="..-/";
charCodes["v"]="...-/";
charCodes["w"]=".--/";
charCodes["x"]="-..-/";
charCodes["y"]="-.--/";
charCodes["z"]="--../";
charCodes["1"]=".----/";
charCodes["2"]="..---/";
charCodes["3"]="...--/";
charCodes["4"]="....-/";
charCodes["5"]="...../";
charCodes["6"]="-..../";
charCodes["7"]="--.../";
charCodes["8"]="---../";
charCodes["9"]="----./";
charCodes["0"]="-----/";
var morseCodes=new Array(36); 
morseCodes[".-"]="a";
morseCodes["-..."]="b";
morseCodes["-.-."]="c";
morseCodes["-.."]="d";
morseCodes["."]="e";
morseCodes["..-."]="f";
morseCodes["--."]="g";
morseCodes["...."]="h";
morseCodes[".."]="i";
morseCodes[".---"]="j";
morseCodes["-.-"]="k";
morseCodes[".-.."]="l";
morseCodes["--"]="m";
morseCodes["-."]="n";
morseCodes["---"]="o";
morseCodes[".--."]="p";
morseCodes["--.-"]="q";
morseCodes[".-."]="r";
morseCodes["..."]="s";
morseCodes["-"]="t";
morseCodes["..-"]="u";
morseCodes["...-"]="v";
morseCodes[".--"]="w";
morseCodes["-..-"]="x";
morseCodes["-.--"]="y";
morseCodes["--.."]="z";
morseCodes[".----"]="1";
morseCodes["..---"]="2";
morseCodes["...--"]="3";
morseCodes["....-"]="4";
morseCodes["....."]="5";
morseCodes["-...."]="6";
morseCodes["--..."]="7";
morseCodes["---.."]="8";
morseCodes["----."]="9";
morseCodes["-----"]="0";
var temp=''

function encode() {
    document.morsecode.chars.value=document.morsecode.chars.value.toLowerCase();
    document.morsecode.codebox.value="";
    temp=''
    var chars=document.morsecode.chars.value.split("");
    
    for (a=0; a<chars.length; a++) {
    if (chars[a]!=" ") {
      if (window.charCodes[chars[a]]) {
        document.morsecode.codebox.value+=charCodes[chars[a]]+"   /";
        temp+=chars[a]+"="+charCodes[chars[a]]+"\n";
      } else
        temp+=chars[a]+"=(None)\n";
      } else temp+="\n";
    }
    document.morsecode.codebox.value+="\n\n\nEXPLANATION:\n\n"+temp
}
// mpr
function morse2char(id) {
    var morse = document.getElementById(id).innerHTML.toLowerCase();
    var temp='';
    var result = '';
    var chars=morse.split("/");
    
    for (a=0; a<chars.length; a++) {
    if (chars[a]!=" ") {
      if (window.morseCodes[chars[a]]) {
        result+=morseCodes[chars[a]]+"";
      } else
        temp+=chars[a]+"=(None)\n";
      } else result+=" ";
    }
     
    if ( result ) {
      document.getElementById(id).innerHTML = result;
    } else {
      char2morse(id);
    
    }
    
}

function char2morse(id) {
    var morse = document.getElementById(id).innerHTML.toLowerCase();
    var temp='';
    var result = '';
    var chars=morse.split("");
    
    for (a=0; a<chars.length; a++) {
    if (chars[a]!=" ") {
      if (window.charCodes[chars[a]]) {
        result+=charCodes[chars[a]]+"";
      } else
        temp+=chars[a]+"=(None)\n";
      } else result+=" /";
    }
    document.getElementById(id).innerHTML = result;
}
