var set_b, set_i, set_s, set_u, sock_waff = 0, sock_schi = 0, sock_rues = 0, sock_helm = 0, started;
var z_pk = new Array(), z_pg = new Array(), z_pr = new Array(), z_s = new Array(), z_d, s_b = 0, s_d;
z_pk[0] = new Array(0, 0, 0);
z_pk[1] = new Array(52, 52, 75);
z_pk[2] = new Array(128, 128, 100);
z_pk[3] = new Array(205, 205, 125);
z_pk[4] = new Array(299, 299, 150);
z_pg[0] = new Array(0, 0, 0);
z_pg[1] = new Array(35, 35, 75);
z_pg[2] = new Array(77, 77, 100);
z_pg[3] = new Array(185, 185, 125);
z_pg[4] = new Array(299, 299, 150);
z_pr[0] = new Array(0, 0, 0);
z_pr[1] = new Array(18, 18, 75);
z_pr[2] = new Array(39, 39, 100);
z_pr[3] = new Array(103, 103, 125);
z_pr[4] = new Array(171, 171, 150);
z_s[0] = new Array(0, 0, 0);
z_s[1] = new Array(21, 21, 75);
z_s[2] = new Array(39, 39, 100);
z_s[3] = new Array(52, 52, 125);
z_s[4] = new Array(86, 86, 150);

function changeAmul(dmg) {
  dmgAmul(dmg);
}

function changeArmo(dmg) {
  dmgArmo(dmg);
  var combo, i, old = sock_rues;
  switch (document.formular.rues_form.value) {
    case "non":
    case "mag": sock_rues = 4; break;
    default   : sock_rues = 1;
  }
  for (i = sock_rues + 1; i <= old; i++) {
    combo = eval("document.formular.rues_sock" + i)
    comboClear(combo);
    comboAdd(combo, "--------------", "0,0,0");
  }
  for (i = 1; i <= sock_rues; i++) {
    combo = eval("document.formular.rues_sock" + i)
    old = combo.value;
    comboClear(combo);
    comboAdd(combo, "unbesetzt", "0,0,0");
    comboAdd(combo, "magisches Gift-Juwel", "103,103,50");
    comboAdd(combo, "seltenes Gift-Juwel", "103,103,50");
    comboAdd(combo, "spezielles Gift-Juwel", "187,187,50");
    if (old)
      combo.value = old;
  }
  for (i = 1; i <= 4; i++)
    dmgArmoSock(i, eval("document.formular.rues_sock" + i + ".value"));
  dmgArmoGesamt();
}

function changeArmoSock(sock, dmg) {
  dmgArmoSock(sock, dmg);
  dmgArmoGesamt();
}

function changeBelt(dmg) {
  dmgBelt(dmg);
}

function changeGlov(dmg) {
  dmgGlov(dmg);
}

function changeHelm(dmg) {
  dmgHelm(dmg);
  var combo, i, old = sock_helm;
  switch (document.formular.helm_form.value) {
    case "non" :
    case "mag" : sock_helm = 3; break;
    case "set": if (document.formular.helm_gift.options[3].selected) {sock_helm = 2; break;}
    default    : sock_helm = 1;
  }
  for (i = sock_helm + 1; i <= old; i++) {
    combo = eval("document.formular.helm_sock" + i)
    comboClear(combo);
    comboAdd(combo, "--------------", "0,0,0");
  }
  for (i = 1; i <= sock_helm; i++) {
    combo = eval("document.formular.helm_sock" + i)
    old = combo.value;
    comboClear(combo);
    comboAdd(combo, "unbesetzt", "0,0,0");
    comboAdd(combo, "magisches Gift-Juwel", "103,103,50");
    comboAdd(combo, "seltenes Gift-Juwel", "103,103,50");
    comboAdd(combo, "spezielles Gift-Juwel", "187,187,50");
    if (old)
      combo.value = old;
  }
  for (i = 1; i <= 3; i++)
    dmgHelmSock(i, eval("document.formular.helm_sock" + i + ".value"));
  dmgHelmGesamt();
}

function changeHelmSock(sock, dmg) {
  dmgHelmSock(sock, dmg);
  dmgHelmGesamt();
}

function changeRing(num, dmg) {
  dmgRing(num, dmg);
}

