function WetterLoad()
{
  window.setTimeout("window.location.reload()", 60000+(30000*Math.random()));
}



function WetterLoadRL()
{
  window.setTimeout("window.location.reload()", 60000);
}



  function Neumond(k){
    var JDE, e, m, m1, f, o;
    k = Math.floor(k);
    t = k / 1236.85;
    e = Var_e(t);
    m = Var_m(k, t);
    m1 = Var_m1(k, t);
    f = Var_f(k, t);
    o = Var_o(k, t);
    //Neumondkorrekturen
    JDE = Var_JDE(k, t)
    JDE += -.4072 * SN(m1) + .17241 * e * SN(m) + .01608 * SN(2 * m1) + .01039 * SN(2 * f) + .00739 * e * SN(m1 - m) - .00514 * e * SN(m1 + m) + .00208 * e * e * SN(2 * m) - .00111 * SN(m1 - 2 * f) - .00057 * SN(m1 + 2 * f);
    JDE += .00056 * e * SN(2 * m1 + m) - .00042 * SN(3 * m1) + .00042 * e * SN(m + 2 * f) + .00038 * e * SN(m - 2 * f) - .00024 * e * SN(2 * m1 - m) - .00017 * SN(o) - .00007 * SN(m1 + 2 * m) + .00004 * SN(2 * m1 - 2 * f);
    JDE += .00004 * SN(3 * m) + .00003 * SN(m1 + m - 2 * f) + .00003 * SN(2 * m1 + 2 * f) - .00003 * SN(m1 + m + 2 * f) + .00003 * SN(m1 - m + 2 * f) - .00002 * SN(m1 - m - 2 * f) - .00002 * SN(3 * m1 + m);
    JDE += .00002 * SN(4 * m1);
    return Korrektur(JDE, t, k);
  }

  function Vollmond(k){
    var JDE, e, m, m1, f, o;
    k = Math.floor(k) + .5;
    t = k / 1236.85;
    e = Var_e(t);
    m = Var_m(k, t);
    m1 = Var_m1(k, t);
    f = Var_f(k, t);
    o = Var_o(k, t);
    //Vollmondkorrekturen
    JDE = Var_JDE(k, t);
    JDE += -.40614 * SN(m1) + .17302 * e * SN(m) + .01614 * SN(2 * m1) + .01043 * SN(2 * f) + .00734 * e * SN(m1 - m) - .00515 * e * SN(m1 + m) + .00209 * e * e * SN(2 * m) - .00111 * SN(m1 - 2 * f) - .00057 * SN(m1 + 2 * f);
    JDE += .00056 * e * SN(2 * m1 + m) - .00042 * SN(3 * m1) + .00042 * e * SN(m + 2 * f) + .00038 * e * SN(m - 2 * f) - .00024 * e * SN(2 * m1 - m) - .00017 * SN(o) - .00007 * SN(m1 + 2 * m) + .00004 * SN(2 * m1 - 2 * f);
    JDE += .00004 * SN(3 * m) + .00003 * SN(m1 + m - 2 * f) + .00003 * SN(2 * m1 + 2 * f) - .00003 * SN(m1 + m + 2 * f) + .00003 * SN(m1 - m + 2 * f) - .00002 * SN(m1 - m - 2 * f) - .00002 * SN(3 * m1 + m);
    JDE += .00002 * SN(4 * m1);
    return Korrektur(JDE, t, k);
  }

  function Korrektur(JDE, t, k){
    //Zusätzlichen Korrekturen
    JDE += .000325 * SN(299.77 + .107408 * k - .009173 * t * t) + .000165 * SN(251.88 + .016321 * k) + .000164 * SN(251.83 + 26.651886 * k) + .000126 * SN(349.42 + 36.412478 * k) + .00011 * SN(84.66 + 18.206239 * k);
    JDE += .000062 * SN(141.74 + 53.303771 * k) + .00006 * SN(207.14 + 2.453732 * k) + .000056 * SN(154.84 + 7.30686 * k) + .000047 * SN(34.52 + 27.261239 * k) + .000042 * SN(207.19 + .121824 * k) + .00004 * SN(291.34 + 1.844379 * k);
    JDE += .000037 * SN(161.72 + 24.198154 * k) + .000035 * SN(239.56 + 25.513099 * k) + .000023 * SN(331.55 + 3.592518 * k);
    return JDE;
  }

  function Beleuchtung(JDE){
    var t, d, m, m1, i;
    t = (JDE - 2451545) / 36525;
    d = 297.8502042 + 445267.11151686 * t - .00163 * t * t + t * t * t / 545868 - t * t * t * t / 113065000;
    m = 357.5291092 + 35999.0502909 * t - .0001536 * t * t + t * t * t / 24490000;
    m1 = 134.9634114 + 477198.8676313 * t + .008997 * t * t + t * t * t / 69699 - t * t * t * t / 14712000;
    i = 180 - d - 6.289 * SN(m1) + 2.1 * SN(m) - 1.274 * SN(2 * d - m1) - .658 * SN(2 * d) - .241 * SN(2 * m1) - .110 * SN(d);
    return (1 + CS(i)) / 2 * 100;
  }

  function Var_o(k, t){
    return 124.7746 - 1.5637558 * k + .0020691 * t * t + .00000215 * t * t * t;
  }
  function Var_f(k, t){
    return 160.7108 + 390.67050274 * k - .0016341 * t * t - .00000227 * t * t * t + .000000011 * t * t * t * t;
  }
  function Var_m1(k, t){
    return 201.5643 + 385.81693528 * k + .1017438 * t * t + .00001239 * t * t * t - .000000058 * t * t * t * t;
  }
  function Var_m(k, t){
    return 2.5534 + 29.10535669 * k - .0000218 * t * t - .00000011 * t * t * t;
  }
  function Var_e(t){
    return 1 - .002516 * t - .0000074 * t * t;
  }
  function Var_JDE(k, t){
    return 2451550.09765 + 29.530588853 * k + .0001337 * t * t - .00000015 * t * t * t + .00000000073 * t * t * t * t;
  }
  function Var_k(Jahr, Aktdatum, tz){
    return (Jahr + (Aktdatum.getMonth() * 30.4 + Aktdatum.getDate() + tz) / 365 - 2000) * 12.3685;
  }

  function NaechsterVM(Jahr, Aktdatum, zeit){
    var tz = 0, k;
    do{
      k = Var_k(Jahr, Aktdatum, tz);
      tz += 1;
    }
    while(Vollmond(k) < zeit);
    return Vollmond(k) - zeit;
  }

  function NaechsterNM(Jahr, Aktdatum, zeit){
    var tz = 0, k;
    do{
      k = Var_k(Jahr, Aktdatum, tz);
      tz += 1;
    }
    while(Neumond(k) < zeit);
    return Neumond(k) - zeit;
  }

  function LetzterVM(Jahr, Aktdatum, zeit){
    var tz = 0, k;
    do{
      k = Var_k(Jahr, Aktdatum, tz);
      tz += 1;
    }
    while(Vollmond(k) < zeit);
    return Vollmond(k-1) - zeit;
  }

  function LetzterNM(Jahr, Aktdatum, zeit){
    var tz = 0, k;
    do{
      k = Var_k(Jahr, Aktdatum, tz);
      tz += 1;
    }
    while(Neumond(k) < zeit);
    return Neumond(k-1) - zeit;
  }

  function Ausgabe_der_Mondphasen(Text, JDE, Aktdatum, aktuell){
    var Minuten;
    var dita;
    var Verb;
    (JDE < 0) ? dita = -1 - Math.floor(JDE) : dita = Math.floor(JDE);
    (JDE < 0) ? Verb="vor " : Verb="in ";
    (dita == 1) ? Tag = " Tag" : Tag = " Tagen";
    Aktdatum.setTime(aktuell + JDE * 86400000);
    var Jahr = Aktdatum.getYear();
    (Aktdatum.getMinutes() < 10) ? Minuten = "0" + Aktdatum.getMinutes() : Minuten = Aktdatum.getMinutes();
    if (Jahr < 1000) Jahr += 1900;
    document.write("<tr><td style='border-style: solid; background-color: #E0E0E0; border-color: #7f7f7f; border-width: 1' align='right'>"+Text+":</td><td style='border-style: solid; border-width: 1; background-color: #E0E0E0; border-color: #7f7f7f' align='left'>" + Aktdatum.getDate() + "." + (Aktdatum.getMonth() + 1) + "." + Jahr + ", " + Aktdatum.getHours() + ":" + Minuten + "<br>("  + Verb + dita + " " + Tag + ")</td></tr>");

  }


  function Mondphasenausgabe(){
    var JDE_mondphase = new Array(4);
    var Text_mondphase = new Array(" ","Nächster Vollmond","Nächster Neumond","Letzter Vollmond","Letzter Neumond");
    var test, t;
    var Phasentext;
    var Aktdatum = new Date();
    var Aktdatum2 = new Date();
    var aktuell = Aktdatum.getTime(); //Millisekunden seit dem 1.1.1970
    var zeit = aktuell / 86400000 + 2440587.5; // Umrechnen in Julianische Tage
    var Jahr = Aktdatum.getYear();
    if (Jahr < 1000) Jahr += 1900; // für Mozilla und Opera

    JDE_mondphase[1] = NaechsterVM(Jahr, Aktdatum, zeit);
    JDE_mondphase[2] = NaechsterNM(Jahr, Aktdatum, zeit);
    JDE_mondphase[3] = LetzterVM(Jahr, Aktdatum, zeit);
    JDE_mondphase[4] = LetzterNM(Jahr, Aktdatum, zeit);
    
    if(JDE_mondphase[1]<JDE_mondphase[2])
    {
      JDE_mondphase[0]=JDE_mondphase[1];
      JDE_mondphase[1]=JDE_mondphase[2];
      JDE_mondphase[2]=JDE_mondphase[0];
      Text_mondphase[0]=Text_mondphase[1];
      Text_mondphase[1]=Text_mondphase[2];
      Text_mondphase[2]=Text_mondphase[0];
      Phasentext="zunehmend"
    }
    else
    {
      Phasentext="abnehmend"
    }

    if(JDE_mondphase[3]<JDE_mondphase[4])
    {
      JDE_mondphase[0]=JDE_mondphase[3];
      JDE_mondphase[3]=JDE_mondphase[4];
      JDE_mondphase[4]=JDE_mondphase[0];
      Text_mondphase[0]=Text_mondphase[3];
      Text_mondphase[3]=Text_mondphase[4];
      Text_mondphase[4]=Text_mondphase[0];
    }
    document.write("<table border='0' width='90%' cellpadding='4' cellspacing='0' style='background-color: #E0E0E0; border-style: solid; background-color: #E0E0E0; border-color: #7f7f7f; border-width: 1'>");
    document.write("<tr><td style='border-style: solid; border-width: 1; background-color: #E0E0E0; border-color: #7f7f7f' colspan='2' align='center' ><b>Der Mond:</b></td></tr>");
    document.write("<tr><td style='border-style: solid; border-width: 1; background-color: #E0E0E0; border-color: #7f7f7f' align='right'>Beleuchteter Teil<br>des Mondes:</td><td style='border-style: solid; background-color: #E0E0E0; border-color: #7f7f7f; border-width: 1' align='left'>"+Math.round(Beleuchtung(Aktdatum2.getTime() / 86400000 + 2440587.5) * 10000) / 10000+"%, "+Phasentext+"</td></tr>");
    for(t = 4; t > 0; t--)
    {
      Ausgabe_der_Mondphasen(Text_mondphase[t], JDE_mondphase[t], Aktdatum, aktuell);
    }
    document.write("</table>");
  }

    
  function JD_Stunde(JDE){
    return Math.floor((24 * (JDE - Math.floor(JDE))));
  }
  function JD_Minute(JDE){
    return Math.floor((JDE - Math.floor(JDE)) * 1440 - JD_Stunde(JDE) * 60);
  }
  function JD_Sekunde(JDE){
    return Math.floor((JDE - Math.floor(JDE)) * 86400 - JD_Stunde(JDE) * 3600 - JD_Minute(JDE) * 60);
  }

  function ZeitZeile(JDE){
    document.mond.tag.value = Math.floor(JDE);
    document.mond.std.value = JD_Stunde(JDE);
    document.mond.min.value = JD_Minute(JDE);
    document.mond.sek.value = JD_Sekunde(JDE);
  }


