/* (c) Scientec Internet Applications + Media GmbH - www.scientec.de */

dKey = "";
dKeyName = "";
array = new Array();
array['Shift'] = "0";
array['AltGr'] = "0";
array['CapsLock'] = "0";

function makeHTML()
{
  code = "";
  text = document.getElementById("feld1").value;
//  text = text.replace(/\n/g,"");
  for(var i = 0; i < text.length; i++)
  {
    if(text.charCodeAt(i)!=10 && text.charCodeAt(i)!=13)
    {
      code += (text.charCodeAt(i)!=32)?"&#"+text.charCodeAt(i)+";":" ";
    }
    else
    {
      code += "\n";
    }
  }
  code = code.replace(/\n\n/g,"\n");
  document.getElementById("feld2").value = code;
}
function makeText()
{
  text = "";
  code = document.getElementById("feld2").value;
  zeilen = code.split("\n");
  for(var j = 0; j < zeilen.length; j++)
  {
    if(j != 0) text += "\n";
    zeichen = zeilen[j].split(";");
    zeichen.pop();
    for(var i = 0; i < zeichen.length; i++)
    {
      while(zeichen[i].indexOf(" ") != -1)
      {
        zeichen[i] = zeichen[i].replace(/ /,"");
        text += " ";
      }
      text += String.fromCharCode(zeichen[i].substr(2));
    }
  }
  document.getElementById("feld1").value = text;
}

function writeKey(key)
{
  if(key)
  {
    if(key == "Enter"){key = "10";}
    key = key.replace(/</,"&lt;");
    if(dKey)
    {
      if(nK[String.fromCharCode(key)+dKeyName])
      {
        document.getElementById("feld1").value += String.fromCharCode(nK[String.fromCharCode(key)+dKeyName]);
        document.getElementById("feld2").value += "&#"+nK[String.fromCharCode(key)+dKeyName]+";";
      }
      else if(nK[key+dKeyName])
      {
        document.getElementById("feld1").value += String.fromCharCode(nK[key+dKeyName]);
        document.getElementById("feld2").value += "&#"+nK[key+dKeyName]+";";
      }
      else
      {
        document.getElementById("feld1").value += String.fromCharCode(dKey)+String.fromCharCode(key);
        document.getElementById("feld2").value += "&#"+dKey+";"+"&#"+key+";";
      }
    }
    else
    {
      if(key == " ")
      {
        document.getElementById("feld1").value += " ";
        document.getElementById("feld2").value += " ";
      }
      else
      {
        document.getElementById("feld1").value += String.fromCharCode(key);
        if(key!=10 && key!=13)
        {
          document.getElementById("feld2").value += (key!=32)?"&#"+key+";":" ";
        }
        else
        {
          document.getElementById("feld2").value += "\n";
        }
      }
    }
    dKey = "";
    dKeyName = "";
  }
  click();
}

function deadKey(key)
{
  dKey = key;
  if(String.fromCharCode(dKey) == "`")
  {
    dKeyName = "grave";
  }
  if(dKey == "94")
  {
    dKeyName = "circ";
  }
  if(dKey == "126")
  {
    dKeyName = "tilde";
  }
  if(dKey == "168")
  {
    dKeyName = "uml";
  }
  if(dKey == "176")
  {
    dKeyName = "ring";
  }
  if(dKey == "180")
  {
    dKeyName = "acute";
  }
  if(dKey == "184")
  {
    dKeyName = "cedil";
  }
  if(dKey == "711")
  {
    dKeyName = "caron";
  }
  if(dKey == "728")
  {
    dKeyName = "breve";
  }
  if(dKey == "729" || dKey == "183")
  {
    dKeyName = "punkt";
  }
  if(dKey == "731")
  {
    dKeyName = "ogonek";
  }
  if(dKey == "733")
  {
    dKeyName = "doppel-akut";
  }
  if(dKey == "900")
  {
    dKeyName = "gt";//greek tonos
  }
  if(dKey == "901")
  {
    dKeyName = "gdt";//greek dialytika tonos
  }
  click();
}

function showTab(tab)
{
  if(array[tab] == "0")
  {
    array[tab] = 1;
  }
  else
  {
    array[tab] = 0;  
  }

  show = "normalState";
  if(array['Shift'] == 1)
  {
    show = "shiftState";
  }
  if(array['AltGr'] == 1)
  {
    show = "altgrState";
  }
  if(array['Shift'] == 1 && array['AltGr'] == 1)
  {
    show = "shiftAltgrState";
  }
  if(array['CapsLock'] == 1)
  {
    show = "normalStateCap";
  }
  if(array['Shift'] == 1 && array['CapsLock'] == 1)
  {
    show = "shiftStateCap";
  }
  if(array['AltGr'] == 1 && array['CapsLock'] == 1)
  {
//??????????
    show = "altgrState";
  }
  if(array['AltGr'] == 1 && array['CapsLock'] == 1 && array['Shift'] == 1)
  {
//??????????
    show = "shiftAltgrState";
  }

  for(var i = 0; i < document.getElementsByTagName("TABLE").length; i++)
  {
    if(document.getElementsByTagName("TABLE")[i].id != "felder" && document.getElementsByTagName("TABLE")[i].id != "workspace")
    {
      document.getElementsByTagName("TABLE")[i].style.display = "none";
    }
  }
  document.getElementById(show).style.display = "";

}

function click()
{
  array['Shift'] = "0";
  array['AltGr'] = "0";
  show = "normalState";
  if(array['CapsLock'] == 1)
  {
    show = "normalStateCap";
  }
  for(var i = 0; i < document.getElementsByTagName("TABLE").length; i++)
  {
    if(document.getElementsByTagName("TABLE")[i].id != "felder" && document.getElementsByTagName("TABLE")[i].id != "workspace")
    {
      document.getElementsByTagName("TABLE")[i].style.display = "none";
    }
  }
  document.getElementById(show).style.display = "";
}

function showName(o)
{
  if(o.name)
  {
    document.getElementById('zoom').innerHTML=o.name;
    o.onmouseout=function(){document.getElementById('zoom').innerHTML=""}
  }
}

function schaufel(){
  document.getElementById("keyboard").innerHTML=document.getElementById("ifr").contentWindow.document.body.innerHTML;
}
function getKeyboard(){
  array['Shift'] = "0";
  array['AltGr'] = "0";
  array['CapsLock'] = "0";
  //document.getElementById('ifr').src="keyboards/"+document.getElementById("selectLanguage").options[document.getElementById("selectLanguage").selectedIndex].value+".htm";
  ifr.location.replace("keyboards/"+document.getElementById("selectLanguage").options[document.getElementById("selectLanguage").selectedIndex].value+".htm");
}
function clearAreas(){
  document.getElementById('feld1').value="";
  document.getElementById('feld2').value="";
}

function showHelp(obj){
	document.getElementById('info').style.backgroundColor="white";
	document.getElementById('info').innerHTML=document.getElementById(obj.id+"Text").innerHTML;
}


