/**
 * JS-Funktionen für den Kalender
 */

function LyCal()
{
	var app = this;

	app.addPopupCalendar = function(calendarId, buttonId, inputId, lang)
	{
		if (!lang) lang = 'de';
		var dialog, calendar;
		var calendarContainerId = calendarId + '_container';

		// Kalender erstellen und konfigurieren
		calendar = new YAHOO.widget.Calendar(calendarId,
														{
															LOCALE_WEEKDAYS: "short",
															START_WEEKDAY: 1,
															iframe:false
														} );

		calendar.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
		calendar.cfg.setProperty("MDY_DAY_POSITION", 1);
		calendar.cfg.setProperty("MDY_MONTH_POSITION", 2);
		calendar.cfg.setProperty("MDY_YEAR_POSITION", 3);
		calendar.cfg.setProperty("MD_DAY_POSITION", 1);
		calendar.cfg.setProperty("MD_MONTH_POSITION", 2);

		if (lang == 'de')
		{
			calendar.cfg.setProperty("MONTHS_SHORT",   				["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]);
			calendar.cfg.setProperty("MONTHS_LONG",					["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]);
			calendar.cfg.setProperty("WEEKDAYS_1CHAR",				["S", "M", "D", "M", "D", "F", "S"]);
			calendar.cfg.setProperty("WEEKDAYS_SHORT",				["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]);
			calendar.cfg.setProperty("WEEKDAYS_MEDIUM",				["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]);
			calendar.cfg.setProperty("WEEKDAYS_LONG",				["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
		}

		// Event-Handler für den Dialog konfigurieren
		okHandler = function() {
			var dateString = '';
			var elem = document.getElementById(inputId);

			if (calendar.getSelectedDates().length > 0) {
				var selectedDate = calendar.getSelectedDates()[0];
				dateString += (selectedDate.getDate() > 9)? selectedDate.getDate() : '0' + selectedDate.getDate();
				dateString += '.';
				dateString += (selectedDate.getMonth() > 8)? (selectedDate.getMonth() +1) : '0' + (selectedDate.getMonth() +1);
				dateString += '.';
				dateString += (selectedDate.getFullYear());
			}
			if (elem) elem.value = dateString;
			this.hide();
		}

		cancelHandler = function() {
			this.hide();
		}

		// Dialog-Fenster erstellen und konfigurieren
		dialog = new YAHOO.widget.Dialog(
			calendarContainerId,
			{
				context: [buttonId, "tl", "bl"],
				buttons: [ { text: "OK", isDefault: true, handler: okHandler }, { text: "Abbrechen", handler: cancelHandler } ],
				width: "16em",
				draggable: false,
				close: true
			}
		);

		calendar.render();
		dialog.render();
		dialog.hide();

		calendar.renderEvent.subscribe(function() {
			dialog.fireEvent("changeContent");
		} );

		YAHOO.util.Event.on(buttonId, 'click', function() {
			var elem = document.getElementById(inputId);
			if (elem && elem.value.length > 0) {
				var dummy = elem.value.split('.');
				if (dummy.length == 3) {
					calendar.select(dummy[0] + '.' + dummy[1] + '.' + dummy[2]);
					calendar.render();
				}
			}

			dialog.show();
			if (YAHOO.env.ua.opera && document.documentElement) document.documentElement.className += "";
		} );

		YAHOO.namespace('lynet.cal');
		YAHOO.lynet.cal[calendarId] = calendar;
		YAHOO.lynet.cal[calendarContainerId] = dialog;
	}
}

var lyCal = new LyCal();