function Sonnenstand(){

    var Laenge=9.405; //nach Osten positiv in Grad
    var Breite=48.965277777777777777777777777778; //nach Norden positiv in Grad

    var Aktdatum = new Date();
    var n= Aktdatum.getTime() / 86400000 - 10957.5;
    var g1=erstKreis(357.528+(0.9856003*n));
    var ekLae=erstKreis(280.460+(0.9856474*n))+(1.915*SN(g1))+(0.020*SN(2*g1));
    var eps=23.439-(0.0000004*n);
    var nen=CS(ekLae);
    var alpha=Math.atan(CS(eps)*SN(ekLae)/nen)*57.295779513082320876798154814105;
    if(nen<0){alpha=alpha+180.0;}
    var delta=Math.asin(SN(eps)*SN(ekLae))*57.295779513082320876798154814105;
    var JD0Datum = new Date(Aktdatum.getUTCFullYear(),Aktdatum.getUTCMonth(),Aktdatum.getUTCDate());
    JD0Datum.setUTCHours(0);JD0Datum.setUTCMinutes(0);JD0Datum.setUTCSeconds(0);
    var SiHG=6.697376+(0.065709824503764544832306639288159*((JD0Datum.getTime()/86400000)-10956.5))+(1.002738*(Aktdatum.getUTCHours()+(Aktdatum.getUTCMinutes()/60.0)+(Aktdatum.getUTCSeconds()/3600.0)+(Aktdatum.getUTCMilliseconds()/3600000.0)));
    var Tau = (SiHG-24.0*(Math.floor(SiHG/24.0)))*15.0 + Laenge - alpha;
    nen=CS(Tau)*SN(Breite)-TN(delta)*CS(Breite);
    var Azimut = Math.atan(SN(Tau)/nen)*57.295779513082320876798154814105;
    if(nen>0){Azimut=Azimut+180.0;}
    Azimut=erstKreis(360.0+Azimut);
    var Elevation=Math.asin(CS(delta)*CS(Tau)*CS(Breite)+SN(delta)*SN(Breite))*57.295779513082320876798154814105;
    document.write("<table border='0' width='90%' cellpadding='4' cellspacing='0' style='background-color: #E0E0E0; border-style: solid; background-color: #E0E0E0; border-color: #7f7f7f; border-width: 1'>");
    document.write("<tr><td style='border-style: solid; border-width: 1; background-color: #E0E0E0; border-color: #7f7f7f' colspan='2' align='center' ><b>Aktueller Sonnenstand in Aspach:</b></td></tr>");
    document.write("<tr><td style='border-style: solid; border-width: 1; background-color: #E0E0E0; border-color: #7f7f7f' align='right'>Altitude (Höhenwinkel,<br>Winkel zum Horizont):</td><td style='border-style: solid; background-color: #E0E0E0; border-color: #7f7f7f; border-width: 1' align='left'>"+Math.round(Elevation*100)/100+"°</td></tr>");
    document.write("<tr><td style='border-style: solid; border-width: 1; background-color: #E0E0E0; border-color: #7f7f7f' align='right'>Azimut (Kompassrichtung,<br>von Norden aus gezählt):</td><td style='border-style: solid; background-color: #E0E0E0; border-color: #7f7f7f; border-width: 1' align='left'>"+Math.round(Azimut*100)/100+"°</td></tr>");
    document.write("</table>");

}



  function erstKreis(x){
    return x-(360*(Math.floor(x/360.0)));
  }


  function CS(x){
    return Math.cos(x * .0174532925199433);
  }

  function SN(x){
    return Math.sin(x * .0174532925199433);
  }  

  function TN(x){
    return SN(x)/CS(x);
  }  

 
