function forceNumber(field, forcePositive, fixed)
{
  if (isNaN(field.value)) {
    if (fixed === null) {
      field.value = 0;
    } else {
      field.value = Number(0).toFixed(fixed);
    }
  } else {
    if (fixed === null) {
      field.value = Number(field.value);
    } else {
      field.value = Number(field.value).toFixed(fixed);
    }
  }
  if (forcePositive && field.value < 0) {
    if (fixed === null) {
      field.value = 0;
    } else {
      field.value = Number(0).toFixed(fixed);
    }
  }
}

function trim(s)
{
	var l = 0;
  var r = s.length - 1;
	while (l < s.length && (s[l] == ' ' || s[l] == '\n'))
	{
    l++;
  }
	while (r > l && (s[r] == ' ' || s[r] == '\n'))
	{
    r -= 1;
  }
	return s.substring(l, r+1);
}

function validate_email(field, alerttxt)
{
  with (field)
  {
    val(trim(val()));
    apos=val().indexOf("@");
    dotpos=val().lastIndexOf(".");
    if (apos<1||dotpos-apos<2)
    {
      alert(alerttxt);
      return false;
    }
    else
    {
      return true;
    }
  }
}

function validate_required(field, alerttxt, allowzero)
{
  with (field)
  {
    value = trim(value);
    if (value == null || value == "" || (!allowzero && value == 0))
    {
      alert(alerttxt);
      return false;
    }
    else
    {
      return true;
    }
  }
}

function validate_required_jq(field, alerttxt, allowzero)
{
  with (field)
  {
    val(trim(val()));
    if (val() == null || val() == "" || (!allowzero && val() == 0))
    {
      alert(alerttxt);
      return false;
    }
    else
    {
      return true;
    }
  }
}


