function compute(form)  {

   //Get rid of commas if they're input
   var nocows = form.nocows.value.replace(/,/g, '');
   nocows = parseFloat(nocows.split(',').join());

   var crntmilk = form.crntmilk.value.replace(/,/g, '');
   crntmilk = parseFloat(crntmilk.split(',').join());

   var crntdry = form.crntdry.value.replace(/,/g, '');
   crntdry = parseFloat(crntdry.split(',').join());

   var crntcost = form.crntcost.value.replace(/,/g, '');
   crntcost = parseFloat(crntcost.split(',').join());

   var milkcwt = form.milkcwt.value.replace(/,/g, '');
   milkcwt = parseFloat(milkcwt.split(',').join());

   var dsrdmilk = form.dsrdmilk.value.replace(/,/g, '');
   dsrdmilk = parseFloat(dsrdmilk.split(',').join());

   var dsrddry = form.dsrddry.value.replace(/,/g, '');
   dsrddry = parseFloat(dsrddry.split(',').join());

   //Do calculations
   var costdry = crntcost/crntdry;
   var currentefficiency = crntmilk/crntdry;
   var costmilk = (crntcost/crntmilk) * 100;
   
   var desiredtotalfeedcost = costdry * dsrddry;
   var desiredcostdry = desiredtotalfeedcost/dsrddry;
   var desiredcurrentefficiency = dsrdmilk/dsrddry;
   var desiredcostmilk = (desiredtotalfeedcost/dsrdmilk) * 100;
   
   var milkproductioncow = (dsrdmilk - crntmilk) * 365;
   var milkproductionherd = milkproductioncow * nocows;
   var incomepercow = (milkproductioncow * milkcwt)/100;
   var incomeperherd = incomepercow * nocows;
   var expensepercow = (desiredtotalfeedcost - crntcost) * 365;
   var expenseperherd = expensepercow * nocows;
   var incomeoverpercow = incomepercow - expensepercow;
   var incomeoverperherd = incomeoverpercow * nocows;

   form.crntcostfeed.value = round(costdry,2);
   form.crnteffmilk.value = round(currentefficiency,2);
   form.crntcwt.value = round(costmilk,2);  
   
   form.dsrdcost.value = round(desiredtotalfeedcost,2);
   form.costfeed.value = round(desiredcostdry,2);
   form.effmilk.value = round(desiredcurrentefficiency,2);
   form.cwt.value = round(desiredcostmilk,2);  
   
   form.cowmilk.value = round(milkproductioncow,2);
   form.herdmilk.value = round(milkproductionherd,2);
   form.cowincome.value = round(incomepercow,2);
   form.herdincome.value = round(incomeperherd,2);
   form.cowexpense.value = round(expensepercow,2);
   form.herdexpense.value = round(expenseperherd,2);
   form.cowover.value = round(incomeoverpercow,2);
   form.herdover.value = round(incomeoverperherd,2);

} 

function round(value, decimalPlace)
{
  var power_of_ten = 1;
  while (decimalPlace-- > 0)
     power_of_ten *= 10.0;
  return Math.round(value * power_of_ten) / power_of_ten;
}

function checkNumber(input, min, max, msg)
{
    msg = msg + " field has invalid data: " + input;
    var str = input;

    for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.') {
            alert(msg);
            return false;
        }
    }

    var num = 0 + str

    if (num < min || max < num) {
        alert(msg + " not in range [" + min + ".." + max + "]");
        return false;
    }

    input.value = str;
    return true;
}

function checkPositive(input, msg)
{
    msg = msg + " field has invalid data: " + input;
    var str = input;

   for (var i = 0; i < str.length; i++) {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.') {
            alert(msg);
            return false;
        }
    }


    var num = 0 + str

    if (num < 0) {
        alert(msg + " must be positive!");
        return false;a
    }

    input.value = str;
    return true;
}

function Comma(SS) {
    var T = "", S = String(SS), L = S.length - 1, C, j, P = S.indexOf(".") - 1;
    if (P < 0) {
        P = L;
    }
    for (j = 0; j <= L; j++) {
        T += C = S.charAt(j);
        if (j < P && (P - j) % 3 == 0 && (C != "-")) {
            T += ",";
        }
    }
    return T;
}

