function setUnits(value) {
  if (value == "imperial") {
    document.getElementById("metric").checked = false;
    document.getElementById("weight_kgs").disabled = true;
    document.getElementById("imperial").checked = true;
    document.getElementById("weight_pounds").disabled = false;
    document.getElementById("weight_ounces").disabled = false;
  } else {
    document.getElementById("metric").checked = true;
    document.getElementById("weight_kgs").disabled = false;
    document.getElementById("imperial").checked = false;
    document.getElementById("weight_pounds").disabled = true;
    document.getElementById("weight_ounces").disabled = true;
  }
}

function clearform() {
	var birds = document.getElementById("bird").getElementsByTagName("input");
	var birdsLength = birds.length;
	for (var i = 0; i < birdsLength; i++) {
    birds[i].checked = false;
  }
	document.getElementById("metric").checked = false;
	document.getElementById("weight_kgs").value = "";
  document.getElementById("weight_kgs").disabled = false;
	document.getElementById("imperial").checked = false;
	document.getElementById("weight_pounds").value = "";
  document.getElementById("weight_pounds").disabled = false;
	document.getElementById("weight_ounces").value = "";
  document.getElementById("weight_ounces").disabled = false;
	document.getElementById("results").style.display = "none";
}

function compute() {
  var bird;
  var units;
  var pounds, ounces, weight_in_kgs;
  var t;
  var hours, minutes, temperature
  
	var birds = document.getElementById("bird").getElementsByTagName("input");
	var birdsLength = birds.length;
	for (var i = 0; i < birdsLength; i++) {
    if (birds[i].checked) {
      bird = birds[i].value;
    }
  }

  if (document.getElementById("metric").checked) {
    units = "metric";
  } else if (document.getElementById("imperial").checked) {
    units = "imperial";
  } else if (document.getElementById("weight_kgs").value.match(/^[\d\.]+$/)) {
    units = "metric";
    setUnits("metric");
  } else if (document.getElementById("weight_pounds").value.match(/^[\d\.]+$/) || document.getElementById("weight_ounces").value.match(/^[\d\.]+$/)) {
    units = "metric";
    setUnits("imperial")
  } else {
    return false;
  }
  
  if (units == "metric") {
    if (!(weight_in_kgs = parseFloat(document.getElementById("weight_kgs").value))) {
      return false;
    }
  } else {
    if (!(pounds = parseFloat(document.getElementById("weight_pounds").value))) {
      pounds = 0;
    }
    if (!(ounces = parseFloat(document.getElementById("weight_ounces").value))) {
      ounces = 0;
    }
    weight_in_kgs = (pounds * 16 + ounces) * (28.35 / 1000);
  }

  switch (bird) {
    case "turkey":
  		temperature = "180\u00B0C/Gas Mark 4";
		  if (weight_in_kgs < 4.5) {
		    t = Math.round(45 * weight_in_kgs) + 20;
      }
		  if (weight_in_kgs >= 4.5 && weight_in_kgs <= 6.5) {
		    t = Math.round(40 * weight_in_kgs);
      }
		  if (weight_in_kgs > 6.5) {
		    t = Math.round(35 * weight_in_kgs);
      }
		  break;
    case "chicken":
      temperature = "180\u00B0C/Gas Mark 4";
      t = Math.round(45 * weight_in_kgs) + 20;
      break;
    case "goose":
      temperature = "220\u00B0C/Gas Mark 7";
		  t = Math.round(35 * weight_in_kgs);
      break;
    case "duck":
      temperature = "200\u00B0C/Gas Mark 6";
      t = Math.round(45 * weight_in_kgs);
      break;
	}

  var weight;
  if (units == "imperial") {
    weight = (pounds == 0 ? "" : pounds + " lb") + (ounces == 0 ? "" : " " + ounces + " oz");
  } else {
    weight = weight_in_kgs + " kg";
  }
  document.getElementById("result_weight").innerHTML = weight;
  document.getElementById("result_bird").innerHTML = bird;
  document.getElementById("result_hours").innerHTML = Math.floor(t / 60);
  document.getElementById("result_minutes").innerHTML = t - 60 * Math.floor(t / 60);
  document.getElementById("result_temperature").innerHTML = temperature;
  document.getElementById("results").style.display = "";
}

