var sLoadedKeyboard = '';

function virtualkeys_keyboardloaded(sKeyboard)
{
  sLoadedKeyboard = sKeyboard;  
  virtualkeys_prepare();
  
  $('body').mouseover(function() {
    virtualkeys_prepare();
  });
}

function virtualkeys_prepare()
{
  // nowy sposób
  $('.virtualkeys').keyup(function(evt){
    var sInfo = $(this).val();
    //alert(evt.keyCode);
    //alert(sInfo);
    var sOldInfo = sInfo;
    var sTxt = '';
    var sNew = '';
    
    // przetwarzanie fonemów (transliteracji)
    poz = sInfo.indexOf('\\');
    if (poz>=0) {
      sInfo = sInfo.substring(0, poz)+sInfo.substring(poz+1); 
      $(".virtualkeyboard").children("fonem").each(function(){
        sTxt = $(this).attr("tekst");
        sNew = $(this).text();
        do {
          sOld = sInfo;
          sInfo = sInfo.replace(sTxt,sNew);
        } while (sOld!=sInfo);  
      });
      //if (sOldInfo!=sInfo) 
      $(this).val(sInfo);
      return;
    }  
    
    while (poz = sInfo.indexOf('`')>=0)
    for (i=0; i<10; i++)
    {
      poz = sInfo.indexOf('`');
      if (poz==0) 
      {
        sInfo = sInfo.substring(1);
      }
      if (poz>0)
      {
        sTxt = sInfo.substring(poz-1,poz+1);
        var iKeyPos = sLoadedKeyboard.indexOf(sTxt);
        if (iKeyPos==-1) sNew = sTxt.substring(0,1)
        else sNew = sLoadedKeyboard.substring(iKeyPos+2,iKeyPos+3);
        //alert(sTxt+'->'+sNew);
        sInfo = sInfo.replace(sTxt,sNew);
      }
    }  
    //if (sOldInfo!=sInfo) 
    $(this).val(sInfo);
  });
  
  $('.virtualkeys').removeClass('virtualkeys');
}  

$(document).ready(function() {
  sLoadedKeyboard = $('.virtualkeyboard').text();
  if (sLoadedKeyboard!='') {
    virtualkeys_keyboardloaded(sLoadedKeyboard);
    return;
  }  
  //$.post('components/virtualkeys.class.php',
  //  {virtualkeys_action:'load'}, virtualkeys_keyboardloaded, "text");
});
