function chkDigit()
{
  if((event.keyCode < 48) || (event.keyCode > 57))
  { event.returnValue = false; }
}
function trimString(s)
{
  if(null == s) { return(s); }
  var i;
  var l = s.length;
  for(i = 0; i < l; i++)
  { if(s.charAt(i) != ' ') { break; } }
  if(i > 0) { s = s.substring(i, l); }
  l = s.length;
  for(i = l - 1; i >= 0; i--)
  { if(s.charAt(i) != ' ') { break; } }
  if(i < l - 1) { s = s.substring(0, i + 1); }
  return(s);
}
function isTextBlank(s)
{
  if(null == s) { return(true); }
  var s0 = trimString(s);
  return(s0.length == 0);
}
function isLeapYear(y)
{
  return((((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) ? true : false);
}
function isDigital(c)
{
  return(((c >= '0') && (c <= '9')) ? true : false);
}
function isAlpha(c)
{
  return((((c >= 'A') && (c <= 'Z')) || ((c >= 'a') && (c <='z'))) ? true : false);
}
function isNumber(s)
{
  for(var i = 0; i < s.length; i++)
  {
    if(!isDigital(s.charAt(i))) { return(false); }
  }
  return(true);
}
function validateDate(y, m, d)
{
  if((y.value < 1000) || (y.value > 3000))
  {
    alert('無效年份，請重新輸入！');
    y.focus();
    return(false);
  }
  if((m.value < 1) || (m.value > 12))
  {
    alert('無效月份，請重新輸入！');
    m.focus();
    return(false);
  }
  if(d.value < 1)
  {
    alert('無效日期，請重新輸入！');
    d.focus();
    return(false);
  }
  var dno = 31;
  if((m.value == 4) || (m.value == 6) || (m.value == 9) || (m.value == 11)) { dno = 30; }
  else if(m.value == 2)
  {
    if(isLeapYear(y.value) == true) { dno = 29; }
    else { dno = 28; }
  }
  if(d.value > dno)
  {
    alert('無效日期，請重新輸入！');
    d.focus();
    return(false);
  }
  return(true);
}
function validateEmail(e)
{
  return(true);
}
function isRadioChecked(obj)
{
  var l = obj.length;
  var f = false;
  for(var i = 0; i < l; i++)
  {
    if(obj[i].checked == true) { f = true; break; }
  }
  return(f);
}
function checkAll(fm, pre)
{
  var e, i;
  for(i = 0; i < fm.elements.length; i++)
  {
    e = fm.elements[i];
    if((e.name.substring(0, pre.length) == pre) && (e.type == 'checkbox'))
    { e.checked = true; }
  }
}
function reverseAllCheck(fm, pre)
{
  var e, i;
  for(i = 0; i < fm.elements.length; i++)
  {
    e = fm.elements[i];
    if((e.name.substring(0, pre.length) == pre) && (e.type == 'checkbox'))
    {
      if(e.checked == true) { e.checked = false; }
      else { e.checked = true; }
    }
  }
}
