// 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 mAbdomen = mensFrm.mAbdomen.value;
  var mHeight  = mensFrm.mHeight.value;
  var mNeck    = mensFrm.mNeck.value;
  var mUnits   = mensFrm.mUnits.options[mensFrm.mUnits.selectedIndex].value;

  if (!mAbdomen || !anum.test(mAbdomen)){
      mensFrm.mAbdomen.focus();
      alert('Please type a valid abdomen measure');
      return;
  }else if (!mHeight || !anum.test(mHeight)){
      mensFrm.mHeight.focus();
      alert('Please type a valid height measure');
      return;
  }else if (!mNeck || !anum.test(mNeck)){
      mensFrm.mNeck.focus();
      alert('Please type a valid neck measure');
      return;
  }else{
    var bf;
    mAbdomen   = mAbdomen/mUnits;
    mHeight    = mHeight/mUnits;
    mNeck      = mNeck/mUnits;
    circumference = 86.010 * (Math.log(mAbdomen - mNeck) / Math.log(10));
    mHeight    = 70.041 * (Math.log(mHeight) / Math.log(10));
    bf = circumference - mHeight + 36.76;
    if (bf <= 0){
      alert('Please check your numbers, the calculation has produced an impossible body fat');
    }else{
      mensFrm.mBodyFat.value=sprintf(bf,2);    
    }
  }

  //  metre = (+metre) + (inches * 0.0254);

}

function mReset(){

  var mensFrm  = document.mensForm;

  mensFrm.mAbdomen.value='';
  mensFrm.mNeck.value='';
  mensFrm.mHeight.value='';
  mensFrm.mBodyFat.value='';
}


function wCalcBodyFat(){

  var womensFrm  = document.womensForm;
  var wWaist   = womensFrm.wWaist.value;
  var wHips    = womensFrm.wHips.value;
  var wHeight  = womensFrm.wHeight.value;
  var wNeck    = womensFrm.wNeck.value;
  var wUnits   = womensFrm.wUnits.options[womensFrm.wUnits.selectedIndex].value;

  if (!wWaist || !anum.test(wWaist)){
      womensFrm.wWaist.focus();
      alert('Please type a valid waist measure');
      return;
  }else if (!wHips || !anum.test(wHips)){
      womensFrm.wHips.focus();
      alert('Please type a valid hips measure');
      return;
  }else if (!wHeight || !anum.test(wHeight)){
      womensFrm.wHeight.focus();
      alert('Please type a valid height measure');
      return;
  }else if (!wNeck || !anum.test(wNeck)){
      womensFrm.wNeck.focus();
      alert('Please type a valid neck measure');
      return;
  }else{
    var bf;
    wNeck = wNeck/wUnits;
    wWaist= wWaist/wUnits;
    wHips = wHips/wUnits;
    wHeight = wHeight/wUnits;
    circumference = 163.205 * (Math.log(wWaist + wHips - wNeck) / Math.log(10));
    wHeight = 97.684 * (Math.log(wHeight) / Math.log(10));
    bf = circumference - wHeight - 78.387;
    if (bf <= 0){
      alert('Please check your numbers, the calculation has produced an impossible body fat');
    }else{
      womensFrm.wBodyFat.value=sprintf(bf,2);    
    }
  }

  //  metre = (+metre) + (inches * 0.0254);

}

function wReset(){

  var womensFrm  = document.womensForm;

  womensFrm.wWaist.value='';
  womensFrm.wHips.value='';
  womensFrm.wNeck.value='';
  womensFrm.wHeight.value='';
  womensFrm.wBodyFat.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;
}