function changeShie(dmg) {
  dmgShie(dmg);
  var combo, i, old = sock_schi;
  switch (document.formular.schi_form.value) {
    case "non":
    case "mag":  sock_schi = 4; break;
    case "mag2": sock_schi = 2; break;
    default:     sock_schi = 1;
  }
  for (i = sock_schi + 1; i <= old; i++) {
    combo = eval("document.formular.schi_sock" + i)
    comboClear(combo);
    comboAdd(combo, "--------------", "0,0,0");
  }
  for (i = 1; i <= sock_schi; i++) {
    combo = eval("document.formular.schi_sock" + i)
    old = combo.value;
    comboClear(combo);
    comboAdd(combo, "unbesetzt", "0,0,0");
    comboAdd(combo, "magisches Gift-Juwel", "103,103,50");
    comboAdd(combo, "seltenes Gift-Juwel", "103,103,50");
    comboAdd(combo, "spezielles Gift-Juwel", "187,187,50");
    if (old)
      combo.value = old;
  }
  for (i = 1; i <= 4; i++)
    dmgShieSock(i, eval("document.formular.schi_sock" + i + ".value"));
  dmgShieGesamt();
}

function changeShieSock(sock, dmg) {
  dmgShieSock(sock, dmg);
  dmgShieGesamt();
}

function changeSkill(skill) {
  var syn = "";
  switch (skill) {
    case "dol": s_b = 20; syn = "Gift-Explosion + Gift-Nova"; break;
    case "gws": s_b = 12; syn = "Pest-Wurfspieß"; break;
    case "pws": s_b = 10; syn = "Gift-Wurfspieß"; break;
    default   : s_b = 0;
  }
  formular.syn_name.value = syn;
  dmgSkill();
}

function changeWeap(dmg) {
  dmgWeap(dmg);
  var combo, i, old = sock_waff;
  switch (document.formular.waff_form.value) {
    case "non": sock_waff = 6; break;
    case "mag": sock_waff = 4; break;
    case "rar": sock_waff = 2; break;
    case "set": if (document.formular.waff_gift.options[4].selected) {sock_waff = 2; break;}
    default   : sock_waff = 1;
  }
  for (i = sock_waff + 1; i <= old; i++) {
    combo = eval("document.formular.waff_sock" + i)
    comboClear(combo);
    comboAdd(combo, "-------------------------------", "0,0,0");
  }
  if (document.formular.waff_form.value == "run") {
    comboClear(document.formular.waff_sock1);
    comboAdd(document.formular.waff_sock1, "Tal-Rune", "154,154,125");
  }
  else
    for (i = 1; i <= sock_waff; i++) {
      combo = eval("document.formular.waff_sock" + i)
      old = combo.value;
      comboClear(combo);
      comboAdd(combo, "unbesetzt", "0,0,0");
      comboAdd(combo, "lädierter Smaragd", "34,34,75");
      comboAdd(combo, "fehlerhafter Smaragd", "51,51,100");
      comboAdd(combo, "Smaragd", "82,82,125");
      comboAdd(combo, "makelloser Smaragd", "101,101,152");
      comboAdd(combo, "perfekter Smaragd", "143,143,179");
      comboAdd(combo, "Tal-Rune", "154,154,125");
      comboAdd(combo, "magisches Gift-Juwel", "103,103,50");
      comboAdd(combo, "seltenes Gift-Juwel", "103,103,50");
      comboAdd(combo, "spezielles Gift-Juwel", "187,187,50");
      if (old)
        combo.value = old;
    }
  for (i = 1; i <= 6; i++)
    dmgWeapSock(i, eval("document.formular.waff_sock" + i + ".value"));
  dmgWeapGesamt();
}

function changeWeapSock(sock, dmg) {
  dmgWeapSock(sock, dmg);
  dmgWeapGesamt();
}

function checkSets() {
  set_b = 0;
  set_i = 0;
  set_s = 0;
  set_u = 0;
  if (document.formular.waff_form.value == "set") {
    if (document.formular.waff_gift.options[1].selected) set_b++;
    if (document.formular.waff_gift.options[3].selected) set_i++;
    if (document.formular.waff_gift.options[4].selected) set_u++;
  }
  if (document.formular.rues_form.value == "set") {
    if (document.formular.rues_gift.options[1].selected) set_b++;
    if (document.formular.rues_gift.options[2].selected) set_s++;
    if (document.formular.rues_gift.options[3].selected) set_u++;
  }
  if (document.formular.helm_form.value == "set") {
    if (document.formular.helm_gift.options[1].selected) set_b++;
    if (document.formular.helm_gift.options[2].selected) set_i++;
    if (document.formular.helm_gift.options[3].selected) set_u++;
  }
  if (document.formular.hand_form.value == "set") {
    if (document.formular.hand_gift.options[1].selected) set_s++;
    if (document.formular.hand_gift.options[3].selected) set_u++;
  }
  if (document.formular.stie_form_s.checked) set_s++;
  if (document.formular.stie_form_u.checked) set_u++;
  if (document.formular.guer_form.value == "set") {
    if (document.formular.guer_gift.options[1].selected) set_s++;
    if (document.formular.guer_gift.options[2].selected) set_i++;
    if (document.formular.guer_gift.options[3].selected) set_u++;
  }
  if (document.formular.amul_form.value == "set" && document.formular.amul_gift.options[1].selected) set_s++;
  document.formular.set_berserker.value = "Berserker-Arsenal: " + set_b + " von 3 erforderlichen Gegenständen";
  document.formular.set_inferno.value = "Infernos Werkzeuge: " + set_i + " von 2 erforderlichen Gegenständen";
  document.formular.set_schueler.value = "Der Schüler: " + set_s + " von 3 erforderlichen Gegenständen";
}

