
function BerechneSchwRadius(masse) {
	var c = 2.99792458e8;
	var gamma = 6.672e-11;
	var SchwRadius = (2*gamma*masse)/(c*c);
	return SchwRadius;
	}

function Objekt(Name,Radius,Masse,SRadius,Kommentar)	{
	this.Name = Name;
	this.Radius = Radius;
	this.Masse = Masse;
	this.SRadius = BerechneSchwRadius(Masse);
	this.Kommentar = Kommentar;
	}  

Sonne = new Objekt("Die Sonne","6.9635e8","1.993e30","",
"ist in unserem Sonnensystem der Himmelskörper mit der größten Zeitdehnung - was angesichts ihrer Masse nicht verwunderlich ist. Ihre sichtbare Oberfläche ist die sogenannte Photosphäre - die Grenze zwischen strahlungs- durchlässigen und -undurchlässigen Gasschichten. Temperatur der Photosphäre: 6000 Kelvin. \nWeniger heiß als ein Satellitenstart auf der Sonne ist die Messung der Rotverschiebung des Lichtes, das von der Sonne herrührt. Aus einer solchen Messung - die Einstein schon 1911 vorgeschlagen hatte - läßt sich dann auf die Dehnung der Zeit durch die Gravitation schließen.");
Jupiter = new Objekt("Jupiter","7.1398e7","1.9006e27","","ist der Planet unseres Sonnensystems mit der größten Masse. Lassen Sie sich sich beim Start Ihres Satelliten nicht von der Schwierigkeit beirren, eine dafür geeignete Oberfläche zu finden. Denn mit zunehmendem Druck von der sichtbaren Oberfläche verflüssigen sich die Gasmassen mehr und mehr, bis hin zur kristallinen Verfestigung von Wasserstoff und Helium - irgendwo tief drinnen dann ein dichter zentraler Kern der schweren Elemente. \n\nAber hier ein Tip: Setzen Sie als Höhe  \"1E99\" ein - ein wahrlich gigantischer Abstand. Sie erhalten dann den Unterschied im Uhrengang gegenüber einer Standardzeit, die weitab von allen Himmelskörpern gilt.");
Erde = new Objekt("Die Erde","6.37814e6","5.98e24","",
"- natürlich ist es äußerst schwierig, die winzig kleine Zeitveränderung auf der Erde zu messen - dennoch gelang dies 1960 Pound und Rebka. Die beiden nutzten die schier unglaubliche Genauigkeit des Mößbauereffektes aus, bei dem die kleinste Abweichung in der Frequenz einer Strahlung nachgewiesen werden kann. So konnten sie nachweisen, dass sich die Frequenz der von ihnen beobachteten Strahlung um ein Billiardstel (10e-15) veränderte. \nDer Höhenunterschied betrug dabei: 45m");
Mond = new Objekt("Der Mond","1.738e6","7.176e22","",
"als Vertreter eines Himmelskörpers, der kleiner ist als die Erde. \n\nAn dieser Stelle ein Tip: Setzen Sie als Höhe der Bahn \"2\" ein - etwa die Größe eines Menschen. Der Mond ist zwar für einen nennenswerten Effekt zu klein. Schauen Sie aber einmal beim Neutronenstern PSR1913+16 nach (und lassen Sie neu berechnen!): nach einem langen Leben von 100 Jahren müsste Ihr Kopf etwa 1 Tag älter sein als Ihre Füße!");
PSR1913_16 = new Objekt("PSR1913+16","1.4e4","2.790e30","",
"ist ein typischer Vertreter eines Neutronensterns. Zwei Gegebenheiten ermöglichen es, seine Daten zu erschließen: er ist ein Pulsar und er ist Mitglied eines Doppelsternsystems. Sowohl er als auch sein für uns unsichtbarer Begleiter haben etwa die 1,4-fache Sonnenmasse. Außerdem ist PSR1913+16 sehr wahrscheinlich nur ein 50.000stel so groß wie unsere Sonne. \nEinen Satelliten auf einem Neutronenstern zu starten ist ein besonderes Unterfangen: Schon die Bewegung einer millimeterdünnen Schicht der Oberfläche würde ein Erdbeben hervorrufen, das mehr Energie freisetzt als alle bisherigen Erdbeben auf der Erde zusammen.");

