<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>[Mond Auf- und Untergang]</title>
<!-- Browser speichert keine Seite im Cache -->
<!-- Browser does not store a page in the cache -->
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
<style>
/* ******************************
* ID des Body Tag Schriftfarbe
* und Hintergrundfarbe.
* ID of the body tag font color
* and background color.
*******************************/
#b {
background-color: #293133;
color: #eadebd;
border: 0px solid red;
}
/* ******************************
* Tabellenspalten Beschreibung.
* Table Columns Description.
*******************************/
#label {
width: 120px;
text-align: right;
font-family: Tahoma,Arial,Helvetica;
font-size: 14 px;
font-weight: 500;
}
/* ******************************
* Tabellenspalten Werte.
* Table column values.
*******************************/
#value {
width: 100px;
text-align: right;
font-family: Tahoma,Arial,Helvetica;
font-size: 14 px;
font-weight: 500;
}
/* ******************************
* Wichtige Werte markieren.
* Mark important values.
*******************************/
.color {
color: red;
}
/* ******************************
* HTML input-Tag.
* HTML-Eingabe-Tag.
*******************************/
input {
font-family: Tahoma,Arial,Helvetica;
font-size: 14 px;
font-weight: 500;
}
</style>
<!-- Muss demarkiert werden, wenn jQuery verwendet werden soll -->
<!-- Must be demarcated if jQuery is to be used -->
<script type="text/javascript" src="https://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<script>
// Mit der Ausführung warten bis DOM geladen ist.
// With the execution wait until DOM is loaded.
document.addEventListener("DOMContentLoaded", function(event) {
/* **************************** Externe Quelldateien Laden *********************************************** */
// Funktion zum Einfügen der einzelnen Javascript Dateien.
// Function to insert the individual Javascript files.
function include(file) {
var script = document.createElement('script');
script.src = file;
script.type = 'text/javascript';
script.defer = true;
document.getElementsByTagName('head').item(0).appendChild(script);
}
// Variablendefinitionen und Deklarationen ...
// definitions of variables and declarations ...
include('./Globale-This.js');
// Keyboard Event Funktionen, die von den Listenern benutzt werden
// Datei muss hier lokal liegen, da andere Kontrollelemente verwendet werden
include('./Keyboard.js');
// Keyboard Eventlistener
// Datei muss hier lokal liegen, da andere Kontrollelemente verwendet werden
include('./Keyboard-Listener.js');
// Nützliche Funktionen wie Sommerzeit/Winterzeit, Popup Öffnen ...
// Useful functions like Daylight Savings Time, open popups ...
include('../../Bibliotheken/Utilities.js');
// Funktionen zur Berechnungen/Konvertierung des Julianischen Datum
// Functions for calculations/conversion of the Julian date
include('../../Bibliotheken/calculateJD.js');
// Konvertierung von Uhrzeiten
// Conversion of times
include('../../Bibliotheken/decTime.js');
// Funktionen für die Mondpositionen
// Functions for the moon positions
include('../../Bibliotheken/Moonpositions.js');
// Funktionen für die Sonnenpositionen
// Functions for the sun positions
include('../../Bibliotheken/Sunpositions.js');
// Funktionen für die Sternzeit/Lokale Zeit
// Functions for the siderial/local time
include('../../Bibliotheken/SiderialTime.js');
// Funktionen für Mond Auf- und Untergang
// Functions for the moonrise and moonset
include('../../Bibliotheken/MoonRiseSet.js');
// Funktionen für die Berechnung der Objekthöhe über dem Horizont
// Functions for calculating the object height above the horizon
include('../../Bibliotheken/ObjectHeight.js');
// Alles geladen inklusive Bilder.
// Funktioniert nicht alleine: DOM muss vorher geleden sein und danach erst
// der Windows Event Load.
// All loaded including pictures. // Does not work alone: DOM must be leden before and after
// the Windows Event Load.
window.addEventListener("load", function(){
/* ***************************************************Füllen der Eingabefelder******************************************************* */
/* ******************************************************Fill the input fields************************************************************ */
//Füllen der Datumsfelder mit dem aktuellen Datum.
//Fill the date fields with the current date.
objDay.value = d.getDate(); // Tag - Day
objMonth.value = d.getMonth() + 1; // Monat - Month
objYear.value = d.getFullYear(); // Jahr - Year
/* ********************** Funktionen die beim Laden ausgeführt werden ************************ */
/* ******************************** Functions performed at loading ******************************** */
// Teste, ob der Rechner auf Sommer- o. Winterzeit steht ...
// Test whether the computer is set to summer or winter time . . .
ISDST = isDST(new Date(objYear.value, objMonth.value, objDay.value, 0, 0, 0, 0));
// ... und stelle das Ausgabefeld so ein. Sommerzeit = 1, Winterzeit = 0
// . . . and set the output field like this. DST = 1, winter time = 0
if (ISDST)objDST.value = 1; else objDST.value = 0;
// Ermittle die Zeitzone aus dem Datum des Rechners ...
// Identify the time zone from the date of the computer.
TZ = getTZ();
// ... ist er negativ geht's nach Osten, ansonsten nach Westen und
// im entsprechenden Ausgabefeld eintragen.
//
//. . . is he negative’s going east, otherwise to the west and Enter
// in the corresponding output field.
if (TZ < 0)objTZ.value = Math.abs(TZ);else objTZ.value = TZ;
/* ***************************************************GeoPosition******************************************************* */
// Hole Dir die Positionsdaten des Rechners und übergebe dabei die
// Ergebnisfelder für Längengrad, Breitengrad und Genauigkeit.
// Get the position data of the computer and hand over the
// Result fields for longitude, latitude.
// In Utilities.js
startGeoPosition(objLongitude, objLatitude, 0);
/* ********************** Verwendete/Used Event Listener ************************ */
// Erstellt einen neuen Kommuikationskanal an dem alle Hören und damit
// Senden können.
// Creates a new communication channel where all listening and thus
// Can send.
var objChannel = new BroadcastChannel("com");
// Wenn das SiderialTime Program beendet wird, dann Sende auf dem Kanal
// diese Info, damit in Wordpress die Fenstervariable wieder zurückgesetzt
// wird und das Programm wieder starten kann.
// If the SiderialTime Program is terminated, then send on the channel
// this info, so that in Wordpress the window variable is reset
// and the program can start again.
window.addEventListener("beforeunload", function(event){
objChannel.postMessage("moonriseset is closed");
});
// Klick auf den Button "Berechnen" ... Programm startet hier ...
// Click on the button "Calculate" . . . Program starts here . . .
objCalc.addEventListener("click", function () {
// Startet die Berechnung
// Starts the calculation
start();
});
/* ********************************* Programm / Program ******************************* */
// Berechnungsstart - Start the calculation
function start(){
// Prüfe vor dem Berechnungsbeginn noch einmal, ob nicht eine falsche Eingabe des Tages,
// in Hinblick auf ein Schaltjahr und den Monat Februar, vorgenommen wurde. Dazu kann man
// die Callback Funktion des Eventlisteners des Tages für die Änderung benutzen.
// Check again before the calculation starts, if there is a wrong entry of the day,
// with regard to a leap year and the month February. To do this, you can use
// the callback function of the event listener of the day for the change.
keydownChangeDay(objDay, objMonth, objLeapYear);
keydownChangeMonth(objMonth);
keydownChangeYear(objYear, objLeapYear);
keydownChangeDST(objDST);
keydownChangeTZ(objTZ);
keydownChangeLongitude(objLongitude);
keydownChangeLatitude(objLatitude);
// Mit der Funktion isLeapYear() und dem Parameter des
// Berechnungsjahres (objYear.value) , wird festgestellt ob
// es sich um ein Schaltjahr handelt und dies Ausgegeben.
//
// With the function isLeapYear () and the parameter of the
// Calculation year (objYear. value), is determined whether
// it is a leap year and this is output.
if (isLeapYear(objYear.value))objLeapYear.value = "Ja"; else objLeapYear.value = "Nein";
// Mit der Funktion wird die Plausibilität von Zeitzone und Längengrad überprüft. Beide
// müssen korrespondieren. Z.B. muss die TZ = 1 mit einem Längengrad von 0° - 15° Ost
// übereinstimmen. TZ = -1 mit 0° bis -15° .... usw. Wir haben von 0° = Grennwich Meridian
// bis +180° und -180° in der Länge und Zeitzone von 0 = Grennwich bis +12 und -12.
if (testTimezoneAndLongitude(objTZ.value , objLongitude.value)== false ){
// Gebe Meldung über fehlerhalte Zeitzone + Längengrad ...
// Error message for a mistake in time zone and longitude ...
alert("Fehler bei Zeitzone und Längengrad des Standortes!\nKeine Berechnung");
// ... und beende das Programm.
// ... exit of the program
return(false);
}
// ********************************* Moonrise/Set / Mond Auf- und Untergang *******************************
//
// Wenn der aktuelle Berechnungstag verschieden vom schon berechneten Tag ist,
// dann berechne die Daten neu ...
// If the current calculation day is different from the already calculated day,
// then recalculate the data ...
if ((saveMoonRiseSetDay != objDay.value) || (saveMoonRiseSetMonth != objMonth.value) ||
(saveMoonRiseSetYear != objYear.value)|| (saveMoonRiseSetDST != objDST.value)||
(saveMoonRiseSetTZ != objTZ.value)|| (saveMoonRiseSetLong != objLongitude.value)||
(saveMoonRiseSetLat != objLatitude.value)){
//
// ********************************** Mondaufgang / Moon rise ********************************************
//
// ... und speichere zuerst den neu berechneten Tag/Monat/Jahr/DST/TZ/Längengrad/Breitengrad ...
// . . . and first save the newly calculated day/month/year/DST/TZ/Longitude/Latitude . . .
saveMoonRiseSetDay = objDay.value;
saveMoonRiseSetMonth= objMonth.value;
saveMoonRiseSetYear = objYear.value;
saveMoonRiseSetDST = objDST.value;
saveMoonRiseSetTZ= objTZ.value;
saveMoonRiseSetLong = objLongitude.value;
saveMoonRiseSetLat = objLatitude.value;
// ... und berechne dann den neuen Mond Aufgang ...
// . . . and then work out the new moon up . . .
LCT = moonriseLocalTime(objDay.value, objMonth.value, objYear.value,
objDST.value, objTZ.value, objLongitude.value, objLatitude.value);
// ... in Index 1 ist der Status der Konvertierung von GST nach UT. Werte sind "Warnung" + "OK ...
// --- in Index 2 ist der Status des Mondaufgangs und -Untergangs enthalten. Werte sind "OK",
// "Nie Sichtbar" und "Immer Sichtbar" ...
// . . . in Index 1 is the conversion status from GST to UT. Values are “Warning” + “OK . . .
// --- Index 2 includes the status of the moon’s rise and set. Values are “OK”,
// “Never Visible” and “Always Visible” . . .
var statGSTandUT_LCT = LCT[1].toLowerCase();
var statRise_LCT = LCT[2].toLowerCase();
//console.log("Konvertierung=" + statGSTandUT_LCT + " - Sichtbar=" + statRise_LCT);
// ... und den Monduntergang, bevor die Sonderfälle berechnet werden ...
// . . . and the moonset before the special cases are calculated . . .
LCTS = moonsetLocalTime(objDay.value, objMonth.value, objYear.value,
objDST.value, objTZ.value, objLongitude.value, objLatitude.value);
// ... in Index 1 ist der Status der Konvertierung von GST nach UT. Werte sind "Warnung" + "OK ...
// --- in Index 2 ist der Status des Mondaufgangs und -Untergangs enthalten. Werte sind "OK",
// "Nie Sichtbar" und "Immer Sichtbar" ...
// . . . in Index 1 is the conversion status from GST to UT. Values are “Warning” + “OK . . .
// --- Index 2 includes the status of the moon’s rise and set. Values are “OK”,
// “Never Visible” and “Always Visible” . . .
var statGSTandUT_LCTS = LCTS[1].toLowerCase();
var statSet_LCTS = LCTS[2].toLowerCase();
//console.log("Konvertierung=" + statGSTandUT_LCTS + " - Sichtbar=" + statSet_LCTS);
// ... nun das Julianisches Datum des Mondaufgangs ermitteln ...
// . . . now determine the Julian date of moonrise . . .
var jdMoonRise = calcJD(LCT[3], LCT[4], LCT[5], LCT[0], 0, 0, 0, 0, 0);
// ... nun das Julianisches Datum des Monduntergangs in Greenwich ermitteln ...
// . . . now determine the Julian date of the moonset in Greenwich . . .
var jdMoonSet = calcJD(LCTS[3], LCTS[4], LCTS[5], LCTS[0], 0, 0, 0, 0, 0);
// Teste das Auf- und Untergangsdatum auf Plausibilität.
//
// Wenn die Untergangszeit kleiner ist als die Aufgangszeit und der Tag und Monat derselbe ist,
// dann muss der Untergang am nachsten Tag liegen.
// Dies geschieht nur in bestimmten Fällen. Dann das julian. Datum des Untergangs um 1 Tag erhöhen,
// damit auch der Höchstand richtig berechnet werden kann und den Tag des Untergangs um 1 erhöhen ...
//
// If the time of sinking is less than the time of rising and the day and month are the same,
// then the sinking must be the next day.
// This only happens in certain cases. Then the Julian. increase the date of sowing by 1 day,
// so that the height can be calculated correctly and increase the day of the sinking by 1 . .
if ((jdMoonRise > jdMoonSet ) ){
// ... JD des Untergangs + 1 Tag - Add 1 day to JD
jdMoonSet += 1;
// ... und wieder in datum konvertieren und richtig Speichern in Datumsfeldern des Untergangs ...
// . . . and convert back to datum and save correctly in date fields of the loss . . .
var arrNewMoonSet = julianDate2Date(jdMoonSet);
// Tag - Day
LCTS[3] = Math.floor(arrNewMoonSet[0]);
// Monat - Month
LCTS[4] = arrNewMoonSet[1];
// Jahr - Year
LCTS[5] = arrNewMoonSet[2];
}
// ... im Array LCT[0] steht der Zeitpunkt des Mondaufgangs als String Dezimalwert, diesen
// in einen String mit dem Format hh:mm:ss.ms konvertieren und Ausgeben, wenn die Konvertierung
// von GST nach UT OK ist ...
// ... im Array LCT[ 3 - 5] steht Tag, Monat und Jahr des Mondaufgangs ...
//
// . . . the array LCT[0] contains the time of moonrise as a string decimal value, convert this
// into a string with the format hh:mm:ss. ms and output . . .
// . . . the array LCT[ 3 - 5] contains day, month and year of moonrise
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statRise_LCT == "ok")
objTimeMoonRise.value = LCT[3] + "." + LCT[4] + "." + LCT[5] + " " + dectime2Time(Number(LCT[0]), "string");
else if ( statRise_LCT == "nie sichtbar")
objTimeMoonRise.value = "Nie Sichtbar";
else if (statRise_LCT == "immer sichtbar")
objTimeMoonRise.value = "Immer Sichtbar";
}
// ... im Array LCT[1] = Sternzeitkonvertierung GST2UT + LCT[2] = Sichtbarkeit steht der
// Status der Berechnung des Mondaufgangs ...
// . . . in the array LCT[1] = sidereal time conversion GST2UT + LCT[2] = visibility stands the
// status of the calculation of the moonrise . . .
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statRise_LCT == "ok")
objStateMoonRise.value = LCT[1] + " : " + LCT[2];
else if ( statRise_LCT == "nie sichtbar")
objStateMoonRise.value = "Nie Sichtbar";
else if (statRise_LCT == "immer sichtbar")
objStateMoonRise.value = "Immer Sichtbar";
}
// Berechnung des Azimuts in dezimalen Grad für den Aufgang ...
// Calculation of the azimuth in decimal degrees for the rise . . .
var moonRiseAzDec = moonRiseAz(objDay.value, objMonth.value, objYear.value,
objDST.value, objTZ.value, objLongitude.value, objLatitude.value);
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok") ||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statRise_LCT == "ok"){
objMoonRiseAz.value = moonRiseAzDec[0];
objMoonRiseH.value = moonRiseAzDec[1];
}
else if ( statRise_LCT == "nie sichtbar"){
objMoonRiseH.value = "Nie Sichtbar";
objMoonRiseAz.value = "Nie Sichtbar";
}else if (statRise_LCT == "immer sichtbar"){
objMoonRiseH.value = "Immer Sichtbar";
objMoonRiseAz.value = "Immer Sichtbar";
}
}
//
// ********************************** Monduntergang / Moon set ********************************************
//
// ... im Array LCT[0] steht der Zeitpunkt des Monduntergangs als String Dezimalwert, diesen
// in einen String mit dem Format hh:mm:ss.ms konvertieren und Ausgeben, wenn die Konvertierung
// von GST nach UT OK ist ...
// ... im Array LCT[ 3 - 5] steht Tag, Monat und Jahr des Monduntergangs ...
//
// . . . in the array LCT[0] the time of the moonset is set as a string decimal value,
// convert to a string with the format hh:mm:ss. ms and output . . .
// . . . in the array LCT[ 3 – 5] there is day, month and year of the moonset . . .
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statSet_LCTS == "ok"){
objTimeMoonSet.value = LCTS[3] + "." + LCTS[4] + "." + LCTS[5] + " " + dectime2Time(Number(LCTS[0]), "string");
}else if ( statSet_LCTS == "nie sichtbar"){
objTimeMoonSet.value = "Nie Sichtbar";
}else if (statSet_LCTS == "immer sichtbar"){
objTimeMoonSet.value = "Immer Sichtbar";
}
}
//console.log(objTimeMoonSet.value);
// ... im Array LCT[1] = Sternzeitkonvertierung GST2UT + LCT[2] = Sichtbarkeit steht der
// Status der Berechnung des Monduntergangs ...
// . . . in the array LCT[1] = sidereal time conversion GST2UT + LCT[2] = visibility stands the
// status of the calculation of the moonset . . .
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statSet_LCTS == "ok"){
objStateMoonSet.value = LCTS[1] + " : " + LCTS[2];
}else if ( statSet_LCTS == "nie sichtbar" ){
objStateMoonSet.value = "Nie Sichtbar";
}else if (statSet_LCTS == "immer sichtbar" ){
objStateMoonSet.value = "Immer Sichtbar";
}
}
// Berechnung des Azimuts in dezimalen Grad für den Untergang ...
// Calculation of the azimuth in decimal degrees for the set . . .
var moonSetAzDec = moonSetAz(objDay.value, objMonth.value, objYear.value,
objDST.value, objTZ.value, objLongitude.value, objLatitude.value);
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statSet_LCTS == "ok"){
objMoonSetAz.value = moonSetAzDec[0];
objMoonSetH.value = moonSetAzDec[1];
}
else if ( statSet_LCTS == "nie sichtbar"){
objMoonSetH.value = "Nie Sichtbar";
objMoonSetAz.value = "Nie Sichtbar";
}else if (statSet_LCTS == "immer sichtbar"){
objMoonSetH.value = "Immer Sichtbar";
objMoonSetAz.value = "Immer Sichtbar";
}
}
//
// ********************************** Mondhöchststand / Moon highest point ********************************************
//
// ... danach die Differenz zwischen dem JD von Set und Rise ...
// . . . then the difference between the JD of Set and Rise . . .
var jdMoonRiseSetDiff = (jdMoonSet - jdMoonRise);
// ... die Differnez / 2 ergibt das JD des Mondstandes am höchsten Punkt, genau
// in der Mitte der Sichtbarkeit ...
// . . . the Differnez / 2 gives the JD of the moon's position at the highest point, exactly
// in the middle of the visibility . . .
var jdMoonRiseSetHalf = jdMoonRiseSetDiff / 2 ;
// ... und das JD des Mondaufgangs + die Hälfte ergibt das JD der Mitte der Sichtbarkeit
// am höchsten Punkt des Mondes am Himmel ...
// . . . and the JD of moonrise + half gives the JD of the center of visibility
// at the highest point of the moon in the sky . . .
var jdMoonRiseSetHalfDate = jdMoonRise + jdMoonRiseSetHalf ;
// ... dann aus dem JD des höchsten Punkts am Himmel wieder ein Datum berechnen ...
// . . . then calculate a date again from the JD of the highest point in the sky . . .
var arrjdMoonRiseSetHalfDate = julianDate2Date(jdMoonRiseSetHalfDate);
// Ausgabe des Datums und Uhrzeit im Zenith, wenn der Status der Konvertierung von
// GST zu UT beim Auf- und Untergang OK ist ...
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statSet_LCTS == "ok"){
objMoonHighDate.value = Math.floor(arrjdMoonRiseSetHalfDate[0]) + "." + arrjdMoonRiseSetHalfDate[1] + "." + arrjdMoonRiseSetHalfDate[2] +
" " + percentageOfDecimal2Time((arrjdMoonRiseSetHalfDate[0] - Math.floor(arrjdMoonRiseSetHalfDate[0])), "string");
}else if ( statSet_LCTS == "nie sichtbar" ){
objMoonHighDate.value = "Nie Sichtbar";
}else if (statSet_LCTS == "immer sichtbar" ){
objMoonHighDate.value = "Immer Sichtbar";
}
}
// Berechnung des Azimuths beim Höchststand (Apogee) in der Mitte des sichtbaren Bogens.
// Calculation of the azimuth at the peak (apogee) in the middle of the visible arc.
if ( (statGSTandUT_LCT == "ok") && (statGSTandUT_LCTS == "ok")||
((statGSTandUT_LCT == "warnung")|| (statGSTandUT_LCTS == "warnung") )){
if ( statSet_LCTS == "ok"){
objMoonHighAz.value = (Number(objMoonRiseAz.value ) + ((Number(objMoonSetAz.value) - Number(objMoonRiseAz.value)) / 2 ));
}else if ( statSet_LCTS == "nie sichtbar" ){
objMoonHighAz.value = "Nie Sichtbar";
}else if (statSet_LCTS == "immer sichtbar" ){
objMoonHighAz.value = "Immer Sichtbar";
}
}
// Das Datum des Mondhöchststandes als Array, um die neue äquatoriale Mondposition berechnen zu können ...
// The date of the moon,s highest position as an array to calculate the new equatorial position of the moon . . .
var arrMoonHighDate = percentageOfDecimal2Time((arrjdMoonRiseSetHalfDate[0] - Math.floor(arrjdMoonRiseSetHalfDate[0])), "array");
// Berechne die äquatoriale Position des Mondhöchststandes
// calculate the equatorial position of the moons highest position
var newPos = precMoonPos(arrMoonHighDate[0], arrMoonHighDate[1], arrMoonHighDate[2], arrMoonHighDate[3],
arrjdMoonRiseSetHalfDate[0], arrjdMoonRiseSetHalfDate[1], arrjdMoonRiseSetHalfDate[2],
objDST.value, objTZ.value);
// Grösste Höhe des Mondes über dem Horizont ausgeben ...
// Output of the highest altitude of the Moon above the horizon . . .
objMoonHighDeg.value = convertEquatorial2Horizontal(newPos[0], newPos[1], objLatitude.value)[1];
// Berechnung des Abstands des Mondes von der Erde hier um 00:00:00.000 Uhr des Tages
// Calculation of the distance of the moon from earth here at 00:00:00. 000 o'clock of the day
objMoonDistance.value = moonDistance(0, 0, 0, objDST.value, objTZ.value, objDay.value, objMonth.value, objYear.value);
// Berechnung des Abstands des Mondes von der Erde hier um 00:00:00.000 Uhr des Tages
// Calculation of the distance of the moon from earth here at 00:00:00. 000 o'clock of the day
objMoonDiameter.value = moonDiameter(0, 0, 0, objDST.value, objTZ.value, objDay.value, objMonth.value, objYear.value);
// ... und wenn schon berechnet gebe Meldung aus, dass es nicht nötig ist.
// . . . and if already calculated, give a message that it is not necessary.
}else
alert("Die Daten für den Tag: " + objDay.value + "." + objMonth.value + "." + objYear.value + " wurden schon berechnet.\nEine Neuberechnung ist nicht nötig!");
}// End of start()
}); // Ende alles geladen - End of all things loaded
}); // Ende DOM geladen - End of DOM loaded
</script>
</head>
<body id="b">
<table border="0">
<tr>
<th id="label" colspan="8">
<center>Mond Auf- und Untergang</center>
</th>
</tr>
<tr>
<td colspan="8">
</td>
</tr>
<tr>
<td id="label">
Tag:
</td>
<td id="value">
<input id="day" type="text" maxlength="2" value="1"></input>
</td>
<td id="label">
Monat:
</td>
<td id="value">
<input id="month" type="text" maxlength="2" value="9"></input>
</td>
<td id="label">
Jahr:
</td>
<td id="value">
<input id="year" type="text" maxlength="4" value="2003"></input>
</td>
<td id="label" title="Ernittelt automatisch, ob das Jahr ein Schaltjahr ist">
Schaltjahr:
</td>
<td id="value">
<input id="leapyear" title="Ernittelt automatisch, ob das Jahr ein Schaltjahr ist" type="text" value="" disabled="disabled"></input>
</td>
</tr>
<tr>
<td id="label">
<label title="Daylight Saving Time (Sommerzeit = 1 / Winterzeit = 0)">DST:</label>
</td>
<td id="value">
<input title="Daylight Saving Time (Sommerzeit = 1 / Winterzeit = 0)" id="dst" type="text" maxlength="1" value="0" ></input>
</td>
<td id="label">
<label title="Timezone (Westlich -, Östlich +)">TZ:</label>
</td>
<td id="value">
<input title="Timezone (Westlich -, Östlich +)" id="tz" type="text" maxlength="3" value="0" ></input>
</td>
<td id="label">
<label title="Der aktuelle Längengrad (Östlich +, Westlich -), an dem man gerade steht">λ<sub>[°]</sub>:</label>
</td>
<td id="value">
<input title="Der aktuelle Längengrad (Östlich +, Westlich -), an dem man gerade steht" id="longitude" type="text" value="7.2225" ></input>
</td>
<td id="label">
<label title="Der aktuelle Breitengrad (Nördlich +, Südlich -), an dem man gerade steht">β<sub>[°]</sub>:</label>
</td>
<td id="value">
<input title="Der aktuelle Breitengrad (Nördlich +, Südlich -), an dem man gerade steht" id="latitude" type="text" value="51.45" ></input>
</td>
</tr>
<tr>
<td colspan="8">
</td>
</tr>
<tr>
<td colspan="8">
<center><input id="calc" class="calc" type="button" value="Berechnen"></input></center>
</td>
</tr>
<tr>
<td colspan="8">
</td>
</tr>
<tr>
<td id="label" colspan="8">
<center>Mond Auf- und Untergang nach Peter Duffett-Smith und Jonathan Zwart - Practical Astronomy with your Calculator and Spreadsheet</center>
</td>
</tr>
<tr>
<td colspan="8">
</td>
</tr>
<tr>
<td id="label">
<label title="Datum und lokale Uhrzeit des Mondaufgangs am Längengrad des Standorts">Rise:<sub>[Datum]</sub></label>
</td>
<td id="value">
<input class="color" title="Datum und lokale Uhrzeit des Mondaufgangs am Längengrad des Standorts" id="timemoonrise" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Status des Mondaufgangs: OK:OK besagt das Sternzeitkonvertierung und Mondaufgang OK sind.">Status:</label>
</td>
<td id="value">
<input class="color" title="Status des Mondaufgangs: 'OK:OK' besagt das Greenwich Sternzeitkonvertierung zu UT OK : Mondaufgang OK sind." id="statemoonrise" type="text" value="X : Y" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Datum und lokale Uhrzeit des Monduntergangs am Längengrad des Standorts">Set:<sub>[Datum]</sub></label>
</td>
<td id="value">
<input class="color" title="Datum und lokale Uhrzeit des Monduntergangs am Längengrad des Standorts" id="timemoonset" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Status des Monduntergangs: OK:OK besagt das Sternzeitkonvertierung und Monduntergang OK sind.">Status:</label>
</td>
<td id="value">
<input class="color" title="Status des Monduntergangs: 'OK:OK' besagt das Greenwich Sternzeitkonvertierung zu UT OK : Monduntergang OK sind." id="statemoonset" type="text" value="X : Y" disabled="disabled" ></input>
</td>
</tr>
<tr>
<td id="label">
<label title="Azimuth des Mondaufgangs">Azimuth:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Azimuth des Mondaufgangs" id="moonriseaz" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Höhe des Mondes über dem Horizont beim Aufgang">Höhe:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Höhe des Mondes über dem Horizont beim Aufgang" id="moonriseh" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Azimuth des Monduntergangs">Azimuth:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Azimuth des Monduntergangs" id="moonsetaz" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Höhe des Mondes über dem Horizont beim Untergang">Höhe:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Höhe des Mondes über dem Horizont beim Untergang" id="moonseth" type="text" value="0.0" disabled="disabled" ></input>
</td>
</tr>
<tr>
<td id="label">
<label title="Azimuth Mond Höchststand">Azimuth:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Azimuth Mond Höchststand" id="moonhighaz" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Datum und lokale Uhrzeit des Mond Höchstands am Längengrad des Standorts">Höchst:<sub>[Datum]</sub></label>
</td>
<td id="value">
<input class="color" title="Datum und lokale Uhrzeit des Mond Höchstands am Längengrad des Standorts" id="moonhighdate" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Die Höhe des Mondes über dem Horizont">Höhe:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Die Höhe des Mondes über dem Horizont" id="moonhighdeg" type="text" value="0.0" disabled="disabled" ></input>
</td>
</tr>
<tr>
<td id="label">
<label title="Abstand des Mondes von der Erde um 00:00:00.000 Uhr des Tages">Abstand:<sub>[Km]</sub></label>
</td>
<td id="value">
<input class="color" title="Abstand des Mondes von der Erde um 00:00:00.000 Uhr des Tages" id="moondistance" type="text" value="0.0" disabled="disabled" ></input>
</td>
<td id="label">
<label title="Winkeldurchmesser des Mondes in Grad">Durchm.:<sub>[Grad]</sub></label>
</td>
<td id="value">
<input class="color" title="Winkeldurchmesser des Mondes in Grad" id="moondiameter" type="text" value="0.0" disabled="disabled" ></input>
</td>
</tr>
</table>
</body>
</html>