<!-- // Copyright 2004 - Antonio Zamora
// These functions are used in DIET.HTML

function diet_calc(){
   var f = document.forms[0]; // "bmi_input" is 1st form
   var bm, i, fi, ii, i1, kg, htc, minbm, maxbm, m, bmix, j;
   var calmin, calmax, metricsw, gpd;

  // assume metric
  kg = f.wtk.value;
  htc = parseFloat(f.htc.value);
  nkc = parseFloat(f.neckc.value);
  wac = parseFloat(f.waistc.value);
  hic = parseFloat(f.hipc.value);  
  metricsw = 1;
  if ((!chkw(kg)) || (!chkw(htc))) {  // not metric
   metricsw = 0;
   w = f.wt.value;
   v = f.htf.value;
   u = f.hti.value;

    // Validate fields to check for existence of values
    if (!chkw(u) || !chkw(v) || !chkw(w) ){
     alert("Please enter your height and weight.");
     return;
    }
    
    // Convert feet to inches
    ii = parseFloat(f.hti.value);
    fi = parseFloat(f.htf.value * 12);
    i = fi + ii;

    kg = w/2.2;    // convert pounds to kg
    htc = i*2.54;      // convert inches to cm

    nk = parseFloat(f.neck.value);
    nkc = nk*2.54;
    wa = parseFloat(f.waist.value);
    wac = wa*2.54;
    hi = parseFloat(f.hip.value);    
    hic = hi*2.54;
   }  // not metric
   
    if (htc < 100 || htc > 250) {     
	  	alert("Error in height.");
     	return;
    }
    if (kg < 25 || kg > 250) {     
	  	alert("Error in weight.");
     	return;
    }
    
   m = htc/100;  // meters
   h2 = m * m;
   bmi = kg/h2;
   bmix = rounder(bmi);  // bmi rounded to tenths
   f.bmi.value = bmix;   // display on form    
       
    if  (!chkw(wac))  {     // waist 
	    alert("Please enter your waist size.");
     	return;
    }        
    if (  wac < 45 || wac > htc) {     // waist should be smaller than height
	    alert("Error in waist size.");
     	return;
    }     
    
   w2h = (wac/htc) + 0.005;  // round to hundredths
   ii = w2h.toString();
   f.wthr.value = ii.substring(0,4); //w2h.toFixed(2);  // display waist-to-height ratio    
   
    if (!chkw(nkc)) {     
	  	alert("Please enter your neck size.");
     	return;
    }    
    if ( nkc < 20 || nkc > 60) {     
	  	alert("Error in neck size.");
     	return;
    }    

   // check for radio buttons
   sex = " ";
   if (f.sex[0].checked) {
     sex = "m";
	}
	if (f.sex[1].checked) {
     sex = "f";
	}
	if (sex == " ") { 
    alert("Please specify Male or Female");
    return;
  }
  if (f.sex[1].checked) {
    if  (!chkw(hic)) {     
	    alert("Please enter your hip size.");
     	return;
    }   
    if ( hic < 45 || hic > 200) {     
	    alert("Error in hip size.");
     	return;
    }  
  }    

  logcon = Math.LN10;  // ln(10) = 2.302585093;  //  log10(x) = ln(x)/ln(10)
  if (sex == "m") { // male
    calmin = Math.floor(1842 + (htc-150)*15.4 + .5);
    calmax = Math.floor(2488 + (htc-150)*23.6 + .5);
    // compute % body fat
    i = 495/(1.0324 - 0.19077*(Math.log(wac-nkc)/logcon) + 0.15456*(Math.log(htc)/logcon) ) - 450;
  }
  else {  // female
    calmin = Math.floor(1622 + (htc-150)*13.2 + .5);
    calmax = Math.floor(2194 + (htc-150)*19.3 + .5);
    // compute % body fat
    i = 495/(1.29579 - 0.35004*(Math.log(wac+hic-nkc)/logcon) + 0.22100*(Math.log(htc)/logcon) ) - 450;  
  }
  ii = rounder(i);
  ix = rounder(i);
  f.pctfat.value = ii+"%";
  
  // Lean body mass: lbm = wac * (100 - pctfat);
  ii = kg*((100 - i)/100);
  j = " Kg";
  if (metricsw == 0) {
    ii = ii*2.2;
    j = " Lb";
  }
  f.leanbm.value = rounder(ii) + j;
  
   act = " ";
   gpd = 2.0;    // grams of protein per day
   if (f.act[0].checked) {
     act = "0";
     gpd = 2.8;
	 }
   if (f.act[1].checked) {
     act = "1";
     gpd = 3.1;
	 }
   if (f.act[2].checked) {
     act = "2";
     gpd = 3.4;
	 }
	if (act == " ") { 
    alert("Please specify Level of Activity");
    return;
  }
   
   minbm = 18.5;
   maxbm = 24.9;
   ii = Math.floor(gpd * (maxbm * h2));   // (ideal high weight in Kg) * gpd = grams of protein per day
    
   f.out2.value = "";
   if ((bmix >= minbm) && (bmix  <= maxbm) ) {  // normal weight
    f.out.value = "Your weight is in the normal range.";
    if (ix < 10.0) {
      f.out2.value = "You are in great shape! \n";
    }
    else {
      f.out2.value = "You may need to lose some abdominal fat with Xtreme Cuts.\n";
    }
    if (act == "0"){
      f.out2.value = f.out2.value + "Start Max-IT Training progam.\n";
    }
    f.out2.value = f.out2.value + "Minimum caloric requirements: " + calmin + " calories per day\n";
   }  // normal weight
   else {  // not normal weight
    if (bmix < minbm) {  // underweight
     i = rounder(h2*minbm - kg);
     i1 = i*2.2;
     i1 = rounder(i1);
     f.out.value = "You are underweight by "+i+" kilograms ("+i1+" pounds)";
     f.out2.value = "You may need to increase your caloric intake.\n";
     f.out2.value = f.out2.value + "Consume at least " + calmin + " calories per day.\n";
    } // underweight
     if (bmix > maxbm) {  // overweight
      i = rounder(kg - h2*maxbm);
      i1 = i*2.2;
      i1 = rounder(i1);
      f.out.value = "You are overweight by "+i+" Kgs compared to an average person";
      if (ix > 10){
       f.out2.value = "To get in shape you need to do some cardio at least 30 minutes every day as well as weight training.\n";
      }
	  else {
      f.out2.value = "But you are not average, with increased muscle mass!\n";
    }
      f.out2.value = f.out2.value + "Normal caloric requirements: " + calmin + " calories per day\n";
      i = calmin * 0.15;
      v = Math.floor(calmin - i);
      f.out2.value = f.out2.value + "Limit your diet to " + v + " calories per day\n";
      if (metricsw == 0) {
       u = rounder( (i/4086) * 30)
       f.out2.value = f.out2.value + " to lose " + u + " pounds per month.\n";
      }
      else {
       u = rounder( ((i/4086) * 30)/2.2)
       f.out2.value = f.out2.value + "to lose " + u + " Kg per week with Max-IT Training.\n";     
      }

}  // overweight
	 } // not normal weight
	 ic = rounder(ii * 0.7)
     ia = rounder(ii * 0.2)
   f.out2.value = f.out2.value + "\n"; 
   f.out2.value = f.out2.value + "Your diet should contain around;\n"; 
   f.out2.value = f.out2.value + "\n"; 
   f.out2.value = f.out2.value +  ii + " grams of protein per day.\n"; 
   f.out2.value = f.out2.value +  ic + " grams of carbs per day.\n"; 
   f.out2.value = f.out2.value +  ia + " grams of fat per day.\n"; 
}  // compute()

function chkw(w){
   if (isNaN(parseFloat(w))){
      return false;
   } else if (w < 0){
    return false;
   }
   else{
    return true;
   } 
}

function rounder(x) {
  var x1;
   x = x + 0.05;  // round to tenths
   f_bmi = Math.floor(x);
   diff  = Math.floor((x - f_bmi)*10);
   x1 = f_bmi + "." + diff;
  return(x1);
}

function vclear(x) {
   var f = document.forms[0]; 
   if (x == 1){ // English units, clear metric
     f.htc.value = ""; f.neckc.value = ""; f.waistc.value = ""; f.hipc.value = "";
     f.wtk.value = "";
   }
   if (x == 2){  // Metric units, clear English units
     f.htf.value = ""; f.hti.value = "";  f.neck.value = ""; f.waist.value = ""; f.hip.value = "";
     f.wt.value = "";
   }   
   if (x == 3){  // male
     f.hip.value = ""; f.hipc.value = "";
   }      
   f.bmi.value = "";
   f.wthr.value = "";
   f.pctfat.value = "";
   f.leanbm.value = "";
   f.out.value = "";
   f.out2.value = "";
}

//-->
