// Determine gender value from radio buttons
function getGenderValue(form)
{
	//initial
	gender=0;

	for (var i=0; i < form.gender.length; i++)
		{
			if (form.gender[i].checked)
			{
		     	var gender = form.gender[i].value;
		    }	
		}
 			return gender;
}

// Determine weight metric from radio buttons
function getWeightMetricValue(form)
	{
	//initial
	weightMetric=0;

	for (var i=0; i < form.weightmetric.length; i++)
	   	{
	   	if (form.weightmetric[i].checked)
	   	   {
	   	   var weightMetric = form.weightmetric[i].value;
	   	   }
	   	}
	 		return weightMetric;
}

// Validates that a radio button is not empty
function validateEmptyRadioButton(elem, helperMsg)
{
	if(elem == 0)
	{
		alert(helperMsg);
		//elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

// Validates that a text field is not empty
function validateEmptyTextField(elem, helperMsg)
{
	if(elem.length == 0)
	{
		alert(helperMsg);
		//elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

// Validates that the text feild is numerical
function validateNumeric(elem, helperMsg)
{

	if(isNaN(elem))
	{
		alert(helperMsg);
		//elem.focus();
		return false;
	}
	else
	{
		return true;
	}
}

// This function calculates bmr 
function bmrCalc(gender,weight,feet,inches,age)
{	
	var inches=parseInt(inches);

	if (gender=='Male')
	{
		weight=weight*13.7;
		height=(feet*12)+inches;
		height=height*2.54;  //convert to cm.
		height=height*5;
		age=age*6.8;
		
		bmr=66+weight+height-age;
		bmr=Math.round(bmr);
		return bmr;
	}
	else
		weight=weight*9.6;
		height=(feet*12)+inches;		
		height=height*2.54;  //convert to cm.
		height=height*1.8;
		age=age*4.7;
		
		bmr=655+weight+height-age;
		bmr=Math.round(bmr);
		return bmr;
}

//Main
function calculateBMR(form) 
{
	// variables start here 
	var weight=form.weight.value;
	var feet=form.feet.value;
	var inches=form.inches.value;
	var age=form.age.value;
	var gender=getGenderValue(form);
	var weightMetric=getWeightMetricValue(form);
	//variables end here 

	// start validation of the form here 
	validateEmptyRadioButton(gender,'Please choose your gender.');
	validateEmptyRadioButton(weightMetric,'Please choose a weight metric.');
	validateEmptyTextField(weight,'Please enter your weight.');
	validateEmptyTextField(feet,'Please enter feet.');
	validateEmptyTextField(inches,'Please enter inches.');
	validateEmptyTextField(age,'Please enter your age.');
	validateNumeric(weight,'Please only enter numbers in the fields.');
	validateNumeric(feet,'Please only enter numbers in the fields.');
	validateNumeric(inches,'Please only enter numbers in the fields.');
	validateNumeric(age,'Please only enter numbers in the fields.');
	//end validation of the form here
	
	// if metric equals to pounds then convert to kilograms
	if (weightMetric=="pounds")
		var weight=weight/2.2;

	// calculate bmr
	bmrCalc(gender,weight,feet,inches,age);

	form.bmr.value = bmr;
}