function dmgAmul(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.amul_out);
  dmgGesamt();
}

function dmgArmo(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.rues_out);
}

function dmgArmoGesamt() {
  var dmg = document.formular.rues_gift.value;
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var i, items = 0;
  if (dmg_len > 0)
    items++;
  for (i = 1; i <= 4; i++) {
    dmg = eval("document.formular.rues_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
    }
  }
  dmgPrint(dmg_min, dmg_max, Math.floor(dmg_len / items), true, false, document.formular.rues_gesamt);
  dmgGesamt();
}

function dmgArmoSock(sock, dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var out = eval("document.formular.rues_sock" + sock + "_out");
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, out);
}

function dmgBelt(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.guer_out);
  dmgGesamt();
}

function dmgGesamt() {
  if (!started)
    return;
  checkSets();
  dmgWeap(document.formular.waff_gift.value);
  dmgSets();
  var dmg = document.formular.waff_gift.value;
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var belegt = false, count = 0, i, items = 0;
  if (dmg_len > 0) {
    items++;
    belegt = true;
  }
  for (i = 1; i <= 6; i++) {
    dmg = eval("document.formular.waff_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
      belegt = true;
    }
  }
  if (belegt) {
    belegt = false;
    count++;
  }
  dmg = document.formular.schi_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    belegt = true;
  }
  for (i = 1; i <= 4; i++) {
    dmg = eval("document.formular.schi_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
      belegt = true;
    }
  }
  if (belegt) {
    belegt = false;
    count++;
  }
  dmg = document.formular.rues_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    belegt = true;
  }
  for (i = 1; i <= 4; i++) {
    dmg = eval("document.formular.rues_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
      belegt = true;
    }
  }
  if (belegt) {
    belegt = false;
    count++;
  }
  dmg = document.formular.helm_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    belegt = true;
  }
  for (i = 1; i <= 3; i++) {
    dmg = eval("document.formular.helm_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
      belegt = true;
    }
  }
  if (belegt) {
    belegt = false;
    count++;
  }
  dmg = document.formular.hand_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    count++;
  }
  dmg = document.formular.guer_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    count++;
  }
  dmg = document.formular.ring1_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    count++;
  }
  dmg = document.formular.ring2_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    count++;
  }
  dmg = document.formular.amul_gift.value
  if (dmg != "0,0,0") {
    dmg_min += parseInt(getString(dmg, 1));
    dmg_max += parseInt(getString(dmg, 2));
    dmg_len += parseInt(getString(dmg, 3));
    items++;
    count++;
  }
  if (set_b >= 3) {
    dmg_min += 16;
    dmg_max += 32;
    dmg_len += 75;
    items++;
    count++;
  }
  if (set_i >= 2) {
    dmg_min += 25;
    dmg_max += 25;
    dmg_len += 80;
    items++;
    count++;
  }
  if (set_s >= 3) {
    dmg_min += 75;
    dmg_max += 75;
    dmg_len += 75;
    items++;
    count++;
  }
  if (z_d[0] > 0) {
    items += z_d[0];
    dmg_min += z_d[1];
    dmg_max += z_d[2];
    dmg_len += z_d[3];
    count += z_d[0];
  }
  if (items)
    dmgPrint(dmg_min, dmg_max, Math.floor(dmg_len / items), count == 1, false, document.formular.gesamt1, document.formular.gesamt2);
  else {
    document.formular.gesamt1.value = "";
    document.formular.gesamt2.value = "";
  }
  if (s_d[2] > 0) {
    dmg_min += s_d[0];
    dmg_max += s_d[1];
    if (document.formular.skill.value == "gei") {
      dmg_len = s_d[2];
      dmgPrint(dmg_min, dmg_max, dmg_len, false, true, document.formular.total1, document.formular.total2);
    }
    else {
      dmg_len += s_d[2];
      dmgPrint(dmg_min, dmg_max, Math.floor(dmg_len / Math.max(1, items)), false, document.formular.skill.value == "dol", document.formular.total1, document.formular.total2);
    }
  }
  else {
    document.formular.total1.value = document.formular.gesamt1.value;
    document.formular.total2.value = document.formular.gesamt2.value;
  }
}

function dmgGlov(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.hand_out);
  dmgGesamt();
}

function dmgHelm(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.helm_out);
}

