var b
var l
var a
var e
var p
var pi = 3.141592654
var labr
var wa
var ldez
var bdez
var minus              // Minus vorhanden? (Bei Minuten-Umrechnung)
var len                // Länge des wertes
var posk               // Position des Kommas (Bei Minuten-Umrechnung)
var vork               // Vor dem Komma (Bei Minuten-Umrechnung)
var nachk              // Nach dem Komma (Bei Minuten-Umrechnung)
var kposi              // Kommaposition
var laenge             // Eingabelänge der Felder Längengrad und Breitengrad
var nachkomma          // Was nach dem Komma steht (Längengrad und Breitengrad)
var lfehler
var bfehler


function AuswahlGradArt (gart) {
 wa = gart.value
 neu ()
}

function AuswahlSatellit (sat) {
 document.satfind.a.value = ""
 document.satfind.e.value = ""
 document.satfind.p.value = sat.options[sat.selectedIndex].value
 rechne ()
}

function WahlOrt (ort) {
 document.satfind.gradArt[1].checked = true         // setze dezimal
 wa = "dezimal"
 lfehler = 0
 bfehler = 0
 labr = ort.options[ort.selectedIndex].value
 if (String(labr).indexOf("0.0000.00") == -1) {     // Ort gewählt
   document.satfind.l.value = labr.substring(0,6)
   document.satfind.b.value = labr.substring(6,11)
   rechne ()
 }
 if (String(labr).indexOf("0.0000.00") != -1) {     // keine Vorgabe
   document.satfind.l.value = ""
   document.satfind.b.value = ""
   document.satfind.a.value = ""
   document.satfind.e.value = ""
   document.satfind.l.focus()
 }
}

function neu () {
 document.satfind.p.value = ""
 document.satfind.l.value = ""
 document.satfind.b.value = ""
 document.satfind.a.value = ""
 document.satfind.e.value = ""
 document.satfind.p.focus()
 document.satfind.Satellit[0].selected = true
 document.satfind.Ort[0].selected = true
}

function checkb () { // Setzt Fokus auf "OK" wenn Breitengrad verlassen wird
 document.satfind.B_OK.focus()
}

function rechne () {
 if (document.satfind.p.value != "" && document.satfind.b.value != "" && document.satfind.l.value != "") {
   b = document.satfind.b.value
   l = document.satfind.l.value
   if (wa == "minuten") {
     wandel ()
   }
   if (lfehler == 0 && bfehler == 0) {
     p = document.satfind.p.value
     // Berechnung Azimuth
     a = 180 / pi * Math.atan ( Math.tan ( ( p - l ) * pi / 180 ) / Math.sin ( b * pi / 180 ) )
     a = Math.round ( Math.round ( ( 180 - a ) * 100 + 0.5 ) / 100 )
     // Berechnung Elevation
     e = Math.cos (b * pi / 180 ) * Math.cos ( ( p - l ) * pi / 180 )
     e = Math.atan (e / Math.sqrt ( 1 - e * e ) )
     e = Math.atan ( ( Math.sin ( e ) - 0.1513 ) / Math.cos ( e ) ) * 180 / pi
     e = Math.round (Math.round ( e * 100 + 0.5 ) / 10 ) / 10
     document.satfind.a.value = a
     document.satfind.e.value = e
   }
   lfehler = 0
   bfehler = 0
 }

}

function wandel () { // Umrechnung von Minuten nach dezimal
   Check ()

   // Umwandlung des Längengrades
   minus = 0
   if (String(document.satfind.l.value).indexOf("-") != -1) {
     minus = 1
   }
   len = document.satfind.l.value.length
   posk = String(document.satfind.l.value).indexOf(".")
   vork = document.satfind.l.value.substring(0,posk)
   nachk = document.satfind.l.value.substring(posk + 1,len)
   nachk = nachk * 0.0166667
   ldez = parseFloat(vork) + parseFloat(nachk)
   if (minus == 1) {
     ldez = parseFloat(vork) - parseFloat(nachk)
   }
   len = String(ldez).length
   posk = String(ldez).indexOf(".")
   ldez = String(ldez).substr(0,posk + 3)

   // Umwandlung des Breitengrades
   len = document.satfind.b.value.length
   posk = String(document.satfind.b.value).indexOf(".")
   vork = document.satfind.b.value.substring(0,posk)
   nachk = document.satfind.b.value.substring(posk + 1,len)
   nachk = nachk * 0.0166667
   bdez = parseFloat(vork) + parseFloat(nachk)
   len = String(bdez).length
   posk = String(bdez).indexOf(".")
   bdez = String(bdez).substr(0,posk + 3)

   b = bdez
   l = ldez
}

function Check () { // Plausibilität von Längen- und Breitengradeingabe bei Minuten
 lfehler = 0
 bfehler = 0
 // Überprüfung Längengrad
 kposi = String(document.satfind.l.value).indexOf(".")
 laenge = String(document.satfind.l.value).length
 if (kposi == -1 || laenge - kposi != 3) {
   lfehler = 1
   alert("Längengrad: Bei der Eingabe von Minuten-Werten immer einen Dezimalpunkt gefolgt von 2 Stellen eingeben! Beispiel: 5.35")
 }
nachkomma = document.satfind.l.value.substring(String(document.satfind.l.value).indexOf(".")+1,String(document.satfind.l.value).length)

 if (lfehler == 0 && nachkomma > 59) {
   alert("Längengrad: Bei der Eingabe von Minuten-Werten sind Eingaben mit mehr als 59 Minuteninuten unzulässig!")
   lfehler = lfehler + 10
 }

 // Überprüfung Breitengrad
 kposi = String(document.satfind.b.value).indexOf(".")
 laenge = String(document.satfind.b.value).length
 if (kposi == -1 || laenge - kposi != 3) {
   bfehler = 1
   alert("Breitengrad: Bei der Eingabe von Minuten immer einen Dezimalpunkt gefolgt von 2 Stellen eingeben! Beispiel: 51.45")
 }
nachkomma = document.satfind.b.value.substring(String(document.satfind.b.value).indexOf(".")+1,String(document.satfind.b.value).length)

 if (bfehler == 0 && nachkomma > 59) {
   alert("Breitengrad: Bei der Eingabe von Minuten-Werten sind Eingaben mit mehr als 59 Minuten unzulässig!")
   bfehler = bfehler + 10
 }


}
