YAHOO.namespace("booking");

YAHOO.booking.initCalendars = function(currentDateString , options) {
	var currentDate = YAHOO.calendar.common.ddMMyyyyToDate(currentDateString);
	
	options.each(function(calendarOptions) {
		if (calendarOptions) {
			var calendar = new YAHOO.widget.Calendar(null, calendarOptions.container.id);
			calendar.opt = calendarOptions;
			calendar.cfg.setProperty("mindate", YAHOO.calendar.common.ddMMyyyyToDate(calendarOptions.mindate));
			calendar.cfg.setProperty("maxdate", YAHOO.calendar.common.ddMMyyyyToDate(calendarOptions.maxdate));
			YAHOO.calendar.common.translate(calendar);
			var selectedDate = YAHOO.calendar.common.ddMMyyyyToDate(calendarOptions.input.getValue());
			if (selectedDate != null) {
				calendar.select(selectedDate);
			} else {
				selectedDate = YAHOO.calendar.common.ddMMyyyyToDate(calendarOptions.mindate);
			}
			calendar.cfg.setProperty("pagedate", selectedDate); 				
			calendar.render();
			Event.observe(calendarOptions.button, "click", function(event) {
				YAHOO.booking.showCalendar(calendar); 
			});
			calendar.selectEvent.subscribe(YAHOO.booking.handleSelect, calendar, true);
			
			YAHOO.calendar.common.calendars.push(calendar);
			Event.observe(calendarOptions.container, "click", function(event) {
				YAHOO.calendar.common.lastClicked = calendar; 
			});
		}
	});
}


YAHOO.booking.showCalendar = function(calendar) {
	YAHOO.calendar.common.lastClicked = calendar;
	var selectedDate = calendar.getSelectedDates()[0];
	if (selectedDate != null) {
		calendar.cfg.setProperty("pagedate", selectedDate); 				
	}
	calendar.render();
	calendar.show();
}

YAHOO.booking.handleSelect = function(type,args,calendar) {
    var date = args[0][0]; 
    var year = "" + date[0], month =  "" + date[1], day = "" + date[2];
    month = month.length != 2 ? "0" + month : month; 
    day = day.length != 2 ? "0" + day : day;
    calendar.opt.input.setValue(day + "." + month + "." + year);
    calendar.hide();
}