vanha_merkki = new Array("ƒ","Š","Œ","š","œ","Ÿ","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý"," ");
uusi_merkki  = new Array("f","s","o","s","o","y","a","a","a","a","a","a","a","c","e","e","e","e","i","i","i","i","d","n","o","o","o","o","o","o","u","u","u","u","y","s","a","a","a","a","a","a","a","c","e","e","e","e","i","i","i","i","o","n","o","o","o","o","o","o","u","u","u","u","y","");

http = new Array(124)
for (j = 0; j < 124; j++) { http[j] = new Array(2) }
http[0][0] = "!"; http[0][1] = "%21"; http[1][0] = '"'; http[1][1] = '%22'
http[2][0] = "#"; http[2][1] = "%23"; http[3][0] = "$"; http[3][1] = "%24"
http[4][0] = "%"; http[4][1] = "%25"; http[5][0] = "'"; http[5][1] = "%27"
http[6][0] = "("; http[6][1] = "%28"; http[7][0] = ")"; http[7][1] = "%29"
http[8][0] = "*"; http[8][1] = "%2A"; http[9][0] = "+"; http[9][1] = "%2B"
http[10][0] = ","; http[10][1] = "%2C"; http[11][0] = "-"; http[11][1] = "%2D"
http[12][0] = "."; http[12][1] = "%2E"; http[13][0] = "/"; http[13][1] = "%2F"
http[14][0] = ":"; http[14][1] = "%3A"; http[15][0] = ";"; http[15][1] = "%3B"
http[16][0] = "<"; http[16][1] = "%3C"; http[17][0] = ">"; http[17][1] = "%3E"
http[18][0] = "@"; http[18][1] = "%40"; http[19][0] = "["; http[19][1] = "%5B"
http[20][0] = '\\'; http[20][1] = '%5C'; http[21][0] = ']'; http[21][1] = '%5D'
http[22][0] = "^"; http[22][1] = "%5E"; http[23][0] = "_"; http[23][1] = "%5F"
http[24][0] = "`"; http[24][1] = "%60"; http[25][0] = "{"; http[25][1] = "%7B"
http[26][0] = "|"; http[26][1] = "%7C"; http[27][0] = "}"; http[27][1] = "%7D"
http[28][0] = "~"; http[28][1] = "%7E"; http[29][0] = "¡"; http[29][1] = "%A1"
http[30][0] = "¢"; http[30][1] = "%A2"; http[31][0] = "£"; http[31][1] = "%A3"
http[32][0] = "¤"; http[32][1] = "%A4"; http[33][0] = "¥"; http[33][1] = "%A5"
http[34][0] = "¦"; http[34][1] = "%A6"; http[35][0] = "§"; http[35][1] = "%A7"
http[36][0] = "¨"; http[36][1] = "%A8"; http[37][0] = "©"; http[37][1] = "%A9"
http[38][0] = "ª"; http[38][1] = "%AA"; http[39][0] = "«"; http[39][1] = "%AB"
http[40][0] = "¬"; http[40][1] = "%AC"; http[41][0] = "­"; http[41][1] = "%AD"
http[42][0] = "®"; http[42][1] = "%AE"; http[43][0] = "¯"; http[43][1] = "%AF"
http[44][0] = "°"; http[44][1] = "%B0"; http[45][0] = "±"; http[45][1] = "%B1"
http[46][0] = "²"; http[46][1] = "%B2"; http[47][0] = "³"; http[47][1] = "%B3"
http[48][0] = "´"; http[48][1] = "%B4"; http[49][0] = "µ"; http[49][1] = "%B5"
http[50][0] = "¶"; http[50][1] = "%B6"; http[51][0] = "·"; http[51][1] = "%B7"
http[52][0] = "¸"; http[52][1] = "%B8"; http[53][0] = "¹"; http[53][1] = "%B9"
http[54][0] = "º"; http[54][1] = "%BA"; http[55][0] = "»"; http[55][1] = "%BB"
http[56][0] = "¼"; http[56][1] = "%BC"; http[57][0] = "½"; http[57][1] = "%BD"
http[58][0] = "¾"; http[58][1] = "%BE"; http[59][0] = "¿"; http[59][1] = "%BF"
http[60][0] = "À"; http[60][1] = "%C0"; http[61][0] = "Á"; http[61][1] = "%C1"
http[62][0] = "Â"; http[62][1] = "%C2"; http[63][0] = "Ã"; http[63][1] = "%C3"
http[64][0] = "Ä"; http[64][1] = "%C4"; http[65][0] = "Å"; http[65][1] = "%C5"
http[66][0] = "Æ"; http[66][1] = "%C6"; http[67][0] = "Ç"; http[67][1] = "%C7"
http[68][0] = "È"; http[68][1] = "%C8"; http[69][0] = "É"; http[69][1] = "%C9"
http[70][0] = "Ê"; http[70][1] = "%CA"; http[71][0] = "Ë"; http[71][1] = "%CB"
http[72][0] = "Ì"; http[72][1] = "%CC"; http[73][0] = "Í"; http[73][1] = "%CD"
http[74][0] = "Î"; http[74][1] = "%CE"; http[75][0] = "Ï"; http[75][1] = "%CF"
http[76][0] = "Ð"; http[76][1] = "%D0"; http[77][0] = "Ñ"; http[77][1] = "%D1"
http[78][0] = "Ò"; http[78][1] = "%D2"; http[79][0] = "Ó"; http[79][1] = "%D3"
http[80][0] = "Ô"; http[80][1] = "%D4"; http[81][0] = "Õ"; http[81][1] = "%D5"
http[82][0] = "Ö"; http[82][1] = "%D6"; http[83][0] = "×"; http[83][1] = "%D7"
http[84][0] = "Ø"; http[84][1] = "%D8"; http[85][0] = "Ù"; http[85][1] = "%D9"
http[86][0] = "Ú"; http[86][1] = "%DA"; http[87][0] = "Û"; http[87][1] = "%DB"
http[88][0] = "Ü"; http[88][1] = "%DC"; http[89][0] = "Ý"; http[89][1] = "%DD"
http[90][0] = "Þ"; http[90][1] = "%DE"; http[91][0] = "ß"; http[91][1] = "%DF"
http[92][0] = "à"; http[92][1] = "%E0"; http[93][0] = "á"; http[93][1] = "%E1"
http[94][0] = "â"; http[94][1] = "%E2"; http[95][0] = "ã"; http[95][1] = "%E3"
http[96][0] = "ä"; http[96][1] = "%E4"; http[97][0] = "å"; http[97][1] = "%E5"
http[98][0] = "æ"; http[98][1] = "%E6"; http[99][0] = "ç"; http[99][1] = "%E7"
http[100][0] = "è"; http[100][1] = "%E8"; http[101][0] = "é"; http[101][1] = "%E9"
http[102][0] = "ê"; http[102][1] = "%EA"; http[103][0] = "ë"; http[103][1] = "%EB"
http[104][0] = "ì"; http[104][1] = "%EC"; http[105][0] = "í"; http[105][1] = "%ED"
http[106][0] = "î"; http[106][1] = "%EE"; http[107][0] = "ï"; http[107][1] = "%EF"
http[108][0] = "ð"; http[108][1] = "%F0"; http[109][0] = "ñ"; http[109][1] = "%F1"
http[110][0] = "ò"; http[110][1] = "%F2"; http[111][0] = "ó"; http[111][1] = "%F3"
http[112][0] = "ô"; http[112][1] = "%F4"; http[113][0] = "õ"; http[113][1] = "%F5"
http[114][0] = "ö"; http[114][1] = "%F6"; http[115][0] = "÷"; http[115][1] = "%F7"
http[116][0] = "ø"; http[116][1] = "%F8"; http[117][0] = "ù"; http[117][1] = "%F9"
http[118][0] = "ú"; http[118][1] = "%FA"; http[119][0] = "û"; http[119][1] = "%FB"
http[120][0] = "ü"; http[120][1] = "%FC"; http[121][0] = "ý"; http[121][1] = "%FD"
http[122][0] = "þ"; http[122][1] = "%FE"; http[123][0] = "ÿ"; http[123][1] = "%FF"