function dmgHelmGesamt() {
  var dmg = document.formular.helm_gift.value;
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var i, items = 0;
  if (dmg_len > 0)
    items++;
  for (i = 1; i <= 3; i++) {
    dmg = eval("document.formular.helm_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
    }
  }
  dmgPrint(dmg_min, dmg_max, Math.floor(dmg_len / items), true, false, document.formular.helm_gesamt);
  dmgGesamt();
}

function dmgHelmSock(sock, dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var out = eval("document.formular.helm_sock" + sock + "_out");
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, out);
}

function dmgPrint(dmg_min, dmg_max, dmg_len, runden, dezi, o1, o2) {
  var dmax, dmin, schaden = "", smax, smin;
  if (!o1)
    return false;
  if (dmg_max != 0) {
    if (runden) {
      dmin = Math.round(dmg_min * dmg_len / 256);
      dmax = Math.round(dmg_max * dmg_len / 256);
    }
    else {
      dmin = Math.floor(dmg_min * dmg_len / 256);
      dmax = Math.floor(dmg_max * dmg_len / 256);
    }
    schaden += dmin;
    if (dmin != dmax)
      schaden += "-" + dmax;
    if (dezi) {
      dmg_len = Math.floor(10 * dmg_len / 25) / 10;
      schaden += " über " + Math.floor(dmg_len) + "," + Math.round(10 * (dmg_len - Math.floor(dmg_len))) + " Sek.";
    }
    else
      schaden += " über " + Math.floor(dmg_len / 25) + " Sek.";
    if (o2) {
      o1.value = schaden
      schaden = "";
    }
    else {
      schaden += " "
      o2 = o1;
    }
    smin = dmgPrint_PerSek(dmg_min);
    smax = dmgPrint_PerSek(dmg_max);
    schaden += "(" + smin;
    if (smin != smax)
      schaden += "-" + smax;
    schaden += " / Sek.)";
    o2.value = schaden;
  }
  else {
    o1.value = "";
    if (o2)
      o2.value = "";
  }
  return true;
}

function dmgPrint_PerSek(dmg) {
  var persek;
  dmg = Math.round(dmg * 2500 / 256);
  persek = "0" + dmg % 100;
  persek = Math.floor(dmg / 100) + "," + persek.substr(persek.length - 2, 2);
  return persek;
}

function dmgRing(num, dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var out = eval("document.formular.ring" + num + "_out");
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, out);
  dmgGesamt();
}

function dmgSets() {
  if (set_b >= 3)
    dmgPrint(16, 32, 75, true, false, document.formular.berserker_out);
  else
    document.formular.berserker_out.value = "";
  if (set_i >= 2)
    dmgPrint(25, 25, 80, true, false, document.formular.inferno_out);
  else
    document.formular.inferno_out.value = "";
  if (set_s >= 3)
    dmgPrint(75, 75, 75, true, false, document.formular.schueler_out);
  else
    document.formular.schueler_out.value = "";
}

function dmgShie(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.schi_out);
}

function dmgShieGesamt() {
  var dmg = document.formular.schi_gift.value;
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var i, items = 0;
  if (dmg_len > 0)
    items++;
  for (i = 1; i <= 4; i++) {
    dmg = eval("document.formular.schi_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
    }
  }
  dmgPrint(dmg_min, dmg_max, Math.floor(dmg_len / items), true, false, document.formular.schi_gesamt);
  dmgGesamt();
}

function dmgShieSock(sock, dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var out = eval("document.formular.schi_sock" + sock + "_out");
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, out);
}

