/**
 * Funktionen fuer das oeffnen von Fenstern
 * @package JavaScript
 * @subpackage Window
 * @author Alexander Zimmermann <zimmermann@twt.de>
 * @version $Id: twt_window.js,v 1.1 2006/01/27 14:46:28 stefan Exp $
 * @filesource
 * @desc Diese Datei enthaelt Funktionen mit denen Fenster geoeffnet werden.
 * Diese koennen mit Hilfe von etlichen Parametern positioniert und formatiert
 * werden. Alle Besonderheiten der Browser werden innerhalb der Funktion be-
 * ruecksichtig.
 */

/**
 * Mini - Version oeffnet lediglich ein Fenster
 * @param     string    page URL die im geoeffneten Fenster angezeigt werden soll.
 * @return    object    Fensterobjekt das zurueckgegeben wird.
 * @access    public
 */
function win_popup_min(page)
{
  var w = window.open(page, "", "");
  return w;
} // Ende Funktion win_popup_min

/**
 * Normal - Version.
 * Das Fenster wird mit einer Breite von 400 und einer hoehe von 500 Pixeln
 * geoeffnet. Es gibt keine Menueleiste, Statusleiste und Toolbar.
 * Die Scrollleisten sind jedoch eingeschaltet.
 * @param     string    page URL die im geoeffneten Fenster angezeigt werden soll.
 * @param     string    window_title Fenstertitel. Dieser darf keine Sonderzeichen
 *                      und auch keine Leerzeichen enthalten.
 * @return    object    Fensterobjekt das zurueckgegeben wird.
 * @access    public
 * @todo Checken ob nicht schon ein Fenster mit diesem Window_title geoeffnet ist
 * und ob die Adresse nicht bereits aufgerufen worden ist.
 */
function win_popup_nrm(page, window_title)
{
  var w = window.open(page, window_title,
                      "width=400, height=500, menubar=0, status=0, toolbar=0, scollbars=1"
                     );
  return w;
} // Ende Funktion win_popup_nrm

/**
 * Luxus - Version, hier kann alles bestimmt werden.
 * @param     string    page URL die im geoeffneten Fenster angezeigt werden soll.
 * @param     string    window_title Fenstertitel. Dieser darf keine Sonderzeichen
 *                      und auch keine Leerzeichen enthalten.

 * @param     integer   breite Breite in Pixeln fuer das Fenster
 * @param     integer   hoehe Hoehe in Pixeln fuer das Fenster
 * @param     integer   links Linke Spalte in Pixeln fuer das Fenster
 * @param     integer   oben Oben in Pixeln fuer das Fenster
 * @param     bool      menuebar Soll eine Menuebar angezeigt werden
 * @param     bool      statuszeile Soll die Statusleiste angezeigt werden
 * @param     bool      toolbars Soll die Toolbar angezeigt werden.
 * @param     bool      scrollleisten Sollen die Scrollleitesn angezeitgt werden.
 * @return    object    Fensterobjekt das zurueckgegeben wird.
 * @access    public
 * @todo Checken ob nicht schon ein Fenster mit diesem Window_title geoeffnet ist
 * und ob die Adresse nicht bereits aufgerufen worden ist.
 * Weiterhin waere das checken der Parameter sinnvoll fuer alle gaengigen Browser.
 */
function win_popup_lx(page, window_title, breite, hoehe, links, oben, menuebar, statuszeile, toolbars, scrollleisten)
{
  var w = window.open(page, window_title,
                      'width='+breite+', height='+hoehe+', left='+links+', top='+oben+
                      ', menubar='+menuebar+', status='+statuszeile+
                      ', toolbars='+toolbars+', scrollbars='+scrollleisten
                     );
  return w;
} // Ende Funktion win_popup_lx


/**
 * Nicht verwendet...
 * @todo      Diese Funktion soll halt feststellen ob das Fenster nicht schon
 *            geoeffnet ist, ansonsten soll das Fenster dann in den Vordergrund
 *            gebracht werden, ohne erneut geoeffnet zu werden. Spart traffic
 *            und vor allen Dingen Ladezeit.
 * @param     string    adresse URL die im geoeffneten Fenster angezeigt werden soll.
 * @return    object    Fensterobjekt das zurueckgegeben wird.
 * @access    public
 * @todo Funktion mal fertig machen...
 */
