function setDeliveryOptions(date, method, price) {
    $('SimpleCartItemDeliveryDate').value = date;
    $('SimpleCartItemDeliveryMethod').value = method;
    $('SimpleCartItemDeliveryPrice').value = price;
}

function calenderShakeOnBadClick() {
	$$('td.calendar_day.not_available').invoke('observe', 'click',
		function(event) {
			new Effect.Shake('my_cal', {distance: 2, queue: {scope: 'cal_shake'}});
		}
	);
}

function calendarHighlightOnGoodClick() {
	$$('td.calendar_day.is_available').invoke('observe', 'click',
		function(event) {
			Effect.Queues.get('delivery_options').invoke('cancel');
			new Effect.Highlight(
				'delivery_options_highlighter',
				{startcolor: '#ffff99', endcolor: '#ffffff', restorecolor: '#ffffff', queue: {scope: 'delivery_options'}}
			);
		}
	);
}

function stopCalendarDayLinks() {
	$$('#calendar_table .calendar_day a').invoke('observe', 'click', function(event) { event.preventDefault(); });
}

function DeliveryCalendar() {
	this.modelName = 'MyModel';

	this.setModelName = function(modelName) {
		this.modelName = modelName;
	}
	this.publish = function(date, method, price) {
	    $(this.modelName + 'DeliveryDate').value = date;
	    $(this.modelName + 'DeliveryMethod').value = method;
	    $(this.modelName + 'DeliveryPrice').value = price;
	}
	
}

deliveryCalendar = new DeliveryCalendar();

// Things to do after the page loads
Event.observe(document, 'dom:loaded',
	function(event) {

		stopCalendarDayLinks();
		calenderShakeOnBadClick();
		calendarHighlightOnGoodClick();

	}
);
