
var T=new Array(),TT=new Array(),VV=new Array(),V=new Array(),pi=Math.PI,v,E,rund=4,drund=10000,java=navigator.javaEnabled();

vv=new Array("a","b","c","ka","kb","kc","alpha","beta","gamma","e","r","s","ss","A");
T[0]=" alpha + beta + gamma - pi - e ";V[0]=" alpha beta gamma e ";
T[1]=" r ^2 * e - A ";V[1]=" A r e ";
T[2]=" a + b + c - 2* s ";V[2]=" a b c s ";
T[3]=" alpha + beta + gamma - 2* ss ";V[3]=" alpha beta gamma ss ";
T[4]="cot( a /2)-sqr(-cos( ss - beta )*cos( ss - gamma )/cos( ss )/cos( ss - alpha ))";V[4]=" a alpha beta gamma ss ";
T[5]="cot( b /2)-sqr(-cos( ss - alpha )*cos( ss - gamma )/cos( ss )/cos( ss - beta ))";V[5]=" b alpha beta gamma ss ";
T[6]="cot( c /2)-sqr(-cos( ss - alpha )*cos( ss - beta )/cos( ss )/cos( ss - gamma ))";V[6]=" c alpha beta gamma ss ";
T[7]="cos( a )-cos( b )*cos( c )-sin( b )*sin( c )*cos( alpha )";V[7]=" a b c alpha ";
T[8]="cos( b )-cos( c )*cos( a )-sin( c )*sin( a )*cos( beta )";V[8]=" a b c beta ";
T[9]="cos( c )-cos( a )*cos( b )-sin( a )*sin( b )*cos( gamma )";V[9]=" a b c gamma ";
T[10]="tan( alpha /2)-sqr(sin( s - b )*sin( s - c )/sin( s )/sin( s - a ))";V[10]=" a b c s alpha ";
T[11]="tan( beta /2)-sqr(sin( s - a )*sin( s - c )/sin( s )/sin( s - b ))";V[11]=" a b c s beta ";
T[12]="tan( gamma /2)-sqr(sin( s - a )*sin( s - b )/sin( s )/sin( s - c ))";V[12]=" a b c s gamma ";
T[13]="sin( a )*sin( beta )-sin( alpha )*sin( b )";V[13]=" a b alpha beta ";
T[14]="sin( a )*sin( gamma )-sin( alpha )*sin( c )";V[14]=" a c alpha gamma ";
T[15]="sin( c )*sin( beta )-sin( gamma )*sin( b )";V[15]=" b c beta gamma ";
T[16]="cos( alpha )+cos( beta )*cos( gamma )-sin( beta )*sin( gamma )*cos( a )";V[16]=" a alpha beta gamma ";
T[17]="cos( beta )+cos( gamma )*cos( alpha )-sin( gamma )*sin( alpha )*cos( b )";V[17]=" b alpha beta gamma ";
T[18]="cos( gamma )+cos( alpha )*cos( beta )-sin( alpha )*sin( beta )*cos( c )";V[18]=" c alpha beta gamma ";
T[19]=" a * r - ka ";V[19]=" a ka r ";
T[20]=" b * r - kb ";V[20]=" b kb r ";
T[21]=" c * r - kc ";V[21]=" c kc r ";
T[22]="sqr(tan( s /2)*tan(( s - a )/2)*tan(( s - b )/2)*tan(( s - c )/2))-tan( e /4)";V[22]=" s a b c e ";
T[23]="sqr(tan(( a + b + c )/4)*tan(-( a - b - c )/4)*tan(( a - b + c )/4)*tan(( a + b - c )/4))-tan( e /4)";V[23]=" a b c e ";
T[24]="cot( a /2)-sqr(-cos(( alpha + beta - gamma )/2)*cos(( alpha - beta + gamma )/2)/(cos(( alpha + beta + gamma )/2)*cos(( alpha - beta - gamma )/2)))";V[24]=" a alpha beta gamma ";
T[25]="cot( b /2)-sqr(-cos(( beta + gamma - alpha )/2)*cos(( beta - gamma + alpha )/2)/(cos(( beta + gamma + alpha )/2)*cos(( beta - alpha - alpha )/2)))";V[25]=" b alpha beta gamma ";
T[26]="cot( c /2)-sqr(-cos(( gamma + alpha - beta )/2)*cos(( gamma - alpha + beta )/2)/(cos(( gamma + alpha + beta )/2)*cos(( gamma - gamma - beta )/2)))";V[26]=" c alpha beta gamma ";

