function matricon(num) 
{
	for (var i=1; i <= num; i++) this[i] = "";
	this.length = num;
}

var MORSE = new matricon(26+6);
MORSE[1]=".-"
MORSE[2]="-..."
MORSE[3]="-.-."
MORSE[4]="-.."
MORSE[5]="."
MORSE[6]="..-."
MORSE[7]="--."
MORSE[8]="...."
MORSE[9]=".."
MORSE[10]=".---"
MORSE[11]="-.-"
MORSE[12]=".-.."
MORSE[13]="--"
MORSE[14]="-."
MORSE[15]="---"
MORSE[16]=".--."
MORSE[17]="--.-"
MORSE[18]=".-."
MORSE[19]="..."
MORSE[20]="-"
MORSE[21]="..-"
MORSE[22]="...-"
MORSE[23]=".--"
MORSE[24]="-..-"
MORSE[25]="-.--"
MORSE[26]="--.."
MORSE[27]="-.-.."
MORSE[28]="--.-."
MORSE[29]="----"
MORSE[30]=".---."
MORSE[31]="...-."
MORSE[32]="..--"

literaro = "ABCDEFGHIJKLMNOPQRSTUVWXYZ[@*]$#"

function kodo(litero)
{
	if(litero == " ")
	{
		return " " 
	}

	for(tg=0; tg<=26+6; tg++)
	{
		var LT = literaro.charAt(tg)
		if(LT == litero)
		{
			return MORSE[tg +1] 
		}
	}
	return ""
}

function enmorsigu()
{
	var text = document.getElementById("mfg").enmorsigota.value
	text = text.toUpperCase()
	var MSG = ""
	var LTR = ""
	NUM = text.length
	var flago = "";

	for(t = 0; t <= NUM-1; t++)
	{
		if (text.charAt(t) == '^' || text.charAt(t) == '~')
		{
			LTR = text.charAt(++t)
			switch (LTR) {
				case 'C': case 'c': LTR = "["; flago = "cx"; break;
				case 'G': case 'g': LTR = "@"; flago = "gx"; break;
				case 'H': case 'h': LTR = "*"; flago = "hx"; break;
				case 'J': case 'j': LTR = "]"; flago = "jx"; break;
				case 'S': case 's': LTR = "$"; flago = "sx"; break;
				case 'U': case 'u': LTR = "#"; flago = "ux"; break;
			}
		} else {
			LTR = text.charAt(t)
			flago = text.charAt(t).toLowerCase()
			if (flago == " ") flago = "_"
			else if (flago == "\u0108" || flago == "\u0109") {LTR = "["; flago = "cx"}
			else if (flago == "\u011C" || flago == "\u011D") {LTR = "@"; flago = "gx"}
			else if (flago == "\u0124" || flago == "\u0125") {LTR = "*"; flago = "hx"}
			else if (flago == "\u0134" || flago == "\u0135") {LTR = "]"; flago = "jx"}
			else if (flago == "\u015C" || flago == "\u015D") {LTR = "$"; flago = "sx"}
			else if (flago == "\u016C" || flago == "\u016D") {LTR = "#"; flago = "ux"}
		}
		MSG = MSG + ( kodo(LTR) + " ") ;
	}
	document.getElementById("mfg").elmorsigota.value = MSG

}

function elmorsigu()
{
	var teksto = document.getElementById("mfg").elmorsigota.value;
	teksto = teksto.replace(/^\s*/g,"");
	teksto = teksto.replace(/\s*$/g,"");
	teksto = teksto.replace(/\s/g,"  ");
	var teksto = " "+teksto+" ";
	var literaro2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ\u0108@*]$#"

	for(th=0;th<=25+6;th++)
	{
		AA = "\\s"+MORSE[th +1]+"\\s";
		AA = AA.replace(/\./g,"\\.");
		BB = literaro2.charAt(th);
		//alert(AA);
		//alert(BB);
		var re = new RegExp(AA,"ig");
		teksto = teksto.replace(re,BB);
	}
	document.getElementById("mfg").enmorsigota.value = teksto;
}