function dmgSkill() {
  var skill = document.formular.skill.value, level = parseInt(document.formular.skill_level.value);
  var dmg_min, dmg_minadd, dmg_max, dmg_maxadd, dmg_len, dmg_lenadd;
  s_d = new Array(0, 0, 0);
  if (skill != "non" && level > 0) {
    switch (skill) {
      case "dol": dmg_min = 36;
                  dmg_max = 80;
                  dmg_len = 50;
                  dmg_minadd = new Array(20, 30, 40, 46, 52);
                  dmg_maxadd = dmg_minadd;
                  dmg_lenadd = 10;
                  break;
      case "gei": dmg_min = 1536;
                  dmg_max = 2048;
                  dmg_len = 10;
                  dmg_minadd = new Array(384, 512, 640, 768, 896);
                  dmg_maxadd = dmg_minadd;
                  dmg_lenadd = 0;
                  break;
      case "gws": dmg_min = 32;
                  dmg_max = 48;
                  dmg_len = 200;
                  dmg_minadd = new Array(16, 32, 48, 64, 96);
                  dmg_maxadd = new Array(16, 36, 52, 68, 84);
                  dmg_lenadd = 50;
                  break;
      case "pws": dmg_min = 80;
                  dmg_max = 128;
                  dmg_len = 75;
                  dmg_minadd = new Array(48, 96, 160, 320, 480);
                  dmg_maxadd = dmg_minadd;
                  dmg_lenadd = 10;
                  break;
    }
    var i = 1;
    for (; i < level && i < 8; i++) {
      dmg_min += dmg_minadd[0];
      dmg_max += dmg_maxadd[0];
      dmg_len += dmg_lenadd;
    }
    for (; i < level && i < 16; i++) {
      dmg_min += dmg_minadd[1];
      dmg_max += dmg_maxadd[1];
      dmg_len += dmg_lenadd;
    }
    for (; i < level && i < 22; i++) {
      dmg_min += dmg_minadd[2];
      dmg_max += dmg_maxadd[2];
      dmg_len += dmg_lenadd;
    }
    for (; i < level && i < 28; i++) {
      dmg_min += dmg_minadd[3];
      dmg_max += dmg_maxadd[3];
      dmg_len += dmg_lenadd;
    }
    for (; i < level; i++) {
      dmg_min += dmg_minadd[4];
      dmg_max += dmg_maxadd[4];
      dmg_len += dmg_lenadd;
    }
    if (s_b) {
      var syn_fakt = parseInt(document.formular.syn_level.value);
      if (syn_fakt > 0) {
        syn_fakt = (1 + syn_fakt * s_b / 100);
        dmg_min = Math.floor(dmg_min * syn_fakt);
        dmg_max = Math.floor(dmg_max * syn_fakt);
      }
    }
    var bon_fakt = parseInt(document.formular.skill_bonus.value);
    if (bon_fakt > 0) {
      bon_fakt = (1 + bon_fakt / 100);
      dmg_min = Math.floor(dmg_min * bon_fakt);
      dmg_max = Math.floor(dmg_max * bon_fakt);
    }
    s_d[0] = dmg_min;
    if (dmg_min < dmg_max)
      s_d[1] = dmg_max;
    else
      s_d[1] = dmg_min;
    s_d[2] = dmg_len;
  }
  if (s_d[2] > 0)
    dmgPrint(s_d[0], s_d[1], s_d[2], false, skill == "dol" || skill == "gei", document.formular.skill_out1, document.formular.skill_out2);
  else {
    document.formular.skill_out1.value = "";
    document.formular.skill_out2.value = "";
  }
  dmgGesamt();
}

function dmgWeap(dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  if (document.formular.waff_form.value == "set" && document.formular.waff_gift.options[4].selected && set_u > 4) {
    dmg_min = 349;
    dmg_max = 349;
    dmg_len = 150;
  }
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, document.formular.waff_out);
}

function dmgWeapGesamt() {
  var dmg = document.formular.waff_gift.value;
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var i, items = 0;
  if (dmg_len > 0)
    items++;
  for (i = 1; i <= 6; i++) {
    dmg = eval("document.formular.waff_sock" + i + ".value");
    if (dmg != "0,0,0") {
      dmg_min += parseInt(getString(dmg, 1));
      dmg_max += parseInt(getString(dmg, 2));
      dmg_len += parseInt(getString(dmg, 3));
      items++;
    }
  }
  dmgPrint(dmg_min, dmg_max, Math.floor(dmg_len / items), true, false, document.formular.waff_gesamt);
  dmgGesamt();
}

function dmgWeapSock(sock, dmg) {
  var dmg_min = parseInt(getString(dmg, 1));
  var dmg_max = parseInt(getString(dmg, 2));
  var dmg_len = parseInt(getString(dmg, 3));
  var out = eval("document.formular.waff_sock" + sock + "_out");
  dmgPrint(dmg_min, dmg_max, dmg_len, true, false, out);
}

function dmgZauber() {
  var anz, l, p, s, letter = new Array("k", "g", "r");
  z_d = new Array(0, 0, 0, 0);
  for (l = 0; l <= 2; l++)
    for (p = 0; p <=4; p++)
      for (s = 0; s <=4; s++)
        if (p > 0 || s > 0) {
          anz = parseInt(eval("document.formular.zauber_" + letter[l] + p + s + ".value"));
          if (anz > 0) {
            z_d[0] += anz;
            z_d[1] += anz * (eval("z_p" + letter[l] + "[p][0]") + z_s[s][0]);
            z_d[2] += anz * (eval("z_p" + letter[l] + "[p][1]") + z_s[s][1]);
            z_d[3] += anz * (eval("z_p" + letter[l] + "[p][2]") + z_s[s][2]);
          }
        }
  if (z_d[0] > 0)
    dmgPrint(z_d[1], z_d[2], Math.floor(z_d[3] / z_d[0]), true, false, document.formular.zauber_out);
  else
    document.formular.zauber_out.value = "";
  dmgGesamt();
}

