// vkb_load.js of Cyrillic Virtual Keyboard (see http://WinRus.com/scrdoc_e.htm)

  
 // Change Path to  vkb  folder (below) _if necessary_, f.e. to "/vkb/" - child of root directory 
 // ИзменИте путь к папке  vkb (см. ниже) _если нужно_, например на "/vkb/" - папка vkb в корневом каталоге
 
 // same can be done in .HTML via parameter   vkb_Path (see readme_e.htm)
 // то же самое можно сделать, задав в .HTML параметр  vkb_Path (см. readme_r.htm)

if (typeof vkb_Path == 'undefined') 

    vkb_Path = "vkb/";   // Folder  vkb  - under a folder with a Keyboard's page
                         // Папка   vkb  - под-каталог того каталога, где лежит страница с Клавиатурой


 // Виртуальная Клавиатура. Павел Городянский (см. http://WinRus.com/scrdoc_r.htm)
  
 //  ** this file is in Cyrillic windows-1251 encoding
 //  ** этот файл - в кодировке Cyrillic windows-1251 
 // 
 //  The encoding MUST be specified in HTML file which loads this .js
 //  Поэтому кодировка должна быть указана в том HTML файле, который загружает данный .js:
 //
 //  <script type='text/javascript' src='vkb/vkb_load.js' charset='windows-1251'></script>
 //

vkb_JSwasLoaded = true;
var vkb_JScookieWasLoaded = false; var vkb_cookieName = "vkb_KbdVariant";
var vkb_Netscape, vkb_MSIE, vkb_Opera, vkb_Unknown, vkb_NN1, vkb_NN2, vkb_Ffox=false, vkb_n, vkb_Br = "0";
var vkb_Win, vkb_Mac, vkb_Other, vkb_NetscapeVer, vkb_MSIEVer, vkb_OperaVer=0, vkb_strOperaPos, vkb_NetscapeOK;

vkb_Netscape = navigator.appName == "Netscape"; vkb_MSIE = navigator.appName == "Microsoft Internet Explorer";
vkb_Opera = navigator.userAgent.indexOf("Opera") > -1; vkb_Unknown = !(vkb_Netscape || vkb_MSIE || vkb_Opera);
vkb_NetscapeOK = false;

vkb_Win = navigator.userAgent.indexOf("Win") > -1; vkb_Mac = navigator.userAgent.indexOf("Mac") > -1; vkb_Other = !(vkb_Win || vkb_Mac);
if(vkb_Netscape) {
  vkb_NetscapeVer = parseFloat(navigator.appVersion);
  if (vkb_NetscapeVer>4) {
    vkb_n = navigator.userAgent;
    if (vkb_n.indexOf("Netscape/") != -1) {vkb_NN1 = vkb_n.substr(vkb_n.indexOf("Netscape/")+9); vkb_NN1 = parseFloat(vkb_NN1); }
    vkb_NN1 = vkb_n.substr(vkb_n.indexOf("rv:")+3); vkb_NN1 = parseFloat(vkb_NN1); if (vkb_NN1 >= "1.3") vkb_NetscapeOK = true;
  }
  if (vkb_NetscapeOK) { vkb_Br="NN"; if (vkb_n.indexOf("Firefox") != -1) vkb_Ffox = true; }
}
else if(vkb_MSIE) {
  vkb_n = navigator.userAgent; vkb_MSIEVer = vkb_n.substr(vkb_n.indexOf("MSIE ")+("MSIE ").length, 4);
  vkb_MSIEVer = parseFloat(vkb_MSIEVer); 
  if(vkb_Opera) {
    vkb_strOperaPos = vkb_n.indexOf("Opera/"); // "Opera ", "Opera/"
    if (vkb_strOperaPos == -1) vkb_OperaVer = vkb_n.substr(vkb_n.indexOf("Opera ")+("Opera ").length, 4);
    else vkb_OperaVer = vkb_n.substr(vkb_strOperaPos + ("Opera/").length, 4);    
    vkb_OperaVer = parseFloat(vkb_OperaVer);
  }
  else vkb_Br = "IE";
}
else if(vkb_Opera) {  // Opera as "Opera"
  vkb_n = navigator.userAgent; vkb_strOperaPos = vkb_n.indexOf("Opera/"); // "Opera " or "Opera/"
  if (vkb_strOperaPos == -1) vkb_OperaVer = vkb_n.substr(vkb_n.indexOf("Opera ")+("Opera ").length, 4);
  else vkb_OperaVer = vkb_n.substr(vkb_strOperaPos + ("Opera/").length, 4);
  vkb_OperaVer = parseFloat(vkb_OperaVer);
}

