function trim(str) {
  var str1, str2, i, trimIt
  
  str1 = ""
  trimIt = true
  for (i=0; i<str.length; i++) {
    if (trimIt) {
      if (str.charAt(i) == " ")
        continue
      if (str.charAt(i) == "\r")
        continue
      if (str.charAt(i) == "\n")
        continue
      if (str.charAt(i) == "\t")
        continue
    }
    trimIt = false
    str1 = str1 + str.substring(i, i+1)
  }
  
  str2 = ""
  trimIt = true
  for (i=str1.length-1; i>=0; i--) {
    if (trimIt) {
      if (str1.charAt(i) == " ")
        continue
      if (str1.charAt(i) == "\r")
        continue
      if (str1.charAt(i) == "\n")
        continue
      if (str.charAt(i) == "\t")
        continue
    }
    trimIt = false
    str2 = str1.substring(i, i+1) + str2
  }
  
  return str2
}

function isNumber(str, isInt) {
  var str2, i, ch, cnt
    
  str2 = trim(str)
  cnt = 0
  
  if (str2 == "") return false
    
  for (i=0; i<str2.length; i++) {
    ch = str2.substring(i, i+1)

    if (((ch < "0" || ch > "9")) && ((ch != ".") && (ch != "-")))
      return false
        
    if (ch == "-")
    if (i != 0)
      return false
        
    if (ch == ".") {
      if (isInt) return false
      cnt++
      if (cnt > 1)
        return false
    }
  }

  return true
}

function isNumberInRange(str, min, gt, max, lt, isInt) {
  var val
  
  if (!isNumber(str, isInt))
    return false
  
  val = trim(str) * 1
  
  if (min != null)
  if (val < min) return false
  if (gt)
    if (val == min) return false
    
  if (max != null)
  if (val > max) return false
  if (lt)
    if (val == max) return false
    
  return true
}
