function changeChar() {
  var i = document.formular.character.selectedIndex;
  switch(i) {
    case 4 : i = 1; break;
    case 5 : i = 2; break;
    default: i = 0
  }
  fillShield(i);
  doCalc();
}

function doCalc() {
  var b = val(document.formular.schild.value), block = val(document.formular.character.value), l = val(document.formular.skill.value);
  if (document.formular.schild.selectedIndex == 0) {
    document.formular.char_out.value     = "";
    document.formular.schild_out.value   = "";
    document.formular.waffe_out.value    = "";
    document.formular.ruestung_out.value = "";
    document.formular.amulett_out.value  = "";
    document.formular.set_out.value      = "";
    document.formular.skill_out.value    = "";
    document.formular.itemblock.value    = "";
    document.formular.totalblock.value   = "0%";
    document.formular.runblock.value     = "0%";
    block = 0;
  }
  else {
    document.formular.char_out.value = block + "%";
    b += val(document.formular.schild_block.value);
    block += b;
    document.formular.schild_out.value = b + "%";
    if (document.formular.waffe.checked)
      if (document.formular.character.selectedIndex == 2) {
        block += 20;
        document.formular.waffe_out.value = "20%";
      }
      else
        document.formular.waffe_out.value = "-------";
    else
      document.formular.waffe_out.value = "";
    if (document.formular.ruestung_zucki.checked) {
      block += 25;
      document.formular.ruestung_out.value = "25%";
    }
    else if (document.formular.ruestung_engel.checked) {
      block += 20;
      document.formular.ruestung_out.value = "20%";
    }
    else
      document.formular.ruestung_out.value = "";
    b = val(document.formular.amulett_block.value);
    if (document.formular.amulett.checked && b > 0) {
      if (b > 10) {
        b = 10;
        document.formular.amulett_block.value = 10;
      }
      block += b;
      document.formular.amulett_out.value = b + "%";
    }
    else
      document.formular.amulett_out.value = "";
    if (document.formular.set.checked)
      if (document.formular.schild.options[document.formular.schild.selectedIndex].text == "Prunkschild" && !document.formular.waffe.checked && !document.formular.ruestung_zucki.checked && !document.formular.ruestung_engel.checked) {
        block += 30;
        document.formular.set_out.value = "30%";
      }
      else
        document.formular.set_out.value = "-------";
    else
      document.formular.set_out.value = "";
    if (l > 0)
      if (document.formular.character.selectedIndex == 4) {
        b = 10 + Math.floor(Math.floor(110 * l / (l + 6)) * 3 / 10);
        block += b;
        document.formular.skill_out.value = b + "%";
      }
      else
        document.formular.skill_out.value = "-------";
    else
      document.formular.skill_out.value = "";
    document.formular.itemblock.value = block + "%";
    if (val(document.formular.char_level.value) == 0)
      document.formular.char_level.value = 1;
    block = Math.max(0, Math.min(75, Math.floor(block * (val(document.formular.char_dex.value) - 15) / 2 / val(document.formular.char_level.value))));
    document.formular.totalblock.value = block + "%";
    document.formular.runblock.value = Math.floor(block / 3) + "%";
  }
}

function fillShield(i) {
  var o = document.formular.schild, j = o.selectedIndex, schild;
  if (j == -1)
    schild = "-------------------------------";
  else
    schild = o.options[j].text;
  comboClear(o);
              comboAdd(o, "-------------------------------", 0);
  if (i == 1) comboAdd(o, "Aerins Schild", 22);
              comboAdd(o, "Ägis", 24);
  if (i == 1) comboAdd(o, "Akran-Rondache", 15);
  if (i == 1) comboAdd(o, "Akran-Targe", 10);
              comboAdd(o, "alter Schild", 16);
  if (i == 2) comboAdd(o, "Aufseher-Schädel", 8);
              comboAdd(o, "Beschutzer", 0);
  if (i == 2) comboAdd(o, "Blutlord-Schädel", 12);
  if (i == 2) comboAdd(o, "Dämonen-Kopf", 12);
  if (i == 2) comboAdd(o, "Diener-Schädel", 3);
              comboAdd(o, "Dornenschild", 10);
              comboAdd(o, "Drachenschild", 18);
              comboAdd(o, "eckiger Schild", 8);
  if (i == 2) comboAdd(o, "Fetisch-Trophäe", 5);
  if (i == 2) comboAdd(o, "Gargoyle-Kopf", 10);
              comboAdd(o, "großer Schild", 12);
  if (i == 1) comboAdd(o, "Heilige Rondache", 28);
  if (i == 1) comboAdd(o, "Heilige Targe", 30);
  if (i == 2) comboAdd(o, "Hierofant-Trophäe", 12);
  if (i == 2) comboAdd(o, "Höllenbrut-Schädel", 5);
              comboAdd(o, "hoher Schild", 24);
              comboAdd(o, "Hyperion", 24);
              comboAdd(o, "Kampfschild", 20);
  if (i == 2) comboAdd(o, "Kantor-Trophäe", 10);
              comboAdd(o, "kleiner Schild", 5);
              comboAdd(o, "Klingenbarriere", 20);
              comboAdd(o, "Knochenschild", 20);
  if (i == 1) comboAdd(o, "Königlicher Schild", 25);
  if (i == 2) comboAdd(o, "Konservierter Kopf", 3);
  if (i == 1) comboAdd(o, "Kronenschild", 25);
  if (i == 1) comboAdd(o, "Kurast-Schild", 25);
              comboAdd(o, "Luna", 20);
              comboAdd(o, "Manesse-Schild", 22);
              comboAdd(o, "Monarch", 22);
  if (i == 2) comboAdd(o, "Mumifizierte Trophäe", 3);
              comboAdd(o, "Pavese", 24);
              comboAdd(o, "Prunkschild", 16);
  if (i == 1) comboAdd(o, "Rondache", 15);
              comboAdd(o, "Rundschild", 12);
              comboAdd(o, "Schutz", 24);
  if (i == 1) comboAdd(o, "Schutzschild", 20);
              comboAdd(o, "Scutum", 14);
  if (i == 2) comboAdd(o, "Sexton-Trophäe", 8);
              comboAdd(o, "Stachelschild", 17);
  if (i == 2) comboAdd(o, "Sukkubus-Schädel", 10);
  if (i == 1) comboAdd(o, "Targe", 10);
              comboAdd(o, "Trollnest", 20);
  if (i == 1) comboAdd(o, "Vergoldeter Schild", 22);
              comboAdd(o, "Verteidiger", 10);
  if (i == 1) comboAdd(o, "Wappenschild", 20);
  if (i == 1) comboAdd(o, "Wirbel-Schild", 19);
  if (i == 1) comboAdd(o, "Zakarum-Schild", 22);
  if (i == 2) comboAdd(o, "Zersetzer-Kopf", 8);
  if (i == 2) comboAdd(o, "Zombie-Kopf", 5);
  for (j = 1; j < o.length; j++)
    if (o.options[j].text == schild) {
      o.selectedIndex = j;
      break;
    }
}

function setStart() {
  document.formular.character.selectedIndex = 0;
  changeChar();
}
