var opener_feld = "";
var WhatForm="";

function openKalender(of, iCalendarPickerURL,FormName) 
{
	opener_feld = of;
	WhatForm=FormName;
	window.open(iCalendarPickerURL,'newCal','width=190,height=230, statusbar=yes'); //,left=30,screenX=30,top=30,screenY=30,resizable=no');	
}
function setOpenerDatum(tag, monat, jahr) {
//	alert("Tag: " + tag);
//	alert(document.forms[2].name);
//	alert(document.forms[1].name);
//	alert(document.forms[0].name);
//	document.forms[2].elements[opener_feld].value = tag + "." + monat + "." + jahr;
//		document.forms["frmeditdetails"].elements[opener_feld].value = tag + "." + monat + "." + jahr;
		document.forms["" + WhatForm +""].elements[opener_feld].value = tag + "." + monat + "." + jahr;
}

function setKalender(beginn) {
	if (arguments.length > 0) {
		var d = getAktuellDatum();
		var monat = d.getMonth();
		var jahr = d.getFullYear()-1900;
		var tag = 1;
		//alert(jahr + "." + monat);
		document.forms[0].Monat.options[monat].selected = true;
		document.forms[0].Jahr.options[jahr-100].selected = true;
	}
	else {
		var monat = document.forms[0].Monat.selectedIndex;
		var jahr = document.forms[0].Jahr.selectedIndex+100;
		var tag = 1;
		//alert(jahr + "." + monat);
	}	
	var k = new Kalender(jahr, monat, tag);
	k.buildKalender();
}
function getAktuellDatum() {
	var now = new Date();
	now.setHours(0);
	now.setMinutes(0);
	now.setSeconds(0);
	return now;
}
Kalender.prototype.setDatum = function(jahr, monat, tag) {
	this.jahr = parseInt(jahr);
	this.monat = parseInt(monat);
	this.tag = parseInt(tag);
}
function Kalender(jahr, monat, tag) {
	this.jahr = parseInt(jahr);
	this.monat = parseInt(monat);
	this.tag = parseInt(tag);
}
Kalender.prototype.buildKalender = function() {
	var zaehler = 0;
	
	//Datum für den Kalender 
	var a_datum = new Date();
	a_datum.setDate(this.tag);
	a_datum.setMonth(this.monat);
	a_datum.setYear(this.jahr);
	a_datum.setHours(0);
	a_datum.setMinutes(0);
	a_datum.setSeconds(0);
	var a_wtag = a_datum.getDay();
	//alert(a_wtag);
	
	var h_datum = getAktuellDatum();
	//alert(Date.parse(h_datum));
	
	if (document.all) {
		a_datum.setFullYear(a_datum.getYear()+1900);
		//alert(Date.parse(a_datum));
	}
	else {
		a_datum.setYear(this.jahr+1900);
		//alert(Date.parse(a_datum));
	}
	//Ausgabe des Tabellenkopfes
	//Hier wird der Style der Tage Mo - Fr festgelegt:
	var xStyle_WorkDays = 'align="center" valign="top" style="color:#000000; text-decoration:none; font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;"';
	//Hier wird der Style der Tage Sa - So festgelegt:
	var xStyle_WeekendDays = 'align="center" valign="top" style="color:#CC0000; text-decoration:none; font-family: Arial, Helvetica, sans-serif; font-size: 10px; font-weight: bold;"';
	parent.frames[1].document.write('<html><head><link rel="Stylesheet" href="../stili/MainStyle.css"></head><body>');
        parent.frames[1].document.write('<table border="0" cellspacing="2" cellpadding="4">');
	parent.frames[1].document.write('<tr>');
	parent.frames[1].document.write('<td ' + xStyle_WorkDays + '>Po</td>');
	parent.frames[1].document.write('<td ' + xStyle_WorkDays + '>To</td>');
	parent.frames[1].document.write('<td ' + xStyle_WorkDays + '">Sr</td>');
	parent.frames[1].document.write('<td ' + xStyle_WorkDays + '>Ce</td>');
	parent.frames[1].document.write('<td ' + xStyle_WorkDays + '>Pe</td>');
	parent.frames[1].document.write('<td ' + xStyle_WeekendDays + '>So</td>');
	parent.frames[1].document.write('<td ' + xStyle_WeekendDays + '>Ne</td>');
	parent.frames[1].document.write('</tr>');
	parent.frames[1].document.write('<tr>');
	
	//Zähler auf 7 setzen, wenn der erste Tag Montag ist.
	if (a_wtag == 6) {
		zaehler = 7;
	}
	
	for (var i=zaehler; i<40; i++) {
		
		//Datum welches angezeigt wird
		var d = i-a_wtag;	
		if (a_wtag >= i) {
			//Wenn noch kein Tag im Monat an dem Wochentag ist
			parent.frames[1].document.write('<td align=center valign=top>&nbsp;</td>\n');
		}
		//Ausgabe der Tage
		else if (d <= this.getAnzahlTage(this.monat+1)) {					
			a_datum.setDate(d);
			//alert(Date.parse(a_datum));	
	
			if ((i == 7 && a_wtag != 6) || (i == 14) || (i == 21) || (i == 28) || (i == 35)) {		//Zeilenumbruch nach Sonntag
				parent.frames[1].document.write('</tr><tr>\n');
			}
			if (Date.parse(h_datum) == Date.parse(a_datum)) {
				parent.frames[1].document.write('<td align="center" valign="middle" class="currentDay"><a href="JavaScript:top.opener.setOpenerDatum(' + d + ', ' + (a_datum.getMonth()+1) + ', ' + a_datum.getFullYear() + ');window.top.close();" class="currentDay">' + d + '</a></td>\n');		//Ausgabe der Tage
				//parent.frames[1].document.write('<td align=center valign=top><a href="JavaScript:top.opener.setOpenerDatum(' + d + ', ' + (a_datum.getMonth()+1) + ', ' + a_datum.getFullYear() + ');"><img src="img/' + d + '.gif" width="19" height="19" border="1" alt=""></a></td>\n');		//Ausgabe der Tage
			}
			else if (Date.parse(h_datum) > Date.parse(a_datum)) {
				parent.frames[1].document.write('<td align="center" valign="top" class="inactiveDay">' + d + '</td>\n');		//Ausgabe der Tage
			}
			else {
				parent.frames[1].document.write('<td align="center" valign="middle" class="activeDay"><a href="JavaScript:top.opener.setOpenerDatum(' + d + ', ' + (a_datum.getMonth()+1) + ', ' + a_datum.getFullYear() + ');window.top.close();" class="activeDay">' + d + '</a></td>\n');		//Ausgabe der Tage
				//parent.frames[1].document.write('<td align="center" valign="top" bgcolor="green"><a href="JavaScript:top.opener.setOpenerDatum(' + d + ', ' + (a_datum.getMonth()+1) + ', ' + a_datum.getFullYear() + ');"><img src="img/' + d + '.gif" width="19" height="19" border="0" alt=""></a></td>\n');		//Ausgabe der Tage
			}
		}
		else {
			parent.frames[1].document.write('</tr>\n</table>\n');				//beenden der Tabellenreihe und der Schleife
			parent.frames[1].document.write('</body>\n</html>');
                        parent.frames[1].document.close();										//Document schließen
			break;
		}
	}
}
Kalender.prototype.getAnzahlTage = function(monat) {
	if ((monat == 1) || (monat == 3) || (monat == 5) || (monat == 7) || (monat == 8) || (monat == 10) || (monat == 12)) {
		return 31;
	}
	else if ((monat == 4) || (monat == 6) || (monat == 9) || (monat == 11)) {
		return 30;
	}
	else if (monat == 2) {
		if ((this.jahr == 100) || (this.jahr == 104)) {
			return 29;
		}
		else {
			return 28;
		}
	}
}
