function input_sign(x){
	if (x == "Backspace") {
		x = window.document.input.PrincipiaSearchSource.value;
		window.document.input.PrincipiaSearchSource.value = x.substring(0, x.length - 1);
	}
	else {
		if (window.document.input.Shift.checked == true) {
			window.document.input.Shift.checked = false;
			x = x.toUpperCase();
		}
		if (window.document.input.CapsLock.checked == true) {
			x = x.toUpperCase();
		}
		
		x = window.document.input.PrincipiaSearchSource.value + x;
		window.document.input.PrincipiaSearchSource.value = x;
		//window.document.input.PrincipiaSearchSource.InnerText = x;
		//alert(window.document.selection.TextRange.text);//=x;
	}
	if (window.document.input.AutoSelect.checked == true) {
		window.document.input.PrincipiaSearchSource.select();
		window.document.input.PrincipiaSearchSource.focus();
	}
	return true
	
	
	
	
	
	
	
	
	
	
	
	
	
	var kbdflags = 0;
	var kbdmode = 0;
	var savetext = "";
	var init = '';
	var lines = 1;
	var area = "opener.document.forms." + "form01.word" + ".value";
	var areaexist = false;
	var chars = new Array();
	chars[0] = new Array();
	chars[0][0] = "ё";
	chars[0][1] = "1";
	chars[0][2] = "2";
	chars[0][3] = "3";
	chars[0][4] = "4";
	chars[0][5] = "5";
	chars[0][6] = "6";
	chars[0][7] = "7";
	chars[0][8] = "8";
	chars[0][9] = "9";
	chars[0][10] = "0";
	chars[0][11] = "-";
	chars[0][12] = "=";
	chars[0][13] = "\\";
	chars[0][14] = "й";
	chars[0][15] = "ц";
	chars[0][16] = "у";
	chars[0][17] = "к";
	chars[0][18] = "е";
	chars[0][19] = "н";
	chars[0][20] = "г";
	chars[0][21] = "ш";
	chars[0][22] = "щ";
	chars[0][23] = "з";
	chars[0][24] = "х";
	chars[0][25] = "ъ";
	chars[0][26] = "ф";
	chars[0][27] = "ы";
	chars[0][28] = "в";
	chars[0][29] = "а";
	chars[0][30] = "п";
	chars[0][31] = "р";
	chars[0][32] = "о";
	chars[0][33] = "л";
	chars[0][34] = "д";
	chars[0][35] = "ж";
	chars[0][36] = "э";
	chars[0][37] = "я";
	chars[0][38] = "ч";
	chars[0][39] = "с";
	chars[0][40] = "м";
	chars[0][41] = "и";
	chars[0][42] = "т";
	chars[0][43] = "ь";
	chars[0][44] = "б";
	chars[0][45] = "ю";
	chars[0][46] = ".";
	chars[0][47] = " ";
	chars[1] = new Array();
	chars[1][0] = "Ё";
	chars[1][1] = "!";
	chars[1][2] = "\"";
	chars[1][3] = "№";
	chars[1][4] = ";";
	chars[1][5] = "%";
	chars[1][6] = ":";
	chars[1][7] = "?";
	chars[1][8] = "*";
	chars[1][9] = "(";
	chars[1][10] = ")";
	chars[1][11] = "_";
	chars[1][12] = "+";
	chars[1][13] = "/";
	chars[1][14] = "Й";
	chars[1][15] = "Ц";
	chars[1][16] = "У";
	chars[1][17] = "К";
	chars[1][18] = "Е";
	chars[1][19] = "Н";
	chars[1][20] = "Г";
	chars[1][21] = "Ш";
	chars[1][22] = "Щ";
	chars[1][23] = "З";
	chars[1][24] = "Х";
	chars[1][25] = "Ъ";
	chars[1][26] = "Ф";
	chars[1][27] = "Ы";
	chars[1][28] = "В";
	chars[1][29] = "А";
	chars[1][30] = "П";
	chars[1][31] = "Р";
	chars[1][32] = "О";
	chars[1][33] = "Л";
	chars[1][34] = "Д";
	chars[1][35] = "Ж";
	chars[1][36] = "Э";
	chars[1][37] = "Я";
	chars[1][38] = "Ч";
	chars[1][39] = "С";
	chars[1][40] = "М";
	chars[1][41] = "И";
	chars[1][42] = "Т";
	chars[1][43] = "Ь";
	chars[1][44] = "Б";
	chars[1][45] = "Ю";
	chars[1][46] = ",";
	chars[1][47] = " ";
	chars[2] = new Array();
	chars[2][0] = "`";
	chars[2][1] = "1";
	chars[2][2] = "2";
	chars[2][3] = "3";
	chars[2][4] = "4";
	chars[2][5] = "5";
	chars[2][6] = "6";
	chars[2][7] = "7";
	chars[2][8] = "8";
	chars[2][9] = "9";
	chars[2][10] = "0";
	chars[2][11] = "-";
	chars[2][12] = "=";
	chars[2][13] = "\\";
	chars[2][14] = "q";
	chars[2][15] = "w";
	chars[2][16] = "e";
	chars[2][17] = "r";
	chars[2][18] = "t";
	chars[2][19] = "y";
	chars[2][20] = "u";
	chars[2][21] = "i";
	chars[2][22] = "o";
	chars[2][23] = "p";
	chars[2][24] = "[";
	chars[2][25] = "]";
	chars[2][26] = "a";
	chars[2][27] = "s";
	chars[2][28] = "d";
	chars[2][29] = "f";
	chars[2][30] = "g";
	chars[2][31] = "h";
	chars[2][32] = "j";
	chars[2][33] = "k";
	chars[2][34] = "l";
	chars[2][35] = ";";
	chars[2][36] = "'";
	chars[2][37] = "z";
	chars[2][38] = "x";
	chars[2][39] = "c";
	chars[2][40] = "v";
	chars[2][41] = "b";
	chars[2][42] = "n";
	chars[2][43] = "m";
	chars[2][44] = ",";
	chars[2][45] = ".";
	chars[2][46] = "/";
	chars[2][47] = " ";
	chars[3] = new Array();
	chars[3][0] = "~";
	chars[3][1] = "!";
	chars[3][2] = "@";
	chars[3][3] = "#";
	chars[3][4] = "$";
	chars[3][5] = "%";
	chars[3][6] = "^";
	chars[3][7] = "&";
	chars[3][8] = "*";
	chars[3][9] = "(";
	chars[3][10] = ")";
	chars[3][11] = "_";
	chars[3][12] = "+";
	chars[3][13] = "|";
	chars[3][14] = "Q";
	chars[3][15] = "W";
	chars[3][16] = "E";
	chars[3][17] = "R";
	chars[3][18] = "T";
	chars[3][19] = "Y";
	chars[3][20] = "U";
	chars[3][21] = "I";
	chars[3][22] = "O";
	chars[3][23] = "P";
	chars[3][24] = "{";
	chars[3][25] = "}";
	chars[3][26] = "A";
	chars[3][27] = "S";
	chars[3][28] = "D";
	chars[3][29] = "F";
	chars[3][30] = "G";
	chars[3][31] = "H";
	chars[3][32] = "J";
	chars[3][33] = "K";
	chars[3][34] = "L";
	chars[3][35] = ":";
	chars[3][36] = "\"";
	chars[3][37] = "Z";
	chars[3][38] = "X";
	chars[3][39] = "C";
	chars[3][40] = "V";
	chars[3][41] = "B";
	chars[3][42] = "N";
	chars[3][43] = "M";
	chars[3][44] = "<";
	chars[3][45] = ">";
	chars[3][46] = "?";
	chars[3][47] = " ";
	chars[4] = new Array();
	chars[4][0] = " ";
	chars[4][1] = " ";
	chars[4][2] = " ";
	chars[4][3] = " ";
	chars[4][4] = " ";
	chars[4][5] = " ";
	chars[4][6] = " ";
	chars[4][7] = " ";
	chars[4][8] = " ";
	chars[4][9] = " ";
	chars[4][10] = "°";
	chars[4][11] = "—";
	chars[4][12] = "±";
	chars[4][13] = " ";
	chars[4][14] = " ";
	chars[4][15] = " ";
	chars[4][16] = " ";
	chars[4][17] = "®";
	chars[4][18] = "™";
	chars[4][19] = " ";
	chars[4][20] = " ";
	chars[4][21] = " ";
	chars[4][22] = " ";
	chars[4][23] = "§";
	chars[4][24] = " ";
	chars[4][25] = " ";
	chars[4][26] = " ";
	chars[4][27] = " ";
	chars[4][28] = " ";
	chars[4][29] = " ";
	chars[4][30] = " ";
	chars[4][31] = " ";
	chars[4][32] = " ";
	chars[4][33] = " ";
	chars[4][34] = " ";
	chars[4][35] = " ";
	chars[4][36] = " ";
	chars[4][37] = " ";
	chars[4][38] = " ";
	chars[4][39] = "©";
	chars[4][40] = " ";
	chars[4][41] = " ";
	chars[4][42] = "№";
	chars[4][43] = " ";
	chars[4][44] = "«";
	chars[4][45] = "»";
	chars[4][46] = " ";
	chars[4][47] = " ";
	
	
	function z(){
		window.focus()
	}
	
	function setmode(val){
		kbdflags ^= val;
		with (document.forms.kbd) {
			if (kbdflags & 4) 
				mode[2].checked = true;
			else {
				mode[0].checked = !(kbdflags & 2);
				mode[1].checked = (kbdflags & 2)
			}
			shift.checked = kbdflags & 1;
			kbdmode = (kbdflags > 4) ? 4 : kbdflags;
			for (i = 0; i <= 47; i++) 
				eval("char" + i + ".value=(chars[kbdmode][" + i + "]==' ')?'Неразрывный пробел':chars[kbdmode][" + i + "];");
		}
	}
	
	function checkradio(){
		with (document.forms.kbd) kbdflags = ((shift.checked) ? 1 : 0) | ((mode[1].checked) ? 2 : 0) | ((mode[2].checked) ? 4 : 0);
		setmode(0)
	}
	
	function addchar(val){
		document.forms.input.PrincipiaSearchSource.value += chars[kbdmode][val];
		setmain();
	}
	
	function setmain(){
		if (areaexist) 
			eval(area + "='" + document.forms.input.PrincipiaSearchSource.value + "'")
	}
	
	function doenter(){
		document.forms.input.PrincipiaSearchSource.value += "\n";
		setmain();
	}
	
	function backspace(){
		with (document.forms.input.PrincipiaSearchSource) value = (value.charAt(value.length - 1) == "\n") ? value.substr(0, value.length - 2) : value.substr(0, value.length - 1);
		setmain();
	}
	/*
	 function gettext()
	 {
	 areaexist=(area=="opener.document.forms..value" || opener==null)?false:(""+eval("typeof "+area))=="string";
	 if (areaexist){
	 savetext=eval(area);
	 document.forms.input.PrincipiaSearchSource.value=(init!='')?init:savetext;
	 setmain()
	 }
	 }
	 */
	function restoretext(){
		if (areaexist) {
			document.forms.input.PrincipiaSearchSource.value = savetext;
			setmain();
			window.close()
		}
	}
	
	function puttext(){
		if (areaexist) {
			setmain();
			window.close()
		}
		else {
			if (confirm("Закрыть без сохранения набранного Вами текста?")) 
				window.close();
			else {
				document.forms.input.PrincipiaSearchSource.focus();
				document.forms.input.PrincipiaSearchSource.select();
			}
		}
	}
}


