$(function()
{
	var $bmi = $('#bmi-calculator');
	
	var calculate = function()
	{
		var feet   = $('[name=feet]', $bmi).val();
		var inches = $('[name=inches]', $bmi).val();
		var weight = $('[name=weight]', $bmi).val();
		
		var height = ((Number(feet) * 12) + Number(inches)) * 100;
		var bmi    = Math.round(((Number(weight) * 703) * 10000) / height / height);
		
		$('.directions, .overweight, .obese', $bmi).hide();
		
		if (feet !== '' && inches !== '' && weight !== '' && ! isNaN(bmi))
		{
			$('.category, .number', $bmi).show();
			$('.number', $bmi).html(bmi);
			
			if (bmi < 19) 
			{
				$('.category', $bmi).html('underweight');
			}
			else if (bmi < 25) 
			{
				$('.category', $bmi).html('normal');
			} 
			else if (bmi < 30) 
			{
				$('.category', $bmi).html('overweight');
				$('.overweight', $bmi).show();
			} 
			else if (bmi >= 30) 
			{
				$('.category', $bmi).html('obese');
				$('.obese', $bmi).show();
			}
			
			// Track changes so other forms are filled with the data
			$('.bmi-ft-fill').val(feet);
			$('.bmi-in-fill').val(inches);
			$('.bmi-lbs-fill').val(weight);
		}
		else
		{
			$('.category, .number', $bmi).hide();
			$('.directions', $bmi).show();
		}
	};
	
	$bmi.find('input[type=text]').keyup(calculate).change(calculate);
});

