/*
   --------------------------------------------------------------------------------
   --   Rudi's Feiertagsberechnung (Copyright 2006 by webmaster@rudi-hoepp.de)   --
   --------------------------------------------------------------------------------
*/

function RHdiffDate(basisdate,difftage)
 { var DiffMS=difftage*24*60*60*1000;
   var BaDaOj=new Date(eval(basisdate.substr(0,4)), eval(basisdate.substr(4,2)*1-1), eval(basisdate.substr(6,2)));
   var NwDaOj=new Date(BaDaOj.getTime()+DiffMS);
   var DestM=NwDaOj.getMonth()+1; if (DestM<10) DestM="0"+DestM;
   var DestD=NwDaOj.getDate(); if (DestD<10) DestD="0"+DestD;
   var CalcDate=''+NwDaOj.getFullYear()+DestM+DestD;
   // if (difftage==+49) alert('CalcDate='+CalcDate);
 return CalcDate; // difJahr+''+difMonat+''+difTag
 }
// --------------------------------------------------------------------------------

 function RHdiffDays(DestDat)
  { var DiffDays=-1;
    var DestDatObj=new Date(eval(DestDat.substr(0,4)), eval(DestDat.substr(4,2)*1-1), eval(DestDat.substr(6,2)));
    DestiHr=DestDatObj.getTime()/3600000;
    TodayHr=MICROTIME/3600000 // ab Mittag zählt der aktuelle Tag nicht mehr!
    DiffDays=Math.round((DestiHr-TodayHr)/24);
    // alert(DestDatObj);
    return DiffDays;
  }
// --------------------------------------------------------------------------------

 function RHcountXmas()
  { var XMcnt=0, XDe='', Xdiff='';
    if (SYSDATE<Heiligabend)
     { if (SYSDATE.substr(4,2)=='01')
        { XMcnt=7+(SYSDATE.substr(6,2)*1);
          Xdiff='Vor '+XMcnt+' Tagen war Heiligabend';
        }
       else
        { XMcnt=RHdiffDays(Heiligabend);
          if (XMcnt>1) XDe='e';
          Xdiff='Noch '+XMcnt+' Tag'+XDe+' bis Heiligabend';
     }  }
    else
     { if (SYSDATE.substr(6,2)>25)
        { XMcnt=(SYSDATE.substr(6,2)*1)-24;
          Xdiff='Vor '+XMcnt+' Tagen war Heiligabend';
     }  }
    return Xdiff;
  }
// --------------------------------------------------------------------------------

// -------- Osterberechnung nach Gauss --------

var OsterJahr=SYSDATE.substr(0,4), OsterMonat=0, OsterTag=0, OsterMond=0;
var OsterEpact=0, OsterSoTag=0, OsterGold=0, OsterCent=0, OsterCorX=0, OsterCorZ=0;
OsterGold=((OsterJahr%19)+1);
OsterCent=((Math.floor(OsterJahr/100))+1);
OsterCorX=((Math.floor((3*OsterCent)/4))-12);
OsterCorZ=((Math.floor((8*OsterCent+5)/25))-5);
OsterSoTag=((Math.floor((5*OsterJahr)/4))-OsterCorX-10);
OsterEpact=(((11*OsterGold)+20+OsterCorZ-OsterCorX)%30);
if (OsterEpact<0) OsterEpact=OsterEpact+30;
if (((OsterEpact==25)&&(OsterGold>11))||(OsterEpact==24)) OsterEpact=(OsterEpact+1);
OsterMond=44-OsterEpact;
if (OsterMond<21) OsterMond=OsterMond+30;
OsterMond=(OsterMond+7-((OsterSoTag+OsterMond)%7));
if (OsterMond>31) { OsterMonat='04'; OsterTag=(OsterMond-31); }
else { OsterMonat='03'; OsterTag=OsterMond; }
if (OsterTag<10) OsterTag='0'+OsterTag;
var Ostersonntag=OsterJahr+''+OsterMonat+''+OsterTag;
// alert('Ostersonntag='+Ostersonntag);

// ----------- Liste der Feiertage -----------

var Jahresanfang=SYSDATE.substr(0,4)+'0101';
var Silvester=SYSDATE.substr(0,4)+'1231';
var Neujahr=eval(SYSDATE.substr(0,4)*1+1)+'0101';
var Maifeiertag=SYSDATE.substr(0,4)+'0501';
var Walpurgisnacht=SYSDATE.substr(0,4)+'0430';
var TagdDEinh=SYSDATE.substr(0,4)+'1003';
var Hl3Koenig=SYSDATE.substr(0,4)+'0106';

