// Norbert Huser HB-Yacht BASIC-V2/141191,JavaScript-V1/190308-20:55,040209-16:00
// Sterne im Computer 3-891-71007-0 / 3-481-36411-3 mit Formelverzeichnis/Angaben X.Y.Z
// Kugelgeometrie 3-12-708200-2 1994
// Nautische Tafeln und Formeln DSV-Verlag GmbH
// 190308,040209,280610,081211-1149
// Software Version FM2WXnn_memo.exe/.cgi 271111

function ZeitObjekt ()       // Konstruktor
{ this.JAR;
  this.MON;
  this.TAG;
  this.STD;
  this.MIN;
  this.SEC;
  this.DEG;
  this.RAD;
  this.UTC;
}

var SternZeit = new ZeitObjekt(); 
var Rektaszension = new ZeitObjekt(); 
var JulianischesDatum = new ZeitObjekt(); 
var Deklination = new ZeitObjekt(); 
var GeographischeBreite = new ZeitObjekt(); 
var GeographischeLaenge = new ZeitObjekt(); 

var Calc_JD = "<IMG SRC=\"to.gif\" BORDER=0 TITLE=\"Julianisches Datum berechnen\"  OnClick=\"Setup_SternD()\" OnMouseMove=\"src=\'tog.gif\'\" OnMouseOut=\"src=\'to.gif\'\">"; 
var Calc_SX = "<IMG SRC=\"to.gif\" BORDER=0 TITLE=\"Sextanten Daten\"  OnClick=\"Sextant()\" OnMouseMove=\"src=\'tog.gif\'\" OnMouseOut=\"src=\'to.gif\'\">"; 
var Calc_GPS = "<IMG SRC=\"to.gif\" BORDER=0 TITLE=\"GPS Daten to aktiv WP\"  OnClick=\"gps2wp()\" OnMouseMove=\"src=\'tog.gif\'\" OnMouseOut=\"src=\'to.gif\'\">"; 
var astr_GPS = "<IMG SRC=\"to.gif\" BORDER=0 TITLE=\"GPS Daten to ASTRONAV\"  OnClick=\"GPS()\" OnMouseMove=\"src=\'tog.gif\'\" OnMouseOut=\"src=\'to.gif\'\">"; 

var RSGPS = 0;  // CGI:ALL-USER
var BRT_D = "0";  // &BRTD=UNSIG_INT GPS-Breite
var BRT_M = "0";  // &BRTM=UNSIG_FLOAT GPS-Breite
var BRT_S = "0";  // &BRTS=CHAR NSns GPS-Breite
var LAN_D = "0";  // &LAND=UNSIG_INT GPS-Laenge
var LAN_M = "0";  // &LANM=UNSIG_FLOAT GPS-Laenge
var LAN_S = "0";  // &LANS=CHAR EWew GPS-Laenge
var LVL_M = "0";  // &LVGM=FLOAT
var LVL_S = "M";  // &LVLS=CHAR M
var LVG_M = "0";  // &LVLM=FLOAT WGS84
var LVG_S = "M";  // &LVGS=CHAR M
var UT_ST = "11";  // &UTST=INT UTC Stunde
var UT_MI = "49";  // &UTMI=INT UTC Minute
var UT_SE = "00";  // &UTSE=INT UTC Sekunde
var U_TAG = "08";  // &UTAG=INT UTC Tag
var U_MON = "12";  // &UMON=INT UTC Monat
var U_JAH = "2011";  // &UJAH=INT UTC Jahr
var SP_KN = "0";  // &SPKN=FLOAT Geschwindigkeit
var SP_KH = "0";  // &SPKH=FLOAT Geschwindigkeit
var DKT_D = "0";  // &DKTD=FLOAT true Kurs
var DKM_D = "";  // &DKMD= magnetischer Kurs
var MAD_D = "0";  // &MADD=
var MAD_S = "0";  // &MADS=
var MODUS = "0";  // &MODU=TEXT GPS Modus
var BRT_F = "0.0";  // &BRTF=SIG_FLOAT GPS-Breite
var LAN_F = "0.0";  // &LANF=SIG_FLOAT GPS-Laenge
var SEA_T = "....";  // &SEAT=TEXT Region mit WMO
//RadioSim L=0.000000 B=0.000000 
var G_RST = "";  // Region fuer RadioSim
var LNK_T = "....";  // &LNKT=TEXT

// &B_DEG_n=INT   (pos_mem_breite_deg) Wegpunkte 1 bis 9 in fmwx_scr.js
// &B_MIN_n=INT   (pos_mem_breite_min) B = Breite
// &B_SEC_n=INT   (pos_mem_breite_sec) L = Laenge
// &B_STR_n=CHAR  (pos_mem_breite_str) D = Deviation
// &L_DEG_n=INT   (pos_mem_laenge_deg) n = WegPunktNr. 1-9
// &L_MIN_n=INT   (pos_mem_laenge_min)
// &L_SEC_n=INT   (pos_mem_laenge_sec)
// &L_STR_n=CHAR  (pos_mem_laenge_str)
// &D_DEG_n=FLOAT (pos_mem_stream_deg) Vektor
// &D_SPD_n=FLOAT (pos_mem_stream_spd) Vektor
// &D_TXT_n=TEXT  (pos_mem_geonam)     Region

function GPS() // Im Zusammenhang mit RSGPS
{ if (RSGPS==1)
  { document.AstroNav[1].value = String(parseFloat(UT_ST));
    document.AstroNav[2].value = String(parseFloat(UT_MI));
    document.AstroNav[3].value = String(parseFloat(UT_SE));
    document.AstroNav[4].value = String(parseFloat(U_TAG));
    document.AstroNav[5].value = String(parseFloat(U_MON));
    document.AstroNav[6].value = String(parseFloat(U_JAH));
    document.AstroNav[7].value = "0";
    document.AstroNav[8].value = "0";
    document.AstroNav[9].value = "0";
    document.AstroNav[10].value = "0";
    document.AstroNav[11].value = "0";
    document.AstroNav[12].value = "0";
    document.AstroNav[13].value = "0";
    document.AstroNav[14].value = "0";
    document.AstroNav[15].value = "0";
    document.AstroNav[16].value = "0";
    document.AstroNav[17].value = "0";
    document.AstroNav[18].value = "0";
    document.AstroNav[19].value = "0";
    document.AstroNav[20].value = "0";
    document.AstroNav[21].value = "0";
    document.AstroNav[22].value = "0";
    document.AstroNav[23].value = "0";
    document.AstroNav[24].value = "0";
    document.AstroNav[25].value = "0";
    document.AstroNav[26].value = "0";
    document.AstroNav[27].value = "0";
    document.AstroNav[28].value = "0";
    document.AstroNav[29].value = "0";
    if (BRT_S.charAt(0) == 'N' || BRT_S.charAt(0) == 'n') document.AstroNav[21].value = BRT_D;
    if (BRT_S.charAt(0) == 'N' || BRT_S.charAt(0) == 'n') document.AstroNav[22].value = String(parseInt(parseFloat(BRT_M)));
    if (BRT_S.charAt(0) == 'N' || BRT_S.charAt(0) == 'n') document.AstroNav[23].value = String((parseFloat(BRT_M) - parseInt(parseFloat(BRT_M))) * 60);
    if (LAN_S.charAt(0) == 'W' || LAN_S.charAt(0) == 'w') document.AstroNav[24].value = LAN_D;
    if (LAN_S.charAt(0) == 'W' || LAN_S.charAt(0) == 'w') document.AstroNav[25].value = String(parseInt(parseFloat(LAN_M)));
    if (LAN_S.charAt(0) == 'W' || LAN_S.charAt(0) == 'w') document.AstroNav[26].value = String((parseFloat(LAN_M) - parseInt(parseFloat(LAN_M))) * 60);
    if (BRT_S.charAt(0) == 'S' || BRT_S.charAt(0) == 's') document.AstroNav[21].value = "-" + BRT_D;
    if (BRT_S.charAt(0) == 'S' || BRT_S.charAt(0) == 's') document.AstroNav[22].value = "-" + String(parseInt(parseFloat(BRT_M)));
    if (BRT_S.charAt(0) == 'S' || BRT_S.charAt(0) == 's') document.AstroNav[23].value = "-" + String((parseFloat(BRT_M) - parseInt(parseFloat(BRT_M))) * 60);
    if (LAN_S.charAt(0) == 'E' || LAN_S.charAt(0) == 'e') document.AstroNav[24].value = "-" + LAN_D;
    if (LAN_S.charAt(0) == 'E' || LAN_S.charAt(0) == 'e') document.AstroNav[25].value = "-" + String(parseInt(parseFloat(LAN_M)));
    if (LAN_S.charAt(0) == 'E' || LAN_S.charAt(0) == 'e') document.AstroNav[26].value = "-" + String((parseFloat(LAN_M) - parseInt(parseFloat(LAN_M))) * 60);
    if (LAN_S.charAt(0) == 'O' || LAN_S.charAt(0) == 'o') document.AstroNav[24].value = "-" + LAN_D;
    if (LAN_S.charAt(0) == 'O' || LAN_S.charAt(0) == 'o') document.AstroNav[25].value = "-" + String(parseInt(parseFloat(LAN_M)));
    if (LAN_S.charAt(0) == 'O' || LAN_S.charAt(0) == 'o') document.AstroNav[26].value = "-" + String((parseFloat(LAN_M) - parseInt(parseFloat(LAN_M))) * 60);
    if (0 == BRT_F.length) BRT_F = String(parseFloat(document.AstroNav[21].value) + parseFloat(document.AstroNav[22].value)/60 + parseFloat(document.AstroNav[23].value)/3600);
    if (0 == LAN_F.length) LAN_F = String(parseFloat(document.AstroNav[24].value) + parseFloat(document.AstroNav[25].value)/60 + parseFloat(document.AstroNav[26].value)/3600);
    Setup_SternD();
    GeographischeBreite.RAD = parseFloat(BRT_F);
    GeographischeLaenge.RAD = parseFloat(LAN_F);
    GeographischeBreite.DEG = parseInt(GeographischeBreite.RAD);
    GeographischeLaenge.DEG = parseInt(GeographischeLaenge.RAD);
    GeographischeBreite.MIN = (GeographischeBreite.RAD - GeographischeBreite.DEG) * 60;
    GeographischeLaenge.MIN = (GeographischeLaenge.RAD - GeographischeLaenge.DEG) * 60;
    GeographischeBreite.SEC = (GeographischeBreite.MIN - parseInt(GeographischeBreite.MIN)) * 60;
    GeographischeLaenge.SEC = (GeographischeLaenge.MIN - parseInt(GeographischeLaenge.MIN)) * 60;
    document.AstroNav[21].value = String(GeographischeBreite.DEG);
    document.AstroNav[22].value = String(parseInt(parseFloat(GeographischeBreite.MIN)));
    document.AstroNav[23].value = String(parseInt(1000*parseFloat(GeographischeBreite.SEC))/1000);
    document.AstroNav[24].value = String(GeographischeLaenge.DEG);
    document.AstroNav[25].value = String(parseInt(parseFloat(GeographischeLaenge.MIN)));
    document.AstroNav[26].value = String(parseInt(1000*parseFloat(GeographischeLaenge.SEC))/1000);
    document.AstroNav[28].value = SEA_T;
    document.AstroNav[29].value = MODUS;
    akt_jar = parseInt(U_JAH);
    akt_mon = parseInt(parseFloat(U_MON));
    akt_tag = parseInt(parseFloat(U_TAG));
    akt_std = parseInt(parseFloat(UT_ST));
    akt_min = parseInt(parseFloat(UT_MI));
    if (DKT_D != '' && SP_KN != '')
    { var anz = document.waypoint.elements.length;
      document.waypoint[anz-28].value = DKT_D; // TrueKurs in WP-Nav
      document.waypoint[anz-4].value = SP_KN;  // Speed in WP-Nav
    }
    Elemente (STERN); // Stern/sonne Daten ermitteln
  }
  return;
}