function fillAmulBox(wform) {
  var neu;
  comboClear(document.formular.amul_gift);
  switch(wform) {
    case "mag":  comboAdd(document.formular.amul_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.amul_gift, "magisches Amulett mit Suffix 'der Fäulnis'", "171,171,75");
                 break;
    case "rar":  comboAdd(document.formular.amul_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.amul_gift, "50 über 3 Sekunden", "171,171,75");
                 break;
    case "uni":  comboAdd(document.formular.amul_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.amul_gift, "Atmas Skarabäus", "102,102,100");
                 break;
    case "set":  comboAdd(document.formular.amul_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.amul_gift, "Perlenorakel", "0,0,0");
                 break;
    default:     comboAdd(document.formular.amul_gift, "-------------------------------------------------------------", "0,0,0");
  }
  changeAmul(document.formular.amul_gift.value);
}

function fillArmoBox(wform) {
  var neu;
  comboClear(document.formular.rues_gift);
  if (wform == "set") {
    comboAdd(document.formular.rues_gift, "kein Gift", "0,0,0");
    comboAdd(document.formular.rues_gift, "Berserkers Halsberge (Bänderrüstung)", "0,0,0");
    comboAdd(document.formular.rues_gift, "Dunkler Anhänger (Dämmerschleier)", "125,175,50");
    comboAdd(document.formular.rues_gift, "Seelenkäfig des unsterblichen Königs (Heilige Rüstung)", "0,0,0");
  }
  else
    comboAdd(document.formular.rues_gift, "----------------------------------------------------------", "0,0,0");
  changeArmo(document.formular.rues_gift.value);
}

function fillBeltBox(wform) {
  var neu;
  comboClear(document.formular.guer_gift);
  switch(wform) {
    case "uni":  comboAdd(document.formular.guer_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.guer_gift, "Schlangenband (leichter Gürtel)", "40,40,75");
                 break;
    case "set":  comboAdd(document.formular.guer_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.guer_gift, "Credendum (Mithril-Rolle)", "0,0,0");
                 comboAdd(document.formular.guer_gift, "Infernos Zeichen (schwerer Gürtel)", "0,0,0");
                 comboAdd(document.formular.guer_gift, "Trupp des unsterblichen Königs (Kriegsgürtel)", "0,0,0");
                 break;
    default:     comboAdd(document.formular.guer_gift, "-------------------------------------------------", "0,0,0");
  }
  changeBelt(document.formular.guer_gift.value);
}

function fillGlovBox(wform) {
  var neu;
  comboClear(document.formular.hand_gift);
  switch(wform) {
    case "uni":  comboAdd(document.formular.hand_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.hand_gift, "Giftgriff (Dämonenlederhandschuhe)", "153,153,100");
                 break;
    case "set":  comboAdd(document.formular.hand_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.hand_gift, "Hände auflegen (Dornen-Handschuhe)", "0,0,0");
                 comboAdd(document.formular.hand_gift, "Sanders Tabu (schwere Handschuhe)", "30,36,75");
                 comboAdd(document.formular.hand_gift, "Schmiede des unsterblichen Königs (Kriegs-Panzerhandschuhe)", "0,0,0");
                 break;
    default:     comboAdd(document.formular.hand_gift, "-------------------------------------------------------", "0,0,0");
  }
  changeGlov(document.formular.hand_gift.value);
}

function fillHelmBox(wform) {
  var neu;
  comboClear(document.formular.helm_gift);
  switch(wform) {
    case "magc":
    case "rarc": comboAdd(document.formular.helm_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.helm_gift, "6 über 2 Sekunden", "31,31,50");
                 comboAdd(document.formular.helm_gift, "7 über 3 Sekunden", "24,24,75");
                 comboAdd(document.formular.helm_gift, "12 über 5 Sekunden", "24,24,125");
                 comboAdd(document.formular.helm_gift, "21 über 4 Sekunden", "54,54,100");
                 comboAdd(document.formular.helm_gift, "32 über 6 Sekunden", "54,54,150");
                 comboAdd(document.formular.helm_gift, "50 über 5 Sekunden", "103,103,125");
                 comboAdd(document.formular.helm_gift, "70 über 7 Sekunden", "103,103,175");
                 break;
    case "uni":  comboAdd(document.formular.helm_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.helm_gift, "Wurmschädel (Knochenhelm)", "102,102,200");
                 break;
    case "set":  comboAdd(document.formular.helm_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.helm_gift, "Berserkers Kopfschmuck (Helm)", "0,0,0");
                 comboAdd(document.formular.helm_gift, "Infernos Schädel (Kappe)", "0,0,0");
                 comboAdd(document.formular.helm_gift, "Wille des unsterblichen Königs (Rächender Wächter)", "0,0,0");
                 break;
    default:     comboAdd(document.formular.helm_gift, "--------------------------------------------------------------------------------------", "0,0,0");
  }
  changeHelm(document.formular.helm_gift.value);
}

