function calcgro(form,val,index)
// calculates height for BMI, June 12, 2004
// copyright Bernd Krüger,2004-2006
{ 
var fac1=2.54;                           // cm/in
var foot = new fraczahl(12);
var lft1,sin1;
                                    //input:
if(index==0) v=parseFloat(val);             // cm (base)
if(index==1) v=parseFloat(val)*fac1;        // inch
if(index==2)                                // foot (ft)
      { lft1 = parseFloat(form.lft.value); 
        sin1 = parseFloat(form.sin.value);
	if(!isFinite(sin1)) sin1 = 0;
	foot.valin(lft1,sin1);
        v = foot.decval*fac1*12.;}
if(index==3)                                // foot (in)
      { lft1 = parseFloat(form.lft.value); 
        sin1 = parseFloat(form.sin.value);
        if(!isFinite(lft1)) lft1 = 0;
	foot.valin(lft1,sin1);
        v = foot.decval*fac1*12.;}
form.reset();
form.lcm.value=ausgab(v);                   // cm (base)
form.lin.value=ausgab(v/fac1);              // inch
foot.decval = v/fac1/12.;
form.lft.value=ausgab(foot.integ());        // foot
form.sin.value=ausfst(foot.rest(),2);       // rest inch
}
function calcbmi(form,val,index)
// calculates BMI, April 10,2004
// copyright Bernd Krüger,2004-2006
{ 
var fac1=0.45359237;                     // kg/lb
var stone = new fraczahl(14);
var lencm = parseFloat(form.lcm.value);
var mst1, slb1;
if((isNaN(lencm) == true)||(lencm<=0)) {warnings(1);return;}
                                            //input:
if(index==0) v=parseFloat(val);                      // kg (base)
if(index==1) v=parseFloat(val)*fac1;                 // pounds
if(index==2)                                         // stones (st)
      { mst1 = parseFloat(form.mst.value);
        slb1 = parseFloat(form.slb.value);
        if(!isFinite(slb1)) slb1 = 0;
        stone.valin(mst1,slb1);
        v = stone.decval*fac1*14.;}
if(index==3)                                         // stones (lb)
      { mst1 = parseFloat(form.mst.value);
        slb1 = parseFloat(form.slb.value);
        if(!isFinite(mst1)) mst1 = 0;
        stone.valin(mst1,slb1);
        v = stone.decval*fac1*14.;}
if(index==4) v=parseFloat(val)*lencm*lencm/10000.;   // BMI
                                         // output:
form.mkg.value=ausgab(v);                          // kg (base)
form.mlb.value=ausgab(v/fac1);                     // pounds
stone.decval = v/fac1/14.;
form.mst.value=ausgab(stone.integ());              // stones
form.slb.value=ausfst(stone.rest(),2);             // rest pounds
form.bmi.value=ausgab(v/lencm/lencm*10000.);       // BMI
}
