function mod(a,b) {
return a - b*Math.floor(a/b);
}
function ostern(x) {
var g      /* golden number - 1 */
var c      /* century: e.g. 20 for 1900-1999 */
var h      /* 23-Epact (modulo 30) */
var i      /* number of days from 21 March to the Paschal Full Moon */
var j      /* weekday of the Full Moon (0=Sunday,...) */
var l
var EasterMonth, EasterDay, EasterDate
var jahr

jahr = parseInt(x);
if (jahr>1582) {
 /* alert("Gregorianischer Kalender"); */
 g = jahr % 19;                              /* golden number - 1 */
 c = Math.floor(jahr/100);                   /* century */
 
 h = (c - Math.floor(c/4)-Math.floor((8*c+13)/25)+ 19*g + 15) % 30;
 /* alert("23-Epact: " + h); */
 i = h - Math.floor(h/28)*(1 - Math.floor(h/28)*Math.floor(29/(h+1))*Math.floor((21 - g)/11));
 /* alert("Frühlingsanfang bis Vollmond: " + i); */
 j = (jahr + Math.floor(jahr/4) + i + 2 - c + Math.floor(c/4));
 /* alert("jahr/4=" + Math.floor(jahr/4)+" c/4=" + Math.floor(c/4)+"  j="+j); */
 j = j % 7;
 /* alert("jahr=" + jahr + "  i=" + i + "  c=" + c ); */
 /* alert("Wochentag des Vollmonds (So=0, Mo=1,...): " + j); */
 }
else {
//  alert("Julianischer Kalender"); 
 g = jahr % 19;                            
 i = (19*g + 15) % 30;                      
 j = (jahr + Math.floor(jahr/4) + i) % 7;   /* weekday of the Full Moon (0=Sunday,...) */
}
l = i - j;
EasterMonth = 3 + Math.floor((l+40)/44);
EasterDay = l + 28 - 31*Math.floor(EasterMonth/4);

if (EasterMonth==3) {
   EasterDate = "March " + EasterDay + ", " + jahr
   }
else {
   EasterDate = "April " + EasterDay + ", " + jahr
}
// alert(EasterDate);
// document.forms[0].datum.value = EasterDate;
return EasterDate;
}
