﻿/*
LICENSE TO USE
You may not sell, rent, or lease this code to others without the prior express, written permission of index group (www.index.kz).
*/

var isDOM=document.getElementById?1:0; // DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
var isOpera=(window.opera && isDOM)?1:0; // Opera 5+
var isMSIE=(document.all && document.all.item && !isOpera)?1:0; // IE 4+
var isMozilla=(isDOM && navigator.appName=="Netscape")?1:0;
var kkLow=new Array('(', '"', 'ә', 'і', 'ң', 'ғ', ',', '.', 'ү', 'ұ', 'қ', 'ө', 'һ', '\\','й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ','ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э','я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '№');
var keyboardCodes;
var keyboardPressed;
keyboardSetCodes();

document.getElementById("word").onkeydown=keyboardButtonPress;
document.getElementById("word").onkeypress=keyboardButtonChange;

function keyboardSetCodes()
{
keyboardCodes=new Array(
192, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 189, 187, 220,
81, 87, 69, 82, 84, 89, 85, 73, 79, 80, 219, 221,
65, 83, 68, 70, 71, 72, 74, 75, 76, 186, 222,
90, 88, 67, 86, 66, 78, 77, 188, 190, 191
);

	if(isOpera)
	{
	keyboardCodes[0]=96;
	keyboardCodes[11]=45;
	keyboardCodes[12]=61;
	keyboardCodes[13]=92;
	keyboardCodes[24]=91;
	keyboardCodes[25]=93;
	keyboardCodes[35]=59;
	keyboardCodes[36]=39;
	keyboardCodes[44]=44;
	keyboardCodes[45]=46;
	keyboardCodes[46]=47;
	}

	if(isMozilla)
	{
	keyboardCodes[11]=109;
	keyboardCodes[12]=61;
	keyboardCodes[35]=59;
	}
}


function keyboardButtonPress(evt)
{
evt=(evt)?evt:window.event;
keyboardPressed=0;
var keyboardASCII=evt.keyCode;
var i;
	for(i=0; i<keyboardCodes.length; i++)
	{
		if(keyboardCodes[i]==keyboardASCII)
		{
		keyboardPressed=i;
		break;
		}
	}
}


function keyboardButtonChange(evt)
{
var elem;
	if(evt) // Gecko, Opera
	{
	elem=evt.target;
	}
	else // MSIE
	{
	evt=window.event;
	elem=evt.srcElement;
	}
	if(keyboardPressed)
	{
	keyboardCharPress(kkLow[keyboardPressed], elem);
	return false;
	}
return true;
}


function keyboardCharPress(chr, element)
{
if (!element) return;
element.focus();
	if (typeof(element.caretPos) != 'undefined')
	{
	element.caretPos.text = chr;
	}
	else if (typeof(element.selectionStart) != 'undefined')
	{
	var newPos = element.selectionEnd + 1;
	element.value = element.value.substring(0, element.selectionStart) + chr + element.value.substring(element.selectionEnd, element.value.length);
	element.setSelectionRange(newPos, newPos);
	}
	else
	{
	element.value += chr;
	}
}