aateliset = new Array('af ','von ','van ','le ','de la ','la ','ja ','och ')


function korvaa_merkit(korvattava)
{
var korvattu = ""
var kok = false
var km = ""

for (kx = 0; kx < korvattava.length; kx++)
	{
	kok = false;
	km = korvattava.substring(kx, kx+1);
	for (vx = 0; vx < vanha_merkki.length; vx++)
		{
		if (km == vanha_merkki[vx])
			{
			korvattu += uusi_merkki[vx] ;
			kok = true;
			}
		}
	if (!kok) { korvattu += km.toLowerCase() }
	}
return korvattu;
}


function korvaa_koodit(korvattava)
{
var tyotila = ''
var korvattu = false

for (i = 0;  i < korvattava.length;  i++)
	{
	korvattu = false
	for (k = 0;  k < http.length;  k++)
		{
		if (korvattava.substring(i,i+1) == http[k][0])
			{
			tyotila += http[k][1]
			korvattu = true
			}
		}
	if (korvattava.substring(i,i+1) == " ")
		{
		tyotila += "+"
		korvattu = true
		}
	if (!korvattu) tyotila += korvattava.substring(i,i+1)
	}
return tyotila
}


function palauta_koodit(korvattava)
{
var tyotila = ''
var korvattu = false

for (i = 0;  i < korvattava.length;  i++)
	{
	korvattu = false
	for (k = 0;  k < http.length;  k++)
		{
		if (korvattava.substring(i,i+http[k][1].length) == http[k][1])
			{
			tyotila += http[k][0]
			korvattu = true
			i += http[k][1].length - 1
			}
		}
	if (korvattava.substring(i,i+1) == "+") { tyotila += " "; korvattu = true }
	if (korvattava.substring(i,i+3) == "%0A") { tyotila += '\r'; korvattu = true; i += 2 }
	if (korvattava.substring(i,i+3) == "%0D") { tyotila += '\n'; korvattu = true; i += 2 }

	if (!korvattu) tyotila += korvattava.substring(i,i+1)
	}
return tyotila
}


