
   /* ----- neues Fenster öffnen und Bild anzeigen mit spezieller Fenstergröße ----- */
   function bildanzeigen(bildurl, breite, hoehe) {
     // neues Fenster öffnen und Bild anzeigen
     // mit spezieller Fenstergröße für diese Bilder hier

     parameter = ', resizable=yes, dependent=yes';
     bildfenster = window.open( bildurl , 'bildfenster' , 'width=' + breite + ', height=' + hoehe + parameter );
     bildfenster.focus();    // Fenster in den Vordergrund holen, falls es schon im Hintergr. vh. ist.               
   }


   /* ----- Funktion: Bildgröße in ein DIV-Element eintragen ----- */
   function bildgr_eintragen( idx , state ){
      var iWidth =  window.innerWidth  || (window.document.documentElement.clientWidth  || window.document.body.clientWidth);
      var iHeight = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);

      // in DIV-Element eintragen
      var elem = document.getElementById(idx);
      elem.innerHTML = state + "Breite: " + iWidth + " Höhe: " + iHeight;

      /*
      Das DIV-Element wird z. B. definiert mit: 
	<div id="test" 
             style="float: right; margin: 10px; padding: 4px; 
                 background: lavender; border: 1px solid silver; ">
	</div>

      Aufruf der Funktion mit:  
      body onload="bb(  'test' , 'Initial: ' )" onresize="bb(  'test' , 'Resize: ')"  
      */
   }


   /* ----- Funktion: Die Seite auf eine Mindestbreite setzen, 
            damit Seiteninhalte bei schmalem Browserfensster nicht "nach unten rausflutschen"
            Workaround für das im Internetexplorer bis incl. Version 8 fehlende min-width ----- */

   function seite_auf_mindestbreite( xmin ){

      var vers = navigator.appVersion;
      var pos = vers.indexOf('MSIE');
      var genauezahl; 

      var scrx = screen.width  != undefined ? screen.width  : screen.availWidth;       //Bildschrmbreite
      var scry = screen.height != undefined ? screen.height : screen.availheight;      //Bildschrmhöhe
      var winx0 = window.screenLeft != undefined ? window.screenLeft : window.screenX; //linker Rand des Fensters

      // alle Browser außer IE verlassen diese Funktion 
      if (navigator.appName.indexOf("Explorer") < 0){ return; }

      //alert(  navigator.appName );

      // IE > 8 verlässt diese Funktion 
      if (pos > -1){
         genauezahl = parseFloat( vers.substring(pos + 5) );
         //alert (  genauezahl );
         if (genauezahl > 8){ return; }
      }

      var iWidth =  window.innerWidth  || (window.document.documentElement.clientWidth  || window.document.body.clientWidth);
      var iHeight = window.innerHeight || (window.document.documentElement.clientHeight || window.document.body.clientHeight);

      //alert(state + "Breite: " + iWidth + " Höhe: " + iHeight);
      //alert( "xmin: " + xmin +  "    iWidth: " + iWidth + "    iHeight: " + iHeight + "  ");

      if (iWidth != 0  &&  iWidth < xmin  &&  iHeight != 0) { 
          //Erst nach links, dann breiter, weil manche IE-Versionen nicht 
          //über den rechten Rand hinaus verbreitern wollen.
          //Window (wenn möglich) so weit nach links rücken, dass es ganz im Bildschirm ist.
          //mit +40 zur Korrektur der Randbreite
          if ( winx0 + (xmin+40) >= scrx ) { 
              window.moveTo( Math.max( 10 , scrx-(xmin+40)-5 ) , 10);
          }

          //Fenstergröße ändern
          window.resizeTo( xmin+40 , Math.min(iHeight+190,scry) );
      }
   }


   /* ----- Funktion: Ab einer bestimmten Mindestbreite ein Element auf "sichtbar" setzen ----- */
   function element_sichtbar( xmin , element ){

      var iWidth =  window.innerWidth  || (window.document.documentElement.clientWidth  || window.document.body.clientWidth);

      //alert( "xmin: " + xmin +  "    iWidth: " + iWidth + "  ");

      if ( iWidth  != 0  &&  iWidth >= xmin ) {  
         document.getElementById( element ).style.display = "block";
      }
   }


   /* ----- Funktion: Zufallszahl im Raum von aa<=x<=bb erzeugen ----- */
    function zufall(aa, bb) {   
     var zz;                         /* Ergebnisvariable */
      aa=Math.round(aa);
      bb=Math.round(bb);
      zz=aa;                          /* mindestens aa als Ergebnis zurückgeben */
      if(bb>aa){
        zz = aa + Math.floor(Math.random() * (bb-aa+1) );
      }
      return zz;                      /* Ergebnis zurückgeben */
    }

/* ---------- Zahlen mathematisch runden ---------- */
function runden(aaa){
  return Math.floor(aaa+0.5);
} 

/* ---------- Zahlen aufrunden ---------- */
function aufrunden(aaa){
  var xx=Math.floor(aaa);
  if (aaa==xx){return aaa;}
  else {return (xx+1); }
} 

/* ---------- Zahlen auf 2 Stellen runden ---------- */
function runden2(aaa){
  return Math.round(aaa*100)/100;
} 

/* ---------- Runden mit beliebigen Schritten ---------- */
function runden_mit(aaa,rrr){
  // rr gibt an, in welchen Schritten gerundet wird
  return Math.round(aaa/rrr) * rrr;
}

  /* ---------- Ergebnisse mit 2 NachKOMMAstellen anzeigen ---------- */
  function zahl2stellig(zzz){
    // return zzz;   // test

    var erg="";   
    var sss;
    var ks;   // Kommastelle

    if( zzz==0 || isNaN(zzz) ){return erg;}

    if(zzz > 0){
      zzz=runden2(zzz);
      sss=String(zzz);
      sss=sss.replace(/\./,",");        // Punkt gegen Komma tauschen

      ks= sss.indexOf(",");
      if(ks<0){erg=sss+",00";}
      else{
        if(2==(sss.length - ks)){erg=sss+"0";}
        else{erg=sss;}
      }
    }
    else{return zzz;} // wenn negativ

    return erg;
  }

/* ---------- Radizieren Wurzelziehen---------- 
   (nur mit natürlichen Zahlen als Exponent)    */
function wurzel(bb,ee){
  if(ee<=0){return 0;}              // ungültig
  if( ee!=Math.floor(ee) ){return 0;} // keine natürliche Zahl

  if(bb>=0){
    return Math.pow(bb,1/ee);}
  else{
    if( (ee%2)==0) {return 0;}      // ungültig
    else{return -1*Math.pow(bb*-1,1/ee);}
  }
}

