﻿//validate
//Body Fat Calculator based on Xcel file made by Brian Deeds
function fixElement(element, message){
	alert(message);
	element.focus();
	return;
}

function validateBodyFat() {
	
	var passed=false;
	
	if ($get('bodyfatgender_male').checked == false && $get('bodyfatgender_female').checked == false)
	{
	fixElement(document.forms[0].gender[0], "Please select a gender");
	}
	else if ($get('bodyfattriceps').value == "")
	{
	fixElement($get('bodyfattriceps'), "Please fill out a tricep measurement");
	}
	else if (isNaN($get('bodyfattriceps').value)){
	fixElement($get('bodyfattriceps'), "Please enter a number in the triceps field");
	}
	else if ($get('bodyfatsuprailiac').value == "")
	{
	fixElement($get('bodyfatsuprailiac'), "Please fill out a suprailiac measurement");
	}
	else if (isNaN($get('bodyfatsuprailiac').value)){
	fixElement($get('bodyfatsuprailiac'), "Please enter a number in the suprailiac field");
	}
	else if ($get('bodyfatumbilicus').value == "")
	{
	fixElement($get('bodyfatumbilicus'), "Please fill out a umbilicus measurement");
	}
	else if (isNaN($get('bodyfatumbilicus').value)){
	fixElement($get('bodyfatumbilicus'), "Please enter a number in the umbilicus field");
	}
	else if ($get('bodyfatthigh').value == "")
	{
	fixElement($get('bodyfatthigh'), "Please fill out a thigh measurement");
	}
	else if (isNaN($get('bodyfatthigh').value)){
	fixElement($get('bodyfatthigh'), "Please enter a number in the thigh field");
	}
	else if ($get('bodyfatweight').value == "")
	{
	fixElement($get('bodyfatweight'), "Please fill out a weight measurement");
	}
	else if (isNaN($get('bodyfatweight').value)){
	fixElement($get('bodyfatweight'), "Please enter a number in the weight field");
	}
	else if ($get('bodyfatage').value == "")
	{
	fixElement($get('bodyfatage'), "Please fill out a age measurement");
	}
	else if (isNaN($get('bodyfatage').value)){
	fixElement($get('bodyfatage'), "Please enter a number in the age field");
	}
		
	else {
		passed = true;
	}

	return passed;
}
	


function calculateBodyFat(){

validateBodyFat();

//reduce to two decimal places
	function decimate(n) {
  		var s = "" + Math.round(n * 100) / 100
  		var i = s.indexOf('.')
  		if (i < 0) return s + ".00"
  		var t = s.substring(0, i + 1) + s.substring(i + 1, i + 3)
  		if (i + 2 == s.length) t += "0"
  		return t
	}
	
	var triceps = parseFloat($get('bodyfattriceps').value);
	
	var suprailiac = parseFloat($get('bodyfatsuprailiac').value);
	
	var umbilicus = parseFloat($get('bodyfatumbilicus').value);
	
	var thigh = parseFloat($get('bodyfatthigh').value);
	
	var weight = parseFloat($get('bodyfatweight').value);
	
	var age = parseFloat($get('bodyfatage').value);
	
	var sum = triceps + suprailiac + umbilicus+thigh;
	
	
//female Body Fat calculations	
	
	if ($get('bodyfatgender_female').checked == true) {
		
		var sum2 = sum*sum;
		var num1 = .29669*sum;
		var num2 = .00043*sum2;
		var num3 = .02963*age;
		var num4  = 1.4072;
		var bf = num1-num2+num3+num4;
		var fatweight = (bf*weight*.01);
		var leanmass = weight-fatweight;
		$get('bodyfatbf').value = decimate(bf);
		$get('bodyfatfatweight').value = decimate(fatweight);
		$get('bodyfatleanmass').value = decimate(leanmass);
	}
	
//Male Body Fat Calculations

	if ($get('bodyfatgender_male').checked == true) {
			
		var sum2 = sum*sum;
		var num1 = .29288*sum;
		var num2 = .0005*sum2;
		var num3 = .15845*age;
		var num4  = 5.76377;
		var bf = num1-num2+num3-num4;
		var fatweight = (bf*weight*.01);
		var leanmass = weight-fatweight;
		$get('bodyfatbf').value = decimate(bf);
		$get('bodyfatfatweight').value = decimate(fatweight);
		$get('bodyfatleanmass').value = decimate(leanmass);	
		
	}
}