

function calcRatio(obj) {
  
   obj2 = document.YMCAForm;
   
	if (!obj.gender[0].checked && !obj.gender[1].checked) {
      alert("Click either male or female");
      return; }

   if (!IsNum(obj.site1.value)) {  alert("Enter site 1 ");
      return; }
      
      if (!IsNum(obj.site3.value)) {alert("Enter site 2 i");
      return; }
      if (!IsNum(obj.site3.value)) {alert("Enter site 3");
      return; }
   if(!IsNum(obj.age.value) || obj.age.value < 17 ) {
  	 alert("Age must be greater than 18 years.")
  	 return;
   }

   var site1     = eval(obj.site1.value);
   var site2     = eval(obj.site2.value);   
   var site3     = eval(obj.site3.value);    
   
      
   // assess risk.
  
  var constA, constB, constC, constD, error;
  var err1, err2, err3, err4;
  
  
   
   if (obj.gender[0].checked) { // men
        
   		if(obj.age.value < 26.5){
   		
   		constA = 25.91 +  (site1-7)/(22-7)   * (81.42-25.91);
   		constB = 27.56 +  (site2-21)/(42-21) *( 55.11-27.56);
   		constC = -(38.01 + (site3-7)/(22-7)  *(119.45-38.01));
   		constD = -10.2;
   		
   		err1 = 0.25   *  (81.42-25.91)/(22-7);
   		err2= 0.25   * ( 55.11-27.56)/(42-21);
   		err3= 0.25   * (119.45-38.01)/(22-7);
   		
   		error = ( Math.sqrt( (err1*err1 +  err2*err2  + err3*err3)/3 ) );
   		
   		}
   		else {
   		//obj2.gender[1].checked;
   		
   		constA = 29.34 +   (site1-28.)	/(49-28)   	* (51.35-29.34);
   		constB = 22.84 +   (site2-25.5)/(45-25.5) 	*( 40.30-22.84);
   		constC = -(21.01 + (site3-7)	/(18.25-7)  	*(54.78-21.01));
   		constD = -15.;
   		
   		err1 = 0.25   * (51.35-29.34)/(49-28);
   		err2= 0.25   * ( 40.30-22.84)/(45-25.5);
   		err3= 0.25   * (54.78-21.01)/(18.25-7);
   		
   		error = ( Math.sqrt( (err1*err1 +  err2*err2  + err3*err3)/3 ) );
   	
   		
   		}
   	
   }//-------------------------
   else {  // women
   		if(obj.age.value < 26.5){
   		
   		constA = 26.74 +   (site1-20)	/(40-20)   	* (53.47-26.74 );
   		constB = 29.13 +   (site2-14)	/(34-14) 	* (70.74-29.13);
   		constC = -(25.86 + (site3-6)	/(20-6)  	* (86.21-25.86));
   		constD = -19.6;
   		
   		err1 = 0.25   * (53.47-26.74 )/(40-20);
   		err2= 0.25   *  (70.74-29.13)/(34-14) ;
   		err3= 0.25   * (86.21-25.86)/(20-6);
   		
   		error = ( Math.sqrt( (err1*err1 +  err2*err2  + err3*err3)/3 ) );
   		
   		}
   		else {
   		constA = 29.69 +   (site1-25)	/(45-25)   	* (53.44-29.69);
   		constB = 17.31 +   (site2-14)	/(34-14) 	*( 42.04-17.31);
   		constC = -(14.46 + (site3-10)	/(25-10)  	*(36.15-14.46));
   		constD = -19.6;
   		
   		err1 = 0.25   *  (53.44-29.69)/(45-25);
   		err2= 0.25   *  ( 42.04-17.31)/(34-14);
   		err3= 0.25   * (36.15-14.46)/(25-10) ;
   		
   		error = ( Math.sqrt( (err1*err1 +  err2*err2  + err3*err3)/3 ) );
   		
   		}
  	
 	}
 	
 	obj.A.value=Math.round(constA*10)/10;
 	obj.B.value=Math.round(constB*10)/10;
 	obj.C.value=Math.round(constC*10)/10;
 	obj.D.value=Math.round(constD*10)/10;
 	
 	obj.bodyFat.value = Math.round((constA+constB+constC+constD)*10)/10;
   	obj.bodyFatError.value = Math.round(error*10)/10;
   
}

