function getX(obj)
{
 return (obj.offsetParent==null ? obj.offsetLeft : obj.offsetLeft+getX(obj.offsetParent));
}

function getY(obj)
{
 return (obj.offsetParent==null ? obj.offsetTop : obj.offsetTop+getY(obj.offsetParent));
}

function opencal(obj)
{
	now = new Date();
	HeuTag = now.getDate();
	HeuMonat = now.getMonth();
	HeuJahr = now.getFullYear();
	if (obj.value=="")
	{
		now = new Date();
		Monat = now.getMonth();
		Jahr = now.getFullYear();
		Erster = new Date(Jahr,Monat,1);
		AusTag = "";
		AusMonat = "";
		AusJahr = "";
	} else {
		var tmp1 = obj.value;
		var tmp2 = tmp1.split(".");
		Tag = Number(tmp2[0]);
		Monat = Number(tmp2[1])-1;
		Jahr = Number(tmp2[2]);
		AusTag = Tag;
		AusMonat = Monat;
		AusJahr = Jahr;
		Erster = new Date(Jahr,Monat,1);
	}
	update(Monat,Jahr,Erster);
	cal_obj = obj;
	document.getElementById("js_kalender").style.left = getX(obj);
	document.getElementById("js_kalender").style.top = getY(obj);
	document.getElementById("js_kalender").style.visibility='visible';
}

function closecal(text)
{
	cal_obj.value=text;
	document.getElementById("js_kalender").style.visibility='hidden';
}

function hidecal(text)
{
	document.getElementById("js_kalender").style.visibility='hidden';
}

function past(which)
{
  if (which==2)
	{
		Monat-=1;
  	if (Monat==-1)
		{
    	Monat=11;
    	Jahr-=1;
  	}
	}
  if (which==3)
	{
		Jahr-=1.0;
	}
	Erster = new Date(Jahr,Monat,1);
	update(Monat,Jahr,Erster);
}

function future(which)
{
  if (which==2)
	{
		Monat+=1;
  	if (Monat==12)
		{
    	Monat=0;
    	Jahr+=1;
  	}
	}
  if (which==3)
	{
		Jahr+=1.0;
	}
  Erster = new Date(Jahr,Monat,1);
  update(Monat,Jahr,Erster);
}

function update(Monat,Jahr,Erster)
{
	if (Monat==0) { Monatname="Januar"; }
	if (Monat==1) { Monatname="Februar"; }
	if (Monat==2) { Monatname="März"; }
	if (Monat==3) { Monatname="April"; }
	if (Monat==4) { Monatname="Mai"; }
	if (Monat==5) { Monatname="Juni"; }
	if (Monat==6) { Monatname="Juli"; }
	if (Monat==7) { Monatname="August"; }
	if (Monat==8) { Monatname="September"; }
	if (Monat==9) { Monatname="Oktober"; }
	if (Monat==10) { Monatname="November"; }
	if (Monat==11) { Monatname="Dezember"; }
	window.document.getElementById("js_monat").innerHTML = Monatname;
	window.document.getElementById("js_jahr").innerHTML = Jahr;

	disp =
		"<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\" align=\"center\">"+
	  "<tr class=\"cal-text\">"+
    "<td height=\"25\" width=\"25\" align=\"center\">Mo</td>"+
    "<td width=\"25\" align=\"center\">Di</td>"+
    "<td width=\"25\" align=\"center\">Mi</td>"+
    "<td width=\"25\" align=\"center\">Do</td>"+
    "<td width=\"25\" align=\"center\">Fr</td>"+
    "<td width=\"25\" align=\"center\">Sa</td>"+
    "<td width=\"25\" align=\"center\">So</td>"+
  	"</tr>"+
		"<tr class=\"cal-text\">";

	if (Erster.getDay()==1) { disp+=""; }
	if (Erster.getDay()==2) { disp+="<td></td>"; }
	if (Erster.getDay()==3) { disp+="<td></td><td></td>"; }
	if (Erster.getDay()==4) { disp+="<td></td><td></td><td></td>"; }
	if (Erster.getDay()==5) { disp+="<td></td><td></td><td></td><td></td>"; }
	if (Erster.getDay()==6) { disp+="<td></td><td></td><td></td><td></td><td></td>"; }
	if (Erster.getDay()==0) { disp+="<td></td><td></td><td></td><td></td><td></td><td></td>"; }

	i = 1;
	lines = 1;
  while (i <= 31) {
    Heute = new Date(Jahr,Monat,i);
    if (Heute.getMonth()!=Monat){ break; }
 	  if (i<=9) date1 = "0"+i; else date1 = i;
 	  if (Monat<=8) date2 = "0"+(Monat+1); else date2 = Monat+1;
    disp += "<td align=\"right\" height=\"20\" onClick=\"closecal('"+date1+"."+date2+"."+Jahr+"');\"";
		if ((i==AusTag) && (Monat==AusMonat) && (Jahr==AusJahr))
		{
			if ((Heute.getDay()==0) || (Heute.getDay()==6))
			  disp += " class=\"cal-actual-we\"";
			else
			  disp += " class=\"cal-actual\"";
		} else {
			if ((i==HeuTag) && (Monat==HeuMonat) && (Jahr==HeuJahr))
			{
				if ((Heute.getDay()==0) || (Heute.getDay()==6))
				  disp += " class=\"cal-today-we\"";
				else
				  disp += " class=\"cal-today\"";
			} else {
				if ((Heute.getDay()==0) || (Heute.getDay()==6))
				  disp += " class=\"cal-normal-we\"";
				else
				  disp += " class=\"cal-normal\"";
			}
		}
		disp += ">"+i+"&nbsp;</td>";
    if (Heute.getDay()==0) { disp+="</tr><tr class=\"cal-text\">"; lines++; }
    i++;
  }
	disp += "<td height=\"20\"></td></tr>";
	while (lines <= 5)
	{
		disp += "<tr><td height=\"20\"></td></tr>";
		lines++;
	}
	window.document.getElementById("js_text").innerHTML = disp;
}
