var getNormalMorseDecoded, getNormalMorseEncoded; getNormalMorseDecoded = function(input) { var output; if (!input) { return null; } if (input.charAt(input.length === " ")) { input.substring(0, input.length - 1); } input = input.toUpperCase(); output = ""; if (input === "LETTERSPACE") { return "   "; } else if (input === "END OF WORK") { return "...-.-"; } else if (input === "ERROR") { return "........"; } else if (input === "STARTING SIGNAL") { return "-.-.-"; } else if (input === "ENDING SIGNAL") { return ".-.-."; } else if (input === "UNDERSTOOD") { return "...-."; } else if (input === "WAIT") { return ".-..."; } else if (input === "SOS") { return "...---..."; } else if (input === "LETTER SPACE") { return "   "; } else if (input === "WORD SPACE") { return "       "; } else { while (input.length > 0) { if (input.charAt(0) === " ") { if (output.charAt(output.length) === " ") { output = output.substring(0, output.length - 1); } output += "       "; input = input.substring(1); } else if (input.charAt(0) === "\n") { output += "
"; input = input.substring(1); } else if (input.charAt(0) === "A") { output += ".-   "; input = input.substring(1); } else if (input.charAt(0) === "B") { output += "-...   "; input = input.substring(1); } else if (input.charAt(0) === "C") { output += "-.-.   "; input = input.substring(1); } else if (input.charAt(0) === "D") { output += "-..   "; input = input.substring(1); } else if (input.charAt(0) === "E") { output += ".   "; input = input.substring(1); } else if (input.charAt(0) === "F") { output += "..-.   "; input = input.substring(1); } else if (input.charAt(0) === "G") { output += "--.   "; input = input.substring(1); } else if (input.charAt(0) === "H") { output += "....   "; input = input.substring(1); } else if (input.charAt(0) === "I") { output += "..   "; input = input.substring(1); } else if (input.charAt(0) === "J") { output += ".---   "; input = input.substring(1); } else if (input.charAt(0) === "K") { output += "-.-   "; input = input.substring(1); } else if (input.charAt(0) === "L") { output += ".-..   "; input = input.substring(1); } else if (input.charAt(0) === "M") { output += "--   "; input = input.substring(1); } else if (input.charAt(0) === "N") { output += "-.   "; input = input.substring(1); } else if (input.charAt(0) === "O") { output += "---   "; input = input.substring(1); } else if (input.charAt(0) === "P") { output += ".--.   "; input = input.substring(1); } else if (input.charAt(0) === "Q") { output += "--.-   "; input = input.substring(1); } else if (input.charAt(0) === "R") { output += ".-.   "; input = input.substring(1); } else if (input.charAt(0) === "S") { output += "...   "; input = input.substring(1); } else if (input.charAt(0) === "T") { output += "-   "; input = input.substring(1); } else if (input.charAt(0) === "U") { output += "..-   "; input = input.substring(1); } else if (input.charAt(0) === "V") { output += "...-   "; input = input.substring(1); } else if (input.charAt(0) === "W") { output += ".--   "; input = input.substring(1); } else if (input.charAt(0) === "X") { output += "-..-   "; input = input.substring(1); } else if (input.charAt(0) === "Y") { output += "-.--   "; input = input.substring(1); } else if (input.charAt(0) === "Z") { output += "--..   "; input = input.substring(1); } else if (input.charAt(0) === "0") { output += "-----   "; input = input.substring(1); } else if (input.charAt(0) === "1") { output += ".----   "; input = input.substring(1); } else if (input.charAt(0) === "2") { output += "..---   "; input = input.substring(1); } else if (input.charAt(0) === "3") { output += "...--   "; input = input.substring(1); } else if (input.charAt(0) === "4") { output += "....-   "; input = input.substring(1); } else if (input.charAt(0) === "5") { output += ".....   "; input = input.substring(1); } else if (input.charAt(0) === "6") { output += "-....   "; input = input.substring(1); } else if (input.charAt(0) === "7") { output += "--...   "; input = input.substring(1); } else if (input.charAt(0) === "8") { output += "---..   "; input = input.substring(1); } else if (input.charAt(0) === "9") { output += "----.   "; input = input.substring(1); } else if (input.charAt(0) === "Ä") { output += ".-.-   "; input = input.substring(1); } else if (input.charAt(0) === "Ö") { output += "---.   "; input = input.substring(1); } else if (input.charAt(0) === "Ü") { output += "..--   "; input = input.substring(1); } else if (input.charAt(0) === "ß") { output += "...--...   "; input = input.substring(1); } else if (input.charAt(0) === ".") { output += ".-.-.-   "; input = input.substring(1); } else if (input.charAt(0) === ",") { output += "--..--   "; input = input.substring(1); } else if (input.charAt(0) === ":") { output += "---...   "; input = input.substring(1); } else if (input.charAt(0) === "") { output += "-.-.-.   "; input = input.substring(1); } else if (input.charAt(0) === "?") { output += "..--..   "; input = input.substring(1); } else if (input.charAt(0) === "!") { output += "-.-.--   "; input = input.substring(1); } else if (input.charAt(0) === "-") { output += "-....-   "; input = input.substring(1); } else if (input.charAt(0) === "_") { output += "..--.-   "; input = input.substring(1); } else if (input.charAt(0) === "(") { output += "-.--.   "; input = input.substring(1); } else if (input.charAt(0) === ")") { output += "-.--.-   "; input = input.substring(1); } else if (input.charAt(0) === "=") { output += "-...-   "; input = input.substring(1); } else if (input.charAt(0) === "+") { output += ".-.-.   "; input = input.substring(1); } else if (input.charAt(0) === "/") { output += "-..-.   "; input = input.substring(1); } else if (input.charAt(0) === "@") { output += ".--.-.   "; input = input.substring(1); } else if (input.charAt(0) === "'") { output += ".----.   "; input = input.substring(1); } else if (input.charAt(0) === "$") { output += "...-..-   "; input = input.substring(1); } else { return "Code not listed or wrong."; } } if (output.charAt(output.length - 1) === " ") { output = output.substring(0, output.length - 1); } } return output; }; getNormalMorseEncoded = function(input) { var d, inputToSign, output, sign, signFull; if (!input) { return null; } while (input.charAt(input.length - 1) === " ") { input = input.substring(0, input.length - 1); } input = input.toUpperCase(); while (input.charAt(input.length - 1) === "\n") { input = input.substring(0, input.length - 1); } input += " "; inputToSign = input; output = ""; while (inputToSign !== " ") { d = 0; signFull = true; sign = ""; while (signFull) { if (inputToSign.substring(d, d + 7) === " " || inputToSign.substring(d, d + 3) === " " || inputToSign.charAt(0) === "\n") { if (d === 0) { if (inputToSign.substring(0, 7) === " ") { output += " "; inputToSign = inputToSign.substring(7, inputToSign.length); } if (inputToSign.substring(0, 3) === " ") { inputToSign = inputToSign.substring(3, inputToSign.length); } if (inputToSign.charAt(0) === "\n") { output += "
"; inputToSign = inputToSign.substring(1, inputToSign.length); } } else { sign = inputToSign.substring(0, d); inputToSign = inputToSign.substring(d, inputToSign.length); signFull = false; } } else { d++; } } if (sign === ".-") { output += "A"; } else if (sign === "-...") { output += "B"; } else if (sign === "-.-.") { output += "C"; } else if (sign === "-..") { output += "D"; } else if (sign === ".") { output += "E"; } else if (sign === "..-.") { output += "F"; } else if (sign === "--.") { output += "G"; } else if (sign === "....") { output += "H"; } else if (sign === "..") { output += "I"; } else if (sign === ".---") { output += "J"; } else if (sign === "-.-") { output += "K"; } else if (sign === ".-..") { output += "L"; } else if (sign === "--") { output += "M"; } else if (sign === "-.") { output += "N"; } else if (sign === "---") { output += "O"; } else if (sign === ".--.") { output += "P"; } else if (sign === "--.-") { output += "Q"; } else if (sign === ".-.") { output += "R"; } else if (sign === "...") { output += "S"; } else if (sign === "-") { output += "T"; } else if (sign === "..-") { output += "U"; } else if (sign === "...-") { output += "V"; } else if (sign === ".--") { output += "W"; } else if (sign === "-..-") { output += "X"; } else if (sign === "-.--") { output += "Y"; } else if (sign === "--..") { output += "Z"; } else if (sign === "-----") { output += "0"; } else if (sign === ".----") { output += "1"; } else if (sign === "..---") { output += "2"; } else if (sign === "...--") { output += "3"; } else if (sign === "....-") { output += "4"; } else if (sign === ".....") { output += "5"; } else if (sign === "-....") { output += "6"; } else if (sign === "--...") { output += "7"; } else if (sign === "---..") { output += "8"; } else if (sign === "----.") { output += "9"; } else if (sign === ".-.-") { output += "Ä"; } else if (sign === "---.") { output += "Ö"; } else if (sign === "..--") { output += "Ü"; } else if (sign === "...--...") { output += "ß"; } else if (sign === "----") { output += "CH"; } else if (sign === ".-.-.-") { output += "."; } else if (sign === "--..--") { output += ","; } else if (sign === "---...") { output += ":"; } else if (sign === "-.-.-.") { output += ";"; } else if (sign === "..--..") { output += "?"; } else if (sign === "-.-.--") { output += "!"; } else if (sign === "-....-") { output += "-"; } else if (sign === "..--.-") { output += "_"; } else if (sign === "-.--.") { output += "("; } else if (sign === "-.--.-") { output += ")"; } else if (sign === ".----.") { output += "'"; } else if (sign === "-...-") { output += "="; } else if (sign === ".-.-.") { output += "+"; } else if (sign === "-..-.") { output += "/"; } else if (sign === ".--.-.") { output += "@"; } else if (sign === "-.-.-") { output += "Begin of the signal"; } else if (sign === "-...-") { output += "Wait"; } else if (sign === "...-.") { output += "Understood"; } else if (sign === "...-.-") { output += "End of work"; } else if (sign === "...---...") { output += "SOS"; } else if (sign === "........") { output += "Error"; } else { return "Code not listed or wrong."; } } return output; };