map = new Object();
map[0] = "_on"
map[1] = "_off"

if (document.images) 
{ 
images = new Object();
images.lshift_on = new Image();
images.lshift_on.src = "/images/keyboard/lshift.gif";
images.lshift_off = new Image();
images.lshift_off.src = "/images/keyboard/lshift_roll.gif";
images.rshift_on = new Image();
images.rshift_on.src = "/images/keyboard/rshift.gif";
images.rshift_off = new Image();
images.rshift_off.src = "/images/keyboard/rshift_roll.gif";
images.caps_on = new Image();
images.caps_on.src = "/images/keyboard/caps.gif";
images.caps_off = new Image();
images.caps_off.src = "/images/keyboard/caps_roll.gif";
}

var enc = 0;
var shift = 0;
var caps = 0;
var k = new Array();
k["~"]  = new Array("`", "~");
k["1"]  = new Array("1", "!");
k["2"]  = new Array("2", "@");
k["3"]  = new Array("3", "#");
k["4"]  = new Array("4", "$");
k["5"]  = new Array("5", "%");
k["6"]  = new Array("6", "^");
k["7"]  = new Array("7", "&");
k["8"]  = new Array("8", "*");
k["9"]  = new Array("9", "(");
k["0"]  = new Array("0", ")");
k["+"]  = new Array("=", "+");
k["-"]  = new Array("-", "_");
k["q"]  = new Array("é", "É");
k["w"]  = new Array("ö", "Ö");
k["e"]  = new Array("ó", "Ó");
k["r"]  = new Array("ê", "Ê");
k["t"]  = new Array("å", "Å");
k["y"]  = new Array("í", "Í");
k["u"]  = new Array("ã", "Ã");
k["i"]  = new Array("ø", "Ø");
k["o"]  = new Array("ù", "Ù");
k["p"]  = new Array("ç", "Ç");
k["ha"]  = new Array("õ", "Õ");
k["tv"]  = new Array("ü", "Ú");
k["quote"]  = new Array("\"", "'");
k["a"]  = new Array("ô", "Ô");
k["s"]  = new Array("û", "Û");
k["d"]  = new Array("â", "Â");
k["f"]  = new Array("à", "À");
k["g"]  = new Array("ï", "Ï");
k["h"]  = new Array("ð", "Ð");
k["j"]  = new Array("î", "Î");
k["k"]  = new Array("ë", "Ë");
k["l"]  = new Array("ä", "Ä");
k["zhe"]  = new Array("æ", "Æ");
k["aa"]  = new Array("ý", "Ý");
k["enter"]  = new Array("\n", "\n");
k["z"]  = new Array("ÿ", "ß");
k["x"]  = new Array("÷", "×");
k["c"]  = new Array("ñ", "Ñ");
k["v"]  = new Array("ì", "Ì");
k["b"]  = new Array("è", "È");
k["n"]  = new Array("ò", "Ò");
k["m"]  = new Array("ü", "ü");
k["be"]  = new Array("á", "Á");
k["yu"]  = new Array("þ", "Þ");
k["space"]  = new Array(" ", " ");
k["curve"]  = new Array("{", "}");
k["brocket"]  = new Array("<", ">");
k["bracket"]  = new Array("[", "]");
k["bslash"]  = new Array("\\", "|");
k["fslash"]  = new Array("/", "?");
k["coma"]  = new Array(",", ",");
k["colon"]  = new Array(":", ":");
k["semicolon"]  = new Array(";", ";");
k["dot"]  = new Array(".", ".");
k[""]  = new Array("", "");

function press(sym)
{
	switch (sym)
	{
		case "back":
			document.out.field.value = document.out.field.value.substring(0, document.out.field.value.length - 1);
			break;
		case "shift":
			if (shift) shift = 0; else shift = 1;
			imgact("rshift", "rshift", shift);
			imgact("lshift", "lshift", shift);
			break;	
		case "caps":
			if (caps) caps = 0; else caps = 1;
			imgact("caps", "caps", caps);
			break;
		default:
			document.out.field.value += k[sym][(enc << 1) + (shift ^ caps)];
			shift = 0;
			imgact("rshift", "rshift", shift);
			imgact("lshift", "lshift", shift);
	}
}

function imgact(loc, id, act)
{
	if(document.images) document.images[id].src = eval( "images." + loc + map[act] + ".src");
}
