function cal_bmr(lbs, ins, gen, age) {
   hcm = ins * 2.54; // convert to centimeters
   wkg = lbs * 0.4536; //convert to kilos
   if (gen == "F") {
	bmr = 655 + 9.6 * wkg + 1.8 * hcm - 4.7 * age;
   } else {
	bmr = 66 + 13.7 * wkg + 5 * hcm - 6.8 * age;
   }
   f_bmr = Math.floor(bmr);
   diff  = bmr - f_bmr;
   diff = diff * 10;
   diff = Math.round(diff);

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

   bmr = f_bmr + "." + diff;
   return bmr;
}

function compute() {
   var f = document.bmr_input;
   var gen = f.gen.options[f.gen.selectedIndex].value;
   var age = f.age.value;
   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) && chkw(age)){
      f.bmr.value = cal_bmr(w, i, gen, age);
   } else { 
      alert("Please enter a number for your weight."); 
   }
   // Set cookies for future views of this page
   // Expires when user closes browser
   document.cookie = "age=" + f.age.value;
   document.cookie = "bmr=" + f.bmr.value;
   document.cookie = "wt=" + f.wt.value;
   document.cookie = "gen=" + f.gen.selectedIndex;
   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.bmr_input;
	f.wt.value = loadcookie("wt");
	f.bmr.value = loadcookie("bmr");
	f.age.value = loadcookie("age");
	f.gen.selectedIndex = loadcookie("gen");
	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;
}
