var Tage_pro_Monat = new Array (31,28,31,30,31,30,31,31,30,31,30,31);
var globalday, globalmonth, globalyear;

function datum(){
	var dat 	= new Date();
	var date 	= dat.getDate() + "." + current_month(dat.getMonth()+1) + "." + current_year(dat.getYear())
	var day 	= dat.getDate();
	var month 	= dat.getMonth()+1;
	var year	= current_year(dat.getYear());	
	var ssday, ssmonth, ssyear;
	globalday   = dat.getDate();
	globalmonth = dat.getMonth()+1;
	globalyear  = current_year(dat.getYear());
//  nächsten Samstag anzeigen
	for (i=0;i<7;i++) {
		changeDD(i,Tag_des_Jahres(day,month,year),year);
		if (Wochentag(globalday,globalmonth,globalyear)==5) {
			ssday 	= globalday;
			ssmonth = globalmonth;
			ssyear  = globalyear;						
		}
	}
	document.writeln("<option value=" + current_month(globalday) + "." + current_month(globalmonth) + "." + globalyear + ">" + current_month(ssday) + "." + current_month(ssmonth) + "." + ssyear + "</option>");
	for (i=1;i<54;i++) {
		changeDD(i*7,Tag_des_Jahres(ssday,ssmonth,ssyear),year);
		document.writeln("<option value=" + current_month(globalday) + "." + current_month(globalmonth) + "." + globalyear + ">" + current_month(globalday) + "." + current_month(globalmonth) + "." + globalyear + "</option>");
	}
} 

function Wochentag(tag,monat,jahr) {
   var Wochentag1Jan = CurrentDoomDay(jahr);
   var Tage          = Tag_des_Jahres(tag,monat,jahr)-1;

   /* Die fehlenden 10 Tage in 1582 werden zur Wochentagberechnung gebraucht */
   if ((jahr==1582) && (monat >= 10) && (tag>=15))
      Tage = Tage + 10;
   return (Wochentag1Jan+(Tage%7))%7;
}

function CurrentDoomDay(jahr) {
   var CenturyDoomDay = new Array (5,4,2,0);
   var CC             = Math.floor(jahr/100);
   var YY             = jahr%100;
   var CCDoomDay      = CenturyDoomDay[CC%4];
   var YYDoomDay      = 0;

   if (YY == 0)
         YYDoomDay = CCDoomDay;
   else if (YY%12 == 0)
        YYDoomDay = (CCDoomDay + YY/12 - 1) % 7;
   else YYDoomDay = ( CCDoomDay
                     +(Math.floor(YY/12)
                     + (YY%12)
                     + Math.floor(((YY-1)%12)/4))
                    ) % 7;
   if  ((YY != 0)&&(CC%4 == 0))
         YYDoomDay = (YYDoomDay + 1)%7;

   return YYDoomDay;
}

function current_month(month) {
	if (month < 10)
		month = "0" + month
	return month;
}

function current_year(year) {
  if (year < 1900)
     year = year + 1900;
  return year;
}

function changeDD(wert,day1,year1) {

  var TgAnno = 365;
  var l_ddd  = day1;
  var l_jahr = year1;

  if (ist_Schaltjahr(l_jahr) == 1)
     TgAnno = 366;

  if (l_jahr == 1582)
     TgAnno = 355;

  l_ddd = l_ddd + wert;

  if (l_ddd < 1) {
     l_jahr = l_jahr - 1;
     if (l_jahr == 1582)
        TgAnno = 355;
     l_ddd = TgAnno + ist_Schaltjahr(l_jahr);
  }

  if (l_ddd > (TgAnno + ist_Schaltjahr(l_jahr))) {
     l_jahr = l_jahr + 1;
     l_ddd = l_ddd - TgAnno;
  }

  if (l_jahr > 0) {
     day1 = l_ddd;
     year1 = l_jahr;
     days2date(day1,year1);
  } 
}


function ist_Schaltjahr(jahr) {
   if (jahr % 4 == 0)
      if (jahr < 1582)
         return 1;
      else if (!(jahr % 100 == 0))
              return 1;
           else if (jahr % 400 == 0)
                   return 1;
   return 0;
}

function Tag_des_Jahres(tag,monat,jahr) {
   var Tage = 0;

   /* Februar hat im Schaltjahr 29 Tage      */
   Tage_pro_Monat[1] = 28 + ist_Schaltjahr(jahr);
   if (tag <= Tage_pro_Monat[monat-1]) {
      for (var i=0; i<monat-1; i++)
          Tage = Tage + Tage_pro_Monat[i];
      Tage = Tage + tag;
   }

   /* Bei Kalenderreform 10 Tage weggefallen */
   if ((jahr==1582) && (monat >= 10) && (tag>=15))
      Tage = Tage - 10;
   return Tage;
}

function days2date(day2,year2) {
  var i      = 0;
  var l_dd   = 0;
  var jul_dd = 0;
  var l_mm   = 0;
  var l_ddd  = day2;
  var l_jahr = year2;

  if (l_jahr > 0) {
     Tage_pro_Monat[1] = 28 + ist_Schaltjahr(l_jahr);

     /* In 1582 die fehlenden 10 Tage unterdruecken. */
     if (l_jahr == 1582)
        if (l_ddd > 277)
           l_ddd = l_ddd + 10;

     if (l_ddd < (366+ist_Schaltjahr(l_jahr))) {
       self.status = "";
       while (l_ddd > 0) {
             l_ddd = l_ddd - Tage_pro_Monat[i];
             i++;
       }
       l_mm = i;
       l_dd = Tage_pro_Monat[i-1] + l_ddd;
       if (l_ddd > 0)
          l_dd = l_dd + 1;

       jul_dd = JulianDayNumber(l_dd,l_mm,l_jahr);

	  globalday   = l_dd ;
	  globalmonth = l_mm ;
	  globalyear  = l_jahr ;	  
     } 
  } 
}

function JulianDayNumber(tag,monat,jahr) {
   var MJDN = 0; /* Modified Julian Day Number */
   var B    = 0;

   if (is_greg_Date(tag,monat,jahr))
      B = Math.floor(jahr/400) - Math.floor(jahr/100) + Math.floor(jahr/4);
   else
      B = Math.floor((jahr+4716)/4) - 1181;

   if (monat <= 2) {
      B = B - ist_Schaltjahr(jahr);
      jahr  = jahr - 1;
      monat = monat + 13;
   }
   else monat = monat + 1;

   MJDN = (365*jahr) - 679004 + B + Math.floor(30.6*monat) + tag;

   return (MJDN + 2400001);
}

function is_greg_Date(dd,mm,jjjj) {
   if (jjjj > 1582)
      return 1;
   else if (jjjj == 1582)
           if (mm > 10)
              return 1;
           else if (mm == 10)
                   if (dd >= 15)
                      return 1;
                   else return 0;
                else return 0;
         else return 0;
}

