var picwin;
var picname;
var filename;

// ---- Fenster öffnen ---
function fotogalerie (fname)
{
   var fotowin;
   var img;

// Neues Fenster öffnen
   fotowin = window.open
      ("/images/rahmen.html", "AstroBild",
       "width=700,height=650,toolbar=0,directories=0," +
       "status=0,resize=0,menubar=0,scrollbars=1," +
       "left=70,top=5,dependent=1");

// Bild anzeigen, notfalls mit Timeout
   picwin = fotowin;
   picname = "astrobild";
   filename = fname;
   zeigebild();

// Fokus in das neue Fenster setzen
   fotowin.focus();
}


function zeigebild ()
{
   var img;

// Prüfen, ob das Fenster existiert, wenn nicht, Funktion mit Timeout erneut aufrufen
   if (!picwin)
      window.setTimeout ("zeigebild()", 10);
   else
   {
      img = picwin.document.getElementById (picname);
      if (!img)
         window.setTimeout ("zeigebild()", 10);
      else
         img.src = filename;
   }

}


// -----------------------------------------------------------------------------
// Die Funktion gibt das Tagesdatum zurück
// -----------------------------------------------------------------------------
function zeige_datum()

{
   var jetzt = new Date();

   var tag   = jetzt.getDate();
   var monat = jetzt.getMonth();
   var jahr  = jetzt.getFullYear();

   var monnam =
     new Array ("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");

   document.write(tag + ". " + monnam[monat] + " " + jahr);

}


// -----------------------------------------------------------------------------
// Die Funktion liefert das Julianische Datum
// -----------------------------------------------------------------------------
function juliandate()
{
   var jetzt;
   var tag, monat, jahr;
   var stunde, minute, sekunde;
   var A, B, JD, JT;

// Maschinenzeit abfragen
   jetzt = new Date();

// Tag, Monat und Jahr ermitteln
   tag   = jetzt.getUTCDate();
   monat = jetzt.getUTCMonth() + 1;
   jahr  = jetzt.getUTCFullYear();

// Falls Januar oder Februar, Monat um 12 erhöhen und Jahr um 1 erniedrigen
   if (monat <= 2 )
   {
      jahr--;
      monat = monat + 12;
   }

// Datumskorrektur für gregorianisches Datum berechnen
   A = Math.floor (jahr / 100);
   B = 2 - A + Math.floor (A / 4);

// Julianische Tageszahl berechnen
   JD = Math.floor (365.25 * (jahr + 4716)) + Math.floor (30.6001 * (monat + 1)) + tag + B - 1524.5;

// Stunde, Minute und Sekunde ermitteln
   stunde  = jetzt.getUTCHours();
   minute  = jetzt.getUTCMinutes();
   sekunde = jetzt.getUTCSeconds();

// Julianische Zeit (Tagesbruchteil) berechnen
   JT = (stunde + minute/60 + sekunde/3600) / 24;

// Julianisches Datum berechnen
   return JD + JT;
}


// -----------------------------------------------------------------------------
// Die Funktion liefert das Julianische Datum
// -----------------------------------------------------------------------------
function juliandate2()
{
   return Math.floor (100 * juliandate()) / 100;
}


// -----------------------------------------------------------------------------
// Diese Funktion liefert die jeweils gültige öffentliche Zeit
// -----------------------------------------------------------------------------
function normzeit()
{
   var jetzt;
   var stunde, minute, sekunde;

// Maschinenzeit abfragen
   jetzt = new Date();

// Stunde, Minute und Sekunde ermitteln
   stunde  = '0' + jetzt.getHours();
   minute  = '0' + jetzt.getMinutes();
   sekunde = '0' + jetzt.getSeconds();

// Zeitanzeige zusammenstellen
   return stunde.substr(stunde.length-2, 2) + 'h ' +
          minute.substr(minute.length-2, 2) + 'm '+
          sekunde.substr(sekunde.length-2, 2) + 's';
}


// -----------------------------------------------------------------------------
// Diese Funktion liefert ganzjährig die Mitteleuropäische Normalzeit
// -----------------------------------------------------------------------------
function mez()
{
   var jetzt;
   var stunde, minute, sekunde;

// Maschinenzeit abfragen
   jetzt = new Date();

// Stunde, Minute und Sekunde ermitteln
   stunde  = '0' + (1 + jetzt.getUTCHours()) % 24;
   minute  = '0' + jetzt.getUTCMinutes();
   sekunde = '0' + jetzt.getUTCSeconds();

// Zeitanzeige zusammenstellen
   return stunde.substr(stunde.length-2, 2) + 'h ' +
          minute.substr(minute.length-2, 2) + 'm '+
          sekunde.substr(sekunde.length-2, 2) + 's';
}