// parameter defaults:
if (typeof vkb_InterfaceLanguage == 'undefined')  vkb_InterfaceLanguage = "R";
if (typeof vkb_KbdVariant == 'undefined') vkb_KbdVariant = "0";
if (typeof vkb_Variant == 'undefined') vkb_Variant = 2;
if (typeof vkb_Fix == 'undefined') vkb_Fix = false;
if (typeof vkb_InitShow == 'undefined') vkb_InitShow = false;
if (typeof vkb_Layouts == 'undefined') vkb_Layouts = true;
if (typeof vkb_ShowMenus == 'undefined') vkb_ShowMenus = true;
if (typeof vkb_Copyright == 'undefined') vkb_Copyright = true;
if (typeof vkb_Phonetic == 'undefined') vkb_Phonetic = true;
if (typeof vkb_Help == 'undefined') vkb_Help = true;
if (typeof vkb_Init2right == 'undefined') vkb_Init2right = 10;
if (typeof vkb_Init2top == 'undefined') vkb_Init2top = 10;
if (typeof vkb_MouseOnly == 'undefined') vkb_MouseOnly = false;
if (typeof vkb_CyrOnOffInit == "undefined") vkb_CyrOnOffInit = true; 

if (vkb_MouseOnly)
{
  if (vkb_Variant==1) vkb_MouseOnly=false;
  else {vkb_Help = false; vkb_CyrOnOffInit=false; vkb_ShowMenus = false;}
}

var vkb_HelpPos1, vkb_HelpPos2, vkb_PrevClickShift=false, vkb_1st_InitShow;
if (vkb_Variant < 3)
{
  //vkb_HelpPos1=80; vkb_HelpPos2=50;
  vkb_HelpPos1=-30; vkb_HelpPos2=5;
  if (vkb_Fix) document.write("<div id='vkb_Layer' style='VISIBILITY: hidden;'></div>");
  else  document.write("<div id='vkb_Layer' style='VISIBILITY: hidden; WIDTH: 500px; POSITION: absolute; right: 100px; top: 100px;'></div>");
}
else
{
     //   vkb_HelpPos1=-150; vkb_HelpPos2=150;
  vkb_HelpPos1=-110; vkb_HelpPos2=50;
}

var vkb_JSnonUSwasLoaded = false, vkb_showWrongBrowserOnce=false, vkb_isInitDone = false;
var vkb_JS_PhoneticWasLoaded = false;
var vkb_PicTagLay, vkb_PicTag, vkb_CyrFromKbd, vkb_MsgButtonStr,
    vkb_KbdPhysical, vkb_KbdVariantNumber, vkb_curImage, vkb_fName, vkb_WrongBr, vkb_ShowKbdVariantsMenu;
var vkb_KbdVariantNonDefault=false; // no parameter 
var vkb_buildHTMLlater=false, vkb_UseVirtKbd=false;
var vkb_var1NoRadio=false, vkb_BakuRu=false, vkb_mSpanF12 = null;

var vkb_txtType=0; var vkb_keySwitch = ""; var vkb_numInputTypeTextFields=0; var vkb_numInputFields=0;
var vkb_radioSwitchKbd0, vkb_radioSwitchKbd1, vkb_SlayoutsItem, vkb_FlayoutsItem, vkb_LatinItem, vkb_KeyboardsItem;
var vkb_txtControl = null;
var vkb_1st=true;

var vkb_Mouse1  = "Ю!ъЪ$%ёЁ*()_ЬЯЖЕРТЫУИОПШЩЭАСДФГЧЙКЛ:\"Э|ЗХЦВБНМ<>?ю1234567890-ьяжертыуиопшщэасдфгчйкл;'э\\зхцвбнм,./";

