// Create function to create virtual local namespace and immediately run it.
(function(){
	// Init object
	var ArticLand =
	{
	};

	// Assign hsw to global namespace
	window.ArticLand = ArticLand;
})();

ArticLand.iceEstimator = {
	drinkFormIsValid: function ()
	{
		var eventtype = $('input:radio:checked').val();
		var numguests = $('#drinkice_guests').val();

		if (eventtype === undefined)
		{
			$('#error').text("Please choose an event type.");
			$('input:radio').parents('label').css('border', '2px solid red');
			$('#error').fadeIn();
			return false;
		}
		else if (isNaN(numguests) || numguests == "")
		{
			$('input:radio').parents('label').css('border', null);
			
			$('#error').text("Please enter a valid number of guests.");
			$('#drinkice_guests').css('border', '2px solid red');
			$('#error').fadeIn();
			return false;
		}

		$('#error').fadeOut();
		$('input:radio').parents('label').css('border', null);
		$('#drinkice_guests').css('border', null);
		return true;
	},

	icingFormIsValid: function()
	{
		var numcases = $('#cases_start').val();
		var numxtracases = $('#cases_additional').val();

		if (isNaN(numcases) || numcases == "")
		{
			$('#error').text("Please enter a valid number of starting cases.");
			$('#cases_start').css('border', '2px solid red');
			$('#error').fadeIn();
			return false;
		}
		else if (isNaN(numxtracases))
		{
			$('#cases_start').css('border', null);
			
			$('#error').text("Please enter a valid number of additional cases.");
			$('#cases_additional').css('border', '2px solid red');
			$('#error').fadeIn();
			return false;
		}

		$('#error').fadeOut();
		$('#cases_start').css('border', null);
		$('#cases_additional').css('border', null);
		return true;
	},

	calculateDrinkForm: function ()
	{
		if (ArticLand.iceEstimator.drinkFormIsValid())
		{
			var eventtype = $('input:radio:checked').val();
			var numguests = $('#drinkice_guests').val();
			var amountice = 0;

			if (eventtype === "full")
				amountice = parseInt(Math.round(numguests * 1.2));
			else if (eventtype === "fast")
				amountice = parseInt(Math.round(numguests * 1));
			else if (eventtype === "cocktail")
				amountice = parseInt(Math.round(numguests * 3.6));
			else if (eventtype === "outdoor")
				amountice = parseInt(Math.round(numguests * 1.5));

			var numbags = Math.ceil(amountice / 40);

			$('#drinkice_bagcount').val(numbags);
		}
	},

	calculateIcingForm: function ()
	{
		if (ArticLand.iceEstimator.icingFormIsValid())
		{
			var numcases = $('#cases_start').val();
			var numxtracases = $('#cases_additional').val();

			var multiplier = 20;
			var xtramultiplier = multiplier / 2;

			var amountice = numcases * multiplier;

			var xtraamount = numxtracases * xtramultiplier;

			var amountice = amountice + xtraamount;

			var numbags = Math.ceil(amountice / 40);

			$('#icing_bagcount').val(numbags);
		}
	}
}

$(document).ready(function ()
{
	$('#drinkice_bagcount').attr('readonly', true);
	$('#icing_bagcount').attr('readonly', true);
	
	$('#drinkice_calculate').click(ArticLand.iceEstimator.calculateDrinkForm);
	$('#icing_calculate').click(ArticLand.iceEstimator.calculateIcingForm);
});