Allesamt = new Array();
Allesamt["Sonne"] = Sonne;
Allesamt["Jupiter"] = Jupiter;
Allesamt["Erde"] = Erde;
Allesamt["Mond"] = Mond;
Allesamt["PSR1913_16"] = PSR1913_16;


var ObjektGewaehlt = false; 	
function AnzeigeInfo(was) {
	ObjektGewaehlt = true;
	var ausgabe = was.Name + "\n" + was.Kommentar;
	document.generator.kommentar.value = ausgabe;
	return ObjektGewaehlt;
	}

//

function eigentlicheBerechnung(Ort) { 					
	var Radius = Ort.Radius * 1; 						
	var SchwRadius = Ort.SRadius * 1;					
	var Hoehe = document.generator.turmhoehe.value; 	

	var sum1 = (Radius + Hoehe * 1) * Radius; 			
	var sum2 = Radius * SchwRadius;						
	var sum3 = (Radius + Hoehe * 1) * SchwRadius;		
	var ergebnis = Math.sqrt((sum1 - sum2)/(sum1 - sum3)) - 1;
	return ergebnis;
	}

function Aufrunde(wert) {
	return Math.round(wert*100)/100;
	}
InWorten = new Array()
InWorten["1000"] = "1000";
InWorten["10000"] = "10 000";
InWorten["100000"] = "100 000";
InWorten["1000000"] = "1 Million";
InWorten["10000000"] = "10 Millionen";
InWorten["100000000"] = "100 Millionen";
InWorten["1000000000"] = "1 Milliarde";
InWorten["10000000000"] = "10 Milliarden";
InWorten["100000000000"] = "100 Milliarden";


function Feststelle(uebergabe) {
	var Vergleichswert = new String();
	var Vorfaktor = 100;
	var ErgebnisOkay = false;
	var Stop = 0;
	while (ErgebnisOkay == false) {
		Vorfaktor = Vorfaktor * 10;			
		var wert = uebergabe * Vorfaktor	
											
		if (wert >= 1) {						
			ErgebnisOkay = true;
			Vergleichswert = " Jahre";
			}
		else {
			wert = wert * 365;
			if (wert >= 1) {						
				ErgebnisOkay = true;
				Vergleichswert = " Tage";
				}
			else {
				wert = wert * 24;
				if (wert >= 1) {						
					ErgebnisOkay = true;
					Vergleichswert = " Stunden";
					}
				else {
					wert = wert * 60;
					if (wert >= 1) {						
						ErgebnisOkay = true;
						Vergleichswert = " Minuten";
						}
					else {
						wert = wert * 60;
						if (wert >= 1) {						
							ErgebnisOkay = true;
							Vergleichswert = " Sekunden";
							}


						else {
							if (Vorfaktor >= 1e9)
								ErgebnisOkay = true;
								Vergleichswert = " Sekunden";
							}

						}	
					}
				}
			}
			
		}

	var ausgabe_vergleichswert = InWorten[Vorfaktor] + " Jahren"; 	
	var ausgabe_vergleichswert = Vorfaktor + " Jahren";				
	
	document.generator.ergebnis_vergleichswert.value = ausgabe_vergleichswert;		

	var ausgabe_wert = Aufrunde(wert) + " " + Vergleichswert;
	return ausgabe_wert;
	}


function BerechneZeitdehnung() {
	if (ObjektGewaehlt == true) {
		for (var i=0 ; i < document.generator.objekt.length; i++) {
			if (document.generator.objekt[i].checked == true)
				var GewaehltesObjekt = document.generator.objekt[i].value;
			}
	var DasObjekt = Allesamt[GewaehltesObjekt];
	var ergebnis = eigentlicheBerechnung(DasObjekt);

	var ausgabe = Feststelle(ergebnis);
	document.generator.ergebnis_dehnung.value = ausgabe;
		}
	else {
	document.generator.ergebnis_vergleichswert.value = "Objekt wählen!"; 	
	document.generator.kommentar.value = "Achtung: \n\nBitte wählen Sie noch das Objekt, auf dem Ihr Satellit starten soll";
		}
	}