function calc() {
  var scale = 1;
  var total = 0;

  var units = document.getElementById("measurement");
  
  if (units.value == "metres") {
    scale = 1.0;
  } else if (units.value == "millimetres") {
    scale = 0.001;
  } else if (units.value == "inches") {
    scale = 0.0254;
  } else if (units.value == "feet") {
    scale = 0.3048;
  } else if (units.value == "yards") {
    scale = 0.9144;
  }
  
  for (var n = 0; n <= 3; n++) {
    var cubRow = document.getElementById("row" + n + "cube");
    var cylRow = document.getElementById("row" + n + "cylinder");

    var tmp;
    var volume = 0;
    var x = 0, y = 0, z = 0;

    tmp = document.getElementById("row" + n + "x");
    if (parseFloat(tmp.value)) {
      x = parseFloat(tmp.value) * scale;
    }

    tmp = document.getElementById("row" + n + "y");
    if (parseFloat(tmp.value)) {
      y = parseFloat(tmp.value) * scale;
    }

    tmp = document.getElementById("row" + n + "z");
    if (parseFloat(tmp.value)) {
      z = parseFloat(tmp.value) * scale;
    }

    if (cubRow.checked) { // Cubic calculation
      volume = x * y * z;
    } else { // Cylindrical calculation
      volume = Math.PI * Math.pow((x / 2), 2) * y * z;
    }

    tmp = document.getElementById("row" + n + "subtotal");

    total += volume;
    tmp.value = volume.toFixed(2);
  }

  var granularity = 0.2;
  var granular = Math.ceil(total / granularity) * granularity;
  tmp = document.getElementById("total");
  tmp.value = granular.toFixed(2);
  
  return false;
}

function updateLabels(fld, n) {
  var label_x = document.getElementById("label_row" + n + "x");
  var label_y = document.getElementById("label_row" + n + "y");
  var label_z = document.getElementById("label_row" + n + "z");
  
  if (fld.value == "cube") {
    label_x.innerHTML = 'Length';
    label_y.innerHTML = 'Width';
    label_z.innerHTML = 'Depth';
  } else {
    label_x.innerHTML = 'Diameter';
    label_y.innerHTML = 'Height';
    label_z.innerHTML = '# of Cylinders';    
  }
}

function resetLabels() {
  for (i=0; i<=3; i++) {
    var label_x = document.getElementById("label_row" + i + "x");
    var label_y = document.getElementById("label_row" + i + "y");
    var label_z = document.getElementById("label_row" + i + "z");
    
    label_x.innerHTML = 'Length';
    label_y.innerHTML = 'Width';
    label_z.innerHTML = 'Depth';
  }
}

function myReset() {
  var dropBox = document.getElementById('measurement').value;

  document.getElementById('concreteCalculatorForm').reset(); 
  resetLabels();

  document.getElementById('measurement').value = dropBox;

  return false;
}