DToR=Math.PI/180.0; //Umrechnungsfaktor Grad -> Bogenmass
RToD=180.0/Math.PI; //Umrechnungsfaktor Bogenmass -> Grad


/****************************************************************************/
/* PeriApo                                                                  */
/* Berechnung des Apo- bzw. Perigaeum des Mondes                            */
/* Aufruf: JD=periapo(Jahr,k0);                                             */
/*        mit: Jahr = Datum als Jahr mit Dezimalen                          */
/*             k0   = 0.5 fuer Apogaeum, 0 fuer Perigaeum                   */
/*             JD   = Jul. Tag des Apo- bzw. Perigaeums                     */
/****************************************************************************/

function periapo(Jahr,k0)  //Datum als Jahr mit Dezimalen
{
  var JDE,i,k,T,D,M,F, Perigaeum, Apogaeum, Sum, p, r, d;

  Apogaeum  =0.5;
  Perigaeum =  0;

  k = (Jahr - 1999.97) * 13.2555;
  k= Math.floor(k) + k0;
  T = k / 1325.55;
  
  //document.write("k = "+k+"<BR>T = "+T+"<BR>");

  // Daten fuer die Berechnung des mittleres Peri- bzw. Apogaeums
  mpa    = new Array(5);
  mpa[0] = 2451534.6698;
  mpa[1] =      27.55454988;
  mpa[2] =      -0.0006886;
  mpa[3] =      -0.000001098;
  mpa[4] =       0.0000000052;

  //Zeit des Mittleren Peri- bzw. Apogaeums Elongation des Mondes
  JDE = mpa[0] + mpa[1]*k + mpa[2]*T*T + mpa[3]*T*T*T + mpa[4]*T*T;


  // Daten fuer die Berechnung des mittleren Elongation des Mondes
  mel    = new Array(5);
  mel[0] = 171.9179;
  mel[1] = 335.9106046;
  mel[2] =  -0.0100250;     
  mel[3] =  -0.00001156; 
  mel[4] =   0.000000055;   

  //Mittlere Elongation des Mondes zur Zeit JDE
  D = mel[0] + mel[1]*k + mel[2]*T*T + mel[3]*T*T*T + mel[4]*T*T*T*T;


  // Daten fuer die Berechnung des mittleren Anomalie der Sonne
  mas    = new Array(4);
  mas[0] = 347.3477;
  mas[1] =  27.1577721;
  mas[2] =  -0.0008323;
  mas[3] =  -0.0000010;
  
  //Mittlere Anomalie der Sonne
  M = mas[0] + mas[1]*k + mas[2]*T*T + mas[3]*T*T*T;


  // Daten fuer die Berechnung des Arguments der Breite des Mondes
  abm    = new Array(4);
  abm[0] = 316.6109;
  abm[1] = 364.5287911;
  abm[2] =  -0.0125131;
  abm[3] =  -0.0000148;

  //Arguments der Breite des Mondes
  F = abm[0] + abm[1]*k + abm[2]*T*T + abm[3]*T*T*T;

  //document.write("D = "+D+"<BR>");
  //document.write("M = "+M+"<BR>");
  //document.write("F = "+F+"<BR>");

  D=modpi2(D*DToR);  //D im Bogenmass
  M=modpi2(M*DToR);  //M im Bogenmass
  F=modpi2(F*DToR);  //F im Bogenmass

  Sum=0;

  if (k0 == Perigaeum)
  {
    //document.write("Perigaeum<BR>");
    SinZTermPeri = new Array(60); //Perigaeum: Argument des Sinus 
    KoefZTermPeri= new Array(60); //Perigaeum: Koeffizient


    SinZTermPeri[ 0] = Math.sin(2*D        );   
    SinZTermPeri[ 1] = Math.sin(4*D        ); 
    SinZTermPeri[ 2] = Math.sin(6*D        ); 
    SinZTermPeri[ 3] = Math.sin(8*D        ); 
    SinZTermPeri[ 4] = Math.sin(2*D-M      ); 
    SinZTermPeri[ 5] = Math.sin(M          ); 
    SinZTermPeri[ 6] = Math.sin(10*D       ); 
    SinZTermPeri[ 7] = Math.sin(4*D-M      ); 
    SinZTermPeri[ 8] = Math.sin(6*D-M      ); 
    SinZTermPeri[ 9] = Math.sin(12*D       ); 
    SinZTermPeri[10] = Math.sin(D          ); 
    SinZTermPeri[11] = Math.sin(8*D-M      ); 
    SinZTermPeri[12] = Math.sin(14*D       ); 
    SinZTermPeri[13] = Math.sin(2*F        ); 
    SinZTermPeri[14] = Math.sin(3*D        ); 
    SinZTermPeri[15] = Math.sin(10*D-M     ); 
    SinZTermPeri[16] = Math.sin(16*D       ); 
    SinZTermPeri[17] = Math.sin(12*D-M     ); 
    SinZTermPeri[18] = Math.sin(5*D        ); 
    SinZTermPeri[19] = Math.sin(2*D+2*F    ); 
    SinZTermPeri[20] = Math.sin(18*D       ); 
    SinZTermPeri[21] = Math.sin(14*D-M     ); 
    SinZTermPeri[22] = Math.sin(7*D        ); 
    SinZTermPeri[23] = Math.sin(2*D+M      ); 
    SinZTermPeri[24] = Math.sin(20*D       ); 
    SinZTermPeri[25] = Math.sin(D+M        ); 
    SinZTermPeri[26] = Math.sin(16*D-M     ); 
    SinZTermPeri[27] = Math.sin(4*D+M      ); 
    SinZTermPeri[28] = Math.sin(9*D        ); 
    SinZTermPeri[29] = Math.sin(4*D+2*F    ); 
    SinZTermPeri[30] = Math.sin(2*D-2*M    ); 
    SinZTermPeri[31] = Math.sin(4*D-2*M    ); 
    SinZTermPeri[32] = Math.sin(6*D-2*M    ); 
    SinZTermPeri[33] = Math.sin(22*D       ); 
    SinZTermPeri[34] = Math.sin(18*D-M     ); 
    SinZTermPeri[35] = Math.sin(6*D+M      ); 
    SinZTermPeri[36] = Math.sin(11*D       ); 
    SinZTermPeri[37] = Math.sin(8*D+M      ); 
    SinZTermPeri[38] = Math.sin(4*D-2*F    ); 
    SinZTermPeri[39] = Math.sin(6*D+2*F    ); 
    SinZTermPeri[40] = Math.sin(3*D+M      ); 
    SinZTermPeri[41] = Math.sin(5*D+M      ); 
    SinZTermPeri[42] = Math.sin(13*D       ); 
    SinZTermPeri[43] = Math.sin(20*D-M     ); 
    SinZTermPeri[44] = Math.sin(3*D+2*M    ); 
    SinZTermPeri[45] = Math.sin(4*D+2*F-2*M); 
    SinZTermPeri[46] = Math.sin(D+2*M      ); 
    SinZTermPeri[47] = Math.sin(22*D-M     ); 
    SinZTermPeri[48] = Math.sin(4*F        ); 
    SinZTermPeri[49] = Math.sin(6*D-2*F    ); 
    SinZTermPeri[50] = Math.sin(2*D-2*F+M  ); 
    SinZTermPeri[51] = Math.sin(2*M        ); 
    SinZTermPeri[52] = Math.sin(2*F-M      ); 
    SinZTermPeri[53] = Math.sin(2*D+4*F    ); 
    SinZTermPeri[54] = Math.sin(2*F-2*M    ); 
    SinZTermPeri[55] = Math.sin(2*D-2*F+2*M); 
    SinZTermPeri[56] = Math.sin(24*D       ); 
    SinZTermPeri[57] = Math.sin(4*D-4*F    ); 
    SinZTermPeri[58] = Math.sin(2*D+2*M    ); 
    SinZTermPeri[59] = Math.sin(D-M        ); 


    KoefZTermPeri[ 0] =  -1.6769          ;
    KoefZTermPeri[ 1] =  +0.4589          ;
    KoefZTermPeri[ 2] =  -0.1856          ;
    KoefZTermPeri[ 3] =  +0.0883          ;
    KoefZTermPeri[ 4] =  -0.0773+0.00019*T;
    KoefZTermPeri[ 5] =  +0.0502-0.00013*T;
    KoefZTermPeri[ 6] =  -0.0460          ;
    KoefZTermPeri[ 7] =  +0.0422-0.00011*T;
    KoefZTermPeri[ 8] =  -0.0256          ;
    KoefZTermPeri[ 9] =  +0.0253          ;
    KoefZTermPeri[10] =  +0.0237          ;
    KoefZTermPeri[11] =  +0.0162          ;
    KoefZTermPeri[12] =  -0.0145          ;
    KoefZTermPeri[13] =  +0.0129          ;
    KoefZTermPeri[14] =  -0.0112          ;
    KoefZTermPeri[15] =  -0.0104          ;
    KoefZTermPeri[16] =  +0.0086          ;
    KoefZTermPeri[17] =  +0.0069          ;
    KoefZTermPeri[18] =  +0.0066          ;
    KoefZTermPeri[19] =  -0.0053          ;
    KoefZTermPeri[20] =  -0.0052          ;
    KoefZTermPeri[21] =  -0.0046          ;
    KoefZTermPeri[22] =  -0.0041          ;
    KoefZTermPeri[23] =  +0.0040          ;
    KoefZTermPeri[24] =  +0.0032          ;
    KoefZTermPeri[25] =  -0.0032          ;
    KoefZTermPeri[26] =  +0.0031          ;
    KoefZTermPeri[27] =  -0.0029          ;
    KoefZTermPeri[28] =  +0.0027          ;
    KoefZTermPeri[29] =  +0.0027          ;
    KoefZTermPeri[30] =  -0.0027          ;
    KoefZTermPeri[31] =  +0.0024          ;
    KoefZTermPeri[32] =  -0.0021          ;
    KoefZTermPeri[33] =  -0.0021          ;
    KoefZTermPeri[34] =  -0.0021          ;
    KoefZTermPeri[35] =  +0.0019          ;
    KoefZTermPeri[36] =  -0.0018          ;
    KoefZTermPeri[37] =  -0.0014          ;
    KoefZTermPeri[38] =  -0.0014          ;
    KoefZTermPeri[39] =  -0.0014          ;
    KoefZTermPeri[40] =  +0.0014          ;
    KoefZTermPeri[41] =  -0.0014          ;
    KoefZTermPeri[42] =  +0.0013          ;
    KoefZTermPeri[43] =  +0.0013          ;
    KoefZTermPeri[44] =  +0.0011          ;
    KoefZTermPeri[45] =  -0.0011          ;
    KoefZTermPeri[46] =  -0.0010          ;
    KoefZTermPeri[47] =  -0.0009          ;
    KoefZTermPeri[48] =  -0.0008          ;
    KoefZTermPeri[49] =  +0.0008          ;
    KoefZTermPeri[50] =  +0.0008          ;
    KoefZTermPeri[51] =  +0.0007          ;
    KoefZTermPeri[52] =  +0.0007          ;
    KoefZTermPeri[53] =  +0.0007          ;
    KoefZTermPeri[54] =  -0.0006          ;
    KoefZTermPeri[55] =  -0.0006          ;
    KoefZTermPeri[56] =  +0.0006          ;
    KoefZTermPeri[57] =  +0.0005          ;
    KoefZTermPeri[58] =  +0.0005          ;
    KoefZTermPeri[59] =  -0.0004          ;

    for(i=0; i < KoefZTermPeri.length; i++)
      Sum+= (KoefZTermPeri[i] * SinZTermPeri[i]);

  }


  if (k0 == Apogaeum)
  {
    //document.write("Apogaeum<BR>");
    SinZTermApo = new Array(32);  //Apogaeum: Argument des Sinus
    KoefZTermApo= new Array(32);  //Apogaeum: Koeffizient      

    SinZTermApo[ 0] = Math.sin(2*D      );  
    SinZTermApo[ 1] = Math.sin(4*D      );  
    SinZTermApo[ 2] = Math.sin(M        );  
    SinZTermApo[ 3] = Math.sin(2*D-M    );  
    SinZTermApo[ 4] = Math.sin(2*F      );  
    SinZTermApo[ 5] = Math.sin(D        );  
    SinZTermApo[ 6] = Math.sin(6*D      );  
    SinZTermApo[ 7] = Math.sin(4*D-M    );  
    SinZTermApo[ 8] = Math.sin(2*D+2*F  );  
    SinZTermApo[ 9] = Math.sin(D+M      );  
    SinZTermApo[10] = Math.sin(8*D      );  
    SinZTermApo[11] = Math.sin(6*D-M    );  
    SinZTermApo[12] = Math.sin(2*D-2*F  );  
    SinZTermApo[13] = Math.sin(2*D-2*M  );  
    SinZTermApo[14] = Math.sin(3*D      );  
    SinZTermApo[15] = Math.sin(4*D+2*F  );  
    SinZTermApo[16] = Math.sin(8*D-M    );  
    SinZTermApo[17] = Math.sin(4*D-2*M  );  
    SinZTermApo[18] = Math.sin(10*D     );  
    SinZTermApo[19] = Math.sin(3*D+M    );
    SinZTermApo[20] = Math.sin(2*M      );  
    SinZTermApo[21] = Math.sin(2*D+M    );  
    SinZTermApo[22] = Math.sin(2*D+2*M  );  
    SinZTermApo[23] = Math.sin(6*D+2*F  );  
    SinZTermApo[24] = Math.sin(6*D-2*M  );  
    SinZTermApo[25] = Math.sin(10*D-M   );  
    SinZTermApo[26] = Math.sin(5*D      );  
    SinZTermApo[27] = Math.sin(4*D-2*F  );  
    SinZTermApo[28] = Math.sin(2*F+M    );  
    SinZTermApo[29] = Math.sin(12*D     );  
    SinZTermApo[30] = Math.sin(2*D+2*F-M);  
    SinZTermApo[31] = Math.sin(D-M      );  

    KoefZTermApo[ 0] = +0.4392          ;  
    KoefZTermApo[ 1] = +0.0684          ;  
    KoefZTermApo[ 2] = +0.0456-0.00011*T;  
    KoefZTermApo[ 3] = +0.0426-0.00011*T;  
    KoefZTermApo[ 4] = +0.0212          ;  
    KoefZTermApo[ 5] = -0.0189          ;  
    KoefZTermApo[ 6] = +0.0144          ;  
    KoefZTermApo[ 7] = +0.0113          ;  
    KoefZTermApo[ 8] = +0.0047          ;  
    KoefZTermApo[ 9] = +0.0036          ;  
    KoefZTermApo[10] = +0.0035          ;  
    KoefZTermApo[11] = +0.0034          ;  
    KoefZTermApo[12] = -0.0034          ;  
    KoefZTermApo[13] = +0.0022          ;  
    KoefZTermApo[14] = -0.0017          ;  
    KoefZTermApo[15] = +0.0013          ;  
    KoefZTermApo[16] = +0.0011          ;  
    KoefZTermApo[17] = +0.0010          ;  
    KoefZTermApo[18] = +0.0009          ;  
    KoefZTermApo[19] = +0.0007          ;  
    KoefZTermApo[20] = +0.0006          ;  
    KoefZTermApo[21] = +0.0005          ;  
    KoefZTermApo[22] = +0.0005          ;  
    KoefZTermApo[23] = +0.0004          ;  
    KoefZTermApo[24] = +0.0004          ;  
    KoefZTermApo[25] = +0.0004          ;  
    KoefZTermApo[26] = -0.0004          ;  
    KoefZTermApo[27] = -0.0004          ;  
    KoefZTermApo[28] = +0.0003          ;  
    KoefZTermApo[29] = +0.0003          ;  
    KoefZTermApo[30] = +0.0003          ;  
    KoefZTermApo[31] = -0.0003          ;  

    for(i=0; i < KoefZTermApo.length; i++)
      Sum+= (KoefZTermApo[i] * SinZTermApo[i]);

  }                               
  
  JDE += Sum;
 
  //document.write("JDE ohne periodische Terme: "+JDE+"<BR>")  
  //document.write("Summe der periodische Terme: "+Sum+"<BR>");

  p=moonparallax(T,D,M,F,k0); //Mondparallaxe
  r=6378.14/Math.sin(p);      //Entferung des Mondes in km von der Erde

  d =Math.atan(3475.6/r);     //scheinbarer Monddurchmesser
  d *= RToD * 60;             //scheinbarer Monddurchmesser in '
  d = Math.round(10*d)/10;    //auf 0.1' runden

  //document.write("Parallaxe: "+(p*RToD)+"''<BR>r = "+r+"km<BR>");

  moondata = new Array(4);

  moondata[0]= JDE;                     //JD des Peri- bzw. Apogaeums
  moondata[1]= Math.round(p*RToD*3600); //Mondparallaxe in ''
  moondata[2]= Math.round(r);           //Entferung des Mondes in km
  moondata[3]= d;                       //scheinbarer Monddurchmesser
  return moondata;
}