TT[0]="e=alpha + beta + gamma - pi";
TT[1]="alpha=beta + gamma - pi - e";
TT[2]="beta=alpha + gamma - pi - e";
TT[3]="gamma=alpha + beta - pi - e";
TT[4]="r=sqr(A/e)";
TT[5]="A=r*r*e";
TT[6]="e=A/(r*r)";
TT[7]="s=(a + b + c)/2";
TT[8]="a=2*s - b - c";
TT[9]="b=2*s - a - c";
TT[10]="c=2*s - a - b";
TT[11]="ss=(alpha + beta + gamma)/2";
TT[12]="a=2*acot(sqr(-cos(ss-beta)*cos(ss-gamma)/cos(ss)/cos(ss-alpha)))";
TT[13]="b=2*acot(sqr(-cos(ss-gamma)*cos(ss-alpha)/cos(ss)/cos(ss-beta)))";
TT[14]="c=2*acot(sqr(-cos(ss-alpha)*cos(ss-beta)/cos(ss)/cos(ss-gamma)))";
TT[15]="a=acos(cos(b)*cos(c)+sin(b)*sin(c)*cos(alpha))";
TT[16]="b=acos(cos(c)*cos(a)+sin(c)*sin(a)*cos(beta))";
TT[17]="c=acos(cos(a)*cos(b)+sin(a)*sin(b)*cos(gamma))";
TT[18]="alpha=acos((cos(a)-cos(b)*cos(c))/(sin(c)*sin(b)))"; TT[19]="beta=acos((cos(b)-cos(c)*cos(a))/(sin(c)*sin(a)))";
TT[20]="gamma=acos((cos(c)-cos(a)*cos(b))/(sin(a)*sin(b)))";
TT[21]="alpha=2*atan(sqr(sin(s-b)*sin(s-c)/sin(s)/sin(s-a)))";
TT[22]="beta=2*atan(sqr(sin(s-c)*sin(s-a)/sin(s)/sin(s-b)))";
TT[23]="gamma=2*atan(sqr(sin(s-a)*sin(s-b)/sin(s)/sin(s-c)))";
TT[24]="alpha=acos(sin(beta)*sin(gamma)*cos(a)-cos(beta)*cos(gamma))";
TT[25]="beta=acos(sin(gamma)*sin(alpha)*cos(b)-cos(gamma)*cos(alpha))";
TT[26]="gamma=acos(sin(alpha)*sin(beta)*cos(c)-cos(alpha)*cos(beta))";
TT[27]="a=acos((cos(alpha)+cos(beta)*cos(gamma))/(sin(beta)*sin(gamma)))";
TT[28]="b=acos((cos(beta)+cos(gamma)*cos(alpha))/(sin(gamma)*sin(alpha)))";
TT[29]="c=acos((cos(gamma)+cos(alpha)*cos(beta))/(sin(alpha)*sin(beta)))";
//T[13]="sin( a )*sin( beta )-sin( alpha )*sin( b )";V[13]=" a b alpha beta ";
//T[14]="sin( a )*sin( gamma )-sin( alpha )*sin( c )";V[14]=" a c alpha gamma ";
//T[15]="sin( c )*sin( beta )-sin( gamma )*sin( b )";V[15]=" b c beta gamma ";
TT[30]="ka=a*r";
TT[31]="a=ka/r";
TT[32]="r=ka/a";
TT[33]="kb=b*r";
TT[34]="b=kb/r";
TT[35]="r=kb/b";
TT[36]="kc=c*r";
TT[37]="c=kc/r";
TT[38]="r=kc/c";
TT[39]="e=4*atan(sqr(tan(s/2)*tan((s-a)/2)*tan((s-b)/2)*tan((s-c)/2)))";


var a,b,c,ka,kb,kc,alpha,beta,gamma,r,e,A,s,ss,t=new Array(),v=new Array();

