/*
	JScalender 0.2  by Christopher Glaab (chris.glaab@gmail.com) 2005-08-17 
*/

var x = 0;
var y = 0;
var monthNames = new Array
	(
		'Januar',
		'Februar',
		'M&auml;rz',
		'April',
		'Mai',
		'Juni',
		'Juli',
		'August',
		'September',
		'Oktober',
		'November',
		'Dezember'
	);
var weekdayNames = new Array
	(
		'Mo',
		'Di',
		'Mi',
		'Do',
		'Fr',
		'Sa',
		'So'
	);
var target_form;
var target_field;

/* set calender data - this function will called when a date in the calendar has been clicked */
function setCalDate(calDate) {

	document.forms[target_form].elements[target_field].value = calDate;
	hideCal();

}

/* this function shows the layer with the calender */
function showCal(month, year, this_target_form, this_target_field, el) {

	target_form = this_target_form;
	target_field = this_target_field;
	getCal(month, year);
	var cal = document.getElementById('cal');
	var overlay = document.getElementById('overlay');

	x=absLeft(el)+5;
	y=absTop(el)+5;
	cal.style.left = x + 'px';
	cal.style.top = y + 'px';
	cal.style.display = "block";

	/* this is an fix, because some browsers will not show layers above a dropwown */
	overlay.style.width = cal.offsetWidth;
	overlay.style.height = cal.offsetHeight;
	overlay.style.top = cal.style.top;
	overlay.style.left = cal.style.left;
	overlay.style.zIndex = cal.style.zIndex - 1;
	if(!window.netscape)
		overlay.style.display = "block";

}

/* this function hides the calendar */
function hideCal() {

	var cal = document.getElementById('cal');
	var overlay = document.getElementById('overlay');
	
	cal.style.display = "none";
	if(!window.netscape)
		overlay.style.display = "none";

}

/* this function build the calender with given date. when empty actual date will shown */
function getCal(month, year) {

	var day = 1;
	var html;
	var firstDay = new Date();

	// get actual date
	var actDay = firstDay.getDate();
	var actMonth = firstDay.getMonth();
	var actYear = firstDay.getYear();

	// get acual date if none date given
	if (isNaN(month) || month == 0)
		month = actMonth + 1;
	if (isNaN(year) || year == 0)
		year = actYear;

	if (year < 999)
		year += 1900;
	if (actYear < 999)
		actYear += 1900;

	if (month == 13) {
		month = 1;
		year++;
	} else if (month == 0) {
		month = 12;
		year--;
	}

	firstDay.setMonth(month-1);
	firstDay.setYear(year);
	firstDay.setDate(1);

	html = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	html += "<tr><td align=\"center\"><a href=\"javascript:\" onCLick=\"getCal(" + month + ", " + eval(firstDay.getYear()-1) + ");\" class=\"cal\">&laquo;</a></td><td colspan=\"5\" class=\"calYear\">" + year + "</td><td align=\"center\"><a href=\"javascript:\" onCLick=\"getCal(" + month + ", " + eval(firstDay.getYear()+1) + ");\" class=\"cal\">&raquo;</a></td></tr>";
	html += "<tr><td align=\"center\"><a href=\"javascript:\" onCLick=\"getCal(" + eval(month-1) + ", " + firstDay.getYear() + ");\" class=\"cal\">&laquo;</a></td><td colspan=\"5\" class=\"calMonth\">" + monthNames[firstDay.getMonth()] + "</td><td align=\"center\"><a href=\"javascript:\" onCLick=\"getCal(" + eval(month+1) + ", " + firstDay.getYear() + ");\" class=\"cal\">&raquo;</a></td></tr>";
	html += "<tr><td colspan=\"7\" style=\"border-bottom: 1px solid #999999;\"><img src=\"blank.gif\" width=\"1\" height=\"5\" border=\"0\" alt=\"\"><br></td></tr>";
	html += "<tr><td class=\"calDayWD\">" + weekdayNames[0] + "</td><td class=\"calDayWD\">" + weekdayNames[1] + "</td><td class=\"calDayWD\">" + weekdayNames[2] + "</td><td class=\"calDayWD\">" + weekdayNames[3] + "</td><td class=\"calDayWD\">" + weekdayNames[4] + "</td><td class=\"calDayWE\">" + weekdayNames[5] + "</td><td class=\"calDayWE\">" + weekdayNames[6] + "</td></tr>";

	for (var i = 0; i < 6; i++) {

		html += "<tr>";
		for (var c = 1; c < 8; c++) {

			d = (c == 7) ? 0 : c;

			if ((day != 1 || firstDay.getDay() == d) && firstDay.getDate() == day) {

				var cssClass = (day == actDay && firstDay.getMonth() == actMonth && year == actYear) ? "calActDay" : "calDay";
				thisDay = (day < 10) ? '0' + day : day;
				thisMonth = (month < 10) ? '0' + month : month;
				thisDate = year + "-" + thisMonth + "-" + thisDay;
				html += "<td align=\"center\" class=\"" + cssClass + "\" onMouseOver=\"this.className = 'calDayOn';\" onMouseOut=\"this.className = '" + cssClass + "';\" onClick=\"setCalDate('" + thisDate + "');\"><a href=\"javascript:\" onClick=\"setCalDate('" + thisDate + "');\" class=\"" + cssClass + "\">" + day + "</a></td>";
				day++;
				firstDay.setDate(day);

			} else {

				html += "<td class=\"calDayEmpty\">&nbsp;</td>";

			}

		}

		html += "</tr>";

	}
	html += "<tr><td colspan=\"7\" style=\"border-top: 1px solid #999999;\"><img src=\"blank.gif\" width=\"1\" height=\"5\" border=\"0\" alt=\"\"><br></td></tr>";
	html += "<tr><td align=\"center\" colspan=\"7\">[ <a href=\"javascript:\" onClick=\"hideCal();\" class=\"cal\">schliessen</a> ]</td></tr>\n";
	html += "</table>";
	document.getElementById('cal').innerHTML = html;

}