function sitesAre(obj) {
 if (obj.gender[0].checked) { // men
   		if(obj.age.value < 26.5){
   		
   		obj.site1Is.value = "upper arm";
   		obj.site2Is.value = "abdomen"; 
   		obj.site3Is.value ="forearm";
   		
   		}
   		else {
   		
   		obj.site1Is.value = "buttocks";
   		obj.site2Is.value = "abdomen"; 
   		obj.site3Is.value ="forearm";
   		
   		
   		}
   	
   }//-------------------------
   else {  // women
   		if(obj.age.value < 26.5){
   		
   		obj.site1Is.value = "abdomen";
   		obj.site2Is.value = "thigh"; 
   		obj.site3Is.value ="forearm";
   		
   		}
   		else {
   		obj.site1Is.value = "abdomen";
   		obj.site2Is.value = "thigh"; 
   		obj.site3Is.value ="calf";
   		}
  	
 	}
 	
 if (!IsNum(obj.age.value) || obj.age.value < 5 ) { 
        obj.site1Is.value = "wait";
   		obj.site2Is.value = "wait"; 
   		obj.site3Is.value ="wait"; }

}
//-----------------------------------------
function calcNavy(){	

obj1=document.NavyForm;
obj2 = document.formulaForm;


/*Navy method 	
	WOMEN: R= .85, SEE= 3.72 %fat for n=214
     %Fat=495/(1.29579-.35004(log(abd1+hip-neck))+.22100(log(height)))-450 

     MEN: R= .90, SEE=3.52 %fat for n=602
     %Fat=495/(1.0324-.19077(log(abd2-neck))+.15456(log(height)))-450 


*/

/*  This method just doesn't seem to work, and I can't get the values to 
match the example. I've treid log 10, I've tried natural log.....

 if (!IsNum(obj1.neck.value)) {  alert("Enter neck ");
      return; }
 if (!IsNum(obj1.waist.value)) {  alert("Enter waist or abdomen ");
      return; }
 if (!IsNum(obj1.feet.value)) {  alert("Enter height ");
      return; }
 if (!IsNum(obj1.inch.value)) {  obj1.inch.value = 0;
      return; }

var widths;
var denom;
var fat; 
var height;
var conver = Math.log(10); // to convert log to base 10
conver = 1;

height = eval(obj1.feet.value)+eval(obj1.inch.value);

if (obj1.gender[0].checked) { // man
    obj2.gender[0].checked
	widths =   eval(obj1.waist.value)-eval(obj1.neck.value);
	denom = 1.0324-.19077*Math.log(widths)+.15456*Math.log(height) ;
	
	
}
else {
 	obj2.gender[0].checked
 	if (!IsNum(obj1.hip.value)) {  alert("Enter hip ");
      return; }
 	widths =   eval(obj1.hip.value) + eval(obj1.waist.value)-eval(obj1.neck.value);
 	denom = 1.29579-.35004*Math.log(widths)/conver+.22100*Math.log(height)/conver ;
 	
 	
obj1.A.value = 1.29579;
obj1.B.value =.35004* Math.log(widths)/conver ;
obj1.C.value = .22100 *Math.log(height)/conver;
obj1.D.value = widths;

}
fat = 495/denom - 450;

obj1.bodyFat.value = fat;

*/


   
}

function calcYMCA(){
obj1 = document.YMCAForm;
obj2=document.formulaForm;	

/* YMCA Method
Men's %Fat = (-98.42 + 4.15*waist - .082*weight)/weight,

     Women's %Fat = (-76.76 + 4.15*waist - .082*weight)/weight.



 */
 
  if (!IsNum(obj1.waist.value)) {  alert("Enter waist ");
      return; }
 if (!IsNum(obj1.weight.value)) {  alert("Enter weight ");
      return; }

var waist = eval(obj1.waist.value);
var weight = eval(obj1.weight.value);
var A,B,C;
 
 if (obj1.gender[0].checked) { // man
     //obj2.gender[0].checked
     A=-98.42; B= 4.15; C=-0.082;
     
     
    }
 else{
    //obj2.gender[1].checked
    A=-76.76; B= 4.15; C=-0.082;
 }
 
 var fat = (A+ B*waist+C*weight)/weight;
 
 obj1.bodyFat.value = Math.round(fat*100);// in percent.
 
 var weightUnc=2;
 var waistUnc=0.25;
 
 var errA,errB,errC;
 
obj1.A.value = errA= A*weightUnc/(weight*weight);

obj1.B.value = errB= B*waistUnc/weight ;
obj1.C.value = errC = B*waist*weightUnc/(weight*weight);

 
 obj1.bodyFatError.value = Math.round( Math.sqrt((errA*errA + errB*errB + errC*errC)/3) *100 );
 
 }

// isNum function--------------------------------------

function IsNum(str) {
      for (var i = 0; i < str.length; i++) {
         var chr = str.substring(i, i+1);
         if ((chr < "0" || "9" < chr) && chr != ".")
            return false; 
      }
      if (eval(str)==0)
         return false;
      return true;
   }

