/**
 * Versteckt und zeigt ein Element abhängig von der Auswahl eines
 * Select-, Radio- oder Checkbox-Feldes. Diese Funktion muss nach
 * dem Feld und dem zu versteckenden Element aufgerufen werden.
 * Benötigt JavaScript 1.5
 *
 * @param string der komplette Name des Feldes,
 *               wie z.B. 'document.forms[0].elements[0]'
 * @param string falls das Feld eine eindeutige ID hat,
 *               kann es auch über die ID angesprochen werden,
 *               der Parameter name bleibt dann leer
 * @param mixed  - bei einem Radio- oder Checkbox-Feld:
 *                 index = true: das versteckte Element anzeigen
 *                 wenn das Radio- oder Checkbox-Feld leer ist,
 *                 index = false: das versteckte Element anzeigen
 *                 wenn das Radio- oder Checkbox-Feld angewählt ist
 *               - bei einem Select-Feld:
 *                 index des Select-Feldes, ab dem das versteckte
 *                 Element angezeigt wird
 * @param string ID des zu versteckenden Elements
 */
function fieldHide(name, id, index, hideId)
{
  var field = (id!="") ? document.getElementById(id) : eval(name);
  var hide = document.getElementById(hideId);
  var hideStyle = hide.style.display;
  var update = function()
  {
    if(field.type == "select-one")
    {
      if(field.selectedIndex >= index) hide.style.display = hideStyle
      else hide.style.display = "none";
    }
    else if(field.type == "radio" || field.type == "checkbox")
    {
      if(field.checked == index) hide.style.display = "none"
      else hide.style.display = hideStyle;
    }
  }
  update();

  if(field.addEventListener)
  {
    field.addEventListener("keyup", update, false);
    field.addEventListener("click", update, false);
    field.addEventListener("change", update, false);
  }
  else
  {
    var old = (field.onkeyup) ? field.onkeyup : function () {};
    field.onkeyup = function () { old(); update(); };
    old = (field.onchange) ? field.onchange : function () {};
    field.onchange = function () { old(); update(); };
    old = (field.onclick) ? field.onclick : function () {};
    field.onclick = function () { old(); update(); };
  }
}
