
function convertToMorse()
{
	var mIn = document.getElementById('morseInput');
	var mOut = document.getElementById('morseOutput');
	if(mIn.value.length == 0)	mOut.innerHTML = '<br /><i><b>Please enter some text first!</b></i>';
	else mOut.innerHTML = toMorse(mIn.value);
}

function convertFromMorse()
{
	var mIn = document.getElementById('morseInput');
	var mOut = document.getElementById('morseOutput');
	if(mIn.value.length == 0)	mOut.innerHTML = '<br /><i><b>Please enter some Morse code first!</b></i>';
	else mOut.innerHTML = fromMorse(mIn.value);
}

function switchToText2Morse(lnk)
{
	var mS = document.getElementById('MorseSwitch');
	mS.innerHTML = 'Wanna convert from plain text to Morse code? <font class="FakeLink" onclick="switchToMorse2Text();">Click here!</font>';
	var mT = document.getElementById('morseTitle');
	mT.innerHTML = 'Convert Morse Code to plain text:';
	var mB = document.getElementById('MorseButton');
	mB.innerHTML = '<button type="reset" onclick="convertFromMorse();" class="FormButton"><b>Morse to Text</b></button>';
	var mIn = document.getElementById('morseInput');
	mIn.value = '';
	var mOut = document.getElementById('morseOutput');
	mOut.innerHTML = '';
}

function switchToMorse2Text(lnk)
{
	var mS = document.getElementById('MorseSwitch');
	mS.innerHTML = 'Wanna convert from Morse code to plain text? <font class="FakeLink" onclick="switchToText2Morse();">Click here!</font>';
	var mT = document.getElementById('morseTitle');
	mT.innerHTML = 'Convert plain text to Morse code:';
	var mB = document.getElementById('MorseButton');
	mB.innerHTML = '<button type="reset" onclick="convertToMorse();" class="FormButton"><b>Text to Morse</b></button>';
	var mIn = document.getElementById('morseInput');
	mIn.value = '';
	var mOut = document.getElementById('morseOutput');
	mOut.innerHTML = '';
}

// S_1 .
// S_2 ,
// S_3 ?
// S_4 :
// S_5 =
// S_6 /
// S_7 -
// S_8 (
// S_9 )
// S_10 "
// S_11 ;
// S_12 '
function toMorse(text)
{
	text = text.toUpperCase();
	while(text.indexOf('.') >= 0)	text = text.replace('.', 'S_1');
	while(text.indexOf(',') >= 0)	text = text.replace(',', 'S_2');
	while(text.indexOf('?') >= 0)	text = text.replace('?', 'S_3');
	while(text.indexOf(':') >= 0)	text = text.replace(':', 'S_4');
	while(text.indexOf('=') >= 0)	text = text.replace('=', 'S_5');
	while(text.indexOf('/') >= 0)	text = text.replace('/', 'S_6');
	while(text.indexOf('-') >= 0)	text = text.replace('-', 'S_7');
	while(text.indexOf('(') >= 0)	text = text.replace('(', 'S_8');
	while(text.indexOf(')') >= 0)	text = text.replace(')', 'S_9');
	while(text.indexOf('"') >= 0)	text = text.replace('"', 'S_10');
	while(text.indexOf(';') >= 0)	text = text.replace(';', 'S_11');
	while(text.indexOf("'") >= 0)	text = text.replace("'", 'S_12');

	while(text.indexOf(' ') >= 0)	text = text.replace(' ', '');
	var morse = '';
	for(var i=0; i<text.length; i++)
	{
		var id = text[i];
		if(!isNaN(parseInt(id))) id = 'N_' + id;
		if(gToMorse[id])	morse += gToMorse[id] + ' ';
		else				morse += id + ' ';
	}
	while(morse.indexOf('1') >= 0)	morse = morse.replace('1', '.');
	while(morse.indexOf('9') >= 0)	morse = morse.replace('9', '-');
//	alert(text);
//	alert(morse);
	return morse;
}

function fromMorse(morse)
{
//	alert(morse);
	while(morse.indexOf('.') >= 0)	morse = morse.replace('.', '1');
	while(morse.indexOf('-') >= 0)	morse = morse.replace('-', '9');
	var letters = morse.split(" ");

	var text = '';
	for (var i=0; i<letters.length; i++)
	{
		var letter = letters[i];
		if(letter)
		{
			var id = 'A_' + letter;
			if(gFromMorse[id])	text += gFromMorse[id] + ' ';
			else
			{
				while(letter.indexOf('1') >= 0)	letter = letter.replace('1', '.');
				while(letter.indexOf('9') >= 0)	letter = letter.replace('9', '-');
				if(letter.length == 1)	text += letter + ' ';
				else					text += '-?' + letter + '?- ';
			}
		}
	}
//	alert(text);
	return text;
}

