var Meals = Class.create({
	initialize: function() {
		this.incrementValue			=	0.5;
		this.addClass				=	'.add_one';
		this.removeClass			=	'.remove_one';
		this.addClassStripped		=	this.addClass.gsub(/\./,'');
		this.removeClassStripped	=	this.removeClass.gsub(/\./,'');
		this.addButtons				=	$$(this.addClass);
		this.removeButtons			=	$$(this.removeClass);
		
		this._monitorButtons(this.addButtons);
		this._monitorButtons(this.removeButtons);
	},
	
	_monitorButtons: function(button) {
		for (var i=0; i < button.length; i++) {
			button[i].observe('click',this._triggerClicked.bindAsEventListener(this));
		}
	},
	
	_triggerClicked: function(e) {
		Event.stop(e);
		
		var trigger = this._getLinkSource(e);
		
		// Get the field to update
		var targetField = trigger;
		
		// get the value of the field
		var currValue = $(trigger).value || 0;
		
		if ($(e.element()).hasClassName(this.addClassStripped)) {
			$(trigger).value = parseFloat(currValue) + this.incrementValue;
			
		} else if ($(e.element()).hasClassName(this.removeClassStripped)) {
			if ($(trigger).value > 0) {
				$(trigger).value = parseFloat(currValue) - this.incrementValue;
			}
		}
	},
	
	_getLinkSource: function(e) {
		var link = e.element().readAttribute('href').gsub('#','');
		return link;
	}
});