function isBlank(val)
{
  if(val == "")
  {
    return true;
  }
  for(var ii=0;ii<val.length;ii++)
  {
    if((val.charAt(ii) != ' ') && (val.charAt(ii) != "\t") && (val.charAt(ii) != "\n") && (val.charAt(ii) != "\r"))
    {
      return false;
    }
  }
  return true;
}

function isDigit(num)
{
  if(num.length > 1)
  {
    return false;
  }
  var string = "1234567890";
  if(string.indexOf(num) != -1)
  {
    return true;
  }
  return false;
}

function isInteger(val)
{

  if(isBlank(val))
  {
    return false;
  }
  for(var ii=0;ii<val.length;ii++)
  {
    if(!isDigit(val.charAt(ii)))
    {
      return false;
    }
  }
  return true;
}

function checkDate(val)
{
  // date must be in format mm/dd/yyyy
  if(val.length != 10)
  {
    return false;
  }
  for(var ii=0;ii<val.length;ii++)
  {
    if(ii == 2 || ii == 5)
    {
      if(val.charAt(ii) != "/")
      {
	return false;
      }
    }
    else
    {
      if(!isDigit(val.charAt(ii)))
      {
	return false;
      }
    }
  }
  return true;
}

function isMoney(val)
{
  if(isBlank(val))
  {
    return false;
  }
  var dcount = 0;
  var startcount = 0;
  var startindex = 0;
  var decimalcount = 0;

  if(val.charAt(0) == "$")
  {
    startindex = 1;
  }
  
  for(var ii=startindex;ii<val.length;ii++)
  {
    if(!isDigit(val.charAt(ii)) && val.charAt(ii) != ".")
    {
      return false;
    }
    if(dcount > 2)
    {
      return false;
    }
    if(val.charAt(ii) == ".")
    {
      decimalcount ++;

      if(decimalcount > 1)
      {
	return false;
      }
      
      startcount = 1;
    }
    if(startcount)
    {
      dcount ++;
    }
  }
  return true;
}

function isValidWeight(val)
{
  if(isBlank(val))
  {
    return false;
  }
  var dcount = 0;
  var startcount = 0;
  var decimalcount = 0;

  for(var ii=0;ii<val.length;ii++)
  {
    if(!isDigit(val.charAt(ii)) && val.charAt(ii) != ".")
    {
      return false;
    }
    if(dcount > 3)
    {
      return false;
    }
    if(val.charAt(ii) == ".")
    {
      decimalcount ++;

      if(decimalcount > 1)
      {
	return false;
      }
      
      startcount = 1;
    }
    if(startcount)
    {
      dcount ++;
    }
  }
  return true;
}

function isPercent(val)
{
  if(isBlank(val))
  {
    return false;
  }
  for(var ii=0;ii<val.length;ii++)
  {
    // allow % at the end
    if(ii == val.length - 1)
    {
      if(val.charAt(ii) != "%" && !isInteger(val.charAt(ii)))
      {
	return false;
      }
    }
    else
    {
      if(!isInteger(val.charAt(ii)))
      {
	return false;
      }
    }
  }
  return true;
}

function isValidPhoneNumber(val)
{
  var count = 0;
  for(var ii=0;ii<val.length;ii++)
  {
    if(isDigit(val.charAt(ii)))
    {
      count ++;
    }
  }

  // valid phone number should have 10 total digits
  if(count != 10)
  {
    return false;
  }
  return true;
}