function vkb_loadJs(obj, jsFileName)
{
  var script1 = document.createElement('script'); 
  script1.type = 'text/javascript'; script1.charset = 'windows-1251';
  script1.src = jsFileName; 
  obj.appendChild(script1);
}
function vkb_loadHeadCss(obj, cssFileName)
{
  var link1 = document.createElement('link');
  link1.type = "text/css"; link1.rel = "stylesheet"; link1.href = cssFileName;
  obj.appendChild(link1);
}
function vkb_createHeadStyle(obj, stHTML)
{
  var style1 = document.createElement('style');
  style1.type = "text/css"; style1.innerHTML=stHTML;
  obj.appendChild(style1);
}



var vkb_headObj = document.getElementsByTagName('head')[0]; 
if (vkb_Ffox) {
   var stHTML=".vkb_IEbutton  {color: #000000;background-color: #b5c9e2; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px;}"+
   "\n.vkb_IEbutton2 {color: #000000;background-color: #b5c9e2; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px;}"+
   "\n.vkb_IEbutton3 {margin-bottom: -1em; color: #000000; background-color: #b5c9e2; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 12px;}"+
   "\n.vkb_button2{color: #000000;font-size: 10px;font-family: verdana, monospace;background-color: #999900;}"+
   "\n.vkb_Select {color: #000000;background-color: #ffffff;border: solid 1px  #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 11px;}"+
   "\n.vkb_SelectDisabled {color: #463E3F;background-color: #dddddd;border: solid 1px #000000; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 11px;}"+
   "\n.vkb_Radio {color: #000000;background-color: #dddddd; border: #dddddd; margin-right: 2px; width: 12px; height: 12px;}"+
   "\n.vkb_RadioBox {color: #000000;background-color: #eeeff0; border: #eeeff0; margin-right: 2px; width: 12px; height: 12px;}"+
   "\n.vkb_Text {font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; color: #000000; background-color: #dddddd;}"+
   "\n.vkb_Text1 {font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; color: #000000;}"+
   "\n.vkb_short{MARGIN-BOTTOM: 0px; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; color: #000000; background-color: #dddddd;}"+
   "\n.vkb_short1{MARGIN-BOTTOM: 0px; MARGIN-TOP: 5px; font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 14px; color: #000000; background-color: #dddddd;}"+
   "\n.vkb_ImgBorder {border: 1px blue solid;}"+
   "\n.vkb_Link A:link {text-decoration: underline; color: #0000ff;}"+
   "\n.vkb_Link A:visited {text-decoration: underline; color: #0000ff;}"+
   "\n.vkb_Link A:active {text-decoration: underline; color: #0000ff;}"+
   "\n.vkb_Link A:hover {text-decoration: underline; color: #0000ff;}"+
   "\n.vkb_tip {font: 12px Arial,Helvetica,sans-serif;border:solid 1px #666666;width:270px;padding:4px;z-index:100;"+
   "position:absolute;visibility:hidden;color:#000000;top:20px;left:90px;background-color:#ffffcc;}";
   if (vkb_Fix) stHTML= stHTML + "\nbody > div#vkb_Layer {position: fixed; right: 20px; top: 10px;}";
   vkb_createHeadStyle(vkb_headObj, stHTML); 
}
else
{
 vkb_loadHeadCss(vkb_headObj, vkb_Path+"vkb.css"); if (vkb_Br=="IE" && !vkb_Opera) vkb_loadHeadCss(vkb_headObj, vkb_Path+"vkb_ie.css");
 vkb_loadHeadCss(vkb_headObj, vkb_Path+"vkb_tip.css"); 
 if (vkb_Fix)
 {
     vkb_loadHeadCss(vkb_headObj, vkb_Path+"vkbfix.css");
     if (vkb_Br=="IE" && !vkb_Opera)
     {
       if (vkb_MSIEVer < 7) vkb_loadHeadCss(vkb_headObj, vkb_Path+"vkbfixie.css");
     }
 }   
} 