function fillShieBox(wform) {
  comboClear(document.formular.schi_gift);
  switch (wform) {
    case "uni":  comboAdd(document.formular.schi_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.schi_gift, "Radaments Kugel (alter Schild)", "204,204,100");
                 break;
    case "mag2": comboAdd(document.formular.schi_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.schi_gift, "2-7 über 3 Sekunden", "8,24,75");
                 comboAdd(document.formular.schi_gift, "5-14 über 3 Sekunden", "16,48,75");
                 comboAdd(document.formular.schi_gift, "13-28 über 4 Sekunden", "32,72,100");
                 comboAdd(document.formular.schi_gift, "25-50 über 4 Sekunden", "64,128,100");
                 break;
    case "rar2": comboAdd(document.formular.schi_gift, "kein Gift", "0,0,0");
                 comboAdd(document.formular.schi_gift, "2-7 über 3 Sekunden", "8,24,75");
                 comboAdd(document.formular.schi_gift, "5-14 über 3 Sekunden", "16,48,75");
                 comboAdd(document.formular.schi_gift, "13-28 über 4 Sekunden", "32,72,100");
                 break;
    default:     comboAdd(document.formular.schi_gift, "----------------------------------------------", "0,0,0");
  }
  changeShie(document.formular.schi_gift.value);
}

function fillWeapBox(wform) {
  comboClear(document.formular.waff_gift);
  switch(wform) {
    case "non": comboAdd(document.formular.waff_gift, "-----------------------------------------------------------------------------------------------", "0,0,0");
                break;
    case "mag":
    case "rar": comboAdd(document.formular.waff_gift, "kein Gift", "0,0,0");
                comboAdd(document.formular.waff_gift, "2 über 2 Sekunden", "8,8,50");
                comboAdd(document.formular.waff_gift, "6 über 2 Sekunden", "31,31,50");
                comboAdd(document.formular.waff_gift, "7 über 3 Sekunden", "24,24,75");
                comboAdd(document.formular.waff_gift, "12 über 3 Sekunden", "41,41,75");
                comboAdd(document.formular.waff_gift, "15 über 4 Sekunden", "39,39,100");
                comboAdd(document.formular.waff_gift, "21 über 4 Sekunden", "54,54,100");
                comboAdd(document.formular.waff_gift, "24 über 5 Sekunden", "49,49,125");
                comboAdd(document.formular.waff_gift, "27 über 5 Sekunden", "55,55,125");
                comboAdd(document.formular.waff_gift, "38 über 6 Sekunden", "65,65,150");
                comboAdd(document.formular.waff_gift, "50 über 6 Sekunden", "85,85,150");
                comboAdd(document.formular.waff_gift, "50 über 5 Sekunden", "103,103,125");
                comboAdd(document.formular.waff_gift, "65 über 7 Sekunden", "95,95,175");
                comboAdd(document.formular.waff_gift, "80 über 4 Sekunden", "205,205,100");
                comboAdd(document.formular.waff_gift, "92 über 7 Sekunden", "134,134,175");
                comboAdd(document.formular.waff_gift, "100 über 6 Sekunden", "171,171,150");
                comboAdd(document.formular.waff_gift, "113 über 8 Sekunden", "144,144,200");
                comboAdd(document.formular.waff_gift, "125 über 6 Sekunden", "213,213,150");
                comboAdd(document.formular.waff_gift, "150 über 5 Sekunden", "308,308,125");
                comboAdd(document.formular.waff_gift, "157 über 7 Sekunden", "229,229,175");
                comboAdd(document.formular.waff_gift, "158 über 8 Sekunden", "202,202,200");
                comboAdd(document.formular.waff_gift, "186 über 9 Sekunden", "212,212,225");
                comboAdd(document.formular.waff_gift, "202 über 8 Sekunden", "259,259,200");
                comboAdd(document.formular.waff_gift, "216 über 7 Sekunden", "316,316,175");
                comboAdd(document.formular.waff_gift, "259 über 8 Sekunden", "332,332,200");
                comboAdd(document.formular.waff_gift, "271 über 9 Sekunden", "308,308,225");
                comboAdd(document.formular.waff_gift, "275 über 6 Sekunden", "470,470,150");
                comboAdd(document.formular.waff_gift, "318 über 9 Sekunden", "362,362,225");
                comboAdd(document.formular.waff_gift, "367 über 10 Sekunden", "376,376,250");
                comboAdd(document.formular.waff_gift, "373 über 8 Sekunden", "478,478,200");
                comboAdd(document.formular.waff_gift, "401 über 10 Sekunden", "411,411,250");
                comboAdd(document.formular.waff_gift, "434 über 9 Sekunden", "494,494,225");
                comboAdd(document.formular.waff_gift, "512 über 10 Sekunden", "524,524,250");
                comboAdd(document.formular.waff_gift, "515 über 11 Sekunden", "479,479,275");
                comboAdd(document.formular.waff_gift, "616 über 11 Sekunden", "573,573,275");
                comboAdd(document.formular.waff_gift, "751 über 12 Sekunden", "641,641,300");
                break;
    case "uni": comboAdd(document.formular.waff_gift, "kein Gift", "0,0,0");
                comboAdd(document.formular.waff_gift, "Ariocs Nadel (Hyperionspeer)", "403,403,250");
                comboAdd(document.formular.waff_gift, "Blackbogs Spitze (Cinquedea)", "500,500,250");
                comboAdd(document.formular.waff_gift, "böse Schale (Stoßschwert)", "426,426,150");
                comboAdd(document.formular.waff_gift, "Eiterspeier (Belagerungsarmbrust)", "192,192,200");
                comboAdd(document.formular.waff_gift, "Gargoyle-Biss (Geflügelte Harpune)", "300,300,250");
                comboAdd(document.formular.waff_gift, "Höllenpest (Langschwert)", "48,96,150");
                comboAdd(document.formular.waff_gift, "Jade-Tan-Do (Kris)", "460,460,100");
                comboAdd(document.formular.waff_gift, "Natternfürst (Langstab)", "40,40,75");
                comboAdd(document.formular.waff_gift, "Pestbringer (Runenschwert)", "384,384,200");
                comboAdd(document.formular.waff_gift, "Säurebrand (Armbrust)", "102,102,75");
                comboAdd(document.formular.waff_gift, "Schwarzzunge (Bastardschwert)", "192,192,150");
                comboAdd(document.formular.waff_gift, "Stinksprinkler (Weihwasserstab)", "409,409,100");
                comboAdd(document.formular.waff_gift, "Teufelsnarbe (Kriegsaxt)", "128,128,75");
                comboAdd(document.formular.waff_gift, "Viperngabel (Menschenfänger)", "333,333,250");
                comboAdd(document.formular.waff_gift, "Wächter-Dao (Dao)", "256,256,250");
                break;
    case "run": comboAdd(document.formular.waff_gift, "Geifer", "312,312,175");
                comboAdd(document.formular.waff_gift, "Heiliger Donner", "0,0,0");
                break;
    case "set": comboAdd(document.formular.waff_gift, "kein Gift", "0,0,0");
                comboAdd(document.formular.waff_gift, "Berserkers Kriegsbeil (Kriegsaxt)", "0,0,0");
                comboAdd(document.formular.waff_gift, "Bul-Kathos Stammeswächter (Mythisches Schwert)", "255,255,50");
                comboAdd(document.formular.waff_gift, "Infernos Fackel (Schlagstab)", "0,0,0");
                comboAdd(document.formular.waff_gift, "Steintrümmerer des unsterblichen Königs (Ogerhammer)", "0,0,0");
                break;
  }
  changeWeap(document.formular.waff_gift.value);
}

