// 0 - generic (Netscape,Mozilla), 1 - IE (IE,Opera)
browser	= navigator.appName.substr(0,9)=="Microsoft"?1:0;

map		= new Array;
map[1]	= [33,1063,43,34,37,58,1095,95,8470,47,86,1088,45,1083,1073,48,49,50,51,52,53,54,55,56,57,1052,1084,1056,46,1051,1041,63,1068,1060,1066,1040,1045,1054,1046,1043,1057,1058,1053,1042,1055,1061,1044,1047,1099,1048,1071,1064,1050,1069,1059,1049,1065,1070,1094,40,59,61,1030,96,1100,1092,1098,1072,1077,1086,1078,1075,1089,1090,1085,1074,1087,1093,1076,1079,44,1080,1103,1096,1082,1101,1091,1081,1097,1102,1062,41,167,126];
map[2]	= [33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1066,1047,1096,1102,1097,8470,95,1095,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1098,1079,1064,1070,1065,1063];

kb		= map.length;
kbs		= ["EN", "BG", "BP"];
fcolor	= ["#ffffff", "#df002b", "#ffffff"];
bcolor	= ["#000000", "#ffffff", "#df002b"];

sty		= "font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;font-weight:bold;float:left;height:19px;width:19px;text-align:center;border:1px solid #000000;line-height:17px;margin-right: 1px;";


function kbsChangeElem(elem) {
	switch (browser) {
		case (1):
			elem.innerText		= kbs[kb];
			break;
		default:
			elem.textContent	= kbs[kb];
	}
	
	elem.style.color			= fcolor[kb];
	elem.style.backgroundColor	= bcolor[kb];
}

function kbsChange() {
	kb++;
	if (kb >= map.length)
		kb	= 0;

	l_layout	= browser?document.all["lcLayout"]:document.getElementsByName("lcLayout");
	if (l_layout.length>0)
		for (e=0; e<l_layout.length; e++)
			kbsChangeElem(l_layout[e]);
	else
		kbsChangeElem(l_layout);
	
	setCookie("kiril", kb);
}

function outKeyP(ev) {
	if (browser) {
		ev		= window.event;
		key		= ev.keyCode;
		elem	= ev.srcElement;
	} else {
		key		= ev.which
		elem	= ev.target
	}
	
	b_res	= true;
	if (kb && (key >= 33 && key <= 126)) {
		if (elem.type == "textarea" || elem.type == "text") {
			key		-= 33;
			
			switch (browser) {
				case (1):
					ev.keyCode	= map[kb][key];
					break;
				default:
					elem.value	+= String.fromCharCode(map[kb][key]);
					b_res	= false;
			}
		}
	}

	return b_res;
}

function initElem(elem) {
	elem.onclick	= kbsChange;
	
	switch (browser) {
		case (1):
			sty	= sty.split(/[:;]/);
			for (i=0; i<sty.length; i+=2)
				elem.style[sty[i]]	= sty[i+1];
			break;
		default:
			elem.setAttribute("style", sty);
	}
	
	elem.style.textAlign	= "center";
}

function init() {
	kb=null;
	if (kb==null)
		kb	= map.length;
	
	document.onkeypress	= outKeyP;
	
	l_layout	= browser?document.all["lcLayout"]:document.getElementsByName("lcLayout");
	if (l_layout.length>0)
		for (e=0; e<l_layout.length; e++)
			initElem(l_layout[e]);
	else
		initElem(l_layout);
	
	kbsChange();
}

init();
