var wReturnWinHandle = 1;
var wSetFocus = 2;
var wDependent = 4;
var wResizable = 8;
var wScrollbars = 16;
var wMenubar = 32;
var wToolbar = 64;
var wLocationbar = 128;
var wStatusbar = 256;
var wBookmarks = 512;
var wHotkeys = 1024;

function openWindow (winUrl, winWidth, winHeight, winX, winY, winName, winPropsEnable, winPropsDisable) {

    // Default-Werte fÃ¼r Zahlenvariablen setzen, wenn Parameter nicht oder falsch Ã¼bergeben wurden. Variablen auf numerischen Typ festlegen
    winWidth = (!winWidth || isNaN (winWidth)) ? 400 : parseInt (winWidth);
    winHeight = (!winHeight || isNaN (winHeight)) ? 400 : parseInt (winHeight);
    winX = (!winX || isNaN (winX)) ? 20 : parseInt (winX);
    winY = (!winY || isNaN (winY)) ? 20 : parseInt (winY);

    // Fenster verkleinern, wenn grÃ¶ÃŸer als darstellbarer Bereich
    if ( (winWidth + winX) > (screen.availWidth - 10) ) winWidth = screen.availWidth - winX - 10;
    if ( (winHeight + winY) > (screen.availHeight - 30) ) winHeight = screen.availHeight - winY - 30;

    // Dreistatus-Attribute (An/Aus/Unbestimmt) in Variablen definieren
  var winDependent = (winPropsEnable & wDependent) ? 'dependent=yes,' : ( (winPropsDisable & wDependent) ? 'dependent=no,' : '' );
  var winResizable = (winPropsEnable & wResizable) ? 'resizable=yes,' : ( (winPropsDisable & wResizable) ? 'resizable=no,' : '' );
  var winScrollbars = (winPropsEnable & wScrollbars) ? 'scrollbars=yes,' : ( (winPropsDisable & wScrollbars) ? 'scrollbars=no,' : '' );
  var winMenubar = (winPropsEnable & wMenubar) ? 'menubar=yes,' : ( (winPropsDisable & wMenubar) ? 'menubar=no,' : '' );
    var winToolbar = (winPropsEnable & wToolbar) ? 'toolbar=yes,' : ( (winPropsDisable & wToolbar) ? 'toolbar=no,' : '' );
  var winLocationbar = (winPropsEnable & wLocationbar) ? 'location=yes,' : ( (winPropsDisable & wLocationbar) ? 'location=no,' : '' );
  var winStatusbar = (winPropsEnable & wStatusbar) ? 'status=yes,' : ( (winPropsDisable & wStatusbar) ? 'status=no,' : '' );
    var winBookmarks = (winPropsEnable & wBookmarks) ? 'directories=yes,' : ( (winPropsDisable & wBookmarks) ? 'directories=no,' : '' );
    var winHotkeys = (winPropsEnable & wHotkeys) ? 'hotkeys=yes,' : ( (winPropsDisable & wHotkeys) ? 'hotkeys=no,' : '' );

    // IE verÃ¤ndert die FenstergrÃ¶ÃŸe ganz speziell ... deswegen wieder "von Hand" zurÃ¼ckberechnen
    if (document.all) {

        winWidth = (winPropsEnable & wScrollbars) ? winWidth + 16 : winWidth;

        winWidth = ( (winPropsEnable & wMenubar)
            && (winPropsEnable & wToolbar)
            && (winPropsEnable & wLocationbar)
            && (winPropsEnable & wStatusbar)
            && (winPropsEnable & wBookmarks)
            && (winPropsEnable & wResizable) )
            ? winWidth + 12 : winWidth;

        winWidth = ( (winPropsEnable & wMenubar)
            && (winPropsEnable & wToolbar)
            && (winPropsEnable & wLocationbar)
            && (winPropsEnable & wStatusbar)
            && (winPropsEnable & wBookmarks)
            && ( (winPropsDisable & wResizable) || !(winPropsEnable & wResizable) ) )
            ? winWidth + 10 : winWidth;

        winHeight = (winPropsEnable & wMenubar) ? winHeight - 19 : winHeight;

        winHeight = ( (winPropsEnable & wMenubar)
            && (winPropsEnable & wToolbar)
            && (winPropsEnable & wLocationbar)
            && (winPropsEnable & wStatusbar)
            && (winPropsEnable & wBookmarks)
            && (winPropsEnable & wResizable) )
            ? winHeight + 171 : winHeight;

        winHeight = ( (winPropsEnable & wMenubar)
            && (winPropsEnable & wToolbar)
            && (winPropsEnable & wLocationbar)
            && (winPropsEnable & wStatusbar)
            && (winPropsEnable & wBookmarks)
            && ( (winPropsDisable & wResizable) || !(winPropsEnable & wResizable) ) )
            ? winHeight + 169 : winHeight;

        // Nach der IE-Neuberechnung wieder auf maximale GrÃ¶ÃŸe reduzieren, wenn notwendig
        if ( (winWidth + winX) > (screen.availWidth - 10) ) winWidth = screen.availWidth - winX - 10;
        if ( (winHeight + winY) > (screen.availHeight - 30) ) winHeight = screen.availHeight - winY - 30;

    } // if (document.all)

  // Fenster Ã¶ffnen
  newWin = window.open (winUrl, winName,
    'left=' + winX +
    ',top=' + winY +
    ',width=' + winWidth +
    ',height=' + winHeight +
    ',' + winDependent + winResizable + winScrollbars + winMenubar + winToolbar
    + winLocationbar + winStatusbar + winBookmarks + winHotkeys);

    if (winPropsDisable ^ wSetFocus) newWin.focus();
  return (winPropsEnable & wReturnWinHandle) ? newWin : false;

} // function openWindow


// V3