function gemFill(item){
  var combo, i, sock = eval("sock_" + item);
  var value = eval("document.formular." + item + "_sock1.value");
  for (i = 2; i <= sock; i++) {
    combo = eval("document.formular." + item + "_sock" + i);
    combo.value = value
    switch(item) {
      case "waff": dmgWeapSock(i, value); break;
      case "schi": dmgShieSock(i, value); break;
      case "rues": dmgArmoSock(i, value); break;
      case "helm": dmgHelmSock(i, value); break;
    }
  }
  switch(item) {
    case "waff": dmgWeapGesamt(); break;
    case "schi": dmgShieGesamt(); break;
    case "rues": dmgArmoGesamt(); break;
    case "helm": dmgHelmGesamt(); break;
  }
}

function getString(text, position) {
  var i, start, end = -1;
  for (i = 1; i <= position; i++) {
    start = end + 1;
    end = text.indexOf(",", start);
    if (end == -1)
      if (i == position)
        end = text.length;
      else
        return "";
  }
  return text.substring(start, end);
}

function setStart() {
  started = false;
  s_d = new Array(0, 0, 0, 0);
  z_d = new Array(0, 0, 0);
  document.formular.waff_form.value = "non";
  fillWeapBox("non");
  document.formular.schi_form.value = "non";
  fillShieBox("non");
  document.formular.rues_form.value = "non";
  fillArmoBox("non");
  document.formular.helm_form.value = "non";
  fillHelmBox("non");
  document.formular.hand_form.value = "non";
  fillGlovBox("non");
  document.formular.guer_form.value = "non";
  fillBeltBox("non");
  document.formular.ring1_gift.value = "0,0,0";
  changeRing(1, "0,0,0");
  document.formular.ring2_gift.value = "0,0,0";
  changeRing(2, "0,0,0");
  document.formular.amul_form.value = "non";
  fillAmulBox("non");
  checkSets();
  started = true;
}
