
function cal_bmi(lbs, ins) {
   h2 = ins * ins;
   bmi = lbs/h2 * 704.5 // to convert to metric
   f_bmi = Math.floor(bmi);
   diff  = bmi - f_bmi;
   diff = diff * 10;
   diff = Math.round(diff);

   if (diff == 10) {
      // Need to bump up the whole thing instead
      f_bmi += 1;
      diff = 0;
   }

   bmi = f_bmi + "." + diff;
   return bmi;
}

function compute() {
   var f = document.bmi_input;
   var fi = parseInt(f.htf.options[f.htf.selectedIndex].value * 12);
   var ii = parseInt(f.hti.options[f.hti.selectedIndex].value);
   var i = fi + ii;
 

   w = f.wt.value;
   if (chkw(w)){
      f.bmi.value = cal_bmi(w, i);
   } else { 
      alert("Please enter a number for your weight."); 
   }
   // Set cookies for future views of this page
   // Expires when user closes browser
   document.cookie = "bmi=" + f.bmi.value;
   document.cookie = "wt=" + f.wt.value;
   document.cookie = "htf=" + f.htf.selectedIndex;
   document.cookie = "hti=" + f.hti.selectedIndex;
}

function chkw(w) {
   if (isNaN(parseInt(w))) {
      return false;
   } else if (w < 0) {
      return false;
   }
   else {
      return true;
   }
}

function load_cookies() {
	var f = document.bmi_input;
	f.wt.value = loadcookie("wt");
	f.bmi.value = loadcookie("bmi");
	f.htf.selectedIndex = loadcookie("htf");
	f.hti.selectedIndex = loadcookie("hti");
}

function loadcookie(name) {
    var allcookies = document.cookie;
	var value;
	var pos = allcookies.indexOf(name + "=");
	//alert("Name: " + name + " All: " + allcookies);
	var len = name.length + 1;  // length of name + 1
	if (pos != -1) {
		var start = pos + len;  //Start of cookie value
		var end = allcookies.indexOf(";", start);  //End of cookie value
		if (end == -1) end = allcookies.length;
		value = allcookies.substring(start,end); //Extract the value
		//alert("Name: " + name + " Value: " + value);
		value = unescape(value);  // Decode it, if encoded.
    	return value;
	}

    return 0;
}
