// Wechsel der Hauptregion (Land) im Dropdown
function change_region(val)
{
  region = val;
  // alle Regionen loeschen
  while ( eval("document.form." + sel_new + ".options").length != 0 )
    eval("document.form." + sel_new).options[0] = null;
  // alle Staedet loeschen
  while ( eval("document.form." + sel_new2 + ".options").length != 0 )
    eval("document.form." + sel_new2).options[0] = null;

  maxpos = maxpos2 = 0;

  // Regionen erstellen
  for ( i in regions[region] )
  {
    if ( ids[i] == null || ids[i] != i)
    {
      text = regions[region][i];
      noption = new Option(text, i);
      eval("document.form." + sel_new).options[maxpos] = noption;
      maxpos++;
    }
  }
  // Staedte erstellen
  for ( i in regions2[region] )
  {
    if ( ids[i] == null || ids[i] != i)
    {
      text = regions2[region][i];
      noption = new Option(text, i);
      eval("document.form."+sel_new2).options[maxpos2] = noption;
      maxpos2++;
    }
  }
}
// neu Laden der Regionen und Staedte
function reload_region()
{
  maxpos  = maxpos2 = 0;
  type1   = typeof eval("document.form." + sel_new) != 'undefined';
  type2   = typeof eval("document.form." + sel_new2) != 'undefined';

  // alle Regionen loeschen
  if ( type1)
  {
    while ( eval("document.form." + sel_new + ".options").length != 0 ) {
      eval("document.form." + sel_new).options[0] = null;
    }
    // Regionen erstellen
    for ( i in regions[region] )
    {
      if ( ids[i] == null || ids[i] != i)
      {
        text = regions[region][i];
        noption = new Option(text, i);
        eval("document.form."+sel_new).options[maxpos] = noption;
        maxpos++;
      }
    }
  }
  // alle Staedet loeschen
  if ( type2 ) {
    while ( eval("document.form." + sel_new2 + ".options").length != 0 ) {
      eval("document.form." + sel_new2).options[0] = null;
    }
    // Staedte erstellen
    for ( i in regions2[region] )
    {
      if ( ids[i] == null || ids[i] != i)
      {
        text = regions2[region][i];
        noption = new Option(text, i);
        eval("document.form."+sel_new2).options[maxpos2] = noption;
        maxpos2++;
      }
    }
  }
}
// Loeschen der Staedte und Regionen, wenn Gesamtland gewaehlt wurde
function del_subregions(id)
{
  var ss_region;

  for ( e in regions[id] )
  {
    if ( e != id )
    {
      ss_region = e;
      for ( q=0; q < eval("document.form." + sel_active + ".options").length; q++ )
      {
        if ( eval("document.form." + sel_active + ".options[" + q + "]").value == ss_region )
        {
          eval("document.form." + sel_active).options[q] = null;
          ids[ss_region] = null;
          break;
        }
      }
    }
  }
  for ( e in regions2[id] )
  {
    if ( e != id )
    {
      ss_region = e;
      for ( q=0; q < eval("document.form." + sel_active + ".options").length; q++ )
      {
        if ( eval("document.form." + sel_active + ".options[" + q + "]").value == ss_region )
        {
          eval("document.form." + sel_active).options[q] = null;
          ids[ss_region] = null;
          break;
        }
      }
    }
  }
}
// Loeschen der Hauptregion (Land), sobald Unterregionen (Steadte,Regionen) gewaehlt werden
function del_main_region(id)
{
  var reg;
  for ( i in regions[id] )
  {
    reg = i;
    break;
  }
  for ( p=0; p < eval("document.form." + sel_active + ".options").length; p++ )
  {
    if ( eval("document.form." + sel_active + ".options[" + p + "]").value == reg )
    {
      eval("document.form." + sel_active).options[p] = null;
      ids[reg] = null;
      break;
    }
  }
}
// Hinzufuegen einer oder mehrerer Regionen
function plus_region()
{
  if ( typeof default_region == 'undefined' ) {
    default_region = 1135;
  }

  // wenn nichts gewaehlt wurde
  type1 = typeof eval("document.form." + sel_new) != 'undefined';
  type2 = typeof eval("document.form." + sel_new2) != 'undefined';

  if ( type1 && type2 ) {
    if ( eval("document.form." + sel_new).selectedIndex == -1  && eval("document.form." + sel_new2).selectedIndex == -1)
      return;
  }
  else if ( type1 ) {
    if ( eval("document.form." + sel_new).selectedIndex == -1 )
      return;
  }
  else {
    if ( eval("document.form." + sel_new2).selectedIndex == -1 )
      return;
  }


  // wenn etwas gewaehlt wurde, weltweit entfernen
  if ( eval("document.form." + sel_active + ".options").length == 1 && eval("document.form." + sel_active + ".options[0]").value == default_region)
    eval("document.form." + sel_active).options[0] = null;
  del_main_region(region);
  maxpos = eval("document.form." + sel_active + ".options").length;

  if ( type1 )
  {
    for ( t=0; t < eval("document.form." + sel_new + ".options").length; t++ )
    {
      if ( eval("document.form." + sel_new + ".options[" + t + "]").selected )
      {
        id_wahl = eval("document.form." + sel_new + ".options[" + t + "]").value;
        ids[id_wahl] = id_wahl;
        if ( region != 0 )
        {
          for ( p in regions[region] )
          {
            text = p;
            if ( text == id_wahl )
            {
              if ( p == region )
              {
                text = document.form.list_regions.options[document.form.list_regions.selectedIndex].text;
                noption = new Option(text, p);
                eval("document.form." + sel_active).options[maxpos] = noption;
                maxpos++;
                del_subregions(region);
                reload_region();
                return;
              }
              else
              {
                text = regions[region][p];
                noption = new Option(text, p);
                eval("document.form." + sel_active).options[maxpos] = noption;
                maxpos++;
              }
            }
          }
        }
      }
    }
  }
  if ( type2 )
  {
    for ( t=0; t < eval("document.form." + sel_new2 + ".options").length; t++ )
    {
      if ( eval("document.form." + sel_new2 + ".options[" + t + "]").selected )
      {
        id_wahl = eval("document.form." + sel_new2 + ".options[" + t + "]").value;
        ids[id_wahl] = id_wahl;
        if ( region != 0 )
        {
          for ( p in regions2[region] )
          {
            text = p;
            if ( text == id_wahl )
            {
              text = regions2[region][p];
              noption = new Option(text, p);
              eval("document.form." + sel_active).options[maxpos] = noption;
              maxpos++;
           }
          }
        }
      }
    }
  }
  reload_region();
}
// Entfernen einer oder mehrerer Regionen
function minus_region()
{
  t=0;
  if ( typeof default_region == 'undefined' )
    default_region = 1135;

  while ( t < eval("document.form." + sel_active + ".options").length )
  {
    if ( eval("document.form." + sel_active + ".options[" + t + "]").selected )
    {
      id_wahl = eval("document.form." + sel_active + ".options[" + t + "]").value;
      ids[id_wahl] = null;
      eval("document.form." + sel_active).options[t] = null;
      t=0;
    }
    else
    {
      t++;
    }
  }
  reload_region();
  if ( eval("document.form." + sel_active + ".options").length == 0 )
  {
    noption = new Option(regions[0][0], default_region);
    eval("document.form." + sel_active).options[0] = noption;
  }
}
// Festlegen der Selectfeldernamen
function init_region(n_temp, n_temp2 ,n_submit)
{
  sel_new = n_temp;
  sel_new2 = n_temp2;
  sel_active = n_submit;
}
// beim Submit der Seite die selectierten IDs in die Variable variable schreiben
function save_selected()
{
  var tmp_ids = new Array(), help, t=0;

  while ( t < eval("document.form." + sel_active + ".options").length )
  {
    tmp_ids[t] = eval("document.form." + sel_active + ".options[" + t + "]").value;
    t++;
  }
  document.form.des_ids.value = tmp_ids.join(",")
}
// beim Laden der Seite die gespeicherten IDs in das Array ids schreiben
function load_ids()
{
  t=0;

  while ( t < eval("document.form." + sel_active + ".options").length )
  {
    ids[eval("document.form." + sel_active + ".options[" + t + "]").value] = eval("document.form." + sel_active + ".options[" + t + "]").value;
    t++;
  }
}