// moneyFormat() is adapted from Richard Wagner, JavaScript Unleashed, Sams.net Publishing, 1997, p. 531.

function moneyFormat(textObj) {
  var newValue = textObj.toString()                // var newValue = textObj.value
  var decAmount = ""
  var dolAmount = ""
  var decFlag = false
  var aChar = ""
  // Return blank string
  if (newValue=="") { return "" }
  // Return ?
  // if (newValue=="?") { return "?" }
  // Ignore all but digits and decimal points.
  for(i=0; i < newValue.length; i++) {
    aChar = newValue.substring(i,i+1)
    if(aChar >= "0" && aChar <= "9") {
      if(decFlag) {
        decAmount = "" + decAmount + aChar
      }
      else {
        dolAmount = "" + dolAmount + aChar
      }
    }
    if(aChar == ".") {
      if(decFlag) {
        dolAmount = ""
        break
      }
      decFlag=true
    }
  }

  // Ensure that at least a zero appears for the dollar amount.
  if(dolAmount == "") {
    dolAmount = "0"
  }

  // Strip leading zeros.
  if(dolAmount.length > 1) {
    while(dolAmount.length > 1 && dolAmount.substring(0,1) == "0") {
      dolAmount = dolAmount.substring(1,dolAmount.length)
    }
  }

  // Round the decimal amount.
  if(decAmount.length > 2) {
    if(decAmount.substring(2,3) > "4") {
      decAmount = parseInt(decAmount.substring(0,2)) + 1
      if(decAmount < 10) {
        decAmount = "0" + decAmount
      }
      else {
        decAmount = "" + decAmount
      }
    }
    else {
      decAmount = decAmount.substring(0,2)
    }
    if (decAmount == 100) {
      decAmount = "00"
      dolAmount = parseInt(dolAmount) + 1
    }
  }

  // Pad right side of decAmount.
  if(decAmount.length == 1) {
    decAmount = decAmount + "0"
  }
  if(decAmount.length == 0) {
    decAmount = decAmount + "00"
  }

  // Check for negative values and reset textObj.
  if(newValue.substring(0,1) != '-' || 
  (dolAmount == "0" && decAmount == "00")) {
    return (dolAmount + "." + decAmount)        // was textObj.value = dolAmount + "." + decAmount 
  }
  else {
    return ('-' + dolAmount + "." + decAmount)  // wastextObj.value = '-' + dolAmount + "." + decAmount

  }
}