/*
LICENSE TO USE
You may not sell, rent, or lease the software to others without the prior express, written permission of index group.
*/
var keyboardASCII;
var keyboardState;
var keyboardWidget;
var keyboardTimeDelay=200;
var keyboardPressed;
var keyboardShiftPressed=0;

kkLow=new Array('(', '"', 'ә', 'і', 'ң', 'ғ', ',', '.', 'ү', 'ұ', 'қ', 'ө', 'һ', '\\','й', 'ц', 'у', 'к', 'е', 'н', 'г', 'ш', 'щ', 'з', 'х', 'ъ','ф', 'ы', 'в', 'а', 'п', 'р', 'о', 'л', 'д', 'ж', 'э','я', 'ч', 'с', 'м', 'и', 'т', 'ь', 'б', 'ю', '№');
kkUp=new Array(')', '!', 'Ә', 'І', 'Ң', 'Ғ', ';', ':', 'Ү', 'Ұ', 'Қ', 'Ө', 'Һ', '/','Й', 'Ц', 'У', 'К', 'Е', 'Н', 'Г', 'Ш', 'Щ', 'З', 'Х', 'Ъ','Ф', 'Ы', 'В', 'А', 'П', 'Р', 'О', 'Л', 'Д', 'Ж', 'Э','Я', 'Ч', 'С', 'М', 'И', 'Т', 'Ь', 'Б', 'Ю', '?');


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;
	}
}

languages=new Array("kk");
keyboardSetCodes();
keyboardInit(languages, "kk", "Low", "formsozdik_word");
keyboardShow();


function keyboardLoadLanguages(languages, defaultLanguage)
{
var str='<select id="kblang" name="kblang">';
	for(var i=0; i<languages.length; i++)
	{
	str+='<option value="' + languages[i] + '"';
	if(languages[i]==defaultLanguage) str+=' selected="selected"';
	str+='>' + languages[i].toUpperCase() + '</option>';
	}
str+='</select>';
return str;
}


function keyboardInit(languages, defaultLanguage, defaultState, defaultWidget)
{
keyboardState=defaultState;
keyboardWidget=defaultWidget;
var strlanguages=keyboardLoadLanguages(languages, defaultLanguage);
keyboardCreate(strlanguages);

document.getElementById("caps").onclick=keyboardChangeState;
document.getElementById("backspace").onclick=keyboardBackspacePress;
document.getElementById("del").onclick=keyboardDelPress;
document.getElementById("enter").onclick=keyboardEnterPress;
	for(i=0; i<47; i++)
	{
	eval('document.getElementById("k' + i + '").onclick=keyboardCharClick;');
	}
document.getElementById("kblang").onchange=keyboardSwitch;
keyboardSwitch();
keyboardFocus();
}


function keyboardCreate(strlanguages)
{
var kstr='<input class="keynormal" type="button"';
var str='<div id="keyboard">';
for(i=0; i<14; i++) str+=kstr + ' id="k' + i + '" style="left: ' +(5+ 23*i) + 'px; top: 5px;">';
str+='<input class="keynormal" id="tab" type="button" value="Tab">';
for(i=14; i<26; i++) str+=kstr + ' id="k' + i +'" style="left: ' +(36+ 23*(i-14)) + 'px; top: 28px;">';
str+='<input class="keynormal" id="caps" type="button" value="Caps">';
for(i=26; i<37; i++) str+=kstr + ' id="k' + i + '" style="left: ' +(46+ 23*(i-26)) + 'px; top: 51px;">';
str+='<input class="keynormal" id="shift" type="button" value="Shift">';
for(i=37; i<47; i++) str+=kstr + ' id="k' + i + '" style="left: ' +(56+ 23*(i-37)) + 'px; top: 74px;">';
str+=kstr+' value=" " id="space">'; 
str+='<input class="keynormal" id="backspace" type="button" value="Bs">';
str+='<input class="keynormal" id="del" type="button" value="Del">';
str+='<input class="keynormal" id="enter" type="button" value="Enter">';
str+=strlanguages;
str+='<div id="keyboardcopyright">VirtualKeyboard&trade;<br />&copy; 2003 index group</div>';
str+='</div>';
document.write(str);
}


function keyboardSwitch()
{
var sel=document.getElementById("kblang");
var lang=sel.options[sel.selectedIndex].value;
for(var i=0; i<47; i++) eval('document.getElementById("k' + i + '").value=' + lang + keyboardState + '[i];');
keyboardFocus();
}


function keyboardShow()
{
var kb=document.getElementById("keyboard");
kb.style.display=(kb.style.display=='block')?'none':'block';
keyboardFocus();
}