function korvaa(korvauksenkohde, korvattava, korvaaja)
{
var tyotila = korvauksenkohde
var pos = 0
while (tyotila.indexOf(korvattava) > -1)
	{
	pos = tyotila.indexOf(korvattava);
	tyotila = "" + (tyotila.substring(0, pos) + korvaaja + 
	tyotila.substring((pos + korvattava.length), tyotila.length));
	}
return tyotila
}


function ekakirjainIsoksi(kohde)
{
var ek = kohde.value
kohde.value = ek.substring(0,1).toUpperCase() + ek.substring(1,ek.length)
}


function numeerista(tarkista, pituus)
{
var numerot = '0123456789';
var kunnossa = true;

if (pituus && (tarkista.length == 0)) { kunnossa = false; }

  for (i = 0;  i < tarkista.length;  i++)
  {
    ch = tarkista.charAt(i);
    for (j = 0;  j < numerot.length;  j++)
      if (ch == numerot.charAt(j))
        break;
    if (j == numerot.length)
    {
      kunnossa = false;
      break;
    }
  }
return (kunnossa);
}


function puh_numeerista(tarkista)
{
var numerot = '0123456789-()+/ ';
var kunnossa = true;

  for (i = 0;  i < tarkista.length;  i++)
  {
    ch = tarkista.charAt(i);
    for (j = 0;  j < numerot.length;  j++)
      if (ch == numerot.charAt(j))
        break;
    if (j == numerot.length)
    {
      kunnossa = false;
      break;
    }
  }
return (kunnossa);
}