var gToMorse = [];
gToMorse['A'] = 19;
gToMorse['B'] = 9111;
gToMorse['C'] = 9191;
gToMorse['D'] = 911;
gToMorse['E'] = 1;
gToMorse['F'] = 1191;
gToMorse['G'] = 991;
gToMorse['H'] = 1111;
gToMorse['I'] = 11;
gToMorse['J'] = 1999;
gToMorse['K'] = 919;
gToMorse['L'] = 1911;
gToMorse['M'] = 99;
gToMorse['N'] = 91;
gToMorse['O'] = 999;
gToMorse['P'] = 1991;
gToMorse['Q'] = 9919;
gToMorse['R'] = 191;
gToMorse['S'] = 111;
gToMorse['T'] = 9;
gToMorse['U'] = 119;
gToMorse['V'] = 1119;
gToMorse['W'] = 199;
gToMorse['X'] = 9119;
gToMorse['Y'] = 9199;
gToMorse['Z'] = 9911;

gToMorse['N_1'] = 19999;
gToMorse['N_2'] = 11999;
gToMorse['N_3'] = 11199;
gToMorse['N_4'] = 11119;
gToMorse['N_5'] = 11111;
gToMorse['N_6'] = 91111;
gToMorse['N_7'] = 99111;
gToMorse['N_8'] = 99911;
gToMorse['N_9'] = 99991;
gToMorse['N_0'] = 99999;

gToMorse['S_1'] = 191919;
gToMorse['S_2'] = 991199;
gToMorse['S_3'] = 119911;
gToMorse['S_4'] = 999111;
gToMorse['S_5'] = 91119;
gToMorse['S_6'] = 911919;
gToMorse['S_7'] = 911119;
gToMorse['S_8'] = 91991;
gToMorse['S_9'] = 919919;
gToMorse['S_10'] = 191191;
gToMorse['S_11'] = 919191;
gToMorse["S_12"] = 199991;

var gFromMorse = [];
gFromMorse['A_19'] = 'A';
gFromMorse['A_9111'] = 'B';
gFromMorse['A_9191'] = 'C';
gFromMorse['A_911'] = 'D';
gFromMorse['A_1'] = 'E';
gFromMorse['A_1191'] = 'F';
gFromMorse['A_991'] = 'G';
gFromMorse['A_1111'] = 'H';
gFromMorse['A_11'] = 'I';
gFromMorse['A_1999'] = 'J';
gFromMorse['A_919'] = 'K';
gFromMorse['A_1911'] = 'L';
gFromMorse['A_99'] = 'M';
gFromMorse['A_91'] = 'N';
gFromMorse['A_999'] = 'O';
gFromMorse['A_1991'] = 'P';
gFromMorse['A_9919'] = 'Q';
gFromMorse['A_191'] = 'R';
gFromMorse['A_111'] = 'S';
gFromMorse['A_9'] = 'T';
gFromMorse['A_119'] = 'U';
gFromMorse['A_1119'] = 'V';
gFromMorse['A_199'] = 'W';
gFromMorse['A_9119'] = 'X';
gFromMorse['A_9199'] = 'Y';
gFromMorse['A_9911'] = 'Z';

gFromMorse['A_19999'] = '1';
gFromMorse['A_11999'] = '2';
gFromMorse['A_11199'] = '3';
gFromMorse['A_11119'] = '4';
gFromMorse['A_11111'] = '5';
gFromMorse['A_91111'] = '6';
gFromMorse['A_99111'] = '7';
gFromMorse['A_99911'] = '8';
gFromMorse['A_99991'] = '9';
gFromMorse['A_99999'] = '0';

gFromMorse['A_191919'] = '.';
gFromMorse['A_991199'] = ',';
gFromMorse['A_119911'] = '?';
gFromMorse['A_999111'] = ':';
gFromMorse['A_91119'] = '=';
gFromMorse['A_911919'] = '/';
gFromMorse['A_911119'] = '-';
gFromMorse['A_91991'] = '(';
gFromMorse['A_919919'] = ')';
gFromMorse['A_191191'] = '"';
gFromMorse['A_919191'] = ';';
gFromMorse["A_199991"] = "'";

