/**
 * JS-Funktionen für den Kalender
 */
var inputType = '';
var inputId = '';
var selectDayId = '';
var selectMonId = '';
var selectYearId = '';
var buttons = '';

YAHOO.util.Event.onDOMReady(function() {
	YAHOO.namespace('cal');
	if (!lang) var lang = 'de';
	// Kalender erstellen und konfigurieren
	YAHOO.cal.calendar = new YAHOO.widget.Calendar('cal',
											{
												LOCALE_WEEKDAYS: "short",
												START_WEEKDAY: 1,
												iframe:false
											} );

		YAHOO.cal.calendar.cfg.setProperty("DATE_FIELD_DELIMITER", ".");
		YAHOO.cal.calendar.cfg.setProperty("MDY_DAY_POSITION", 1);
		YAHOO.cal.calendar.cfg.setProperty("MDY_MONTH_POSITION", 2);
		YAHOO.cal.calendar.cfg.setProperty("MDY_YEAR_POSITION", 3);
		YAHOO.cal.calendar.cfg.setProperty("MD_DAY_POSITION", 1);
		YAHOO.cal.calendar.cfg.setProperty("MD_MONTH_POSITION", 2);
	if(lang == 'de')
	{
		YAHOO.cal.calendar.cfg.setProperty("MONTHS_SHORT",   				["Jan", "Feb", "M\u00E4r", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"]);
		YAHOO.cal.calendar.cfg.setProperty("MONTHS_LONG",					["Januar", "Februar", "M\u00E4rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]);
		YAHOO.cal.calendar.cfg.setProperty("WEEKDAYS_1CHAR",				["S", "M", "D", "M", "D", "F", "S"]);
		YAHOO.cal.calendar.cfg.setProperty("WEEKDAYS_SHORT",				["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"]);
		YAHOO.cal.calendar.cfg.setProperty("WEEKDAYS_MEDIUM",				["Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"]);
		YAHOO.cal.calendar.cfg.setProperty("WEEKDAYS_LONG",				["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]);
	}


	/*cancelHandler = function() {
		this.hide();
	}

	okHandler = function() {
		var dateString = '';
		switch(inputType)
		{
			case 'input':
				var elem = document.getElementById(inputId);

				if (YAHOO.cal.calendar.getSelectedDates().length > 0) {
					var selectedDate = YAHOO.cal.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;
				break;
			case 'select':
				if (YAHOO.cal.calendar.getSelectedDates().length > 0) {
					var selectedDate = YAHOO.cal.calendar.getSelectedDates()[0];
					document.getElementById(selectDayId).options[selectedDate.getDate()-1].selected = true;
					document.getElementById(selectMonId).options[selectedDate.getMonth()].selected = true;
					document.getElementById(selectYearId).options[(selectedDate.getFullYear()-document.getElementById(selectYearId).options[0].value)].selected = true;
				}
				break;
		}
		inputType = '';
		inputId = '';
		selectDayId = '';
		selectMonId = '';
		selectYearId = '';
		this.hide();
	}*/

	 // Dialog-Fenster erstellen und konfigurieren
	YAHOO.cal.dialog = new YAHOO.widget.Dialog(
		'cal_container',
		{
			//buttons: [ { text: "OK", isDefault: true, handler: cancelHandler }, { text: "Abbrechen", handler: cancelHandler } ],
			//width: "16em",
			draggable: false,
			close: true
		}
	);

	YAHOO.cal.calendar.render();
	YAHOO.cal.dialog.render();
	YAHOO.cal.dialog.hide();

	YAHOO.cal.calendar.renderEvent.subscribe(function() {
		YAHOO.cal.dialog.fireEvent("changeContent");
	} );


	YAHOO.cal.calendar.selectEvent.subscribe(function() {
		if (YAHOO.cal.calendar.getSelectedDates().length > 0) {

			var selDate = YAHOO.cal.calendar.getSelectedDates()[0];

			// Pretty Date Output, using Calendar's Locale values: Friday, 8 February 2008
			var wStr = YAHOO.cal.calendar.cfg.getProperty("WEEKDAYS_LONG")[selDate.getDay()];
			var dStr = selDate.getDate();
			var mStr = YAHOO.cal.calendar.cfg.getProperty("MONTHS_LONG")[selDate.getMonth()];
			var yStr = selDate.getFullYear();

			var dateString = '';
			switch(inputType)
			{
				case 'input':
					var elem = document.getElementById(inputId);

					if (YAHOO.cal.calendar.getSelectedDates().length > 0) {
						var selectedDate = YAHOO.cal.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;
					break;
				case 'select':
					if (YAHOO.cal.calendar.getSelectedDates().length > 0) {
						var selectedDate = YAHOO.cal.calendar.getSelectedDates()[0];
						document.getElementById(selectDayId).options[selectedDate.getDate()-1].selected = true;
						document.getElementById(selectMonId).options[selectedDate.getMonth()].selected = true;
						document.getElementById(selectYearId).options[(selectedDate.getFullYear()-document.getElementById(selectYearId).options[0].value)].selected = true;
					}
					break;
			}
		}

		inputType = '';
		inputId = '';
		selectDayId = '';
		selectMonId = '';
		selectYearId = '';
		YAHOO.cal.dialog.hide();
	});

	YAHOO.util.Event.on(document, "click", function(e) {

		var el = YAHOO.util.Event.getTarget(e);
	   var dialogEl = YAHOO.cal.dialog.element;
		buttons = buttons.replace(/^&/, '');
	   var button = buttons.split('&');
		var showBtn = '';
		var close = true;

		for(i = 0; i <= 100; i++)
		{
			showBtn = YAHOO.util.Dom.get(button[i]);
			if(showBtn)
			{
				//var showBtn = YAHOO.util.Dom.get("arrival");
				if (el == showBtn || YAHOO.util.Dom.isAncestor(showBtn, el)) {
					close = false;
					i = 101;
				}
			}
			else
				i = 101;
		}

		if(el != dialogEl && !YAHOO.util.Dom.isAncestor(dialogEl, el) && close)
			YAHOO.cal.dialog.hide();
	});
});

function setHeadline(headline)
{
	document.getElementById('cal_container_hd').innerHTML = headline;
}

function bindPopupCalendar(button, type, finputId, fselectDayId, fselectMonId, fselectYearId)
{
	inputType = type;
	inputId = finputId;
	selectDayId = fselectDayId;
	selectMonId = fselectMonId;
	selectYearId = fselectYearId;
	YAHOO.cal.dialog.cfg.setProperty('context', [button, "tl", "bl"]);
	YAHOO.cal.dialog.show();
}
