function isValidDate(day, month, year) {
  day = day - 0;
  month = month - 0;
  year = year - 0;
  
  month_length = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 
  
  if ( (year%4) != 0 )
    month_length[2] = 28;
  else if ( (year%400) == 0 )
    month_length[2] = 29;
  else if ( (year%100) == 0 )
    month_length[2] = 28;
  else                       
    month_length[2] = 29;     
    
  if ( month < 1 || month > 12 )
    return false;  
  
  else if ( day < 1 || day > month_length[month] )
    return false;  
    
  return true;      
}

function isBlank(s)
{
  for(var i = 0; i < s.length; i++) {
    var c = s.charAt(i);
    if ((c != ' ') && (c != '\n') && (c != '\t')) return false;
  }
  return true;
}

function isNumeric(num) {
  pattern=/^\d*$/;
  if (pattern.test(num))
    return true;
  else
    return false;
}

function isEmail(s)
{   
    // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
	    
    var i = 1;
    var sLength = s.length;
	    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
	    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
	    // look for .
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    // there must be at least one character after the .
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function isDecimal(num) {
  pattern=/^\d*(.)\d*$/;
  if (pattern.test(num))
    return true;
  else
    return false;
}