function vkb_findPosX(obj)
{       
  var curleft = 0;
  if (obj.offsetParent) { while (obj.offsetParent) {curleft += obj.offsetLeft; obj = obj.offsetParent;}	}
  else if (obj.x) curleft += obj.x;
  return curleft;
}
function vkb_findPosY(obj)
{
  var curtop = 0;
  if (obj.offsetParent)	{ while (obj.offsetParent) {curtop += obj.offsetTop; obj = obj.offsetParent;} }
  else if (obj.y) curtop += obj.y;
  return curtop;
}

function vkb_mouseX(evt) {if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return null;}
function vkb_mouseY(evt) {if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;}
function vkb_pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;}
function vkb_popUp(evt,popupObjID,elID, t,l)
{
  if (vkb_KbdVariant == '29') return; 

  var myObj=document.getElementById(elID);
  var toppos = vkb_findPosY(myObj)+ (t); 
  var leftpos = vkb_findPosX(myObj)+ (l);

  var wp = vkb_pw();
  var vkb_popupObjStyle = document.getElementById(popupObjID).style;
  var vkb_popupObj = document.getElementById(popupObjID);
  
  var vkb_popupObjVisibility, ew, tv, lv;
  
  if (vkb_popupObjStyle.visibility != 'undefined')
  {
   if (vkb_popupObjStyle.visibility == "") vkb_popupObjVisibility ="hidden";
   else   vkb_popupObjVisibility = vkb_popupObjStyle.visibility;
  }
  else  vkb_popupObjVisibility ="hidden";
  
  if (vkb_popupObj.offsetWidth) ew = vkb_popupObj.offsetWidth;
  else if (vkb_popupObj.clip.width) ew = vkb_popupObj.clip.width;
  
  if (vkb_popupObjVisibility == "visible" || vkb_popupObjVisibility == "show") 
      vkb_popupObjStyle.visibility = "hidden"; 
  else
  {
    tv = toppos + 20;
    lv = leftpos - (ew/4);
    if (lv < 2) lv = 2;
    else
    {
      if (lv + ew > wp) lv -= ew/2;
    }
    lv += 'px';
    tv += 'px';
    /*** **/
    
    vkb_popupObjStyle.left = lv;
    
    vkb_popupObjStyle.top = tv;
    
    vkb_popupObjStyle.visibility = "visible";
  }
}

function vkb_start(e)
{
  if (vkb_InitShow) vkb_1st_InitShow = true;
  
  if(vkb_1st)
  { 
    var mDiv_WaitMsg = document.getElementById("vkb_tempDiv");
    var tHTML="<TABLE width=300 bgColor=#b5c9e2 border=2><TBODY><TR><TD width='100%'><BR>";
    var tMsg = (vkb_InterfaceLanguage == 'E') ?
      "<CENTER>Please wait, it's loading...<P><SMALL>(happens only first time)</SMALL></CENTER><SMALL>&nbsp;</SMALL></TD></TR></TBODY></TABLE>"
     :
      "<CENTER>Подождите, идёт загрузка...<P><SMALL>(только первый раз надо ждать)</SMALL></CENTER><SMALL>&nbsp;</SMALL></TD></TR></TBODY></TABLE>";

    tHTML = tHTML + tMsg; mDiv_WaitMsg.innerHTML = tHTML; 
    vkb_popUp(e,'vkb_tempDiv','vkb_callVirt',-150,100);
    var vkb_headobj = document.getElementsByTagName('head')[0];  
    
    vkb_loadJs(vkb_headobj, vkb_Path+"vkb_one.js");
    
    if (!vkb_InitShow)
    {
        vkb_JS_PhoneticWasLoaded = false;
        if (vkb_Phonetic)  vkb_loadJs(vkb_headobj, vkb_Path+"vkb_phon.js");
    }
  }
  else vkb_showKbd();
}
document.write("<div id='vkb_tempDiv' style='VISIBILITY: hidden; WIDTH: 400px; POSITION: absolute; right: 300px; top: 300px;'></div>");
var tmpdm ="<div id='vkb_divMouse' style='visibility:hidden;'>"; //  right: 10px; top: 100px;
if (vkb_Variant == 1 || vkb_InitShow) tmpdm = tmpdm + "layout";
tmpdm = tmpdm + "</div>"; document.write(tmpdm);

/////