var d = new Date();
var dm = d.getMonth() + 1;
var dj = d.getYear();
var xxx1=" border=0 width=13 height=9";
//var PlusStr  = "<img src=arrR.gif"+xxx1+">";
//var MinusStr = "<img src=arrL.gif"+xxx1+">";
var PlusStr  = "»";
var MinusStr = "«";
if (dj < 2000) dj+=1900
var AMonat = 0, AJahr = 0; 
Kalender(dm,dj)
var  KTXT = "";

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function julianDay($day, $month, $year)
{
		  var $a, $y, $m;
		  $a = Math.floor((14 - $month)/12);
		  $y = $year + 4800 - $a;
		  $m = $month + 12 * $a - 3;

		  var $jd = $day + Math.floor((153 * $m + 2)/5) + 365 * $y + Math.floor($y/4)
					 - Math.floor($y/100) + Math.floor($y/400) - 32045;

		  return $jd;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function calendarWeek2($day, $month, $year)
{
		  var $jd = julianDay($day, $month, $year);
		  var $d1, $d4, $l;
		  $d4 = ($jd + 31741 - ($jd % 7)) % 146097 % 36524 % 1461;
		  $l = Math.floor($d4/1460);
		  $d1 = (($d4 - $l) % 365) + $l;
		  var $cw = Math.floor($d1/7) + 1;
		  if (($month == 1) && ($cw > 51)) { $year--; }
		  else if (($month == 12) && ($cw == 1)) { $year++; }
		  var CWA=new Array();
		  //CWA[0]=$cw;
		  //CWA[1]=$year;
		  //return  CWA;
		  return  [$cw,$year];
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function calendarWeek($day, $month, $year)
{
		var r=calendarWeek2($day, $month, $year);
	    r[0]= r[0] < 10 ? r[0] = "0"+r[0] : r[0];
		return r;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function MonatPlus(Monat,Jahr,plus)
{
   var r=new Array(Monat,Jahr);
   r[0]+=plus;
   if(r[0]==0) {r[0]=12; r[1]-=1;}
   if(r[0]==13){r[0]=1;  r[1]+=1;}
   return r;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function Kalender(Monat,Jahr,DIVNAME,no_show_ar,show_link)
{
 AMonat = Monat; AJahr = Jahr;
 KTXT = "";
 //KTXT +=".kalend{font-size:11px; font-family:verdana,arial,helvetica,sans-serif; font-weight:bold; }";
 //KTXT +="</style>";
 //Monatsname = new Array ("Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
 Monatsname = new Array ("Jan","Feb","M&auml;rz","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez");
 Tag = new Array ("Mo","Di","Mi","Do","Fr","Sa","So");
 
 if (Jahr < 1000) Jahr+=1900

 var KSchrArt = "Verdana,Arial";
 var KSchrGroesse = 1;
 var KSchrFarbe = "#888888";
 var Khgrund = "#DDDDDD";

 var TSchrArt = "Verdana,Arial";
 var TSchrGroesse = 1;
 var TSchrFarbe = "#000000";
 var TSchrFarbeKW= "#cccccc";
 var Thgrund = "#FFFFFF";
 var SoFarbe = "#E00000";
 var SaFarbe = "#E09040";
 var Ahgrund = "#CCAAAA";
 //var PlusStr  = ">>";
 //var MinusStr = "<<";
 
 
 
 var jetzt = new Date();
 var DieserMonat = jetzt.getMonth() + 1;
 var DiesesJahr = jetzt.getYear();
 if (DiesesJahr < 1000) DiesesJahr+=1900
 var DieserTag = jetzt.getDate();
 
 
 if(Monat==0&&Jahr==0) { Monat=DieserMonat; Jahr=DiesesJahr; }
 else
 {
 if(Monat==0){Monat=12; Jahr-=1;}
 if(Monat==13){Monat=1; Jahr+=1;}
 }

 
 var Zeit = new Date(Jahr,Monat-1,1);
 var Start = Zeit.getDay();
 if(Start > 0) Start--;
 else Start = 6;
 var Stop = 31;
 if((Monat==4)||(Monat==6)||(Monat==9)||(Monat==11)) --Stop;
 if(Monat==2) {  Stop--;   Stop--;   Stop--;   if(Jahr%4==0) Stop++;    if(Jahr%100==0) Stop--;    if(Jahr%400==0) Stop++;   }

 KTXT+="<center>";
 KTXT+="<table border=0 cellpadding=1 cellspacing=1>";
 f1a='<font class=kalend color=#995555>';
 f1b='<font class=kalend color=#000000>';
 f1=f1b;
 
 var Monatskopf ="<TABLE  border=0 cellpadding=0 cellspacing=0 Width=\"100%\" ><TR>";
 
 if(Jahr==DiesesJahr)f1=f1a;
 if(!no_show_ar)Monatskopf+="<TD align=left><a href=# onclick=\"javascript:Kalender("+Monat+","+(Jahr-1)+",'"+DIVNAME+"')\"><font color=red class=kalend>"+MinusStr+"</a></TD>";
 Monatskopf+="<TD align=center>"+(f1+Jahr)+"</TD>";
 if(!no_show_ar)Monatskopf+="<TD align=right><a href=# onclick=\"javascript:Kalender("+Monat+","+(Jahr+1)+",'"+DIVNAME+"')\"><font color=red  class=kalend>"+PlusStr+"</a></TD>";
 Monatskopf+="</TR><TR>";
 f1=f1b;
 if(Monat==DieserMonat&&Jahr==DiesesJahr)f1=f1a;
 if(!no_show_ar)Monatskopf+="<TD align=left><a href=# onclick=\"javascript:Kalender("+(Monat-1)+","+Jahr+",'"+DIVNAME+"')\"><font color=red class=kalend>"+MinusStr+"</a></TD>";
 Monatskopf+="<TD align=center>"+(f1+Monatsname[Monat-1])+"</TD>";
 if(!no_show_ar)Monatskopf+="<TD align=right><a href=# onclick=\"javascript:Kalender("+(Monat+1)+","+Jahr+",'"+DIVNAME+"')\"><font color=red  class=kalend>"+PlusStr+"</a></TD>";
 Monatskopf+="</TR></TABLE>";
 
 //Monatskopf+=;
 //Monatskopf+=Monatsname[Monat-1] + " " + Jahr;
 
 
 SchreibeKopf(Monatskopf,Khgrund,KSchrFarbe,KSchrGroesse,KSchrArt);
 
 
 
 var Tageszahl = 1;
 
 for(i=0;i<=5;i++)
  {
   KWJ=calendarWeek(Tageszahl,Monat,Jahr);
   KTXT+="<tr>";
   if(Tageszahl > Stop)SchreibeZelle("","#FAFAFA",TSchrFarbeKW,TSchrGroesse,TSchrArt);
   else                SchreibeZelle(KWJ[0],"#FAFAFA",TSchrFarbeKW,TSchrGroesse,TSchrArt);
   for(j=0;j<=5;j++)
    {
     if((i==0)&&(j < Start))
       SchreibeZelle("&#160;",Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
     else
      {
       if(Tageszahl > Stop)
         SchreibeZelle("&#160;",Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);       
       else
        {
         if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag))
         {
          if(show_link)inh="<a href=?"+Tageszahl+"."+Monat+"."+Jahr+" class=link2>"+Tageszahl+"</a>";
          else inh="<b class=link2 >"+Tageszahl+"</a>";
          SchreibeZelle(inh,Ahgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
         }
         else
         {
          if(show_link)inh="<a href=?"+Tageszahl+"."+Monat+"."+Jahr+" class=link2>"+Tageszahl+"</a>";
          else inh="<b class=link2 >"+Tageszahl+"</a>";
          SchreibeZelle(inh,Thgrund,TSchrFarbe,TSchrGroesse,TSchrArt);
         }
         Tageszahl++;
        }
      }
     }
    if(Tageszahl > Stop)
     SchreibeZelle("&#160;",Thgrund,SoFarbe,TSchrGroesse,TSchrArt);       
    else
     {
      if((Jahr==DiesesJahr)&&(Monat==DieserMonat)&&(Tageszahl==DieserTag))
      {
       if(show_link)inh="<a href=?"+Tageszahl+"."+Monat+"."+Jahr+" class=linkr>"+Tageszahl+"</a>";
       else inh="<b class=linkr >"+Tageszahl+"</a>";
       
       //SchreibeZelle(inh,Ahgrund,SoFarbe,TSchrGroesse,TSchrArt);
       }
      else
      {
       if(show_link)inh="<a href=?"+Tageszahl+"."+Monat+"."+Jahr+" class=linkr >"+Tageszahl+"</a>";
       else inh="<b class=linkr >"+Tageszahl+"</a>";
       SchreibeZelle(inh,Thgrund,SoFarbe,TSchrGroesse,TSchrArt);
      }
      Tageszahl++;
     }
   KTXT+="</tr>";
  }
 KTXT+="</table>";
 KTXT+="</center>";
 wm = document.all[DIVNAME];
 if(wm)  {    wm.innerHTML=KTXT; }
 return KTXT;

} 
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
function SchreibeKopf(Monatstitel,HgFarbe,SchrFarbe,SchrGroesse,SchrArt)
{
 KTXT+="<tr>";
 KTXT+="<td align=center colspan=8 valign=middle bgcolor="+HgFarbe+">";
 KTXT+='';
 KTXT+=Monatstitel;
 KTXT+="</b></td></tr>";
 KTXT+="<tr>";
 SchreibeZelle("KW",HgFarbe,SchrFarbe,SchrGroesse,SchrArt);
 for(i=0;i<=6;i++)
 SchreibeZelle(Tag[i],HgFarbe,SchrFarbe,SchrGroesse,SchrArt);
 KTXT+="</tr>";
}

function SchreibeZelle(Inhalt,HgFarbe,SchrFarbe,SchrGroesse,SchrArt)
{
 KTXT+="<td align=center valign=middle bgcolor="+HgFarbe+">";
 KTXT+='<font class=kalend color='+SchrFarbe+' face="'+SchrArt+'">';
 //KTXT+="<a href=#Termin class=link2>"+Inhalt+"</a>";
 KTXT+=Inhalt;
 KTXT+="</b></font></td>";
}

function Aendern(Monate,DIVNAME)
{
 var Anzeigemonat = AMonat + Monate;
 var Anzeigejahr = AJahr;
 if(Anzeigemonat < 0)  {   Anzeigemonat = 12 + Anzeigemonat;   Anzeigejahr--;  }
 if(Anzeigemonat > 12) {   Anzeigemonat = Anzeigemonat - 12;   Anzeigejahr++;  }
 Kalender(Anzeigemonat,Anzeigejahr,DIVNAME);
}

function JahresA(Monat,Jahr,DIVNAME)
{
var TXT=
"<TABLE align=center><TR>"+
"<TD colspan=4 align=center><font color=red><b class=kalend>"+
//"<a href=javascript:"+'JahresA("'+Monat+'","'+(Jahr-1)+',"'+DIVNAME+'");'+">««<a>"+
"<a href=javascript:"+'JahresA('+Monat+','+(Jahr-2)+',"'+DIVNAME+'");'+">"+(Jahr-2)+"<a>"+
"&nbsp; &nbsp; &nbsp; "+
"<a href=javascript:"+'JahresA('+Monat+','+(Jahr-1)+',"'+DIVNAME+'");'+">"+(Jahr-1)+"<a>"+
"&nbsp; &nbsp; &nbsp; "+
""+ Jahr+""+
"&nbsp; &nbsp; &nbsp; "+
"<a href=javascript:"+'JahresA('+Monat+','+(Jahr+1)+',"'+DIVNAME+'");'+">"+(Jahr+1)+"<a>"+
"&nbsp; &nbsp; &nbsp; "+
"<a href=javascript:"+'JahresA('+Monat+','+(Jahr+2)+',"'+DIVNAME+'");'+">"+(Jahr+2)+"<a>"+
"</TD>"+
"</TR>"+
"<TR>"
;
jetzt = new Date();
var DieserTag = jetzt.getDate();
var DieserJahr= jetzt.getYear();
r=MonatPlus(Monat,Jahr,0);
Monat=r[0];
Jahr =r[1];
DieserMonat=jetzt.getMonth() + 1;
var rovc=0;
for(x=1;x<13;x++)
{
var name="KAL2_"+x;
if(DieserMonat==Monat&&Jahr==DieserJahr)
{
      TXT+="<TD bgcolor=#CCAAAA>";
      TXT+="<center><font class=kalend color=#FFFFFF><b> Heute: "+DieserTag+"."+Monat+"."+Jahr;
}
else 
{
  TXT+="<TD bgcolor=#CCCCCC><font class=kalend color=#FFFFFF>&nbsp;";
}  

//TXT+="<DIV ID=\""+name+"\" CLASS=\""+name+"\" ></DIV>";
TXT+=Kalender(Monat,Jahr,"NULL",1);
TXT+="</TD>";
rovc++;
if(rovc==3){ TXT+="</TR><TR>";rovc=0; }
  

r=MonatPlus(Monat,Jahr,1);
Monat=r[0];
Jahr =r[1];
}



TXT+="</TR>";
TXT+="</TABLE>";
wm = document.all[DIVNAME];
if(wm)  {    wm.innerHTML=TXT; }
else return TXT;
}
// -->