function sphcalc()
{
	var i=0,j,o=(1==2),k=0,modus,TTT;
	if((!navigator.javaEnabled())||(document.p==null))
	{document.f.modus.selectedIndex=0;java=false;}
	modus=document.f.modus.selectedIndex;
	E="";
	//if(modus==0)TTT=TT.join(";");
	drund=Math.pow(10,rund);
	a=document.f.a_in.value.replace(/,/,".");if(a!="")i++;
	b=document.f.b_in.value.replace(/,/,".");if(b!="")i++;
	c=document.f.c_in.value.replace(/,/,".");if(c!="")i++;
	ka=document.f.aa_in.value.replace(/,/,".");if(ka!="")i++;
	kb=document.f.bb_in.value.replace(/,/,".");if(kb!="")i++;
	kc=document.f.cc_in.value.replace(/,/,".");if(kc!="")i++;
	alpha=document.f.alpha_in.value.replace(/,/,".");if(alpha!="")i++;
	beta=document.f.beta_in.value.replace(/,/,".");if(beta!="")i++;
	gamma=document.f.gamma_in.value.replace(/,/,".");if(gamma!="")i++;
	e=document.f.e_in.value.replace(/,/,".");if(e!="")i++;
	r=document.f.r_in.value.replace(/,/,".");if(r!="")i++;
	A=document.f.A_in.value.replace(/,/,".");if(A!="")i++;
	if(alpha!="")alpha=grad(alpha);
	if(beta!="")beta=grad(beta);
	if(gamma!="")gamma=grad(gamma);
	if(a!="")a=grad(a);
	if(b!="")b=grad(b);
	if(c!="")c=grad(c);
	if(e!="")e=grad(e);
	s="",ss="";
	var am=a,bm=b,cm=c,kam=ka,kbm=kb,kcm=kc,alpham=alpha,betam=beta,gammam=gamma,rm=r,em=e,Am=A;
	var tt=new Array();

	document.f.a_out.value="";document.f.b_out.value="";document.f.c_out.value="";
	document.f.aa_out.value="";document.f.bb_out.value="";document.f.cc_out.value="";
	document.f.alpha_out.value="";document.f.beta_out.value="";document.f.gamma_out.value="";
	document.f.r_out.value="";document.f.e_out.value="";document.f.A_out.value="";

	if(modus==0)
	{
		for(i=0;i<vv.length;i++)eval("if("+vv[i]+"=='')"+vv[i]+"=NaN;");
		for(i=0;i<TT.length;i++)tt[i]=TT[i];
	}
	
	if(modus==1)
	{
		for(i=0;i<V.length;i++)
		{
			t[i]=T[i].replace(/pi/g,pi);v[i]=V[i];
			for(j=0;j<vv.length;j++)
			{
				eval("if((v[i].indexOf(' '+vv[j]+' ')>-1)&&("+vv[j]+"!='')){t[i]=t[i].replace(/ "+vv[j]+" /g,"+vv[j]+");v[i]=v[i].replace(/ "+vv[j]+"/,'');}");
			}		
		}
	}
	//alert(t.join("\n")+"\n"+v.join("\n"));

	k=0;
	do
	{
		o=(1==0);
		if(modus==1)
		{
			k++;
			for(i=0;i<t.length;i++)
			{
				if(v[i].replace(/ /g,"")=="")continue;
				if(t[i].replace(/ /g,"")=="")continue;
				if(v[i].substr(1,v[i].length-2).indexOf(" ")==-1)
				{
					//E+=v[i]+"\n";
					E+="Berechne"+v[i]+"mit "+T[i].replace(/ /g,"")+" = 0\n";
					E+="  "+t[i].replace(/ /g,"").replace(/\./g,",")+" = 0\n";
					var tt=eval("t[i].replace(/"+v[i]+"/g,'x');"),min=1e+300;
					var xx=javasolve(tt,0,2*pi),x=xx[0];
					if(String(xx).indexOf("keine")>-1)continue;
					if(xx==""){E+="   L = { }\n";continue;}
					if((x=="")||(xx=="R")){E+="  Fehler"+xx+"\n";continue;}
					if(xx.length>1)
					{
						for(j=xx.length-1;j>=0;j--)
						{
							var X=Number(String(xx[j]).replace(/,/,"."));
							if((min>X)&&(X>0))
							{
								if((min>=pi)||(X>.01))
									{min=X;x=xx[j];}
							}
						}
						E+="   L = {"+xx.join("; ")+"}\n";
					}
					o=true;
					E+="  ——> "+v[i]+"= "+x+"\n\n";
					ber(v[i],x);
					//alert(t.join("\n")+"\n"+v.join("\n"));
					break;
				}
			}
			if(k>20)break;
		}
		else
		{
			for(i=0;i<tt.length;i++)
			{
				if(tt[i]=="%")continue;
				var gl=tt[i].split("=");
				if(!isNaN(eval(gl[0])))continue;
				var x=eval(gl[1]);
				if(!isNaN(x)&&(x!=null)&&(Number(x)>0))
				{
					eval(gl[0]+"="+x);					
					E+=gl[0]+" = "+gl[1]+"\n";
					E+="                     ".substr(0,gl[0].length)+" = "+String(x).replace(/\./,",")+"\n\n";
					for(j=0;j<tt.length;j++)if(tt[j].indexOf(gl[0]+"=")==0)tt[j]="%";
					//alert(gl[0]+"\n"+eval(gl[0])+"\n"+k+"\n"+tt.join("   "));
					o=true;
					k++;
					break;
				}
			}
			if(k>100)break;				
		}			
	}while(o);

	if((a!="")&&(!isNaN(a)))document.f.a_out.value=(" "+String(runde(a*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((b!="")&&(!isNaN(b)))document.f.b_out.value=(" "+String(runde(b*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((c!="")&&(!isNaN(c)))document.f.c_out.value=(" "+String(runde(c*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((ka!="")&&(!isNaN(ka)))document.f.aa_out.value=(" "+String(runde(ka,drund)).replace(/\./g,",")).replace(/ ,/g," 0,");
	if((kb!="")&&(!isNaN(kb)))document.f.bb_out.value=(" "+String(runde(kb,drund)).replace(/\./g,",")).replace(/ ,/g," 0,");
	if((kc!="")&&(!isNaN(kc)))document.f.cc_out.value=(" "+String(runde(kc,drund)).replace(/\./g,",")).replace(/ ,/g," 0,");
	if((alpha!="")&&(!isNaN(alpha)))document.f.alpha_out.value=(" "+String(runde(alpha*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((beta!="")&&(!isNaN(beta)))document.f.beta_out.value=(" "+String(runde(beta*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((gamma!="")&&(!isNaN(gamma)))document.f.gamma_out.value=(" "+String(runde(gamma*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((A!="")&&(!isNaN(A)))document.f.A_out.value=(" "+String(runde(A,drund)).replace(/\./g,",")).replace(/ ,/g," 0,");
	if((e!="")&&(!isNaN(e)))document.f.e_out.value=(" "+String(runde(e*180/pi,drund)).replace(/\./g,",")).replace(/ ,/g," 0,")+"°";
	if((r!="")&&(!isNaN(r)))document.f.r_out.value=(" "+String(runde(r,drund)).replace(/\./g,",")).replace(/ ,/g," 0,");

	var EE="";

	EE+=testeq(a,am,"a")+testeq(b,bm,"b")+testeq(c,cm,"c")+testeq(alpha,alpham,"alpha");
	EE+=testeq(beta,betam,"beta")+testeq(gamma,gammam,"gamma")+testeq(e,em,"e");
	EE+=testeq(ka,kam,"ka")+testeq(kb,kbm,"kb")+testeq(kc,kcm,"kc")+testeq(A,Am,"A")+testeq(r,rm,"r");
	if(isNaN(s))s="";if(isNaN(ss))ss="";
	
	if((a!="")&&(ka!="")&&(r!=""))if(runde(a*r-ka,drund*10)!=0)EE+="   inkonsistent: ka != a·r\n";
	if((b!="")&&(kb!="")&&(r!=""))if(runde(b*r-kb,drund*10)!=0)EE+="   inkonsistent: kb != b·r\n";
	if((c!="")&&(kc!="")&&(r!=""))if(runde(c*r-kc,drund*10)!=0)EE+="   inkonsistent: kc != c·r\n";

	if(s!="")if(2*s>=2*pi)         EE+="   a+b+c >= 360°\n";
	if(s!="")if(a+b<=c)          EE+="   a+b <= c\n";
	if(s!="")if(a+c<=b)          EE+="   a+c <= b\n";
	if(s!="")if(c+b<=c)          EE+="   b+c <= a\n";
	if(s!="")if(Math.abs(a-b)>=c)EE+="   |a-b| >= c\n";
	if(s!="")if(Math.abs(a-c)>=b)EE+="   |a-c| >= b\n";
	if(s!="")if(Math.abs(c-b)>=a)EE+="   |b-c| >= a\n";

	if(ss!="")if(2*ss<=pi)         EE+="   alpha+beta+gamma <= 180° \n";
	if(ss!="")if(2*ss>=3*pi)       EE+="   alpha+beta+gamma >= 540°\n";
	if(ss!="")if(2*ss-2*alpha>=pi) EE+="   alpha+180° <= beta+gamma \n";
	if(ss!="")if(2*ss-2*beta>=pi)  EE+="   beta+180° <= alpha+gamma \n";
	if(ss!="")if(2*ss-2*gamma>=pi) EE+="   gamma+180° <= alpha+beta \n";


	if(EE!="")EE="***** Achtung Fehler! ******\n\n"+EE+"\n****************************\n\nRechenweg:\n\n";

	document.f.erkl.value=EE+E.replace(/\*/g,"·").replace(/r·r/g,"r²").replace(/ ,/g," 0,").replace(/\(,/g,"(0,").replace(/{,/g,"{0,").replace(/\+,/g,"+0,").replace(/-,/g,"-0,");
	
}

function testeq(x,xm,t)
{
	if(isNaN(x)){eval(t+"=''");return "";}
	if((xm=="")||(x==""))return "";
	if(isNaN(xm))return "";
	if(runde(Math.abs(xm-x),drund*10)!=0)return " Bei "+t+" sind Eingabe und Ausgabe unterschiedlich!\n";
	return "";
}

function runde(x,d)
{
	return Math.round(x*d)/d;
}

function ber(V,x)
{
	if((x.indexOf("keine")>-1)||(x==""))return;
	//alert(V+"="+x+"\n");
	eval(V+"="+x.replace(/,/,"."));
	var i,R=new RegExp(V);
	for(i=0;i<v.length;i++)
	{
		//alert(v[i]+"\n"+V+"\n"+v[i].indexOf(V)+"\n"+t[i]);
		//eval("if((v[i].indexOf(V)>-1)){t[i]=t[i].replace(/"+V+"/g,"+V+");v[i]=v[i].replace(/"+V+"/,' ');}");
		if((v[i].indexOf(V)>-1)){while(t[i].search(R)>-1)t[i]=t[i].replace(R,x);v[i]=v[i].replace(R,' ');}
		//alert(t[i]);
	}
}

function sin(x){return Math.sin(x);}
function cos(x){return Math.cos(x);}
function tan(x){return Math.tan(x);}
function atan(x){return Math.atan(x);}
function acos(x){return Math.acos(x);}
function sqr(x){return Math.sqrt(x);}
function acot(x){return Math.PI/2-Math.atan(x);}

function javasolve(t,x0,x1)
{	//alert(t);
	//if(t.indexOf("x")==-1)return "";
	var pp=document.p.parse(t);
	//if(!pp)alert(t);
	var i,y;
	var tt=String(document.p.getNullstellen(x0,x1,30,0.001,1e-14,1000000000000000,";"));
	if(tt=="")tt=String(document.p.getNullstellen(1,10000,20,0.001,1e-14,10000000,";"));
	if(tt=="")tt=String(document.p.getNullstellen(1,1000000000,20,0.001,1e-14,10000000,";"));
	if((tt=="")||(tt.split(";").length>2))
	{
		for(i=0;i<20;i++){if(Math.abs(y=document.p.calcY(Math.random()*(x1-x0)+x0))>1.0e-10)break;if(isNaN(y))return "";}
		if(i==100){return "R";}
		document.p.parse("("+t+")/1000000");
		tt=String(document.p.getNullstellen(x0,x1,30,0.001,1e-16,1000000000000000,";"));
	}
	//alert(t+"\n"+tt);
	return tt.split(";");
}

function grad(x)
{
	var i,t=String(x).replace(/,/g,".").replace(/''/,'"').replace(/\"/,"s").replace(/'/,"m");
	var tt=t.replace(/m/,"m;").replace(/°/,"g;").replace(/\"/,"s;").split(";"),g=0,j=0,v=1;
	for(i=0;i<tt.length;i++)
	{
		var e=tt[i].substr(tt[i].length-1),z=Number(tt[i].substr(0,tt[i].length-1));
		if(e=="g"){g+=z;j=1;v=(g<0)?-1:1;}
		else if(e=="m"){g+=z*v/60;j=2;}
		else if(e=="s")g+=z*v/3600;
		else if(j==1)g+=Number(tt[i])*v/60;
		else if(j==2)g+=Number(tt[i])*v/3600;
		else g+=Number(tt[i]);
	}
	return g*pi/180;
}

function entfber()
{
	neu();
	var l1=grad(document.f.l1.value),l2=grad(document.f.l2.value),b1=grad(document.f.b1.value),b2=grad(document.f.b2.value);
	//alert(l1+"   "+l2);
	while(b1>pi/2){b1-=pi;l1=-l1;} while(b1<-pi/2){b1+=pi;l1=-l1;}
	while(b2>pi/2){b2-=pi;l2=-l2;} while(b2<-pi/2){b2+=pi;l2=-l1;}
	while(l1>pi)l1-=pi*2;while(l1<-pi)l1+=pi*2;
	while(l2>pi)l2-=pi*2;while(l2<-pi)l2+=pi*2;
	var r1="1",r2="2";
	if(Math.abs(l1-l2)>pi)
	{
		if(l1<l2)l1+=pi*2; else l2+=pi*2;
		var w=l1;l1=l2;l2=w;w=b1;b1=b2;b2=w;r1="2";r2="1";
	}
	if(l1>l2){		var w=l1;l1=l2;l2=w;w=b1;b1=b2;b2=w;r1="2";r2="1";}
	//alert(l1+"   "+l2);
	document.f.r_in.value=6371;
	drund=Math.pow(10,rund);
	document.f.a_in.value=(" "+String(runde(90-b2*180/pi,drund))).replace(/\./,",").replace(/ ,/," 0,");
	document.f.b_in.value=(" "+String(runde(90-b1*180/pi,drund))).replace(/\./,",").replace(/ ,/," 0,");
	document.f.gamma_in.value=(" "+String(Math.abs(runde((l2-l1)*180/pi,drund)))).replace(/\./,",").replace(/ ,/," 0,");
	sphcalc();
	var E="",EE="";
	E+="a = 90°-Breite"+r2+" = "+document.f.a_out.value+"\n\nb = 90°-Breite"+r1+" = "+document.f.b_out.value;
	E+="\n\ngamma = abs(Länge2 - Länge1)="+document.f.gamma_out.value+"\n";
	EE="gesuchte kürzeste Entfernung: kc="+document.f.cc_out.value+"km\n\n";
	EE+="Himmelsrichtung in Ort 1 nach Ort 2: ";
	if(r1=="1")EE+="alpha="+document.f.alpha_out.value+"\n";
		else EE+="360°-beta="+String(runde((2*pi-beta)*180/pi,drund)).replace(/\./,",")+"°\n";
	EE+="Himmelsrichtung in Ort 2 nach Ort 1: ";
	if(r1=="2")EE+="alpha="+document.f.alpha_out.value;
		else EE+="360°-beta="+String(runde((2*pi-beta)*180/pi,drund)).replace(/\./,",")+"°";
	document.f.erkl.value=E+"\n\n"+document.f.erkl.value+"\n"+EE;
	var s=document.f.orte1;
	if(s.selectedIndex>0)EE=EE.replace(/Ort 1/g,s[s.selectedIndex].text);
	s=document.f.orte2;
	if(s.selectedIndex>0)EE=EE.replace(/Ort 2/g,s[s.selectedIndex].text);
	EE=EE.replace(/ung /,"ung\n- ").replace(/Himmelsrichtung in/,"- in");
	EE=EE.replace(/ kürzeste/,"").replace(/ kc=/," ").replace(/alpha=/,"").replace(/360°-beta=/,"").replace(/gesuchte /,"");
	document.f.entf.value=EE;
	entfre(l1,b1,l2,b2);
}

var gcc=(1==0);

function gradconv()
{
	var m,s,g,h,k,z,v,t="",n=3;
	var qsid=(document.f.sonnentag[0].checked)?1:1.00273790389084;//  1/(1-1/365.2422  );
	g=document.f.convinp.value.replace(/ /g,'').replace(/,/g,'.');
	if(g=="")return;
	v=(g.charAt(0)=="-")?"-":" ";
	g=g.replace(/-/,"").replace(/h/i,":").replace(/m/,"'").replace(/in/,"").replace(/s/,"\"");
	n=(g.indexOf("°")>-1)?0:((g.indexOf(":")>-1)?1:((g.indexOf("g")>-1)?2:3));
	if((n==3)&&((g.indexOf("'")>0)||(g.indexOf("\"")>0))){n=0;g="0°"+g;}
	switch(n)
	{
	case 0:g=grad(g)*180/Math.PI;break;
	case 1:var a=g.split(":");
		g=grad("0°"+a[1])*180/Math.PI*15*qsid+Number(a[0])*15*qsid;break;
	case 2:g=Number(g.replace(/g/i,"").replace(/on/i,""))*0.9;break;
	default:g*=180/Math.PI;
	}
	k=g%1;z=g-k;m=Math.floor(k*60);s=runde(k*3600-m*60,drund);
	while(s>=60){s-=60;m+=1;}
	while(m>=60){m-=60;z+=1;}
	t=v+z+"°"+((m+s>0)?m+"'"+((s>0)?s+"\"":""):"");
	document.f.conv3.value=t.replace(/\./,",");
	document.f.conv2.value=(v+z+"°"+((k>0)?(runde(m+s/60,drund))+"'":"")).replace(/\./,",");
	document.f.conv1.value=v+String(runde(grad(g)*180/pi,drund*100000000000000)).replace(/\./,",")+"°";
	document.f.conv0.value=v+String(runde(g*Math.PI/180,10000000000)).replace(/\./,",");
	document.f.conv7.value=v+String(runde(g/0.9,drund*10000)).replace(/\./,",")+"gon";
	document.f.conv4.value=v+String(runde(h=(g/15)/qsid,drund*10000)).replace(/\./,",")+"h";
	k=h%1;z=h-k;m=Math.floor(k*60);s=runde(k*3600-m*60,drund);
	if(v=="-"){z=-z;while(z<0)z+=24;}
	while(s>=60){s-=60;m+=1;}
	while(m>=60){m-=60;z+=1;}
	t=z+((m+s>0)?":"+m+"'"+((s>0)?s+"\"":""):"");
	document.f.conv6.value=v+t.replace(/\./,",");
	document.f.conv5.value=v+(z+((k>0)?":"+(runde(m+s/60,drund))+"'":"")).replace(/\./,",");
}

function neu()
{
	with(document.f)
	{a_in.value="";b_in.value="";c_in.value="";aa_in.value="";bb_in.value="";cc_in.value="";
	alpha_in.value="";beta_in.value="";gamma_in.value="";e_in.value="";r_in.value="";
	A_in.value="";entfgeoid.value="";}
}

function alleFormeln()
{
	var j=(document.f.modus.selectedIndex==1),a=j?T:TT,t="",n=j?"=0":"";
	for(var i=0;i<a.length;i++)t+=a[i]+n+"\n";
	document.f.erkl.value=t.replace(/ /g,"").replace(/=/g," = ").replace(/\^2/g,"²").replace(/\*/g,"·");
}

var O=new Array(

"Amsterdam;4°53';52°22'",
"Ankara;32°51';39°55",
"Athen;23°43';37°58'",
"Bagdad;44°25';33°20'",
"Basel;7°35';47°33'",
"Berlin;13°22';52°31'",
"Bombay;72°50';18°53'",
"Buenos Aires;-58°28';-34°35'",
"Calgary;-114°03';51°02",
"Chicago;-87°38;41°54",
"Dakar;-17°26';14°40",
"Frankfurt;8°41';50°07'",
"Galápagos-Inseln;-91°;0°35",
"Gelnhausen;9°11';50°12'",
"Göttingen;9°55';51°32'",
"Havanna;-82°24';23°07",
"Hawaii;-155°31';19°31",
"Helsinki;24°57';60°13'",
"Hong Kong;114°;22°",
"Houston;-95°20';29°45'",
"Jerusalem;35°13';31°46'",
"Kabul;69°08';34°31'",
"Kairo;31°14';30°02'",
"Kalkutta;88°20;22°33",
"Kap Hoorn;-67°02';-55°56'",
"Kapstadt;18°26;-33°55",
"Lhasa;91°07';29°39'",
"London;-0°06';51°30'",
"Madrid;-3°42';40°25'",
"magn. Nordpol;-113,4°;82,3°",
"magn. NP. im Jahr...; ; ",
"Moskau;37°37';55°45'",
"Mount Everest;86°58';28°",
"München;11°33';48°08'",
"Nairobi;36°48';-1°16'",
"New York;-74°02';40°44'",
"Nowosibirsk;82°55';55°",
"Oslo;10°44';59°54'",
"Paris;2°20';48°51'",
"Peking;116°14';39°56'",
"Perth;115°54;-31°58",
"Pjöngjang;125°44;38°57'",
"Rom;12°29';41°53'",
"San Franzisco;-122°25';37°46",
"Sankt Petersburg;30°19';59°55'",
"Singapur;103°50;1°15",
"Sydney;151°01';-33°54'",
"Teheran;51°24';35°41'",
"Tokio;139°35';35°40",
"Toronto;-79°23';43°39'",
"Tuvalu;176°33;-7°7'"
);

var lastNPYear=(new Date).getYear();
if(lastNPYear<1000)lastNPYear+=1900;
function OrtEintragen(i,j)
{
	if(j<0)return;
	var k=O[j].split(";");
	if(k[0]=="magn. Nordpol")
	{
		var d=new Date();
		var x=(Date.UTC(d.getYear(),d.getMonth(),d.getDay())-Date.UTC(2000,0,1,0,0,0))/31557600000;
		if(d.getYear()<1000)x+=1900;
		var Lat=((-0.000083188529759*x-0.002766413443847)*x+0.368095387361215)*x+80.9097761274357;
		var Lon=(x>=2005)?-((0.016932073774179*x-4.40681961313538)*x+276.0107962213223):-((0.04285714284984*x+0.642857142876835)*x+110.11999999998544);
		if(Lon<-180)Lon+=360;
		eval('document.f.l'+i+'.value=String(runde(Lon,10)).replace(/\\./,",")+"°";document.f.b'+i+'.value=String(runde(Lat,10)).replace(/\\./,",")+"°";');
	}
	else if(k[0].indexOf("magn. NP.")>-1)
	{
		var J=prompt("Jahr eingeben",lastNPYear),x,Lat,Lon;
		if((J==null)||(J==""))return;
		J=Number(J.replace(/,/,"."));
		lastNPYear=J;
		if((J<1831)||(J>2050)){alert("ungültige Jahresangabe \n(gültiger Bereich: 1831-2050)");return;}
		if(J>=2001)
		{
			x=J-2000;
			Lat=((-0.000083188529759*x-0.002766413443847)*x+0.368095387361215)*x+80.9097761274357;
			Lon=(x>=2005)?-((0.016932073774179*x-4.40681961313538)*x+276.0107962213223):-((0.04285714284984*x+0.642857142876835)*x+110.11999999998544);
		}
		else
		{
			x=(J-1900);
			Lat=(J>=1973)?((0.000560769763503*x-0.138891738788777)*x+11.513138370041135)*x-242.45399609650886:((-0.000003103955951*x+0.00054635828173)*x+0.055526946194248)*x+70.29311959339393;
			x/=10;
			if((x>=-6.9)&&(x<0.4))
      			Lon=((0.009611706256*x+0.198962319505)*x+0.830951812889)*x+96.20183682119;
			if((x>=0.4)&&(x<4.8))
      			Lon=((-0.048350765367*x+0.268517285452)*x+0.80312982651)*x+96.205546419374;
			if((x>=4.8)&&(x<6.2))
      			Lon=((0.249238670424*x-4.016770589939)*x+21.372511628387)*x+63.294535536371;
			if((x>=6.2)&&(x<7.3))
      			Lon=((-0.215258353016*x+4.622874046047)*x-32.193285114725)*x+173.997182138802;
			if((x>=7.3)&&(x<8.4))
      			Lon=((-0.274682093287*x+5.924253957995)*x-41.693358471944)*x+197.114027308035;
			if((x>=8.4)&&(x<9.4))
      			Lon=((3.208332277557*x-81.84770818729)*x+695.591123548446)*x-1867.282522349058;
			if((x>=9.4)&&(x<10.1))
      			Lon=((-7.436178522158*x+218.327496364689)*x-2126.055799240154)*x+6973.877835721892;
			Lon=-Lon;
		}
		
		if(Lon<-180)Lon+=360;
		eval('document.f.l'+i+'.value=String(runde(Lon,10)).replace(/\\./,",")+"°";document.f.b'+i+'.value=String(runde(Lat,10)).replace(/\\./,",")+"°";');
		eval("document.f.orte"+i+"["+(j+1)+"].text='magn. NP. ('+"+runde(J,1)+"+')';");
		eval("document.f.orte"+i+".selectedIndex="+(j+1));
	}
	else
		eval("document.f.l"+i+".value=k[1];document.f.b"+i+".value=k[2];");
	dreieckanzeigen();
}

function dreieckanzeigen()
{
	with(document.f)
	{
	if((l1.value=="")||(l2.value=="")||(b1.value=="")||(b2.value==""))return;
	var L1=grad(l1.value),L2=grad(l2.value),
	    B1=grad(b1.value),B2=grad(b2.value);
	}
	if(java)document.globus.dreieckzeichnen=false;
	if(isNaN(L1)||isNaN(L2)||isNaN(B1)||isNaN(B2))return;
	if(L1>L2){var L=L1;L1=L2;L2=L;L=B1;B1=B2;B2=L;}
	while(L2-L1>2*Math.PI)L2-=2*Math.PI;
	if(L2-L1>Math.PI){var L=L1;L1=L2;L2=L;L=B1;B1=B2;B2=L;}
	if(java)document.globus.defPunkte(L1,B1,L2,B2,0.01,3.14159/2);
	var a=Math.PI/2-B2,b=Math.PI/2-B1,gamma=L2-L1;
	var c=Math.acos(Math.cos(a)*cos(b)+sin(a)*sin(b)*cos(gamma));
	var kc = c*6371;
	var alpha = Math.acos((Math.cos(a)-Math.cos(b)*Math.cos(c))/(Math.sin(c)*Math.sin(b)));
	var beta = Math.acos((Math.cos(b)-Math.cos(c)*Math.cos(a))/(Math.sin(c)*Math.sin(a)));
	document.f.entf.value=("Entfernung: "+runde(kc,10)+"km\n\nRichtungen: "+runde(180*alpha/Math.PI,10)+"° bzwü "+runde((Math.PI*2-beta)*180/Math.PI,10)+"°").replace(/\./g,",").replace(/ ,/g," 0,").replace(/ü/g,".");
	entfre(L1,B1,L2,B2);
}

function entfre(L1,B1,L2,B2)
{
	var a=6378.14,b=6356.755;
	var f=(a-b)/a,F=(B1+B2)/2,G=(B1-B2)/2,L=(L1-L2)/2;
	var S=Math.pow(Math.sin(G),2)*Math.pow(Math.cos(L),2)+Math.pow(Math.cos(F),2)*Math.pow(Math.sin(L),2);
	var C=Math.pow(Math.cos(G),2)*Math.pow(Math.cos(L),2)+Math.pow(Math.sin(F),2)*Math.pow(Math.sin(L),2);
	var O=Math.atan(Math.sqrt(S/C)),R=Math.sqrt(S*C)/O,D=2*O*a,H1=(3*R-1)/(C+C),H2=(3*R+1)/(2*S);
	s=D*(1+f*H1*Math.pow(Math.sin(F),2)*Math.pow(Math.cos(G),2)-f*H2*Math.pow(Math.cos(F),2)*Math.pow(Math.sin(G),2));
	document.f.entfgeoid.value=String(runde(s,1000)).replace(/\./,",")+"km";
}

function init()
{
	with(document.f)
	{
		for(var i=0;i<O.length;i++)
		{
			var a=O[i].split(";");var o=new Option(a[0]);	
			orte1.options[i+1]=o;
			o=new Option(a[0]);orte2.options[i+1]=o;
		}
	}
	if(!navigator.javaEnabled())
	{document.f.modus.options[1].text="Java - z.Z. nicht verfügbar";document.f.modus.selectedIndex=0;}
}