/****************************************************************************/
/* moonparallax                                                             */
/* Berechnung des Mondparallaxe                                             */
/* Aufruf: parallaxe=moonparallax(T,D,M,F,k0);                              */
/*        mit: T = Datum in Julianischen Jahrhunderten                      */
/*             D = Mittlere Elongation des Mondes                           */
/*             M = Mittlere Anomalie der Sonne                              */
/*             F = Argument der Breite des Mondes                           */
/*             k0= 0.5 fuer Apogaeum, 0 fuer Perigaeum                      */
/****************************************************************************/

function moonparallax(T,D,M,F,k0)
{
  var parallax,i;

  parallax=0;

  //document.write(""+T+", "+D+", "+M+", "+F+", "+k0+"<BR>");

  if (k0==0) //Perigaeum
  {
    KoefPTermPeri = new Array(50);
    CosPTermPeri  = new Array(50);
    
    //Perigaeum: Koeffizient         
    KoefPTermPeri[ 0] = 3629.215   ;   
    KoefPTermPeri[ 1] =   63.224   ;   
    KoefPTermPeri[ 2] =   -6.990   ;   
    KoefPTermPeri[ 3] =   +2.834   ;   
    KoefPTermPeri[ 4] =   -0.0071*T;   
    KoefPTermPeri[ 5] =   +1.927   ;   
    KoefPTermPeri[ 6] =   -1.263   ;   
    KoefPTermPeri[ 7] =   -0.702   ;   
    KoefPTermPeri[ 8] =   +0.696   ;   
    KoefPTermPeri[ 9] =   -0.0017*T;   
    KoefPTermPeri[10] =   -0.690   ;   
    KoefPTermPeri[11] =   -0.629   ;   
    KoefPTermPeri[12] =   +0.0016  ;   
    KoefPTermPeri[13] =   -0.392   ;   
    KoefPTermPeri[14] =   +0.297   ;   
    KoefPTermPeri[15] =   +0.260   ;   
    KoefPTermPeri[16] =   +0.201   ;   
    KoefPTermPeri[17] =   -0.161   ;   
    KoefPTermPeri[18] =   +0.157   ;   
    KoefPTermPeri[19] =   -0.138   ;   
    KoefPTermPeri[20] =   -0.127   ;   
    KoefPTermPeri[21] =   +0.104   ;   
    KoefPTermPeri[22] =   +0.104   ;   
    KoefPTermPeri[23] =   -0.079   ;   
    KoefPTermPeri[24] =   +0.068   ;   
    KoefPTermPeri[25] =    0.067   ;   
    KoefPTermPeri[26] =   +0.054   ;   
    KoefPTermPeri[27] =   -0.038   ;   
    KoefPTermPeri[28] =   -0.038   ;   
    KoefPTermPeri[29] =   +0.037   ;   
    KoefPTermPeri[30] =   -0.037   ;   
    KoefPTermPeri[31] =   -0.035   ;   
    KoefPTermPeri[32] =   -0.030   ;   
    KoefPTermPeri[33] =   +0.029   ;   
    KoefPTermPeri[34] =   -0.025   ;   
    KoefPTermPeri[35] =   +0.023   ;   
    KoefPTermPeri[36] =   +0.023   ;   
    KoefPTermPeri[37] =   -0.023   ;   
    KoefPTermPeri[38] =   +0.022   ;   
    KoefPTermPeri[39] =   -0.021   ;   
    KoefPTermPeri[40] =   -0.020   ;   
    KoefPTermPeri[41] =   +0.019   ;   
    KoefPTermPeri[42] =   +0.017   ;   
    KoefPTermPeri[43] =   +0.014   ;   
    KoefPTermPeri[44] =   -0.014   ;   
    KoefPTermPeri[45] =   +0.013   ;   
    KoefPTermPeri[46] =   +0.012   ;   
    KoefPTermPeri[47] =   +0.011   ;   
    KoefPTermPeri[48] =   +0.010   ;   
    KoefPTermPeri[49] =   -0.010   ;   

     
    //Perigaeum: Argument des Kosinus 

    CosPTermPeri[ 0] = 1.0;
    CosPTermPeri[ 1] = Math.cos( 2*D      );
    CosPTermPeri[ 2] = Math.cos( 4*D      );
    CosPTermPeri[ 3] = Math.cos( 2*D-M    );
    CosPTermPeri[ 4] = Math.cos( 2*D-M    );
    CosPTermPeri[ 5] = Math.cos( 6*D      );
    CosPTermPeri[ 6] = Math.cos(   D      );
    CosPTermPeri[ 7] = Math.cos( 8*D      );
    CosPTermPeri[ 8] = Math.cos(   M      );
    CosPTermPeri[ 9] = Math.cos(   M      );
    CosPTermPeri[10] = Math.cos( 2*F      );
    CosPTermPeri[11] = Math.cos( 4*D-M    );
    CosPTermPeri[12] = Math.cos( 4*D-M    );
    CosPTermPeri[13] = Math.cos( 2*D-2*F  );
    CosPTermPeri[14] = Math.cos(10*D      );
    CosPTermPeri[15] = Math.cos( 6*D-M    );
    CosPTermPeri[16] = Math.cos( 3*D      );
    CosPTermPeri[17] = Math.cos( 2*D+M    );
    CosPTermPeri[18] = Math.cos( D*+M     );
    CosPTermPeri[19] = Math.cos(12*D      );
    CosPTermPeri[20] = Math.cos( 8*D-M    );
    CosPTermPeri[21] = Math.cos( 2*D-2*F  );
    CosPTermPeri[22] = Math.cos( 2*D+2*M  );
    CosPTermPeri[23] = Math.cos( 5*D      );
    CosPTermPeri[24] = Math.cos(14*D      );                    
    CosPTermPeri[25] = Math.cos(10*D-M    ); 
    CosPTermPeri[26] = Math.cos( 4*D+M    ); 
    CosPTermPeri[27] = Math.cos(12*D-M    ); 
    CosPTermPeri[28] = Math.cos( 4*D-2*M  ); 
    CosPTermPeri[29] = Math.cos( 7*D      ); 
    CosPTermPeri[30] = Math.cos( 4*D+2*F  ); 
    CosPTermPeri[31] = Math.cos(16*D      ); 
    CosPTermPeri[32] = Math.cos( 3*D+M    ); 
    CosPTermPeri[33] = Math.cos(   D-M    ); 
    CosPTermPeri[34] = Math.cos( 6*D+M    ); 
    CosPTermPeri[35] = Math.cos( 2*M      ); 
    CosPTermPeri[36] = Math.cos(14*D-M    ); 
    CosPTermPeri[37] = Math.cos( 2*D+2*M  ); 
    CosPTermPeri[38] = Math.cos( 6*D-2*M  ); 
    CosPTermPeri[39] = Math.cos( 2*D-2*F-M); 
    CosPTermPeri[40] = Math.cos( 9*D      ); 
    CosPTermPeri[41] = Math.cos(18*D      ); 
    CosPTermPeri[42] = Math.cos( 6*D+2*F  ); 
    CosPTermPeri[43] = Math.cos( 2*F-M    ); 
    CosPTermPeri[44] = Math.cos(16*D-M    ); 
    CosPTermPeri[45] = Math.cos( 4*D-2*F  ); 
    CosPTermPeri[46] = Math.cos( 8*D+M    ); 
    CosPTermPeri[47] = Math.cos(11*D      ); 
    CosPTermPeri[48] = Math.cos( 5*D+M    ); 
    CosPTermPeri[49] = Math.cos(20*D      ); 

    for(i=0; i<KoefPTermPeri.length; i++)
      parallax+=(KoefPTermPeri[i]*CosPTermPeri[i]);

    parallax = (parallax / 3600) * DToR; //Parallaxe im Bogenmass

    //document.write("p="+parallax+"<BR>");  
    return parallax;
  }
  

  if(k0==0.5)  //Apogaeum
  {     
    KoefPTermApo = new Array(19);
    CosPTermApo  = new Array(19);

    //APOGAEUM: Koeffizient
    KoefPTermApo[ 0] = 3245.251   ;   
    KoefPTermApo[ 1] =   -9.147   ;   
    KoefPTermApo[ 2] =   -0.841   ;   
    KoefPTermApo[ 3] =   +0.697   ;   
    KoefPTermApo[ 4] =   -0.656   ;   
    KoefPTermApo[ 5] =   +0.0016*T;   
    KoefPTermApo[ 6] =   +0.355   ;   
    KoefPTermApo[ 7] =   +0.159   ;   
    KoefPTermApo[ 8] =   +0.127   ;   
    KoefPTermApo[ 9] =   +0.065   ;   
    KoefPTermApo[10] =   +0.052   ;   
    KoefPTermApo[11] =   +0.043   ;   
    KoefPTermApo[12] =   +0.031   ;   
    KoefPTermApo[13] =   -0.023   ;   
    KoefPTermApo[14] =   +0.022   ;   
    KoefPTermApo[15] =   +0.019   ;   
    KoefPTermApo[16] =   -0.016   ;   
    KoefPTermApo[17] =   +0.014   ;   
    KoefPTermApo[18] =   +0.010   ;   
                                                            
    //APOGAEUM: Argument des Cosinus
    CosPTermApo[ 0] = 1.0;
    CosPTermApo[ 1] = Math.cos(2*D    );
    CosPTermApo[ 2] = Math.cos(  D    );
    CosPTermApo[ 3] = Math.cos(2*F    );
    CosPTermApo[ 4] = Math.cos(  M    );
    CosPTermApo[ 5] = Math.cos(  M    );
    CosPTermApo[ 6] = Math.cos(4*D    );
    CosPTermApo[ 7] = Math.cos(2*D-M  );
    CosPTermApo[ 8] = Math.cos(  D+M  );
    CosPTermApo[ 9] = Math.cos(4*D-M  );
    CosPTermApo[10] = Math.cos(6*D    );
    CosPTermApo[11] = Math.cos(2*D+M  );
    CosPTermApo[12] = Math.cos(2*D+2*F);
    CosPTermApo[13] = Math.cos(2*D-2*F);
    CosPTermApo[14] = Math.cos(2*D-2*M);
    CosPTermApo[15] = Math.cos(2*D+2*M);
    CosPTermApo[16] = Math.cos(2*M    );
    CosPTermApo[17] = Math.cos(6*D-M  );
    CosPTermApo[18] = Math.cos(8*D    );
  
    for(i=0; i<CosPTermApo.length; i++)
      parallax+=(KoefPTermApo[i]*CosPTermApo[i]);
  }
  parallax = (parallax / 3600) * DToR; //Parallaxe im Bogenmass

  //document.write("p="+parallax+"<BR>");
  return parallax;
}


/*****************************************************************************/
/* Name:    modpi2                                                           */
/* Type:    function                                                         */
/* Purpose: reduce an angle to the interval (0, 2pi).                        */
/*****************************************************************************/

function modpi2(x)
{
  var pi2 = 2.0 * Math.PI;
  return (x - Math.floor (x / pi2) * pi2);
}

