function validateROI(e) {
  var returnValue = new Boolean();
  var value = new Number(parseFloat(e.value));
  var revised = new Number();
  if (isNaN(value))  {
    alert("Your entry isn't recognized as a number.\nPlease enter a number in this field.");
    returnValue = false;
  } else if (value==0) {
    alert("Please enter a non-zero number in this field to get a meaningful analysis.");
    returnValue = false;
  } else{
    switch (e.name) {
    case "revenue":
      if (value>=1000) {
        alert("Please enter an amount less than $1000.00 for average machine revenue per hour.");
        returnValue = false;
      } else {
        revised = value.toFixed(2);
        if (value!=revised) {
          alert("Your entry is rounded to the nearest cent.");
        }
        value = revised;
        returnValue = true;
      }
      break;
    case "dayUsage":
      if (value>24) {
        alert("Please limit the average machine usage per day to 24 hours or less.");
        returnValue = false;
      } else {
        revised = value.toFixed(1);
        if (value!=revised) {
          alert("Your entry is rounded to the nearest tenth of an hour.");
          value = revised;
        }
        returnValue = true;
      }      
      break;
    case "weekUsage":
      if (value>7) {
        alert("Please limit the average machine usage per week to 7 days or less.");
        returnValue = false;
      } else {
        revised = value.toFixed(1);
        if (value!=revised) {
          alert("Your entry is rounded to the nearest tenth of a day.");
          value = revised;
        }
        returnValue = true;
      }      
      break;
    case "annualUsage":
      if (value>52) {
        alert("Please limit the average annual production schedule to 52 weeks or less.");
        returnValue = false;
      } else {
        revised = value.toFixed(1);
        if (value!=revised) {
          alert("Your entry is rounded to the nearest tenth of a week.");
          value = revised;
        }
        returnValue = true;
      }      
      break;
    case "oldChange":
      if (value>3000) {
        alert("Please limit the average tool change time to 3000 seconds or less.");
        returnValue = false;
      } else {
        revised = value.toFixed(1);
        if (revised>Number(document.getElementById("newChange").value)) {
          if (value!=revised) {
            alert("Your entry is rounded to the nearest tenth of a second.");
            value = revised;
          }        
          returnValue = true;
        } else {
          alert("Your current average tool change time must be greater than the tool change time using the MACH-1 System for this analysis.");
          returnValue = false;
        }
      }      
      break;
    case "changes":
      if (value>300) {
        alert("Please limit the average number of daily tool changes to 300 or less.");
        returnValue = false;
      } else {
        revised = value.toFixed(1);
        if (value!=revised) {
          alert("Your entry is rounded to the nearest tenth.");
          value = revised;
        }
        returnValue = true;
      }      
      break;
    case "cost":
      if (value>=3000) {
        alert("Please enter an amount less than $3000.00 for the MACH-1 System investment cost.");
        returnValue = false;
      } else {
        revised = value.toFixed(2);
        if (value!=revised) {
          alert("Your entry is rounded to the nearest cent.");
        }
        value = revised;
        returnValue = true;
      }
      break;
    case "newChange":
      if (value>1000) {
        alert("Please limit the expected average tool change time using the MACH-1 System to 1000 seconds or less.");
        returnValue = false;
      } else {
        revised = value.toFixed(1);
        if (Number(document.getElementById("oldChange").value)>revised) {
          if (value!=revised) {
            alert("Your entry is rounded to the nearest tenth of a second.");
            value = revised;
          }
          returnValue = true;
        } else {
          alert("Your expected average tool change time using the MACH-1 System must be less than your current average tool change time for this analysis.");
          returnValue = false;
        }
      }      
      break;
    default:
      alert("Default trap for *"+fld+"*");
      returnValue = true;
      break;
    }
  }
  if (!returnValue) {
    e.focus();
    e.select();
  } else {
    e.value = value;
  }
  return returnValue;
}