// -------- Osterabhängige Feiertage --------

var Aschermittwoch=RHdiffDate(Ostersonntag,-45);
var Karfreitag=RHdiffDate(Ostersonntag,-2);
var Ostermontag=RHdiffDate(Ostersonntag,+1);
var WeisserSonntag=RHdiffDate(Ostersonntag,+7);
var ChrHimmelfahrt=RHdiffDate(Ostersonntag,+39);
var Pfingstsonntag=RHdiffDate(Ostersonntag,+49);
var Pfingstmontag=RHdiffDate(Ostersonntag,+50);
var Fronleichnam=RHdiffDate(Ostersonntag,+60);
var HerzJesuFreitag=RHdiffDate(Ostersonntag,+68);

// -------- weitere Ereignisse --------

var Valentinstag=SYSDATE.substr(0,4)+'0214';
var StPatricksday=SYSDATE.substr(0,4)+'0317';
var Fruehlingsbeginn=SYSDATE.substr(0,4)+'0320';
if ((SYSDATE.substr(0,4)*1)%4==3) Fruelingsbeginn=SYSDATE.substr(0,4)+'0321';
var TowelDay=SYSDATE.substr(0,4)+'0525';
var MC_Escher=SYSDATE.substr(0,4)+'0617';
var K_Zuse=SYSDATE.substr(0,4)+'0622';
var Sommersonnenwende=SYSDATE.substr(0,4)+'0621';
//  if ((SYSDATE.substr(0,4)*1)%4==3) Sommersonnenwende=SYSDATE.substr(0,4)+'0622';
var Herbstbeginn=SYSDATE.substr(0,4)+'0923';
if ((SYSDATE.substr(0,4)*1)%4==3) Herbstbeginn=SYSDATE.substr(0,4)+'0924';
var Reformationstag=SYSDATE.substr(0,4)+'1031';
var Halloween=SYSDATE.substr(0,4)+'1031';
var Wintersonnenwende=SYSDATE.substr(0,4)+'1221';
if ((SYSDATE.substr(0,4)*1)%4==2||(SYSDATE.substr(0,4)*1)%4==3) Wintersonnenwende=SYSDATE.substr(0,4)+'1222';

var DatObjX=new Date(SYSDATE.substr(0,4), 4, 14);
var Mutda=14-DatObjX.getDay(); if (Mutda<10) Mutda='0'+Mutda;
var Muttertag=SYSDATE.substr(0,4)+'05'+Mutda;

var DatObjX=new Date(SYSDATE.substr(0,4), 9, 7);
var Erndt=7-DatObjX.getDay(); if (Erndt<10) Erndt="0"+Erndt;
var Erntedank=SYSDATE.substr(0,4)+'10'+Erndt;

// -------- Sommerzeitumstellungen --------
var SZyear=SYSDATE.substr(0,4);

var DatObjSZ=new Date(SZyear,2,31);
var SZday=31-DatObjSZ.getDay();
 if (SZday<10) SZday="0"+SZday;
var SZbeginn=SZyear+"03"+SZday;

var DatObjSZ=new Date(SZyear,9,31);
var SZday=31-DatObjSZ.getDay();
 if (SZday<10) SZday="0"+SZday;
var SZende=SZyear+"10"+SZday;

// -------- SysAdminDay --------
var SADyear=SYSDATE.substr(0,4);
var DatObjSAD=new Date(SADyear,6,31);
var SADay=31-DatObjSAD.getDay()+5;
 if (SADay>31) SADay=SADay-7;
 if (SADay<10) SADay="0"+SADay;
var SysAdminDay=SADyear+"07"+SADay;

// -------- Weihnachtsberechnungen --------

var Xyear=SYSDATE.substr(0,4);
if (SYSDATE.substr(4,4)<0120) eval(Xyear=Xyear*1-1);
var DatObjX=new Date(Xyear, 11, 24);
var Xmdy=DatObjX.getDay();
var Ad4m=12, Adv4=24-Xmdy;
var Ad3m=12, Adv3=24-Xmdy-7;
 if (Adv3<=9) Adv3="0"+Adv3;
var Ad2m=12, Adv2=24-Xmdy-14;
 if (Adv2<1) { Adv2=30+Adv2; Ad2m-=1; }
 if (Adv2<=9) Adv2="0"+Adv2;
