function checkEmail(str) {
  re = /(^[A-Za-z0-9_])([A-Za-z0-9_.-]*)@((([A-Za-z0-9_-]{1,})\.){1,})(([A-Za-z0-9]{1,4})$)/;
  return re.test(allTrim(str));
}

function checkLetters(str) {
  re = /(^[A-Za-z]$)/;
  return re.test(allTrim(str));
}

function checkFileName(str) {
  re = /(^[A-Za-z0-9.]$)/;
  return re.test(allTrim(str));
}

function checkPNumber(str) {
  re = /(^[0-9-+\040\050\051]*)([0-9-+\040\050\051]$)/;
  return re.test(allTrim(str));
}

function checkDate(str) {
  re = /(^[0-9]{2})\/([0-9]{2})\/([0-9]{4}$)/;
  return re.test(allTrim(str));
}

function checkNumEntred(str) {
  re = /(^[0-9]{1,}$)/;
  return re.test(allTrim(str));
}

function checkNegativeNum(str) {
  re = /(^-{0,1})([0-9]{1,}$)/;
  return re.test(allTrim(str));
}

function checkPoolsNum(str) {
  re = /(^[0-9]{1,2}$)/;
  return re.test(allTrim(str));
}

function lTrim(text) {
  var pos = text.indexOf(" ");
  while (pos == 0) {
    text = text.substring(pos + 1, text.length);
    pos = text.indexOf(" ");
  }
  return text;
}

function allTrim(text) {
  text = lTrim(text);
  var pos = text.length - 1;
  while (text.charAt(pos) == ' ') {
    text = text.substring(0, pos);
    pos--;
  }
  return text;
}

function isBlank(text) {
  if (text == undefined) {
    return true;
  }
  return allTrim(text).length == 0;
}

var delimiter = ',';

function formatCurrency(value) {
  var number;
  if (value.substring(0, 1) == "$") {
    number = value.substring(1)
  } else {
    number = value;
  }

  var textOnly = "";
  var wasNonZero = false;
  for (i = 0; i < number.length; i++) {
    if (number.charAt(i) != delimiter && number.charAt(i) != ' ') {
      if (number.charAt(i) == '0' && i != (number.length - 1))
        if (!wasNonZero)
          continue;

      wasNonZero = true;
      textOnly += number.charAt(i);
    }
  }

  if (!isNaN(textOnly) && value.substring(0, 1) != "-" && textOnly.length > 0) {
    //var n = new Number(textOnly); commented bacause of maxlen=22 problem
    //textOnly = n.toString()
    part1 = textOnly;
    if (part1.length == 0) {
      part1 = "0"
    }
    newValue = "";
    while (part1.length > 3) {
      if (newValue.length > 0 && newValue.charAt(0) != '.') {
        newValue = delimiter + newValue;
      }
      newValue = part1.substring(part1.length - 3, part1.length) + newValue;
      part1 = part1.substring(0, part1.length - 3);
    }
    if (newValue.length > 0 && newValue.charAt(0) != '.' ) {
      newValue = delimiter + newValue;
    }
    if (part1.length > 0) {
      newValue = part1 + newValue;
    }
    return newValue;
  }
  return  value;
}
function formatPerc(obj) {
  var number = obj.value;
  var num = parseFloat(number)
  if (isNaN(num)) return;
  if (num < 0.0) return;
  obj.value = num.toFixed(2);
}

function keyChecker(e, checkPattern) {
  var keynum;
  var keychar;
  if (window.event) { // IE
    keynum = e.keyCode;
  } else if (e.which) { // Netscape/Firefox/Opera
    keynum = e.which;
  }
  keychar = String.fromCharCode(keynum);
  return checkPattern.test(keychar);
}

function numbersOnly(e) {
  return keyChecker(e, /\d/);
}

function numbersWithPoint(e) {
  return keyChecker(e, /[\d.]/);
}


function filterNumbers(obj) {
  var strx = "";
  var val = obj.value;
  for (var i=0;i<val.length;i++) {
    if (/\d/.test(val.charAt(i))) {
      strx+=val.charAt(i);
    }
  }
  obj.value = strx;
  return true;
}

function filterPositiveNumbers(obj) {
  filterNumbers(obj);
  while (obj.value.length>0 && obj.value.charAt(0)=='0') {
    obj.value = obj.value.substring(1);
  }
  return true;
}

function removeLeadZero(number) {
  number = allTrim(number);
  while(number.charAt(0) == '0' && number != "0") {
    number = number.substring(1);
  }
  return number;
}