function txtFocus(theField)
{ theField.select();
}
function txtBlur(theField)
{ theField.value = trim(theField.value);
}
function txtBlurUpper(theField)
{ theField.value = trim(theField.value).toUpperCase();
}

function err_alert(theField, msg)
{ alert(msg);
  theField.focus();
  return false;
}

function trim(inString)
{ return ltrim(rtrim(inString));
}
function ltrim(inString)
{ var inLgth = inString.length;
  var rightmostMatchAt = -1;
  for (var i = 0; i < inLgth; i++)
  { if (inString.charAt(i) == ' ')
      rightmostMatchAt = i;
    else
      break;
  }
  return inString.substring(rightmostMatchAt + 1, inLgth);
}
function rtrim(inString)
{ var inLgth = inString.length;
  var leftmostMatchAt = inLgth;
  for (var i = inLgth - 1; i >= 0; i--)
  { if (inString.charAt(i) == ' ')
      leftmostMatchAt = i;
    else
      break;
  }
  return inString.substring(0, leftmostMatchAt);
}
 
function xParseInt(inStr)
{ for (var i = 0; i < inStr.length; i++)
    if (inStr.charAt(i) < "0" || inStr.charAt(i) > "9")
      return Number.NaN;
  return parseInt(inStr,10);
}
function xParseFloat(inStr)
{ var pt_ct = 0;
  for (var i = 0; i < inStr.length; i++)
  { var c = inStr.charAt(i);
    if (c == ".")
      if (pt_ct == 0)
        pt_ct = 1;
      else
        return Number.NaN;
    else
    if (c < "0" || c > "9")
      return Number.NaN;
  }
  return parseFloat(inStr);
}
 
function nvl0(str)
{ return (str.length == 0)? '0': str;
}

function yParseFloat(inStr)
{ return xParseFloat(nvl0(dropComma(inStr)));
}

function replNaN(inStr)
{ return (isNaN(inStr))? "": inStr;
}
 
function getRadioValue(radioGrp)
{ for (var i = 0; i < radioGrp.length; i++)
    if (radioGrp[i].checked)
      return radioGrp[i].value;
  return "";
}

function getSelectValue(select)
{ return select.options[select.selectedIndex].value;
}

function dropComma(str)
{ if (str.indexOf(',') < 0)
    return str;

  var arrayOfStrings = str.split(',');
  var newStr = "";
  for (var i = 0; i < arrayOfStrings.length; i++)
    newStr += "" + arrayOfStrings[i];

  return newStr;
}

function colorNegatives(what, theColor)
{ for (var i = 0; i < what.length; i++)
    colorNegative(what[i], theColor)
}

function colorNegative(what, theColor)
{ if (what.value.indexOf("-") == 0)
    what.style.color = theColor;
}


