/* 
 * Datumsauswahl
 *
 * ID: ID des Textfeldes
 */
function DateSelector(id, title) {

	var minDate = new Date();
	minDate.setDate(minDate.getDate()+1);

	var cal1 = new YAHOO.widget.Calendar(id + "_calendar", {
		close: true,
		title: title,
		mindate: minDate
	});

	// Correct formats for Germany: dd.mm.yyyy, dd.mm, mm.yyyy
	cal1.cfg.setProperty("DATE_FIELD_DELIMITER", ".");

	cal1.cfg.setProperty("MDY_DAY_POSITION", 1);
	cal1.cfg.setProperty("MDY_MONTH_POSITION", 2);
	cal1.cfg.setProperty("MDY_YEAR_POSITION", 3);

	cal1.cfg.setProperty("MD_DAY_POSITION", 1);
	cal1.cfg.setProperty("MD_MONTH_POSITION", 2);

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

	// Event für die Selektion eines Datums
	cal1.selectEvent.subscribe(function(type,args,obj) {

		var dates = args[0];
		var date = dates[0];
		var year = date[0], month = date[1], day = date[2];

		if (day < 10) {
			day = "0" + new String(day);
		}

		if (month < 10) {
			month = "0" + new String(month);
		}

		var txtDate = document.getElementById(id);
		txtDate.value = day + "." + month + "." + year;

		this.hide();

	}, cal1, true);

	cal1.render();

	// Event für das Öffnen des Kalenders
	YAHOO.util.Event.addListener(id + "_trigger", "click", function() {

		var dateField = YAHOO.util.Dom.get(id);
		var dateParts = dateField.value.split(".");
		dateParts.reverse();
		this.select(dateField.value);
		
		var selectedDates = this.getSelectedDates();
		if (selectedDates.length > 0) {
			var firstDate = selectedDates[0];
			this.cfg.setProperty("pagedate", (firstDate.getMonth()+1) + "." + firstDate.getFullYear());
		}

		this.render();
		this.show();

		var triggerRegion = YAHOO.util.Dom.getRegion(id + "_trigger");
		var calendarRegion = YAHOO.util.Dom.getRegion(this.oDomContainer);
		YAHOO.util.Dom.setXY(this.oDomContainer, [triggerRegion.right-calendarRegion.width, triggerRegion.bottom]);

	}, cal1, true);
}