function keyboardSetButtonsNormal()
{
	for(i=0; i<47; i++)
	{
	eval('document.getElementById("k' + i + '").className="keynormal";');
	}
document.getElementById("backspace").className="keynormal";
document.getElementById("enter").className="keynormal";
document.getElementById("del").className="keynormal";
document.getElementById("shift").className="keynormal";
document.getElementById("caps").className="keynormal";
document.getElementById("space").className="keynormal";
}


function keyboardButtonUp(evt)
{
keyboardStoreCaret();
evt=(evt)?evt:window.event;
	if(keyboardShiftPressed)
	{
		if(evt.keyCode==16)
		{
		keyboardShiftPressed=0;
		keyboardSetButtonsNormal();
		keyboardChangeState();
		}
	}
}


function keyboardButtonPress(keyboardASCII)
{
if(document.getElementById("keyboard").style.visibility=="hidden") return;
keyboardPressed="";
	switch(keyboardASCII)
	{
	case 8:
	keyboardBackspacePress();
	break;
	case 13:
	keyboardEnterPress();
	break;
	case 16:
	keyboardShiftPress();
	return;
	case 20:
	keyboardCapsPress();
	break;
	case 32:
	keyboardPressed="space";
	break;
	case 46:
	keyboardDelPress();
	break;
	default:
		for(i=0; i<47; i++)
		{
			if(keyboardCodes[i]==keyboardASCII)
			{
			keyboardPressed="k" + i;
			}
		}
	}
setTimeout("keyboardSetButtonsNormal()", keyboardTimeDelay);
}


function keyboardChangeState()
{
keyboardState=(keyboardState=="Low")?"Up":"Low";
keyboardSwitch();
}


function keyboardCharClick(obj)
{
evt=(evt)?evt:window.event;
var obj;
	if(evt) // Gecko, Opera
	{
	obj=evt.target;
	}
	else // MSIE
	{
	obj=evt.srcElement;
	}
keyboardPressed=obj.id;
}


function keyboardCharPress()
{
	if(keyboardPressed>"")
	{
	var obj=document.getElementById(keyboardPressed);
	var chr=obj.value;
	obj.className="keypressed";
	setTimeout("keyboardSetButtonsNormal()", keyboardTimeDelay);

	var element;
	element=document.getElementById(keyboardWidget);
	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;
		}
	}
return false;
}


function keyboardStoreCaret()
{
var element;
eval('element=document.getElementById("' + keyboardWidget + '");');
if (typeof(document.selection) != 'undefined' && typeof(document.selection.createRange) != 'undefined')
element.caretPos=document.selection.createRange().duplicate();
}


function keyboardBackspacePress()
{
var element;
element=document.getElementById(keyboardWidget);
if (!element) return;
element.focus();
	if(typeof(element.selectionStart) != 'undefined')
	{
	var newPos = element.selectionStart - 1;
	element.value = element.value.substring(0, element.selectionStart-1) + element.value.substring(element.selectionEnd, element.value.length);
	element.setSelectionRange(newPos, newPos);
	element.focus();
	}
	else
	{
	textrange=document.selection.createRange();
		if(!textrange.text>"")
		{
		textrange.moveStart("character", -1);
		}
	textrange.text="";
	}
document.getElementById("backspace").className="keypressed";
}


function keyboardCapsPress()
{
keyboardChangeState();
document.getElementById("caps").className="keypressed";
}


function keyboardDelPress()
{
var element;
element=document.getElementById(keyboardWidget);
if (!element) return;
element.focus();
	if(typeof(element.selectionStart) != 'undefined')
	{
	var newPos = element.selectionEnd;
	element.value = element.value.substring(0, element.selectionStart) + element.value.substring(element.selectionEnd+1, element.value.length);
	element.setSelectionRange(newPos, newPos);
	element.focus();
	}
	else
	{
	textrange=document.selection.createRange();
	if(!textrange.text>"")
	textrange.moveEnd("character", 1);
	textrange.text="";
	}
document.getElementById("del").className="keypressed";
}


function keyboardEnterPress()
{
document.getElementById("enter").className="keypressed";
}


function keyboardShiftPress()
{
	if(!keyboardShiftPressed)
	{
	keyboardShiftPressed=1;
	keyboardChangeState();
	}
document.getElementById("shift").className="keypressed";
}


function keyboardTabPress()
{
document.getElementById("tab").className="keypressed";
}


function keyboardFocus()
{
var element;
eval('element=document.getElementById("' + keyboardWidget + '");');
if (!element) return;
element.focus();
}