This repository has been archived on 2022-02-10. You can view files and clone it, but cannot push or open issues or pull requests.
morse-converter-web/app/scripts/normalMorseConvert.js

395 lines
13 KiB
JavaScript

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 += "<br>";
input = input.substring(1);
} else if (input.charAt(0) === "A") {
output += ".-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "B") {
output += "-...&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "C") {
output += "-.-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "D") {
output += "-..&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "E") {
output += ".&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "F") {
output += "..-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "G") {
output += "--.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "H") {
output += "....&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "I") {
output += "..&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "J") {
output += ".---&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "K") {
output += "-.-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "L") {
output += ".-..&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "M") {
output += "--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "N") {
output += "-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "O") {
output += "---&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "P") {
output += ".--.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "Q") {
output += "--.-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "R") {
output += ".-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "S") {
output += "...&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "T") {
output += "-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "U") {
output += "..-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "V") {
output += "...-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "W") {
output += ".--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "X") {
output += "-..-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "Y") {
output += "-.--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "Z") {
output += "--..&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "0") {
output += "-----&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "1") {
output += ".----&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "2") {
output += "..---&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "3") {
output += "...--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "4") {
output += "....-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "5") {
output += ".....&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "6") {
output += "-....&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "7") {
output += "--...&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "8") {
output += "---..&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "9") {
output += "----.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "Ä") {
output += ".-.-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "Ö") {
output += "---.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "Ü") {
output += "..--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "ß") {
output += "...--...&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === ".") {
output += ".-.-.-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === ",") {
output += "--..--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === ":") {
output += "---...&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "") {
output += "-.-.-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "?") {
output += "..--..&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "!") {
output += "-.-.--&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "-") {
output += "-....-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "_") {
output += "..--.-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "(") {
output += "-.--.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === ")") {
output += "-.--.-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "=") {
output += "-...-&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "+") {
output += ".-.-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "/") {
output += "-..-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "@") {
output += ".--.-.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "'") {
output += ".----.&nbsp;&nbsp;&nbsp;";
input = input.substring(1);
} else if (input.charAt(0) === "$") {
output += "...-..-&nbsp;&nbsp;&nbsp;";
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 += "<br>";
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;
};