// Bodyfat Calculator
// Copyright - Property of DietandFitnessToday.com 2006
// No part of this document may be reproduced in any form

var anum=/(^\d+$)|(^\d+\.\d+$)/;

function mCalcBodyFat(){

  var mensFrm  = document.mensForm;
  var mChest      = parseFloat(mensFrm.mChest.value);
  var mAbdominal  = parseFloat(mensFrm.mAbdominal.value);
  var mThigh      = parseFloat(mensFrm.mThigh.value);
  var mAge        = parseFloat(mensFrm.mAge.value);

  if (!mChest || !anum.test(mChest)){
      mensFrm.mChest.focus();
      alert('Please type a valid chest measure');
      return;
  }else if (!mAbdominal || !anum.test(mAbdominal)){
      mensFrm.mAbdominal.focus();
      alert('Please type a valid abdominal measure');
      return;
  }else if (!mThigh || !anum.test(mThigh)){
      mensFrm.mThigh.focus();
      alert('Please type a valid thigh measure');
      return;
  }else if (!mAge || !anum.test(mAge)){
      mensFrm.mAge.focus();
      alert('Please type a valid age');
      return;
  }else{
    var bodyFat;
    var bodyDensity;
    var mSum = mChest + mAbdominal + mThigh;
    bodyDensity = 1.10938 - (0.0008267 * mSum) + (0.0000016 * mSum * mSum) - (0.0002574 * mAge);
    bodyFat = ((4.95 / bodyDensity) - 4.50) * 100;
    if (bodyFat <= 0){
      alert('Please check your numbers, the calculation has produced an impossible body fat');
    }else{
      mensFrm.mBodyFat.value=sprintf(bodyFat,2);    
      mensFrm.mBodyDensity.value=sprintf(bodyDensity,2);    
    }
  }
}

function wCalcBodyFat(){

  var womensFrm  = document.womensForm;
  var wTriceps      = parseFloat(womensFrm.wTriceps.value);
  var wSuprailiac   = parseFloat(womensFrm.wSuprailiac.value);
  var wThigh        = parseFloat(womensFrm.wThigh.value);
  var wAge          = parseFloat(womensFrm.wAge.value);

  if (!wTriceps || !anum.test(wTriceps)){
      womensFrm.wTriceps.focus();
      alert('Please type a valid triceps measure');
      return;
  }else if (!wSuprailiac || !anum.test(wSuprailiac)){
      womensFrm.wSuprailiac.focus();
      alert('Please type a valid suprailiac measure');
      return;
  }else if (!wThigh || !anum.test(wThigh)){
      womensFrm.wThigh.focus();
      alert('Please type a valid thigh measure');
      return;
  }else if (!wAge || !anum.test(wAge)){
      womensFrm.wAge.focus();
      alert('Please type a valid age');
      return;
  }else{
    var bodyFat;
    var bodyDensity;
    var wSum = wTriceps + wSuprailiac + wThigh;
    bodyDensity = 1.0994921 - (0.0009929 * wSum) + (0.0000023 * wSum * wSum) - (0.0001392 * wAge);
    bodyFat = ((4.95 / bodyDensity) - 4.50) * 100;
    if (bodyFat <= 0){
      alert('Please check your numbers, the calculation has produced an impossible body fat');
    }else{
      womensFrm.wBodyFat.value=sprintf(bodyFat,2);    
      womensFrm.wBodyDensity.value=sprintf(bodyDensity,2);    
    }
  }
}

function mReset(){

  var mensFrm  = document.mensForm;

  mensFrm.mAbdominal.value='';
  mensFrm.mChest.value='';
  mensFrm.mThigh.value='';
  mensFrm.mAge.value='';
  mensFrm.mBodyFat.value='';
  mensFrm.mBodyDensity.value='';

}



function wReset(){

  var womensFrm  = document.womensForm;

  womensFrm.wTriceps.value='';
  womensFrm.wSuprailiac.value='';
  womensFrm.wThigh.value='';
  womensFrm.wAge.value='';
  womensFrm.wBodyFat.value='';
  womensFrm.wBodyDensity.value='';
}


function sprintf(num, decimalNum){
  var tmpNum = num;

  // Return the right number of decimal places
  tmpNum *= Math.pow(10,decimalNum);
  tmpNum = Math.floor(tmpNum);
  tmpNum /= Math.pow(10,decimalNum);
  var tmpStr = new String(tmpNum);

  return tmpStr;
}