// -----------------------------------------------------------------------------
// Diese Funktion liefert ganzjährig die Mitteleuropäische Sommerzeit
// -----------------------------------------------------------------------------
function mesz()
{
   var jetzt;
   var stunde, minute, sekunde;

// Maschinenzeit abfragen
   jetzt = new Date();

// Stunde, Minute und Sekunde ermitteln
   stunde  = '0' + (2 + jetzt.getUTCHours()) % 24;
   minute  = '0' + jetzt.getUTCMinutes();
   sekunde = '0' + jetzt.getUTCSeconds();

// Zeitanzeige zusammenstellen
   return stunde.substr(stunde.length-2, 2) + 'h ' +
          minute.substr(minute.length-2, 2) + 'm '+
          sekunde.substr(sekunde.length-2, 2) + 's';
}

// -----------------------------------------------------------------------------
// Diese Funktion liefert die Greenwich-Zeit
// -----------------------------------------------------------------------------
function gmt()
{
   var jetzt;
   var stunde, minute, sekunde;

// Maschinenzeit abfragen
   jetzt = new Date();

// Stunde, Minute und Sekunde ermitteln
   stunde  = '0' + jetzt.getUTCHours();
   minute  = '0' + jetzt.getUTCMinutes();
   sekunde = '0' + jetzt.getUTCSeconds();

// Zeitanzeige zusammenstellen
   return stunde.substr(stunde.length-2, 2) + 'h ' +
          minute.substr(minute.length-2, 2) + 'm '+
          sekunde.substr(sekunde.length-2, 2) + 's';
}


// -------------------------------------------------------------------------------
// Diese Funktion berechnet die Sternzeit für die angegebenen Koordinaten in Länge
// -------------------------------------------------------------------------------
function sternzeit(grad, bmin, bsec)
{
// Julianische Jahrhunderte seit 2000 berechnen
   JD = juliandate();
   T = (JD - 2451545.0) / 36525;

// Mittlere Ortssternzeit in Greenwich in Grad berechnen
   Theta0 = 280.46061837 + 360.98564736629 * (JD-2451545.0) + 0.000387933*Math.pow(T,2) - (Math.pow(T,3) / 38710000);

// Lokale Länge hinzurechnen
   Theta0 = Theta0 + grad + (bmin / 60) + (bsec / 3600);

// Normalisieren auf 0-360 Grad
// Division durch 15, d.h. durch den Rotationswinkel pro Stunde
   startime = (Theta0 % 360) / 15;

// Angabe in Stunden, Minuten und Sekunden
   starhour = startime;
   starmin  = (starhour - Math.floor(starhour)) * 60;
   starsec  = (starmin - Math.floor(starmin)) * 60;
   starhours = '0' + Math.floor(starhour);
   starmins  = '0' + Math.floor(starmin);
   starsecs  = '0' + Math.floor(starsec);

   return starhours.substr(starhours.length-2, 2) + 'h ' +
          starmins.substr(starmins.length-2, 2) + 'm '+
          starsecs.substr(starsecs.length-2, 2) + 's';
}


function zeige_zeiten()
{
   document.getElementById("nrm").firstChild.nodeValue = normzeit();
   document.getElementById("gmt").firstChild.nodeValue = gmt();
   document.getElementById("szk").firstChild.nodeValue = sternzeit(10, 11, 41);
}


function is_schalt (jahr)
{
   return ((((jahr % 4) == 0) && ((jahr % 100) != 0)) || ((jahr % 400) == 0));
}


function tagesnummer (datum)
{
   var jahr, monat, tag;

   jahr  = datum.getFullYear();
   monat = datum.getMonth()+1;
   tag   = datum.getDate();

   a = Math.floor((monat+10)/13);
   b = tag + Math.floor((611*(monat+2))/20) - 2*a - 91;
   return b + is_schalt(jahr) * a;
}


function UTC_tagesnummer (datum)
{
   var jahr, monat, tag;

   jahr  = datum.getUTCFullYear();
   monat = datum.getUTCMonth()+1;
   tag   = datum.getUTCDate();

   a = Math.floor((monat+10)/13);
   b = tag + Math.floor((611*(monat+2))/20) - 2*a - 91;
   return b + is_schalt(jahr) * a;
}


function getTDClassName(nodeName)
{
   knoten = document.getElementById (nodeName);
   return knoten.className;

}
