/**
 * Bessere Handhabung zum oeffnen von Popup-Fenstern
 * - Setzt automatisch den focus 
 * @link http://de.selfhtml.org/javascript/objekte/window.htm#open
 * @param   string url  Die Url oder void fuer about:blank
 * @param   string name Name des Fenstern oder void name = "popup"
 * @param   string opt  weitere Optionen
 * @return  window      new window object or false
 * -------------------------------------------------------------------
 * $Id: popup.js 2314 2007-04-12 12:45:01Z mben $
 */

var popupArr = new Array();

function popup (url, name, params) {
  var option = new Array();
  option["dependent"]  = "yes";
  //option["height"]     = null;
  //option["width"]      = null;
  option["hotkeys"]    = "yes";
  option["left"]       = 50;
  option["top"]        = 50;
  option["menubar"]    = "no";
  option["status"]     = "yes";
  option["toolbar"]    = "no";
  option["resizable"]  = "no";
  option["scrollbars"] = "no";
  
  var replace = new Array();
  replace["screenX"] = "left";
  replace["screenY"] = "top";
  
  if (!url) {
    url = "about:blank";
  }
  if (!name) {
    name = "popup";
  }
  
  if (params) {
    params = params.split(",");
    for (i = 0; i < params.length; i++) {
      var key   = params[i].split("=")[0];
      var value = params[i].split("=")[1];
      if (replace[key]) {
        option[ replace[key] ] = value;
      } else {
        option[key] = value;
      }
    }
  }
  
  var optStr = '';
  for (var optKey in option) {
    optStr = optStr + "," + optKey + "=" + option[optKey];
  }
  optStr = optStr.substr(1, optStr.length);
  
  var win = window.open(url, name, optStr);
  if (win) {
    // save
    if (!win.opener) {
      win.opener = window.self;
    }
    popupArr[popupArr.length] = win;
    
    // focus
    win.focus();

    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
      window.onload = win.focus;
    } else {
      window.onload = function() {
        oldonload();
        popupArr[popupArr.length-1].focus();
      }
    }
    return win;
  } else {
    return false;
  }
}