function applyCalendar(textBoxId, buttonId, monthStrings, dayStrings)
{
	var textBox = YAHOO.util.Dom.get(textBoxId);
	var hidden = YAHOO.util.Dom.get(textBoxId + '_hidden');
	
	function zeroPad(n, digits)
	{
		n = n.toString();
		while (n.length < digits) n = '0' + n;
		return n;
	}

	var calendarMenu;
	calendarMenu = new YAHOO.widget.Overlay("calendarmenu_" + textBox.id, { visible: false });
	calendarMenu.element.className += ' skin-ya';
	calendarMenu.setBody(" ");
	calendarMenu.body.id = "calendarcontainer_" + textBox.id;
	calendarMenu.align();

	var calendar = new YAHOO.widget.Calendar("calendar_" + textBox.id, calendarMenu.body);
	textBox.calendar = calendar;
	calendar.cfg.setProperty('locale_weekdays', '1char');
	calendar.cfg.setProperty('locale_months', 'short');
	if (monthStrings)
		calendar.cfg.setProperty("MONTHS_SHORT",  monthStrings);
	if (dayStrings)
		calendar.cfg.setProperty("WEEKDAYS_1CHAR", dayStrings);
	if (hidden.value)
		calendar.select(new Date(parseInt(hidden.value.substr(6, 4)), parseInt(hidden.value.substr(3, 2)) - 1, parseInt(hidden.value.substr(0, 2))));

	var button = new YAHOO.widget.Button(buttonId, {
										type: "menu",
										menu: calendarMenu});
	button.on("click", function() {
		calendar.render();
		this.unsubscribe("click", onButtonClick);
	});

	YAHOO.util.Event.on(calendarMenu.element, "keydown", function (p_oEvent)
		{
			if (YAHOO.util.Event.getCharCode(p_oEvent) === 27)
			{
				calendarMenu.hide();
				this.focus();
			}

		}, null, this);

	calendar.selectEvent.subscribe(function () {
		var dates = calendar.getSelectedDates();
		var selectedDate = dates[0];
		textBox.value = zeroPad(selectedDate.getDate(), 2) + '/' + zeroPad(selectedDate.getMonth() + 1, 2) + '/' + selectedDate.getFullYear();
		hidden.value = zeroPad(selectedDate.getDate(), 2) + '-' + zeroPad(selectedDate.getMonth() + 1, 2) + '-' + selectedDate.getFullYear() + '-00-00';

		calendarMenu.hide();
	});
}