function insert_astronav(i) // To select the position for astronav
{ return(" <IMG SRC=\"to.gif\" BORDER=0 TITLE=\"Set the position to astronavigation OG\" OnClick=\"CPY_AstroNav("+String(i)+")\" OnMouseMove=\"src=\'tog.gif\'\" OnMouseOut=\"src=\'to.gif\'\">");
}
var STERN = 0; // Sonne als default

function CheckAuswahl ()
{ for (i = 0; i < document.AstroNav.PlanetWahl.length; ++i)
    if (document.AstroNav.PlanetWahl.options[i].selected == true)
      STERN = parseInt(document.AstroNav.PlanetWahl.options[i].value);
}

function HBYTabAstro (TabName,TabBild,BildLink,BildBsr,TabTitel)
{ var TbAussen = 675;
  var TbBreite = 675;
  TbInnen = TbBreite * 0.99;
  TabBildDef = TabBild;
  if (TabBild == "fm2wx") TabBildDef = "<IMG SRC=\"hbyico.gif\" WIDTH=90 HEIGHT=90 BORDER=0 TITLE=\""+BildBsr+"\">";
  if (TabBild == "icowx") TabBildDef = "<IMG SRC=\"hbicfm.gif\" WIDTH=90 HEIGHT=90 BORDER=0 TITLE=\""+BildBsr+"\">";
  if (TabBild == "UN") TabBildDef = "<IMG SRC=\"uns.gif\" WIDTH=64 HEIGHT=70 BORDER=0 TITLE=\""+BildBsr+"\">";
  if (BildLink != "") TabBildDef = "<A HREF=\""+BildLink+"\">"+TabBildDef+"</A>";
  var HBYTabBorderHead = "<TABLE CELLSPACING=2 CELLPADDING=1 BORDERCOLOR=#" + bcg_color_tab_border_define[col_def] + " BGCOLOR=#" + bcg_color_tab_border_define[col_def]
                       + " BORDERCOLORDARK=#" + bcg_color_tab_border_dark[col_def] + " BORDERCOLORLIGHT=#" + bcg_color_tab_border_light[col_def] + " BORDER=0 WIDTH=" + TbInnen + "><TBODY>";
  var HBYTabBlkBrdHead = "<TR><TH WIDTH=\"" + prozent_tab_left + "%\" HEIGHT=5 ABBR=\"oberer dunkler Balken\"></TH><TH WIDTH=\"" + prozent_tab_right + "%\" HEIGHT=5></TH></TR>"; // 16 84 auch mit COLSPAN=2
  var HBYTabBlkBrdBody = "<TR><TD WIDTH=\"" + prozent_tab_left + "%\" HEIGHT=5 ABBR=\"unterer dunkler Balken\"></TD><TD WIDTH=\"" + prozent_tab_right + "%\" HEIGHT=5></TD></TR>"; // 16 84 auch mit COLSPAN=2
  var HBYTabLksLogoDef = "<TR><TD WIDTH=\"" + prozent_tab_left + "%\" ROWSPAN=2 BGCOLOR=\"#" + bcg_color_tab_left_area[col_def] + "\" VALIGN=\"middle\" ALIGN=\"center\">" + TabBildDef + "</TD>"; // ROWSPAN=2
//var HBYTabRtsTitlDef = "    <TD WIDTH=\"" + prozent_tab_right + "%\" BGCOLOR=\"#" + bcg_color_tab_right_area[col_def] + "\" ALIGN=\"left\" VALIGN=\"top\">"
//                     + "<FONT SIZE=4 COLOR=\"#" + text_color_tab_title[col_def] + "\"><A NAME=\"" + TabName + "\"></A><B>" + TabTitel + "</B><!--/A MouseOver alles rot--></FONT></TD></TR>";
  var HBYTabRtsTextDef = "<TR><TD WIDTH=\"" + prozent_tab_right + "%\" BGCOLOR=\"#" + bcg_color_tab_right_area[col_def] + "\"  ALIGN=\"left\" VALIGN=\"top\">";
//var HBYInnenTabIText = "<TR><TD WIDTH=\"5%\"></TD><TD WIDTH=\"90%\">"
//                     + "<FONT COLOR=\"#" + tab_def_text[col_def] + "\" SIZE=\"3\"><B>" + TabText + "</B></FONT></TD><TD WIDTH=\"5%\"></TD></TR>";
  if (BreitDarstellung == 0)
  { document.writeln ("<TABLE CELLSPACING=0 BORDER=0 CELLPADDING=0 WIDTH=",TbAussen,"><TBODY><TR>");
    document.writeln ("<TD WIDTH=\"5%\" VALIGN=\"top\" ALIGN=\"center\"></TD>");
    document.writeln ("<TD WIDTH=\"95%\" VALIGN=\"top\" ALIGN=\"center\">");
  }
  document.writeln (HBYTabBorderHead); // Tabelle mit dunklem Oberteil / Anfang sichtbarer Tabelle
  document.writeln (HBYTabBlkBrdHead); // Kopfzeile der Tabelle mit Rand
  document.writeln (HBYTabLksLogoDef); // <TR>Links Logo Inhalt
  document.writeln ("<TD WIDTH=\"",prozent_tab_right,"%\" BGCOLOR=\"#",bcg_color_tab_right_area[col_def],"\" VALIGN=\"top\" ALIGN=\"top\">");
  document.writeln ("<FORM NAME=\"AstroNav\" ACTION=\"mailto:info@hb-yacht.ch\" METHOD=\"post\" ENCTYPE=\"text/plain\">");
  document.writeln ("<FONT SIZE=4 COLOR=\"#",text_color_tab_title[col_def],"\"><A NAME=\"",TabName,"\"></A><B>");
  if (RSGPS==0) document.writeln (TabTitel," </B><SELECT CLASS=\"select\" NAME=\"PlanetWahl\" onchange=\"CheckAuswahl()\" style=\"HEIGHT: 21px; WIDTH: 100px\">");
  if (RSGPS==1) document.writeln ("GPS-",TabTitel," </B><SELECT CLASS=\"select\" NAME=\"PlanetWahl\" onchange=\"CheckAuswahl()\" style=\"HEIGHT: 21px; WIDTH: 100px\">");
  document.writeln ("<OPTION selected VALUE=\"0\">Sonne</OPTION>");
  document.writeln ("<OPTION VALUE=\"1\">Merkur</OPTION>");
  document.writeln ("<OPTION VALUE=\"2\">Venus</OPTION>");
  document.writeln ("<OPTION VALUE=\"3\">Mars</OPTION>");
  document.writeln ("<OPTION VALUE=\"4\">Jupiter</OPTION>");
  document.writeln ("<OPTION VALUE=\"5\">Saturn</OPTION></SELECT>");
  document.writeln ("<!--/A MouseOver Text wird rot--></FONT></TD></TR>");
  document.writeln (HBYTabRtsTextDef); // Tabelle rechts Text Definition
  if (0 == hintergrund.length) document.writeln ("<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TBODY>");
  if (0 < hintergrund.length) document.writeln ("<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 background=\"",hintergrund,"\"><TBODY>");
  document.writeln ("<TR><TD WIDTH=\"5%\"></TD><TD WIDTH=\"90%\">");
  document.writeln ("<FONT COLOR=\"#",tab_def_text[col_def],"\" SIZE=\"3\"><B>");
  document.writeln ("<B>");
  document.writeln ("<TABLE CELLSPACING=0 BORDER=0 CELLPADDING=0 WIDTH=500><TBODY>");
  document.writeln (" <TR><TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_STD\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(601)\"></TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_MIN\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(602)\"></TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_SEC\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(603)\"></TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_TAG\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(604)\"></TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_MON\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(605)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_JAR\" SIZE=2 MAXLENGTH=10 onhelp=\"HelpF1(606)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DAT_OFF\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(607)\"></TD>");
  document.writeln ("     <TD WIDTH=\"6%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">",Calc_JD,"</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"JUL_UTC\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(608)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"JUL_TAG\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(609)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"JUL_MON\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(610)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"JUL_JAR\" SIZE=2 MAXLENGTH=10 onhelp=\"HelpF1(611)\"></TD></TR>");
  document.writeln (" <TR><TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"> h</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">min</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">sec</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Day</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Mon</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Year</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Offs</TD>");
  if (RSGPS==0) document.writeln ("     <TD WIDTH=\"6%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"> </TD>");
  if (RSGPS==1) document.writeln ("     <TD WIDTH=\"6%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">",astr_GPS,"</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">JD_h</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">JD_D</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">JD_M</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">JD_Y</TD>");
  document.writeln ("</TR></TBODY></TABLE>");
  document.writeln ("<TABLE CELLSPACING=0 BORDER=0 CELLPADDING=0 WIDTH=500><TBODY>");
  document.writeln (" <TR><TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Deklination_DEG\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(612)\">&#176;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Deklination_MIN\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(613)\">&#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Deklination_SEC\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(614)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Rektaszension_DEG\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(615)\">&#176;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Rektaszension_MIN\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(616)\">&#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Rektaszension_SEC\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(617)\"></TD>");
  document.writeln ("     <TD WIDTH=\"12%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Azimut\" SIZE=4 MAXLENGTH=16 onhelp=\"HelpF1(618)\">&#176;</TD>");
  document.writeln ("     <TD WIDTH=\"12%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Hoehe\" SIZE=4 MAXLENGTH=16 onhelp=\"HelpF1(619)\">&#176;</TD>");
  document.writeln ("     <TD WIDTH=\"26%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"JulDatum\" SIZE=20 MAXLENGTH=30 onhelp=\"HelpF1(620)\"></TD></TR>");
  document.writeln ("</TR></TBODY></TABLE>");
  document.writeln ("<TABLE CELLSPACING=0 BORDER=0 CELLPADDING=0 WIDTH=500><TBODY>");
  document.writeln (" <TR><TD WIDTH=\"25%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Deklination (B)</TD>");
  document.writeln ("     <TD WIDTH=\"25%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Rektaszension (L)</TD>");
  document.writeln ("     <TD WIDTH=\"12%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Azimut</TD>");
  document.writeln ("     <TD WIDTH=\"12%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Hoehe</TD>");
  document.writeln ("     <TD WIDTH=\"26%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Julianisches Datum</TD>");
  document.writeln ("</TR></TBODY></TABLE>");
  document.writeln ("<TABLE CELLSPACING=0 BORDER=0 CELLPADDING=0 WIDTH=500><TBODY>");
  document.writeln (" <TR><TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Breite_DEG\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(621)\">&#176;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Breite_MIN\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(622)\">&#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Breite_SEC\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(623)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Laenge_DEG\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(624)\">&#176;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Laenge_MIN\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(625)\">&#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"Laenge_SEC\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(626)\"></TD>");
  document.writeln ("     <TD WIDTH=\"18%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"KorBetrag\" SIZE=4 MAXLENGTH=20 onhelp=\"HelpF1(627)\">&#176; ",Calc_GPS,"</TD>");
  document.writeln ("     <TD WIDTH=\"32%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"WP_PSN_TXT\" SIZE=26 MAXLENGTH=50 onhelp=\"HelpF1(628)\"></TD></TR>");
  document.writeln (" <TR><TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Breite</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">min</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">sec</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">L&auml;nge</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">min</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">sec</TD>");
  document.writeln ("     <TD WIDTH=\"18%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">H-Ellipsoid</TD>");
  document.writeln ("     <TD WIDTH=\"32%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Location WP_<INPUT TYPE=\"text\" NAME=\"WP_NR\" SIZE=3 MAXLENGTH=10 onhelp=\"HelpF1(629)\"></TD>");
  document.writeln ("</TR></TBODY></TABLE>");
  document.writeln ("<TABLE CELLSPACING=0 BORDER=0 CELLPADDING=0 WIDTH=500><TBODY>");
  document.writeln (" <TR><TD WIDTH=\"7%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Hs &#176;</TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"HsDeg\" SIZE=2 MAXLENGTH=10 onhelp=\"HelpF1(630)\"></TD>");
  document.writeln ("     <TD WIDTH=\"6%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Hs &#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"HsMin\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(631)\"></TD>");
  document.writeln ("     <TD WIDTH=\"5%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Ic &#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"IcMin\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(632)\"></TD>");
  document.writeln ("     <TD WIDTH=\"7%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">DIP &#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"DIPMin\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(633)\"></TD>");
  document.writeln ("     <TD WIDTH=\"9%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">Limb &#39;</TD>");
  document.writeln ("     <TD WIDTH=\"8%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"LimbMin\" SIZE=1 MAXLENGTH=10 onhelp=\"HelpF1(634)\"></TD>");
  document.writeln ("     <TD WIDTH=\"5%\" VALIGN=\"TOP\" ALIGN=\"LEFT\">",Calc_SX,"</TD>");
  document.writeln ("     <TD WIDTH=\"20%\" VALIGN=\"TOP\" ALIGN=\"LEFT\"><INPUT TYPE=\"text\" NAME=\"LimbMin\" SIZE=14 MAXLENGTH=20 onhelp=\"HelpF1(635)\"></TD>");
  document.writeln ("</TR></TBODY></TABLE>");
  document.writeln ("</B></FONT></TD><TD WIDTH=\"5%\"></TD></TR></TBODY></TABLE>");
  document.writeln ("</TD></TR>",HBYTabBlkBrdBody,"</TBODY></TABLE></FORM>");
  if (BreitDarstellung == 0) document.writeln ("</TD></TR></TBODY></TABLE><BR>");
  return;
}

function CPY_AstroNav(zwp)
{ var WPNR = zwp;
  zwp = (zwp * 11) - 11;
  GeographischeBreite.DEG = parseFloat(document.waypoint[zwp].value);
  GeographischeBreite.MIN = parseFloat(document.waypoint[zwp+1].value);
  GeographischeBreite.SEC = parseFloat(document.waypoint[zwp+2].value);
  var G_breite_str = document.waypoint[zwp+3].value;
  GeographischeLaenge.DEG = parseFloat(document.waypoint[zwp+4].value);
  GeographischeLaenge.MIN = parseFloat(document.waypoint[zwp+5].value);
  GeographischeLaenge.SEC = parseFloat(document.waypoint[zwp+6].value);
  var G_laenge_str = document.waypoint[zwp+7].value;
  var G_OrtBeschreibung = document.waypoint[zwp+10].value;
  var G_breite = parseFloat(GeographischeBreite.DEG) + parseFloat(GeographischeBreite.MIN) / 60 + parseFloat(GeographischeBreite.SEC) / 3600;
  var G_laenge = parseFloat(GeographischeLaenge.DEG) + parseFloat(GeographischeLaenge.MIN) / 60 + parseFloat(GeographischeLaenge.SEC) / 3600;
  if (G_breite_str.charAt(0) == 'S')
  { G_breite = G_breite * (-1);
    GeographischeBreite.DEG = GeographischeBreite.DEG * (-1);
    GeographischeBreite.MIN = GeographischeBreite.MIN * (-1);
    GeographischeBreite.SEC = GeographischeBreite.SEC * (-1);
  }
  if (G_laenge_str.charAt(0) == 'E')
  { G_laenge = G_laenge * (-1);
    GeographischeLaenge.DEG = GeographischeLaenge.DEG * (-1);
    GeographischeLaenge.MIN = GeographischeLaenge.MIN * (-1);
    GeographischeLaenge.SEC = GeographischeLaenge.SEC * (-1);
  }
  if (G_laenge_str.charAt(0) == 'O')
  { G_laenge = G_laenge * (-1);
    GeographischeLaenge.DEG = GeographischeLaenge.DEG * (-1);
    GeographischeLaenge.MIN = GeographischeLaenge.MIN * (-1);
    GeographischeLaenge.SEC = GeographischeLaenge.SEC * (-1);
  }
  if (G_breite_str.charAt(0) == 'S') G_breite_str = "s";
  if (G_breite_str.charAt(0) == 'N') G_breite_str = "n";
  if (G_laenge_str.charAt(0) == 'W') G_laenge_str = "w";
  if (G_laenge_str.charAt(0) == 'E') G_laenge_str = "e";
  if (G_laenge_str.charAt(0) == 'O') G_laenge_str = "e";
  document.AstroNav[21].value = String(GeographischeBreite.DEG);
  document.AstroNav[22].value = String(GeographischeBreite.MIN);
  document.AstroNav[23].value = String(GeographischeBreite.SEC);
  document.AstroNav[24].value = String(GeographischeLaenge.DEG);
  document.AstroNav[25].value = String(GeographischeLaenge.MIN);
  document.AstroNav[26].value = String(GeographischeLaenge.SEC);
  document.AstroNav[28].value = G_OrtBeschreibung;
  document.AstroNav[29].value = WPNR + " (OG)";
  GeographischeBreite.DEG = parseFloat(GeographischeBreite.DEG) + parseFloat(GeographischeBreite.MIN) / 60 + parseFloat(GeographischeBreite.SEC) / 3600;
  GeographischeLaenge.DEG = parseFloat(GeographischeLaenge.DEG) + parseFloat(GeographischeLaenge.MIN) / 60 + parseFloat(GeographischeLaenge.SEC) / 3600;

  Setup_SternD();               // Julianisches Datum berechnen
  document.AstroNav[20].value = String(JulianischesDatum.DEG);   // von Setup_SternD()

  Elemente (STERN); // Stern/sonne Daten ermitteln;
  return;
}

function JulianischesDatumSystem()
{ dat = new Date();
  JulianischesDatum.STD = dat.getHours();
  document.AstroNav[1].value = String(JulianischesDatum.STD);
  JulianischesDatum.MIN = dat.getMinutes();
  document.AstroNav[2].value = String(JulianischesDatum.MIN);
  JulianischesDatum.SEC = dat.getSeconds();
  document.AstroNav[3].value = String(JulianischesDatum.SEC);
  JulianischesDatum.TAG = dat.getDate();
  document.AstroNav[4].value = String(JulianischesDatum.TAG);
  JulianischesDatum.MON = dat.getMonth();
  JulianischesDatum.MON = JulianischesDatum.MON + 1;
  document.AstroNav[5].value = String(JulianischesDatum.MON);
  JulianischesDatum.JAR = dat.getYear();
  document.AstroNav[6].value = String(JulianischesDatum.JAR);
  Offset = dat.getTimezoneOffset();
  document.AstroNav[7].value = String(Offset);
  if (Offset >= 1380) Offset = Offset - 1440;
  if (JulianischesDatum.JAR < 1000.0) JulianischesDatum.JAR = JulianischesDatum.JAR + 1900;
  if (JulianischesDatum.MON <= 2)
  { JulianischesDatum.MON = JulianischesDatum.MON + 12;
    JulianischesDatum.JAR = JulianischesDatum.JAR - 1;
  }
  JulianischesDatum.UTC = JulianischesDatum.STD + (JulianischesDatum.MIN + Offset)/60.0 + JulianischesDatum.SEC/3600.0;
  document.AstroNav[8].value = String(JulianischesDatum.UTC);
  document.AstroNav[9].value = String(JulianischesDatum.TAG);
  document.AstroNav[10].value = String(JulianischesDatum.MON);
  document.AstroNav[11].value = String(JulianischesDatum.JAR);
  // Zuerst Komponenten von JD
  var UTime = JulianischesDatum.UTC;
  var B = Math.floor(JulianischesDatum.JAR / 400.0) - Math.floor(JulianischesDatum.JAR / 100.0) + Math.floor(JulianischesDatum.JAR / 4.0);
  var A = 365.0 * JulianischesDatum.JAR - 679004.0;
  JulianischesDatum.DEG = A + B + Math.floor(30.6001 * (JulianischesDatum.MON + 1)) + JulianischesDatum.TAG + UTime/24.0;
  JulianischesDatum.DEG = JulianischesDatum.DEG + 2400000.5;
  document.AstroNav[20].value = String(JulianischesDatum.DEG);
  document.AstroNav[28].value = "";
  return;
}

function Setup_SternD()
{ JulianischesDatum.STD = parseFloat(document.AstroNav[1].value);
  JulianischesDatum.MIN = parseFloat(document.AstroNav[2].value);
  JulianischesDatum.SEC = parseFloat(document.AstroNav[3].value);
  JulianischesDatum.TAG = parseFloat(document.AstroNav[4].value);
  JulianischesDatum.MON = parseFloat(document.AstroNav[5].value);
  JulianischesDatum.JAR = parseFloat(document.AstroNav[6].value);
  Offset = parseFloat(document.AstroNav[7].value);
  if (Offset >= 1380) Offset = Offset - 1440; // Groesser 23 h
  if (JulianischesDatum.JAR < 1000.0) JulianischesDatum.JAR = JulianischesDatum.JAR + 1900;
  if (JulianischesDatum.MON <= 2)
  { JulianischesDatum.MON = JulianischesDatum.MON + 12;
    JulianischesDatum.JAR = JulianischesDatum.JAR - 1;
  }
  JulianischesDatum.UTC = JulianischesDatum.STD + (JulianischesDatum.MIN + Offset)/60.0 + JulianischesDatum.SEC/3600.0;
  document.AstroNav[8].value = String(JulianischesDatum.UTC);
  document.AstroNav[9].value = String(JulianischesDatum.TAG);
  document.AstroNav[10].value = String(JulianischesDatum.MON);
  document.AstroNav[11].value = String(JulianischesDatum.JAR);
  // Zuerst Komponenten von JD
  var UTime = JulianischesDatum.UTC;
  var B = Math.floor(JulianischesDatum.JAR / 400.0) - Math.floor(JulianischesDatum.JAR / 100.0) + Math.floor(JulianischesDatum.JAR / 4.0);
  var A = 365.0 * JulianischesDatum.JAR - 679004.0;
  JulianischesDatum.DEG = A + B + Math.floor(30.6001 * (JulianischesDatum.MON + 1)) + JulianischesDatum.TAG + UTime/24.0;
  JulianischesDatum.DEG = JulianischesDatum.DEG + 2400000.5;
  document.AstroNav[20].value = String(JulianischesDatum.DEG);
  return;
}

function gps2wp()
{ var lnst="W";
  var brst="N";
  var wpos = 11 * pos_mem_pointer;
  GeographischeBreite.DEG = parseInt(100000*parseFloat(document.AstroNav[21].value))/100000;
  GeographischeBreite.MIN = parseInt(10000*parseFloat(document.AstroNav[22].value))/10000;
  GeographischeBreite.SEC = parseInt(1000*parseFloat(document.AstroNav[23].value))/1000;
  GeographischeLaenge.DEG = parseInt(100000*parseFloat(document.AstroNav[24].value))/100000;
  GeographischeLaenge.MIN = parseInt(10000*parseFloat(document.AstroNav[25].value))/10000;
  GeographischeLaenge.SEC = parseInt(1000*parseFloat(document.AstroNav[26].value))/1000;
  GeographischeBreite.RAD = parseFloat(GeographischeBreite.DEG) + parseFloat(GeographischeBreite.MIN) / 60 + parseFloat(GeographischeBreite.SEC) / 3600;
  GeographischeLaenge.RAD = parseFloat(GeographischeLaenge.DEG) + parseFloat(GeographischeLaenge.MIN) / 60 + parseFloat(GeographischeLaenge.SEC) / 3600;
  if (GeographischeBreite.RAD < 0)
  { GeographischeBreite.DEG = GeographischeBreite.DEG * (-1);
    GeographischeBreite.MIN = GeographischeBreite.MIN * (-1);
    GeographischeBreite.SEC = GeographischeBreite.SEC * (-1);
    brst = "S";
  }
  if (GeographischeLaenge.RAD < 0)
  { GeographischeLaenge.DEG = GeographischeLaenge.DEG * (-1);
    GeographischeLaenge.MIN = GeographischeLaenge.MIN * (-1);
    GeographischeLaenge.SEC = GeographischeLaenge.SEC * (-1);
    lnst = "E";
  }
  document.waypoint[wpos].value = String(GeographischeBreite.DEG);
  document.waypoint[wpos+1].value = String(GeographischeBreite.MIN);
  document.waypoint[wpos+2].value = String(GeographischeBreite.SEC);
  if (brst=="N") document.waypoint[wpos+3].value = "North";
  if (brst=="S") document.waypoint[wpos+3].value = "South";
  document.waypoint[wpos+4].value = String(GeographischeLaenge.DEG);
  document.waypoint[wpos+5].value = String(GeographischeLaenge.MIN);
  document.waypoint[wpos+6].value = String(GeographischeLaenge.SEC);
  if (lnst=="W") document.waypoint[wpos+7].value = "West";
  if (lnst=="E") document.waypoint[wpos+7].value = "East";
  document.waypoint[wpos+8].value = "0";
  document.waypoint[wpos+9].value = "0";
  document.waypoint[wpos+10].value = document.AstroNav[28].value;
  return;
}

function Sextant()
{ if (RSGPS==0)
  { document.AstroNav[35].value = "LOGIN";
    return;
  }
  if (document.AstroNav[30].value=="") document.AstroNav[30].value = "0";
  var HsDeg = parseFloat(document.AstroNav[30].value);  // Hs Degree
  if (document.AstroNav[31].value=="") document.AstroNav[31].value = "0";
  var HsMin = parseFloat(document.AstroNav[31].value);  // Hs Minuten.x
  if (document.AstroNav[32].value=="") document.AstroNav[32].value = "0";
  var Ic = parseFloat(document.AstroNav[32].value);  // Ic
  if (document.AstroNav[33].value=="") document.AstroNav[33].value = "0";
  var DIP = parseFloat(document.AstroNav[33].value);  // DIP
  if (document.AstroNav[34].value=="") document.AstroNav[34].value = "0";
  var Limb = parseFloat(document.AstroNav[34].value);  // Hs Degree

  var refraktion_cor = 0.00; // Betrag der Refraktion
  var hr = HsDeg + HsMin/60;
  if (0.1 <= hr && hr <= 89.9)
  { var h_refraktion = hr + (1.02 /(Math.tan((hr + (10.3/(hr + 5.11))) * (Math.PI / 180))) /60);
    refraktion_cor = 1.02 /(Math.tan((hr + (10.3/(hr + 5.11))) * (Math.PI / 180))) /60;
    var h_refraktion_deg = parseInt(h_refraktion);
    var h_refraktion_min = parseInt(6000 * (h_refraktion - h_refraktion_deg)) / 100;
    HsDeg = h_refraktion_deg;
    HSMin = h_refraktion_min;
    document.AstroNav[30].value = String(h_refraktion_deg);
    document.AstroNav[31].value = String(h_refraktion_min);
    document.AstroNav[33].value = String(DIP);
  }
  var Breite_Ast = parseFloat(document.AstroNav[12].value) + parseFloat(document.AstroNav[13].value)/60 + parseFloat(document.AstroNav[14].value)/3600;  // phi Deklination Sterndaten
  var Laenge_Ast = parseFloat(document.AstroNav[15].value) + parseFloat(document.AstroNav[16].value)/60 + parseFloat(document.AstroNav[17].value)/3600;  // lmd Rektaszension Sterndaten
  // OG
  var Breite_Nav = parseFloat(document.AstroNav[21].value) + parseFloat(document.AstroNav[22].value)/60 + parseFloat(document.AstroNav[23].value)/3600;
  var Laenge_Nav = parseFloat(document.AstroNav[24].value) + parseFloat(document.AstroNav[25].value)/60 + parseFloat(document.AstroNav[26].value)/3600;

  // Kruemmungshalbmesser GRS_80 auf Sat. Messungen basierend
  var Ke2 = 6.694381E-3;
  var Kh2 = (1-Ke2 * Math.sin(Breite_Nav * Math.PI/180) * Math.sin(Breite_Nav * Math.PI/180));
  var KHM = (6378137 * (1.0 - Ke2)) / Math.sqrt(Kh2 * Kh2 * Kh2);

    var richtung = "";
    var breite_str = "";
    var laenge_str = "";
    var aS = 3443.917387;  // Grosse Halbachse des Ellipsoides (sm)
    var beS = 3432.370691; // Kleine Halbachse des Ellipsoides (sm)
    var eS = 0.0818188;    // Exzentrizitaet
    if (Breite_Nav < 0) breite_str=" South ";
    if (Breite_Nav >= 0) breite_str=" North ";
    if (Laenge_Nav < 0) laenge_str=" East ";
    if (Laenge_Nav >= 0) laenge_str=" West ";

    var haA = Math.sin(Breite_Nav*Math.PI/180) * Math.sin(Breite_Ast*Math.PI/180);
    var hbA = Math.cos(Breite_Nav*Math.PI/180) * Math.cos(Breite_Ast*Math.PI/180) * Math.cos(Math.PI/180 * (Laenge_Ast - Laenge_Nav));
    var nmA = (parseInt(100 * (3600 * Math.acos(haA + hbA)))) / 100;
    var ncA = Math.acos(haA + hbA);

    var BSx = Math.cos(Breite_Nav*Math.PI/180) * Math.cos(Breite_Ast*Math.PI/180) * Math.sin(Math.PI/180 * (Laenge_Ast-Laenge_Nav)) / Math.sin(ncA);
    var nmAS = ncA * (60.10769757-0.1007639268*(1-BSx));
    nmAS = parseInt(1000 * nmAS) / 1000;

    if (Laenge_Ast > Laenge_Nav && Breite_Ast > Breite_Nav) richtung = "w";
    if (Laenge_Ast < Laenge_Nav && Breite_Ast > Breite_Nav) richtung = "o";
    if (Laenge_Ast > Laenge_Nav && Breite_Ast < Breite_Nav) richtung = "w";
    if (Laenge_Ast < Laenge_Nav && Breite_Ast < Breite_Nav) richtung = "o";
    if (Laenge_Ast == Laenge_Nav && Breite_Ast < Breite_Nav) richtung = "o";
    if (Laenge_Ast == Laenge_Nav && Breite_Ast > Breite_Nav) richtung = "w";
    if (Laenge_Ast > Laenge_Nav && Breite_Ast == Breite_Nav) richtung = "w";
    if (Laenge_Ast < Laenge_Nav && Breite_Ast == Breite_Nav) richtung = "o";
    var hcA = Math.sin(Breite_Ast*Math.PI/180) - (Math.sin(Breite_Nav*Math.PI/180) * Math.cos(ncA));
    var hdA = hcA / (Math.cos(Breite_Nav*Math.PI/180) * Math.sin(ncA));
    var vdA = 60 * Math.acos(hdA);
    if (richtung == "o") vdA = Math.abs(vdA);
    if (richtung == "w") vdA = 360 - Math.abs(vdA);
    //if (richtung == "o" && Laenge_Nav >= 180) vdA = Math.abs(vdA);
    vdA = (parseInt(10 * vdA)) / 10;

    var Erdellipsoid = 90 - nmAS;  // uebergabe_betrag als Winkel mit Abplattung
    var Sicht = vdA;               // uebergabe_richtung
    var Erdkugel = 90 - nmA/60;    // uebergabe_betrag als Winkel
    var SXW = HsDeg + (HsMin + Ic + DIP + Limb)/60;
    if (SXW == 0)
    { document.AstroNav[31].value = "--undefined--";
      return;
    }
    var Toleranz = parseInt(100 * 60 * Math.abs(Erdellipsoid - Erdkugel)) / 100;
    var Fehler = 0.0;

    document.AstroNav[27].value = String(parseInt(1000 * Erdellipsoid) / 1000);
    document.AstroNav[18].value = String(parseInt(1000 * Sicht) / 1000);        // uebergabe_richtung
    document.AstroNav[19].value = String(parseInt(1000 * Erdkugel) / 1000);     // uebergabe_betrag als Winkel

    if (Erdellipsoid < SXW && Erdkugel > SXW) document.AstroNav[35].value = "at OG ("+String(Toleranz)+"sm)";
    if (Erdellipsoid > SXW && Erdkugel < SXW) document.AstroNav[35].value = "at OG ("+String(Toleranz)+"sm)";

    //document.AstroNav[34].value = "D "+String(KHM);

    if (Erdellipsoid < Erdkugel && SXW < Erdellipsoid)
    { Fehler = parseInt(100 * 60 * (Erdellipsoid - SXW)) / 100;
      document.AstroNav[35].value = "- "+String(Fehler)+"nm at OG ("+String(Toleranz)+"sm)";
    }
    if (Erdkugel < Erdellipsoid && SXW < Erdkugel)
    { Fehler = parseInt(100 * 60 * (Erdkugel - SXW)) / 100;
      document.AstroNav[35].value = "- "+String(Fehler)+"nm at OG ("+String(Toleranz)+"sm)";
    }
    if (Erdellipsoid > Erdkugel && SXW > Erdellipsoid)
    { Fehler = parseInt(100 * 60 * (SXW - Erdellipsoid)) / 100;
      document.AstroNav[35].value = "+ "+String(Fehler)+"nm at OG ("+String(Toleranz)+"sm)";
    }
    if (Erdkugel > Erdellipsoid && SXW > Erdkugel)
    { Fehler = parseInt(100 * 60 * (SXW - Erdkugel)) / 100;
      document.AstroNav[35].value = "+ "+String(Fehler)+"nm at OG ("+String(Toleranz)+"sm)";
    }
  return;
}

//--------------------------------------------------------------------------------------------------------------------

// Berechnung der Elemente
function BerechnungDerElemente()       // Konstruktor
{ this.L = new Array(4); // L = mittlere heliozentrische Laenge
  this.M = new Array(4); // M = mittlere Anomalie
  this.i = new Array(4); // i = Bahnneigung
  this.k = new Array(4); // k = heliozentrische Laenge des aufsteigenden Knotens
  this.e = new Array(4); // e = Numerische Exzentrizitaet
  this.a = new Array(4); // a = grosse Halbachse
}
Sonne = new BerechnungDerElemente();
Merkur = new BerechnungDerElemente();
Venus = new BerechnungDerElemente();
Mars = new BerechnungDerElemente();
Jupiter = new BerechnungDerElemente();
Saturn = new BerechnungDerElemente();

UJ = new Array(51);
US = new Array(51);
UJ = [ 0.000001, 0.002001, 0.001101, 0.102103, 0.104105, 0.106106, 0.105104, 0.103102, 0.101001, 0.002003,
       0.003003, 0.002001, 0.000102, 0.103104, 0.104105, 0.105104, 0.103102, 0.101001, 0.002003, 0.003003,
       0.003003, 0.001000, 0.101103, 0.103104, 0.104103, 0.103102, 0.101001, 0.002003, 0.003004, 0.003003,
       0.002001, 0.000102, 0.103103, 0.103103, 0.103102, 0.101000, 0.001002, 0.003003, 0.003003, 0.002002,
       0.001101, 0.102103, 0.103101, 0.103103, 0.102101, 0.000001, 0.002003, 0.003003, 0.003002, 0.001000, 0.101101];
US = [ 0.107107, 0.106104, 0.101002, 0.005008, 0.010012, 0.012011, 0.009007, 0.004001, 0.102104, 0.106107,
       0.108106, 0.105102, 0.001004, 0.007009, 0.010010, 0.010008, 0.005003, 0.000103, 0.105107, 0.108108,
       0.107105, 0.103000, 0.003006, 0.008009, 0.008008, 0.006004, 0.001102, 0.105107, 0.108109, 0.108107,
       0.105102, 0.001004, 0.006008, 0.008008, 0.007005, 0.003000, 0.103105, 0.107108, 0.108107, 0.106104,
       0.101002, 0.004006, 0.008008, 0.007006, 0.004002, 0.101103, 0.105107, 0.108108, 0.107105, 0.103000, 0.002002];

Sonne.L = [ 4.88168594, 628.331953,   0.00000528834765,  0.0];
Sonne.M = [ 6.25665633, 628.301948,  -0.00000261799389, -5.7596E-8];
Sonne.e = [ 0.001675,    -0.0000418, -1.3E-07,           0.0];
Sonne.a = [ 1.00,         0.0,        0.0,               0.0];

Merkur.L = [ 3.10982767,  2608.81469,    5.25344106E-6,   0.0];
Merkur.M = [ 1.78512276,  2608.78754,    1.22173048E-7,   0.0];
Merkur.i = [ 0.122173048, 3.31612559E-5,  -3.14159266E-7, 0.0];
Merkur.k = [ 0.822922745, 0.0206856424,  3.03687291E-6,   0.0];
Merkur.e = [ 0.20561,     2.046E-5,     -3.0E-8,          0.0];
Merkur.a = [ 0.3871,      0.0,           0.0,             0.0];

Venus.L = [ 5.9824651,    1021.35293,      5.4105207E-6,  0.0];
Venus.M = [ 3.71057,      1021.32835,      2.24449343E-5, 0.0];
Venus.i = [ 0.0591666618, 1.745322926E-5, -1.74532926E-8, 0.0];
Venus.k = [ 1.32261051,   0.015706218,     7.15584995E-6, 0.0];
Venus.e = [ 0.00682,     -4.77E-5,         9.0E-8,        0.0];
Venus.a = [ 0.72333,      0.0,             0.0,           0.0];

Mars.L = [ 5.12673016,    334.085612,     5.42797399E-6,  0.0];
Mars.M = [ 5.57667605,    334.053486,     3.15904596E-6,  0.0];
Mars.i = [ 0.0322885913, -1.22173048E-5,  2.26892804E-7,  0.0];
Mars.k = [ 0.851546145,   0.0134564886,  -1.74532926E-8, -9.25024507E-8];
Mars.e = [ 0.09331,       9.21E-5,       -8.0E-8,         0.0];
Mars.a = [ 1.52369,       0.0,            0.0,            0.0];

Jupiter.L = [ 4.1547563,    52.9934672,     5.84685301E-6, -2.96705974E-8];
Jupiter.M = [ 3.93275042,   52.9653673,    -1.26012772E-5,  0.0];
Jupiter.i = [ 0.0228638133, -9.94837677E-5, 6.98131703E-8,  0.0];
Jupiter.k = [ 1.73555541,    0.0176365521,  6.14355899E-6, -1.48352987E-7];
Jupiter.e = [ 0.04833,       1.642E-4,     -4.7E-7,        -1.7E-9];
Jupiter.a = [ 5.20256,       0.0,           0.0,            0.0];

Saturn.L = [ 4.65234967,   21.3542763,     5.67232009E-6, -1.01229097E-7];
Saturn.M = [ 3.06252925,   21.3200957,    -8.76155287E-6,  0.0];
Saturn.i = [ 0.0434586985, -6.8067841E-5, -2.61799389E-7,  0.0];
Saturn.k = [ 1.96855687,    0.0152402151, -2.6529004E-6,  -9.25024507E-8];
Saturn.e = [ 0.05589,      -3.455E-4,     -7.3E-7,         7.0E-10];
Saturn.a = [ 9.55475,       0.0,           0.0,            0.0];

function Elemente (STERN)
{ JulianischesDatum.STD = parseFloat(document.AstroNav[1].value);
  JulianischesDatum.MIN = parseFloat(document.AstroNav[2].value);
  JulianischesDatum.SEC = parseFloat(document.AstroNav[3].value);
  JulianischesDatum.TAG = parseFloat(document.AstroNav[4].value);
  JulianischesDatum.MON = parseFloat(document.AstroNav[5].value);
  JulianischesDatum.JAR = parseFloat(document.AstroNav[6].value);
  Offset = parseFloat(document.AstroNav[7].value);
  var ZDG = parseFloat(document.AstroNav[24].value);
  var ZDM = parseFloat(document.AstroNav[25].value);
  var ZDS = parseFloat(document.AstroNav[26].value);
  var ZD = parseInt(((ZDG + ZDM/60 + ZDS/3600) / 15) * (-1));
  var DD = JulianischesDatum.STD + JulianischesDatum.MIN/60 + JulianischesDatum.SEC/3600;
  DD = parseInt(DD) + (DD - parseInt(DD))/.6;
  //DD = DD + ZD;                                             // ZonenZeit aus OG
  DD = DD + Offset/60;
  var TA = JulianischesDatum.TAG;
  var TT = JulianischesDatum.TAG;
  var TX = TT;
  var J = JulianischesDatum.JAR;
  var JJ = JulianischesDatum.JAR;
  var M = JulianischesDatum.MON;
  var MM = JulianischesDatum.MON;
  TT = TT + DD/24;
  if (TT > 31)
  { TT = TT - 31;
    TA = TA - 31;
    MM = MM + 1;
  }
  TX = TT;
  M = MM;
  J = JJ;
  if (MM < 3)
  { J = JJ - 1;
    M = MM + 12;
  }
  var A = parseInt(J/100);                                  // 3.1.1 - 3.1.5
  var B = 0;
  // Gregorianische Kalender
  if ((JJ+MM/100+TA/1000) > 1582.104) B = 2-A+parseInt(A/4);                       // 3.1.3 nach 4.10.1582
  var ID=0;
  if (J<0)
  { JD = -parseInt(0.75 - 365.25 * J)+parseInt(30.6001 *(M + 1)) + TX + 1720994.5; // 3.1.1
  }
  if (J>=0)
  { JD = parseInt(365.25 * J)+parseInt(30.6001 *(M + 1)) + TX + B + 1720994.5;     // 3.1.2
  }
  var T = (JD  - 2415020.0) / 36525.0;                     // 3.3.8
  // Sternzeit
  var ST = 6.64607 + 2400.051262 * T + 0.00002581 * T*T;   // 3.3.9
      ST = ST - parseInt(ST/24) * 24;                      // Resultat in h
  var DT = 0.0002818 + 0.000837 * T + 0.0003466 * T*T;     // 3.3.11 ohne Unterschied Ephemeridenzeit - Weltzeit
  JD = JD + DT;
  T = T + DT/36525;

  var I1 = 0;  // Korrektur der grossen Ungleichung UJ US
  var T2 =  T * T;
  var T3 =  T * T * T;
  var AF = 0.0;
  var j1 = 0;
  // Praezessionselemente 3.7.2, 3.7.3 und 3.7.4
  // Element = .[0] + .[1] * T + .[2] * T2 + .[3] * T3;
  // Bahnelemente I  4.1.1

  if (STERN==0) // Sonne
  { var L = Sonne.L[0] + Sonne.L[1] * T + Sonne.L[2] * T2;
    var M = Sonne.M[0] + Sonne.M[1] * T + Sonne.M[2] * T2 + Sonne.M[3] * T3;
    var e = Sonne.e[0] + Sonne.e[1] * T + Sonne.e[2] * T2;
    var a = Sonne.a[0];
    var i = 0;
  }

  if (STERN==1) // Merkur
  { var L = Merkur.L[0] + Merkur.L[1] * T + Merkur.L[2] * T2;
    var M = Merkur.M[0] + Merkur.M[1] * T + Merkur.M[2] * T2;
    var i = Merkur.i[0] + Merkur.i[1] * T + Merkur.i[2] * T2;
    var k = Merkur.k[0] + Merkur.k[1] * T + Merkur.k[2] * T2;
    var e = Merkur.e[0] + Merkur.e[1] * T + Merkur.e[2] * T2;
    var a = Merkur.a[0];
  }
  if (STERN==2) // Venus
  { var L = Venus.L[0] + Venus.L[1] * T + Venus.L[2] * T2;
    var M = Venus.M[0] + Venus.M[1] * T + Venus.M[2] * T2;
    var i = Venus.i[0] + Venus.i[1] * T + Venus.i[2] * T2;
    var k = Venus.k[0] + Venus.k[1] * T + Venus.k[2] * T2;
    var e = Venus.e[0] + Venus.e[1] * T + Venus.e[2] * T2;
    var a = Venus.a[0];
  }
  if (STERN==3) // Mars
  { var L = Mars.L[0] + Mars.L[1] * T + Mars.L[2] * T2;
    var M = Mars.M[0] + Mars.M[1] * T + Mars.M[2] * T2;
    var i = Mars.i[0] + Mars.i[1] * T + Mars.i[2] * T2;
    var k = Mars.k[0] + Mars.k[1] * T + Mars.k[2] * T2 + Mars.k[3] * T3;
    var e = Mars.e[0] + Mars.e[1] * T + Mars.e[2] * T2;
    var a = Mars.a[0];
  }
  if (STERN==4) // Jupiter
  { var L = Jupiter.L[0] + Jupiter.L[1] * T + Jupiter.L[2] * T2 + Jupiter.L[3] * T3;
    var M = Jupiter.M[0] + Jupiter.M[1] * T + Jupiter.M[2] * T2;
    var i = Jupiter.i[0] + Jupiter.i[1] * T + Jupiter.i[2] * T2;
    var k = Jupiter.k[0] + Jupiter.k[1] * T + Jupiter.k[2] * T2 + Jupiter.k[3] * T3;
    var e = Jupiter.e[0] + Jupiter.e[1] * T + Jupiter.e[2] * T2 + Jupiter.e[3] * T3;
    var a = Jupiter.a[0];
    if (-2000 < parseFloat(document.AstroNav[11].value) && parseFloat(document.AstroNav[11].value) < 3000) // Gueltigkeits Bereich der Jahre
    { j1 = (parseFloat(document.AstroNav[6].value)+2000)/100 - parseInt((parseFloat(document.AstroNav[6].value)+2000)/100);
      if (j1 < 0) j1=2;
      if (j1 > 0) j1=2;
      if (j1 == 0) j1=1;
      I1 = parseInt((parseFloat(document.AstroNav[6].value)+2000)/100);
      AF = UJ[I1]; // Korrektur der grossen Ungleichung UJ[I1]
      if (j1==1)
      { AF = parseInt(AF * 1000) / 1000;
        if (AF>0.1) AF = 0.1 - AF;
        AF = AF * 1.745329;
      }
    }
  }
  if (STERN==5) // Saturn
  { var L = Saturn.L[0] + Saturn.L[1] * T + Saturn.L[2] * T2 + Saturn.L[3] * T3;
    var M = Saturn.M[0] + Saturn.M[1] * T + Saturn.M[2] * T2;
    var i = Saturn.i[0] + Saturn.i[1] * T + Saturn.i[2] * T2;
    var k = Saturn.k[0] + Saturn.k[1] * T + Saturn.k[2] * T2 + Saturn.k[3] * T3;
    var e = Saturn.e[0] + Saturn.e[1] * T + Saturn.e[2] * T2 + Saturn.e[3] * T3;
    var a = Saturn.a[0];
    if (-2000 < parseFloat(document.AstroNav[11].value) && parseFloat(document.AstroNav[11].value) < 3000) // Gueltigkeits Bereich der Jahre
    { j1 = (parseFloat(document.AstroNav[6].value)+2000)/100 - parseInt((parseFloat(document.AstroNav[6].value)+2000)/100);
      if (j1 < 0) j1=2;
      if (j1 > 0) j1=2;
      if (j1 == 0) j1=1;
      I1 = parseInt((parseFloat(document.AstroNav[6].value)+2000)/100);
      AF = US[I1]; // Korrektur der grossen Ungleichung US[I1]
      if (j1==1)
      { AF = parseInt(AF * 1000) / 1000;
        if (AF>0.1) AF = 0.1 - AF;
        AF = AF * 1.745329;
      }
    }
  }

  // L M i  k  e  a
  // L M IO KN EX A

  // Berechnung von Keplerbahnen
  // U = sqrt(a*a*a / (M1 + M2))      // 2.3.1 U = Umlaufzeit in Jahren
  // E = e * sin (E) = u * t          // 2.3.2 E = exzentrische Anomalie u = mittlere taegliche Bewegung (Keplergleichung)
  // x = a * sqrt(1 - e*e) * sin(E)   // 2.3.3
  // y = a * ( cos(E) - e)            // 2.3.4
  // Xs = x*M1 / (M1 + M2)            // 2.3.5 Schwerpunkt auf der Verbindungsachse der Sterne
  // Ys = y*M1 / (M1 + M2)            // 2.3.6
  // x1 = -Xs                         // 2.3.7 rechtwinklige Koordinate fuer Stern 1
  // y1 = -Ys                         // 2.3.8
  // x2 = x - Xs                      // 2.3.9 rechtwinklige Koordinate fuer Stern 2
  // y2 = y - Ys                      // 2.3.10

  // Bahnelemente II fuer die Sonne und Planeten
  // Aus der mittleren Anomalie erhält man die Mittelpunktsgleichung
  // var f = 114.59 * e * Math.sin(M) +71.62 * e * e * Math.sin(2*M) + e * e * e * (62.07 * Math.sin(3*M) - 14.32 * Math.sin(M));                          // 4.1.3
  // f = f * Math.PI / 180;
     var f = 1.99997279 * e * Math.sin(M) + 1.25000481 * e * e * Math.sin(2.0*M) + e * e * e * (1.08332587 * Math.sin(3.0*M) - 0.249931149 * Math.sin(M)); // 4.1.3
  // Radiusvektor fuer Sonne und Planeten
     var r = a * (1.0 - e * Math.cos(M) + 0.5 * e * e * (1.0- Math.cos(2.0*M))) - a * 0.375 * e * e * e * (Math.cos(3.0*M) - Math.cos(M));                 // 4.1.4

  if (STERN==0) // fuer die Sonne
  { var LS = L + f; // 4.1.5 ekliptikale Sonnenlaenge
    var RS = r;     // fuer 4.1.7 / 4.1.8 / 4.1.12 Radiusvektor der Sonne mit Sterne
    var DRo = r;    // Arayelemente fuer die Sternberechnung
    var PHo = 0;
    var ELo = 0;
        L = LS;     // L und B fuer 3.8.1x Koordinatentransformation
        B = 0;      // ACHTUNG benoetigt in 3.1.1
  }

  if (STERN > 0) // fuer die Sonne nicht benoetigt
  { var Lss = Sonne.L[0] + Sonne.L[1] * T + Sonne.L[2] * T2;                   // L = mittlere heliozentrische Laenge
    var Ms  = Sonne.M[0] + Sonne.M[1] * T + Sonne.M[2] * T2 + Sonne.M[3] * T3; // M = mittlere Anomalie der Sonne
    var es  = Sonne.e[0] + Sonne.e[1] * T + Sonne.e[2] * T2;                   // e = Numerische Exzentrizität der Sonne
    var as  = Sonne.a[0];                                                      // a = grosse Halbachse der Sonne
    // Aus der mittleren Anomalie erhaelt man die Mittelpunktsgleichung fuer die Sonne
    var fs  = 1.99997279 * es * Math.sin(Ms) + 1.25000481 * es*es * Math.sin(2.0*Ms) + es*es*es * (1.08332587 * Math.sin(3.0*Ms) - 0.249931149 * Math.sin(Ms)); // 4.1.3
    // Radiusvektor der Sonne
    var RS = as * (1.0 - es * Math.cos(Ms) + 0.5 * es*es * (1.0- Math.cos(2.0*Ms))) - as * 0.375 * es*es*es * (Math.cos(3.0*Ms) - Math.cos(Ms)); // fuer 4.1.7 / 4.1.8 / 4.1.12 Radiusvektor der Sonne
    // Die ekliptikale Sonnenlänge
    var LS = Lss + fs;                                                         // 4.1.5 ekliptikale Sonnenlaenge LS
    // hilfs Grössen fuer Sterne (r) Radiusvektor Stern (RS) Radiusvektor Sonne (L) Sternenlaenge (LS) Sonnenlaeng
    var uh = L + f - k;                                                        // 4.1.6 Hilfsgroesse Sterndaten
    var zh = r * Math.sin(uh) * Math.cos(i) + RS * Math.sin(LS-k);             // 4.1.7 Hilfsgroesse Achtung r,RS
    var nh = r * Math.cos(uh) + RS * Math.cos(LS-k);                           // 4.1.8 Hilfsgroesse  k = heliozentrische Laenge des aufsteigenden Knotens
    var LK = Math.atan(zh / nh);                                               // Tan(l - k) = z/n 4.1.9
    if (nh<0) LK = LK + Math.PI;
    // Die ekliptische Laenge l des Planeten ergibt sich aus
    var el = k + LK;                                                           // 4.1.9
    // Die ekliptische Breite B ergibt sich aus
    B = Math.atan(r * Math.sin(uh) * Math.sin(i) * Math.sin(el-k) / zh);       // 4.1.10
  }

  if (j1==2) // Korrektur der grossen Ungleichung UJ US
  { B = parseInt(AF * 1000) / 1000;
    AF = (AF - B) * 1000;
    if (AF>0.1) AF = 0.1 - AF;
    AF = AF * 1.745329;
  }
  if (STERN==4) L = L + AF; // Korrektur der grossen Ungleichung Jupiter
  if (STERN==5) L = L + AF; // Korrektur der grossen Ungleichung Saturn

  // Koordinatentransformation ekliptikal - aequatorial  X, Y und Z sind Hilfsvariablen
  // var EP = 0.409314618 - 0.000227067336 * T - 0.0000000279252681 * T2 + 8.72664626E-09 * T3; // Schiefe der Ekliptik 3.8.14
  var EP = 23.452 - 0.01301 * T - 0.0000016 * T2 + 0.0000005 * T3;
      EP = EP * Math.PI / 180;                                                     // 3.8.13 - 3.8.19

  var X = Math.cos(B) * Math.cos(L);                                              // 3.8.15
  var Y = Math.cos(B) * Math.sin(L) * Math.cos(EP) - Math.sin(B) * Math.sin(EP);  // 3.8.16
  var Z = Math.cos(B) * Math.sin(L) * Math.sin(EP) + Math.sin(B) * Math.cos(EP);  // 3.8.17
  var RB = Math.atan(Y/X);                                                        // 3.8.18
  if (X<0       ) RB = RB + Math.PI;
  if (X>0 && Y<0) RB = RB + 2 * Math.PI;
  var DB = Math.atan(Z / Math.sqrt(X*X + Y*Y));                                   // 3.8.19

  DB = DB * 360 / (2*Math.PI);  // Deklination Breite
  RB = RB * 3.8197186;          // Rektaszension Laenge

  if (STERN > 0)
  { // Die Entfernung des Planeten von der Erde D
    var D = nh/ (Math.cos(L-k) * Math.cos(B));                 // 4.1.11
    if (D<0) D = Math.abs(D);
    // Die ekliptischen Oerter
    // Phasenwinkel
    var PH = Math.acos((r * r + D * D - RS * RS) / 2 * r * D); // 4.1.12
    // Elongation
    var E2 = Math.acos(Math.cos(B) * Math.cos(L - LS));        // 4.1.13
  }

  // Sternzeit
     ST = ST - RB;
  var DEG_RB = (ST/24.0 - parseInt(ST/24.0)) * 360 + (TX/365.2425 - parseInt(TX/365.2425) + DD/24.0) * 360.0;

  var SternZ_Ast = ST;      // Sternzeit
  var Breite_Ast = DB;      // Deklination Breite
  var Laenge_Ast = DEG_RB;  // Rektaszension Laenge

  SternZeit.DEG = parseInt(SternZ_Ast);
  SternZeit.MIN = (( 100* (SternZ_Ast - SternZeit.DEG)) *60) /100;
  SternZeit.SEC = parseInt((100* (SternZeit.MIN-parseInt(SternZeit.MIN))) *60) /100;
  SternZeit.MIN = parseInt(SternZeit.MIN);

  Deklination.DEG = parseInt(Breite_Ast);
  Deklination.MIN = (( 100* (Breite_Ast - Deklination.DEG)) *60) /100;
  Deklination.SEC = parseInt ((100* (Deklination.MIN-parseInt(Deklination.MIN))) *60) /100;
  Deklination.MIN = parseInt(Deklination.MIN);

  if (Laenge_Ast > 180) Laenge_Ast = Laenge_Ast - 360; // Internet Explorer
  Rektaszension.DEG = parseInt(Laenge_Ast);
  Rektaszension.MIN = (( 100* (Laenge_Ast - Rektaszension.DEG)) *60) /100;
  Rektaszension.SEC = parseInt ((100* (Rektaszension.MIN-parseInt(Rektaszension.MIN))) *60) /100;
  Rektaszension.MIN = parseInt(Rektaszension.MIN);

  document.AstroNav[12].value = String(Deklination.DEG);      // Deklination Breite DEG
  document.AstroNav[13].value = String(Deklination.MIN);      // Deklination Breite MIN
  document.AstroNav[14].value = String(Deklination.SEC);      // Deklination Breite SEC
  document.AstroNav[15].value = String(Rektaszension.DEG);    // Rektaszension Laenge DEG
  document.AstroNav[16].value = String(Rektaszension.MIN);    // Rektaszension Laenge MIN
  document.AstroNav[17].value = String(Rektaszension.SEC);    // Rektaszension Laenge SEC

  //var Breite_Ast = parseFloat(document.AstroNav[12].value) + parseFloat(document.AstroNav[13].value)/60 + parseFloat(document.AstroNav[14].value)/3600;  // phi
  //var Laenge_Ast = parseFloat(document.AstroNav[15].value) + parseFloat(document.AstroNav[16].value)/60 + parseFloat(document.AstroNav[17].value)/3600;  // lmd
  var Breite_Nav = parseFloat(document.AstroNav[21].value) + parseFloat(document.AstroNav[22].value)/60 + parseFloat(document.AstroNav[23].value)/3600;
  var Laenge_Nav = parseFloat(document.AstroNav[24].value) + parseFloat(document.AstroNav[25].value)/60 + parseFloat(document.AstroNav[26].value)/3600;

    var richtung = "";
    var breite_str = "";
    var laenge_str = "";
    var aS = 3443.917387;  // Grosse Halbachse des Ellipsoides (sm)
    var beS = 3432.370691; // Kleine Halbachse des Ellipsoides (sm)
    var eS = 0.0818188;    // Exzentrizitaet
    if (Breite_Nav < 0) breite_str=" South ";
    if (Breite_Nav >= 0) breite_str=" North ";
    if (Laenge_Nav < 0) laenge_str=" East ";
    if (Laenge_Nav >= 0) laenge_str=" West ";

    // Grosskreis-Distanz von Nautische Tafeln und Formeln DSV-Verlag GmbH / Kugelgeometrie, Klett 3-12-708200-2
    // Grosskreisdistanz 1.5.1 / 1.5.2
    // do = acos( sin(Breite_Nav) * sin(Breite_Ast) + cos(Breite_Nav) * cos(Breite_Ast) * cos(Laenge_Ast - Laenge_Nav))
    // Laenge der geodaetischen Linie auf dem Erdellipsoid
    // x = cos(Breite_Nav) * cos(Breite_Ast) * sin(Laenge_Ast - Laenge_Nav) / sin(do)
    // de = (do * x / 180) * (aS - ((aS-beS)/2)*(1-x*x))
    // Anfangskurs mit Kenntnis der Grosskreis-Distanz 1.5.3
    // (sin(Breite_Ast) - sin(Breite_Nav) * cos(do)) / (cos(Breite_Nav) * sin(do))

    // Buergerliche Daemmerung   96 Grad (Zenitdistanz)
    // Nautische Daemmerung     102 Grad (Zenitdistanz)
    // Astronomische Daemmerung 108 Grad (Zenitdistanz)

    var haA = Math.sin(Breite_Nav*Math.PI/180) * Math.sin(Breite_Ast*Math.PI/180);
    var hbA = Math.cos(Breite_Nav*Math.PI/180) * Math.cos(Breite_Ast*Math.PI/180) * Math.cos(Math.PI/180 * (Laenge_Ast - Laenge_Nav));
    var nmA = (parseInt(100 * (3600 * Math.acos(haA + hbA)))) / 100;
    var ncA = Math.acos(haA + hbA);

    var Distanz = (parseInt(100 * (3600 * Math.acos(haA + hbA)))) / 100;
    document.AstroNav[35].value = " (" + String(Distanz) + " nm)";

    var BSx = Math.cos(Breite_Nav*Math.PI/180) * Math.cos(Breite_Ast*Math.PI/180) * Math.sin(Math.PI/180 * (Laenge_Ast-Laenge_Nav)) / Math.sin(ncA);
    var nmAS = ncA * (60.10769757-0.1007639268*(1-BSx));
    nmAS = parseInt(1000 * nmAS) / 1000;
    document.AstroNav[27].value = String(90 - nmAS);
    if (Laenge_Ast > Laenge_Nav && Breite_Ast > Breite_Nav) richtung = "w";
    if (Laenge_Ast < Laenge_Nav && Breite_Ast > Breite_Nav) richtung = "o";
    if (Laenge_Ast > Laenge_Nav && Breite_Ast < Breite_Nav) richtung = "w";
    if (Laenge_Ast < Laenge_Nav && Breite_Ast < Breite_Nav) richtung = "o";
    if (Laenge_Ast == Laenge_Nav && Breite_Ast < Breite_Nav) richtung = "o";
    if (Laenge_Ast == Laenge_Nav && Breite_Ast > Breite_Nav) richtung = "w";
    if (Laenge_Ast > Laenge_Nav && Breite_Ast == Breite_Nav) richtung = "w";
    if (Laenge_Ast < Laenge_Nav && Breite_Ast == Breite_Nav) richtung = "o";
    var hcA = Math.sin(Breite_Ast*Math.PI/180) - (Math.sin(Breite_Nav*Math.PI/180) * Math.cos(ncA));
    var hdA = hcA / (Math.cos(Breite_Nav*Math.PI/180) * Math.sin(ncA));
    var vdA = 60 * Math.acos(hdA);
    if (richtung == "o") vdA = Math.abs(vdA);
    if (richtung == "w") vdA = 360 - Math.abs(vdA);
    //if (richtung == "o" && Laenge_Nav >= 180) vdA = Math.abs(vdA);
    vdA = (parseInt(10 * vdA)) / 10;
    document.AstroNav[18].value = String(vdA);          // uebergabe_richtung
    document.AstroNav[19].value = String(90 - nmA/60);  // uebergabe_betrag als Winkel
    var SX_DEG = parseInt(90 - (nmA/60 - (nmA/60 - nmAS) / 2)); // Mitte der H-Winkel DEG
    var SX_MIN = (100 * 60 *((90 - (nmA/60 - (nmA/60 - nmAS) / 2)) - SX_DEG)) / 100;
    document.AstroNav[30].value = String(SX_DEG); // Mitte der H-Winkel
    document.AstroNav[31].value = String(SX_MIN); // Mitte der H-Winkel

  return;
}


