function GP_fenster_oeffnen() {
  if (GP_fenster_oeffnen.arguments.length == 3)
    var w = window.open(GP_fenster_oeffnen.arguments[0],
                        GP_fenster_oeffnen.arguments[1],
                        GP_fenster_oeffnen.arguments[2]);
  else if (GP_fenster_oeffnen.arguments.length == 2)
    var w = window.open(GP_fenster_oeffnen.arguments[0],
                        GP_fenster_oeffnen.arguments[1]);
  else if (GP_fenster_oeffnen.arguments.length == 1)
    var w = window.open(GP_fenster_oeffnen.arguments[0]);
  else if (GP_fenster_oeffnen.arguments.length == 0)
    var w = window.open();

  if (w)
    if (!w.opener)
      w.opener = self;

  return w;
}

function GP_fenster_schliessen(w) {
  if (w && !w.closed)
    w.close();
}

function GP_fenster_oeffnen_xy() {
  var arg = GP_fenster_oeffnen_xy.arguments;
  if (arg.length < 2)
    return null;
  var x = arg[arg.length-2];
  var y = arg[arg.length-1];
  switch (arg.length) {
    case 2: var w = GP_fenster_oeffnen(); break;
    case 3: var w = GP_fenster_oeffnen(arg[0]); break;
    case 4: var w = GP_fenster_oeffnen(arg[0], arg[1]); break;
    case 5: var w = GP_fenster_oeffnen(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Fenster bewegen
  if (w)
    w.moveTo(x, y);
  return w;
}

function GP_fenster_oeffnen_lo() {
  var arg = GP_fenster_oeffnen_lo.arguments;
  switch (arg.length) {
    case 0: var w = GP_fenster_oeffnen(); break;
    case 1: var w = GP_fenster_oeffnen(arg[0]); break;
    case 2: var w = GP_fenster_oeffnen(arg[0], arg[1]); break;
    case 3: var w = GP_fenster_oeffnen(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Fenster zum Ursprung bewegen
  if (w)
    w.moveTo(0, 0);
  return w;
}

function GP_fenster_oeffnen_lu() {
  var arg = GP_fenster_oeffnen_lu.arguments;
  switch (arg.length) {
    case 0: var w = GP_fenster_oeffnen(); break;
    case 1: var w = GP_fenster_oeffnen(arg[0]); break;
    case 2: var w = GP_fenster_oeffnen(arg[0], arg[1]); break;
    case 3: var w = GP_fenster_oeffnen(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Breite und Höhe ermitteln 
  if (window.outerWidth) {
    var breite = window.outerWidth;
    var hoehe = window.outerHeight;
  } else if (document.body) {
    var breite = document.body.offsetWidth;
    var hoehe = document.body.offsetHeight;
  } else {  // alles schlägt fehl, z.B. Netscape 3
    var breite = Math.round(screen.availWidth * 0.75);
    var hoehe = Math.round(screen.availHeight * 0.75);
  }
  // Fenster skalieren und zur linken unteren Ecke bewegen
  var y = screen.availHeight - hoehe;
  if (w) {
    if (!window.outerWidth)
      w.resizeTo(breite, hoehe);
    w.moveTo(0, y);
  }
  return w;
}

function GP_fenster_oeffnen_ro() {
  var arg = GP_fenster_oeffnen_ro.arguments;
  switch (arg.length) {
    case 0: var w = GP_fenster_oeffnen(); break;
    case 1: var w = GP_fenster_oeffnen(arg[0]); break;
    case 2: var w = GP_fenster_oeffnen(arg[0], arg[1]); break;
    case 3: var w = GP_fenster_oeffnen(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Breite und Höhe ermitteln 
  if (window.outerWidth) {
    var breite = window.outerWidth;
    var hoehe = window.outerHeight;
  } else if (document.body) {
    var breite = document.body.offsetWidth;
    var hoehe = document.body.offsetHeight;
  } else {  // alles schlägt fehl, z.B. Netscape 3
    var breite = Math.round(screen.availWidth * 0.75);
    var hoehe = Math.round(screen.availHeight * 0.75);
  }
  // Fenster skalieren und zur rechten oberen Ecke bewegen
  var x = screen.availWidth - breite;
  if (w) {
    if (!window.outerWidth)
      w.resizeTo(breite, hoehe);
    w.moveTo(x, 0);
  }
  return w;
}

function GP_fenster_oeffnen_ru() {
  var arg = GP_fenster_oeffnen_ru.arguments;
  switch (arg.length) {
    case 0: var w = GP_fenster_oeffnen(); break;
    case 1: var w = GP_fenster_oeffnen(arg[0]); break;
    case 2: var w = GP_fenster_oeffnen(arg[0], arg[1]); break;
    case 3: var w = GP_fenster_oeffnen(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Breite und Höhe ermitteln 
  if (window.outerWidth) {
    var breite = window.outerWidth;
    var hoehe = window.outerHeight;
  } else if (document.body) {
    var breite = document.body.offsetWidth;
    var hoehe = document.body.offsetHeight;
  } else {  // alles schlägt fehl, z.B. Netscape 3
    var breite = Math.round(screen.availWidth * 0.75);
    var hoehe = Math.round(screen.availHeight * 0.75);
  }
  // Fenster skalieren und zur linken unteren Ecke bewegen
  var x = screen.availWidth - breite;
  var y = screen.availHeight - hoehe;
  if (w) {
    if (!window.outerWidth)
      w.resizeTo(breite, hoehe);
    w.moveTo(x, y);
  }
  return w;
}

function GP_fenster_oeffnen_zentriert() {
  var arg = GP_fenster_oeffnen_zentriert.arguments;
  switch (arg.length) {
    case 0: var w = GP_fenster_oeffnen(); break;
    case 1: var w = GP_fenster_oeffnen(arg[0]); break;
    case 2: var w = GP_fenster_oeffnen(arg[0], arg[1]); break;
    case 3: var w = GP_fenster_oeffnen(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Breite und Höhe ermitteln 
  if (window.outerWidth) {
    var breite = window.outerWidth;
    var hoehe = window.outerHeight;
  } else if (document.body) {
    var breite = document.body.offsetWidth;
    var hoehe = document.body.offsetHeight;
  } else {  // alles schlägt fehl, z.B. Netscape 3
    var breite = Math.round(screen.availWidth * 0.75);
    var hoehe = Math.round(screen.availHeight * 0.75);
  }
  // Fenster skalieren und zur Mitte bewegen
  var x = Math.round((screen.availWidth - breite) / 2);
  var y = Math.round((screen.availHeight - hoehe) / 2);
  if (w) {
    if (!window.outerWidth)
      w.resizeTo(breite, hoehe);
    w.moveTo(x, y);
  }
  return w;
}

function GP_fenster_oeffnen_vollbild() {
  var arg = GP_fenster_oeffnen_vollbild.arguments;
  switch (arg.length) {
    case 0: var w = GP_fenster_oeffnen_lo(); break;
    case 1: var w = GP_fenster_oeffnen_lo(arg[0]); break;
    case 2: var w = GP_fenster_oeffnen_lo(arg[0], arg[1]); break;
    case 3: var w = GP_fenster_oeffnen_lo(arg[0], 
                                       arg[1], arg[2]); break;
  }
  // Fenster skalieren
  if (w)
    w.resizeTo(screen.availWidth, screen.availHeight);
  return w;
}

function GP_url_oeffnen_fenster(url, w) {
  if (w.location && !w.closed)
    w.location.href = url;
  else
    GP_fenster_oeffnen(url, w.name);
}