toMorse('MINISTARSTVO ZDRAVLJA JE NA ZAHTEV DIREKTORA UPUTILO INSPEKCIJU NA KLINIKU JER JE UOCENO DA SU NA INTENZIVNOM ODELJENJU PACIJENTI UMIRALI UVEK U ISTOM KREVETU I TO SAMO I SVAKE NEDEJLE OKO 11 SATI PO PODNE');
//fromMorse('-- .. -. .. ... - .- .-. ... - ...- --- / --.. -.. .-. .- ...- .-.. .--- .- / .--- . / -. .- / --.. .- .... - . ...- / -.. .. .-. . -.- - --- .-. .- / ..- .--. ..- - .. .-.. --- / .. -. ... .--. . -.- -.-. .. .--- ..- / -. .- / -.- .-.. .. -. .. -.- ..- --. .-- / .--- . .-. / .--- . / ..- --- -.-. . -. --- / -.. .- / ... ..- / -. .- / .. -. - . -. --.. .. ...- -. --- -- / --- -.. . .-.. . -. .--- ..- / .--. .- -.-. .. .--- . -. - .. / ..- -- .. .-. .- .-.. .. / ..- ...- . -.- / ..- / .. ... - --- -- / -.- .-. . ...- . - ..- / .. / - --- / ... .- -- --- / .. / ... ...- .- -.- . / -. . -.. . .-.. .--- . / --- -.- --- / .---- .---- / ... .- - .. / .--. .-. . / .--. --- -.. -. . --..-- / -... . --.. / --- -... --.. .. .-. .- / -. .- / -. .--- .. .... --- ...- --- / --.. -.. .-. .- ...- ... - ...- . -. --- / ... - .- -. .--- . .-.-.- / .-.. . -.- .- .-. .. / ... ..- / .--. --- ... - .- .-.. .. / ...- .-. .-.. --- / --.. .- -... .-. .. -. ..- - .. / --.. -... --- --. / - . / -.-. .. -. .--- . -. .. -.-. . --..-- / .--- . .-. / -. .. -.- .- -.- --- / -. .. ... ..- / -- --- --. .-.. .. / ..- ... - .- -. --- ...- .. - .. / ... - --- / .--- . / ..- --.. .-. --- -.- / ..- -- .. .-. .- -. .--- ..- / .--. .- -.-. .. .--- . -. .- - .- --..-- / - . / ... ..- / ... . / --- -... .-. .- - .. .-.. .. / -- .. -. .. ... - .- .-. ... - ...- ..- .-.-.- / -. . -.- .. / ... ..- / .-.. . -.- .- .-. .. / -.-. .- -.- / .--. .-. . - .--. --- ... - .- ...- .-.. .--- .- .-.. .. / -.. .- / ... . / .-. .- -.. .. / --- / -. . -.- .- -.- ...- --- .--- / -. .- - .--. .-. .. .-. --- -.. -. --- .--- / .--. --- .--- .- ...- .. .-.-.- / .--. .-. ...- . / ... .-.. . -.. . -.-. . / -. . -.. . .-.. .--- . / .--. --- / .--. .-. .. .--- .- ...- .. --..-- / --- -.- ..- .--. .. .-.. .. / ... ..- / .-. .- -.. -. ..- / --. .-. ..- .--. ..- / -.- --- .--- .- / -.-. . / -. .- ... - --- .--- .- - .. / -.- --- -. .- -.-. -. --- / --- -.. --. --- -. . - -. ..- - .. / ... - .- / ... . / -.. --- --. .- -.. .- / ..- / -.- .-.. .. -. .. -.-. .. .-.-.- / - .- -.- --- / ... ..- / ... . / ..- / -. . -.. . .-.. .--- ..- / --- -.- ..- .--. .. .-.. .. / --- -.- --- / -.- --- -... -. --- --. / -.- .-. . ...- . - .- / -. . -.- --- .-.. .. -.- --- / -- .. -. ..- - .- / .--. .-. . / .---- .---- / -.-. .- ... --- ...- .- / .. / - --- / --.. .- .--- . -.. -. --- / ... .- / .--. .-. . -.. ... - .- ...- -. .. -.-. .. -- .- / .-.. . -.- .- .-. .- --..-- / -- . -.. .-.-.- / ... . ... - .- .-. .- / .. / - . .... -. .. -.-. .- .-. .- / ... .- / --. --- - --- ...- --- / ... ...- .. .... / --- ... - .- .-.. .. .... / --- -.. . .-.. . -. .--- .- / ..- / .--. .-. .. ... ..- ... - ...- ..- / --.. -.. .-. .- ...- ... - ...- . -. .. .... / .. -. ... .--. . -.- - --- .-. .- / .. / .--. .-. .. .--. .- -.. -. .. -.- .- / -- ..- .--. -....- .- .-.-.- / -. . -.- .. / --- -.. / -. .--- .. .... / ... ..- / .--. --- -. . .-.. .. / -.. .-. ...- . -. .- / .-. .- ... .--. . -.-. .- / .. / -... .. -... .-.. .. .--- ..- --..-- / .- / -. . -.- .. / -.-. .- -.- / -... . .-.. .. / .-.. ..- -.- / -.- .- -.- --- / -... .. / ... . / --.. .- ... - .. - .. .-.. .. / --- -.. / --.. .-.. .- .-.-.- / -.- .- -.. .- / .--- . / ... .- - / -.- --- -. .- -.-. -. --- / --- - -.- ..- -.-. .- --- / .---- .---- ---... ----- ----- --..-- / ..- / ... --- -... ..- / .--- . / ..- ... .-.. .- / -.-. .. ... - .- -.-. .. -.-. .- / -.- --- .--- .- / .-. .- -.. .. / ... -- . -. . / -. . -.. . .-.. .--- --- -- .-.-.- / -.- .- -.- --- / .--- . / ..- ... .-.. .- / ..- / ... --- -... ..- --..-- / .. ... -.- .-.. .--- ..- -.-. .. .-.. .- / .--- . / .- .--. .- .-. .- - ..- .-. ..- / -.- --- .--- .- / .--. .- -.-. .. .--- . -. - .- / --- -.. .-. --.. .- ...- .- / ..- / --.. .. ...- --- - ..- / .. / ..- -.- .-.. .--- ..- -.-. .. .-.. .- / ..- ... .. ... .- ...- .- -.-. .-.-.-');