function aakkosia(tarkista, lisat)
{
var merkit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzƒŠŒšœŸÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ- '+lisat;
var kunnossa = true;

  for (i = 0;  i < tarkista.length;  i++)
  {
    ch = tarkista.charAt(i);
    for (j = 0;  j < merkit.length;  j++)
      if (ch == merkit.charAt(j))
        break;
    if (j == merkit.length)
    {
      kunnossa = false;
      break;
    }
  }
return (kunnossa);
}


function aakkos_numeerista(tarkista, lisamerkit)
{
var merkit = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖÜabcdefghijklmnopqrstuvwxyzåäöáéü 0123456789'
merkit += lisamerkit
var kunnossa = true;

  for (i = 0;  i < tarkista.length;  i++)
  {
    ch = tarkista.charAt(i);
    for (j = 0;  j < merkit.length;  j++)
      if (ch == merkit.charAt(j))
        break;
    if (j == merkit.length)
    {
      kunnossa = false;
      break;
    }
  }
return (kunnossa);
}


function sallitut_merkit(tarkista, lista)
{
var merkit = lista;
var kunnossa = true;

  for (i = 0;  i < tarkista.length;  i++)
  {
    ch = tarkista.charAt(i);
    for (j = 0;  j < merkit.length;  j++)
      if (ch == merkit.charAt(j))
        break;
    if (j == merkit.length)
    {
      kunnossa = false;
      break;
    }
  }
return (kunnossa);
}


function kielletyt_merkit(tarkista, lista)
{
for (i = 0;  i < tarkista.length;  i++)
	{
	merkki = tarkista.charAt(i);
	for (j = 0;  j < lista.length;  j++)
		{
		if (merkki == lista.charAt(j)) return true;
		break;
		}
	}
return false
}


function kaikki_isoja(tarkista)
{
var merkit = 'abcdefghijklmnopqrstuvwxyzåäöáéü'

for (i = 0;  i < tarkista.length;  i++)
	{
	merkki = tarkista.charAt(i);
	for (j = 0;  j < merkit.length;  j++)
		{ if (merkki == merkit.charAt(j)) return true }
	}
return false;
}