var Ad1m=12, Adv1=24-Xmdy-21;
 if (Adv1<1) { Adv1=30+Adv1; Ad1m-=1; }
 if (Adv1<=9) Adv1="0"+Adv1;
var Ad0m=12, Adv0=24-Xmdy-28;
 if (Adv0<1) { Adv0=30+Adv0; Ad0m-=1; }
 if (Adv0<=9) Adv0="0"+Adv0;
// -------- Bussundbettag --------
var BuBm=Ad1m; var BuBT=Adv1-11;
 if (BuBT<1) { BuBT=30+BuBT; BuBm-=1; }
 if (BuBT<=9) BuBT="0"+BuBT;

var Bussundbettag=''+Xyear+BuBm+BuBT;
var Nikolaus=''+Xyear+'1206';
var Advent0=''+Xyear+Ad0m+Adv0;
var Advent1=''+Xyear+Ad1m+Adv1;
var Advent2=''+Xyear+Ad2m+Adv2;
var Advent3=''+Xyear+Ad3m+Adv3;
var Advent4=''+Xyear+Ad4m+Adv4;
var Heiligabend=''+Xyear+'1224';
var Weihnacht1=''+Xyear+'1225';
var Weihnacht2=''+Xyear+'1226';
var Advent5=RHdiffDate(Weihnacht2,12);
var Adventskranzpic='Adventskranz_X.gif';
if (SYSDATE>=Advent0)   Adventskranzpic='Adventskranz_0.gif';
if (SYSDATE>=Advent1)   Adventskranzpic='Adventskranz_1.gif';
if (SYSDATE>=Advent2)   Adventskranzpic='Adventskranz_2.gif';
if (SYSDATE>=Advent3)   Adventskranzpic='Adventskranz_3.gif';
if (SYSDATE>=Advent4)   Adventskranzpic='Adventskranz_4.gif';
if (SYSDATE>Weihnacht2) Adventskranzpic='Adventskranz_5.gif';
if (SYSDATE>=Advent5)   Adventskranzpic='Adventskranz_X.gif';

// ------------ 5. Jahreszeit: Fasching ------------

var Faschingsanfang=SYSDATE.substr(0,4)+'1111';
var FaschingsW=RHdiffDate(Ostersonntag,-55);
var Rosenmontag=RHdiffDate(Ostersonntag,-47);
var FaschingsDie=RHdiffDate(Ostersonntag,-46);

// ---- 6. Jahreszeit: Oktoberfest München ----
var OktoFestJahr=SYSDATE.substr(0,4); if (SYSDATE.substr(4,4)>1015) OktoFestJahr=OktoFestJahr*1+1;
var OktoberfestA=OktoFestJahr+'0915';
var OktoberfestB=OktoFestJahr+'0921';
var OktoberfestE=OktoFestJahr+'1003';
var OktoberfestPic='Oktoberfest_Muenchen.gif';
switch(OktoFestJahr)
 { case '2006': OktoberfestA='20060908'; OktoberfestB='20060916'; OktoberfestE='20061003'; break;
   case '2007': OktoberfestA='20070914'; OktoberfestB='20070922'; OktoberfestE='20071007'; break;
   case '2008': OktoberfestA='20080912'; OktoberfestB='20080920'; OktoberfestE='20081005'; break;
   case '2009': OktoberfestA='20090911'; OktoberfestB='20090919'; OktoberfestE='20091005'; break;
   case '2010': OktoberfestA='20100910'; OktoberfestB='20100918'; OktoberfestE='20101003'; break;
   case '2011': OktoberfestA='20110909'; OktoberfestB='20110917'; OktoberfestE='20111003'; break;
   case '2012': OktoberfestA='20120916'; OktoberfestB='20120922'; OktoberfestE='20121007'; break;
   case '2013': OktoberfestA='20130915'; OktoberfestB='20130921'; OktoberfestE='20131006'; break;
   case '2014': OktoberfestA='20140914'; OktoberfestB='20140920'; OktoberfestE='20141005'; break;
   case '2015': OktoberfestA='20150913'; OktoberfestB='20150919'; OktoberfestE='20151004'; break;
   case '2016': OktoberfestA='20160912'; OktoberfestB='20160917'; OktoberfestE='20161003'; break;
 }
if (OktoFestJahr<2017) OktoberfestPic='Oktoberfest_'+OktoFestJahr+'.gif';

// ---------------- [end of file RHfeiertage.js] ----------------