function win_show(adresse)
{
  if (extern == null || extern.closed == true)
  {
    window_parameter = "width=630,height=430,innerWidth=600,innerHeight=400,menubar=yes,location=yes,scrollbars=yes,toolbar=yes,resizable=yes,status=yes,titlebar=yes,screenx=30,screeny=30";
    extern=window.open(adresse,"EXTERN",window_parameter);
  }
  else
  { extern.location=adresse; }
  extern.focus();
} // Ende Funktion


//******************************************************************************
//*** Funktionen fuer Hoehe, Breite, Seitenhoehe, Seitenbreite                  ***
//******************************************************************************

/**
 * Weite des Fensterinhalts ermitteln
 * @return    integer   Breite des Fensterinhalts in Pixeln.
 * @access    public
 */
function getWindowWidth()
{
  switch(bversion)
  {
     case 1:
       result = document.body.clientWidth;
       break;
     case 2:
       result = window.innerWidth;
       break;
     case 3:
      result = window.innerWidth;
       break;
     case 4:
       result = -1;
       break;
     case 5:
       result = -1;
       break;
     default:
       result = -1;
       break;
  } // switch(bversion)

  return result;
} // Ende Funktion getWindowWidth


/**
 * Hoehe des Fensterinhalts ermitteln
 * @return    integer   Hoehe des Fensterinhalts in Pixeln.
 * @access    public
 */
function getWindowHeight()
{
  switch(bversion)
  {
     case 1:
       result = document.body.clientHeight;
       break;
     case 2:
       result = window.innerHeight;
       break;
     case 3:
      result = window.innerHeight;
       break;
     case 4:
       result = -1;
       break;
     case 5:
       result = -1;
       break;
     default:
       result = -1;
       break;
  } // switch(bversion)
  return result;
} // Ende Funktion getWindowHeight

/**
 * Breite des gesamten Browserfensters ermitteln
 * @return    integer   Breite des Browserfensters in Pixeln.
 * @access    public
 */
function getPageWidth()
{
  switch(bversion)
  {
     case 1:
       result = document.body.scrollWidth;
       break;
     case 2:
       result = document.width;
       break;
     case 3:
      result = window.outerWidth;
       break;
     case 4:
       result = -1;
       break;
     case 5:
       result = -1;
       break;
     default:
       result = -1;
       break;
  } // switch(bversion)
  return result;
} // Ende Funktion getPageWidth

/**
 * Hoehe des gesamten Browserfensters ermitteln
 * @return    integer   Hoehe des Browserfensters in Pixeln.
 * @access    public
 */
function getPageHeight()
{
  switch(bversion)
  {
     case 1:
       result = document.body.scrollHeight;
       break;
     case 2:
       result = document.height;
       break;
     case 3:
      result = window.outerHeight;
       break;
     case 4:
       result = -1;
       break;
     case 5:
       result = -1;
       break;
     default:
       result = -1;
       break;
  } // switch(bversion)
  return result;
} // Ende Funktion getPageHeight

/**
 * Ermittelt die aktuelle horizontale Position innerhalb der Seite gemessen am
 * linken Fensterrand.
 * Ermittelt also, wie weit der Anwender bereits nach rechts gescrollt hat.
 * @return    integer   horizontale Position innerhalb der Seite in Pixeln.
 * @access    public
 */
function getPageScrollX()
{
  switch(bversion)
  {
     case 1:
       result = document.body.scrollLeft;
       break;
     case 2:
       result = window.pageXOffset;
       break;
     case 3:
      result = window.pageXOffset;
       break;
     case 4:
       result = -1;
       break;
     case 5:
       result = -1;
       break;
     default:
       result = -1;
       break;
  } // switch(bversion)
  return result;
} // Ende Funktion getPageScrollX

/**
 * Speichert die aktuelle vertikale Position innerhalb der Seite, gemessen
 * am Dokumentanfang.
 * Ermittelt also, wie weit der Anwender bereits nach unten gescrollt hat.
 * @return    integer   vertikale Position innerhalb der Seite in Pixeln.
 * @access    public
 */
function getPageScrollY()
{
  switch(bversion)
  {
     case 1:
       result = document.body.scrollTop;
       break;
     case 2:
       result = window.pageYOffset;
       break;
     case 3:
      result = window.pageYOffset;
       break;
     case 4:
       result = -1;
       break;
     case 5:
       result = -1;
       break;
     default:
       result = -1;
       break;
  } // switch(bversion)
  return result;
} // Ende Funktion getPageScrollY