function puhnro_asetus(nro)
{
etu = new Array(
	"+1",
	"+20",
	"+212",
	"+213",
	"+216",
	"+218",
	"+220",
	"+221",
	"+222",
	"+223",
	"+224",
	"+225",
	"+226",
	"+227",
	"+228",
	"+229",
	"+230",
	"+231",
	"+232",
	"+233",
	"+234",
	"+235",
	"+236",
	"+237",
	"+238",
	"+239",
	"+240",
	"+241",
	"+242",
	"+243",
	"+244",
	"+245",
	"+246",
	"+247",
	"+248",
	"+249",
	"+250",
	"+251",
	"+252",
	"+253",
	"+254",
	"+255",
	"+256",
	"+257",
	"+258",
	"+260",
	"+261",
	"+262",
	"+263",
	"+264",
	"+265",
	"+266",
	"+267",
	"+268",
	"+269",
	"+269",
	"+27",
	"+290",
	"+291",
	"+297",
	"+298",
	"+299",
	"+30",
	"+31",
	"+32",
	"+33",
	"+34",
	"+350",
	"+351",
	"+352",
	"+353",
	"+354",
	"+355",
	"+356",
	"+357",
	"+358",
	"+359",
	"+36",
	"+370",
	"+371",
	"+372",
	"+373",
	"+374",
	"+375",
	"+376",
	"+377",
	"+378",
	"+380",
	"+381",
	"+382",
	"+385",
	"+386",
	"+387",
	"+389",
	"+39",
	"+39",
	"+40",
	"+41",
	"+420",
	"+421",
	"+423",
	"+43",
	"+44",
	"+45",
	"+46",
	"+47",
	"+48",
	"+49",
	"+500",
	"+501",
	"+502",
	"+503",
	"+504",
	"+505",
	"+506",
	"+507",
	"+508",
	"+509",
	"+51",
	"+52",
	"+53",
	"+54",
	"+55",
	"+56",
	"+57",
	"+58",
	"+590",
	"+591",
	"+592",
	"+593",
	"+594",
	"+595",
	"+596",
	"+597",
	"+598",
	"+599",
	"+60",
	"+61",
	"+62",
	"+63",
	"+64",
	"+65",
	"+66",
	"+670",
	"+672",
	"+672",
	"+673",
	"+674",
	"+675",
	"+676",
	"+677",
	"+678",
	"+679",
	"+680",
	"+681",
	"+682",
	"+683",
	"+685",
	"+686",
	"+687",
	"+688",
	"+689",
	"+690",
	"+691",
	"+692",
	"+7",
	"+7",
	"+81",
	"+82",
	"+84",
	"+850",
	"+852",
	"+853",
	"+855",
	"+856",
	"+86",
	"+880",
	"+886",
	"+90",
	"+91",
	"+92",
	"+93",
	"+94",
	"+95",
	"+960",
	"+961",
	"+962",
	"+963",
	"+964",
	"+965",
	"+966",
	"+967",
	"+968",
	"+970",
	"+971",
	"+972",
	"+973",
	"+974",
	"+975",
	"+976",
	"+977",
	"+98",
	"+992",
	"+993",
	"+994",
	"+995",
	"+996",
	"+998",
	"0400",
	"020",
	"040",
	"041",
	"0440",
	"044",
	"045",
	"049",
	"0500",
	"050",
	"02",
	"03",
	"05",
	"06",
	"0800",
	"08",
	"09",
	"010",
	"013",
	"014",
	"015",
	"016",
	"017",
	"018",
	"019")


var suunta = ""
var numero = ""
if (!nro) return ''
var numero_osa = korvaa(nro,' ','')
numero_osa = korvaa(numero_osa,'/','')
numero_osa = korvaa(numero_osa,'-','')

for (e = 0;  e < etu.length;  e++)
	{
	if (numero_osa.substring(0,etu[e].length) == etu[e])
		{
		suunta = etu[e] + " "
		numero_osa = numero_osa.substring(etu[e].length, numero_osa.length)
		break
		}

	if (numero_osa.substring(0,etu[e].length+2) == "("+etu[e]+")")
		{
		suunta = "("+etu[e]+")" + " "
		numero_osa = numero_osa.substring(etu[e].length+2, numero_osa.length)
		break
		}
	}

ryhmitys = new Array(16)
ryhmitys[1] = new Array('1','0','0','0','0')
ryhmitys[2] = new Array('2','0','0','0','0')
ryhmitys[3] = new Array('3','0','0','0','0')
ryhmitys[4] = new Array('1','3','0','0','0')
ryhmitys[5] = new Array('2','3','0','0','0')
ryhmitys[6] = new Array('3','3','0','0','0')
ryhmitys[7] = new Array('3','4','0','0','0')
ryhmitys[8] = new Array('4','4','0','0','0')
ryhmitys[9] = new Array('3','3','3','0','0')
ryhmitys[10] = new Array('3','3','4','0','0')
ryhmitys[11] = new Array('2','3','3','3','0')
ryhmitys[12] = new Array('3','3','3','3','0')
ryhmitys[13] = new Array('3','3','3','4','0')
ryhmitys[14] = new Array('2','3','3','3','3')
ryhmitys[15] = new Array('3','3','3','3','3')

if (numero_osa.length <= 15)
	{
	px = 0;
	pp = 0;
	for (p = 0; p < 5; p++)
		{
		pp = parseInt(ryhmitys[numero_osa.length][p])
		if (pp > 0)
			{
			numero += numero_osa.substring(px, (pp+px)) + " "
			px = pp + px
			}
		}
	numero_osa = numero
	}

if (numero_osa.lastIndexOf(' ') == (numero_osa.length-1))
	{ numero_osa = numero_osa.substring(0,numero_osa.length-1) 	}

return (suunta + numero_osa)
}


