
function compute(form)  {

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

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

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

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

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


   //Make sure numbers are within range
   //if(!checkNumber(delete1, 1, 4, "balew reduction")){
   //   return;
   //}
   if(!checkPositive(balew, "Bale Weight")){
      return;
   }
   if(!checkPositive(bales, "Bales Sold")){
      return;
   }
   if(!checkPositive(hayval, "Hay Value")){
      return;
   }
 //  if(!checkPositive(retention, "Dry Matter Retention")){
 //     return;
 //  }
      if(!checkNumber(retention, 5, 15, "Dry Matter Retention")){
      return;
   }


   //Do calculations
   //var tr1 = totalextra * hayval;
   //var dolperlbDM = hayval / balew;
   //var dolperCWT = (hayval / bales) * 100;
   //var balewperDay = balew - delete1;
   //var costcowday = hayval - (delete1 * dolperCWT) + 0.05;
   //var improvedeffic = bales / balewperDay;
   var retentionperc = retention * .01;

   //var reduceperday = 5;
   //(delete1*dolperlbDM) - 0.05;
   var totalextra = (((1+retentionperc)*balew)-balew)/2000*bales;
   //retention*reduceperday*30;
   var totalreturn = (totalextra*hayval)-(balew*bales/2000*10.8);
   //savingpermon*12;

   //form.delete2.value = round(reduceperday,2);
   form.textra.value = Comma(round(totalextra,2));
   form.netreturn.value = Comma(round(totalreturn,2));   

   if(balew > 0) {
              form.save.value = ("Use Silo-King\u00AE and achieve a " + retention + " % improvement in dry matter retention.**  Your net return is an extra $" + form.netreturn.value + " per year to your operation!");
              }
              else {
              form.textra.value = "";
              form.netreturn.value = "";
              form.save.value = ("Fill in all fields to see what your savings could be!");
              }
} 

function ClearForm(form)  {
   form.balew.value = "";
   form.bales.value = "";
   form.hayval.value = "";
   form.delete1.value = "";
   form.retention.value = "";
   form.delete2.value = "";
   form.textra.value = "";
   form.netreturn.value = "";
   form.save.value = "";
}

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;
}

