$(document).ready(function() {
    initModule();

    $('#cal-metric').click(function() {
        calculateBmiInMetric();
    });

    $('#cal-imperial').click(function() {
        calculateBmiInImperial();
    });

    $('p.select-unit a').click(function() {
        clearForm();
        return false;
    });
});
	
function initModule(){ 
	$('#cm').numeric();
	$('#kg').numeric();
	$('#foot').numeric();
	$('#inche').numeric();
	$('#pound').numeric();
	$('p.select-unit').tabs('div.panes > div');
	$('#whatsbmi').tooltip({ effect: 'slide' });  
}
	
function calculateBmiInMetric(){
   var kg = $('#kg').val();
   var cm = $('#cm').val();
   //validation
   if (kg == '' || cm ==''){
	alert('Please enter height and weight');
	return;
   }
	
   var m = cm/100;
   var h2 = m * m;
   var bmi = kg/h2;
   var f_bmi = Math.floor(bmi);
   var diff  = bmi - f_bmi;
   diff = diff * 10;
   diff = Math.round(diff);
   if (diff == 10){
	  // Need to bump up the whole thing instead
	  f_bmi += 1;
	  diff = 0;
   }
   bmi = f_bmi + "." + diff;
   hightlightResult(bmi);
}

function calculateBmiInImperial(){
   var lbs = $('#pound').val();
   var feet = $('#foot').val();
   var inches = $('#inche').val();

   //validation
   if (lbs == '' || feet =='' || inches ==''){
	alert('Please enter height and weight');
	return;
   }
   
   lbs = parseInt(lbs);
   feet = parseInt(feet);
   inches = parseInt(inches);
   var ins = feet * 12 + inches * 1.0;

   var h2 = ins * ins;
   var bmi = lbs/h2 * 703
   var f_bmi = Math.floor(bmi);
   var diff  = bmi - f_bmi;
   diff = diff * 10;
   diff = Math.round(diff);

   if (diff == 10){    // Need to bump up the whole thing instead
	  f_bmi += 1;
	  diff = 0;
   }
   
   bmi = f_bmi + "." + diff;
   hightlightResult(bmi);
}

function hightlightResult(bmi){
	$('.bmi-result').html('Your BMI: <b>'+bmi+'</b>').show('highlight', {}, 2000);
	$('#status tr').removeClass('result');
	if(bmi < 18.5)
		$('#underweight').addClass('result').show('highlight', {}, 2000);
	if(bmi >= 18.5 && bmi < 25)
		$('#normal').addClass('result').show('highlight', {}, 2000);
	if(bmi >= 25 && bmi < 30)
		$('#overweight').addClass('result').show('highlight', {}, 2000);
	if(bmi >= 30)
		$('#obese').addClass('result').show('highlight', {}, 2000);
}

function clearForm(){
	$('#status tr').removeClass('result');
	$('.bmi-result').hide();
}