function isEmpty(s)
{ return ((s == null) || (s.length == 0)); }
function isSpace(c)
{ return ((c == "\n") || (c == " ") || (c == "\b") || (c == "\t")); }
function isWhiteSpace(s)
{ for(i=0; i<s.length; i++)
  if(!isSpace(s.charAt(i))) return false;
  return true;
}
function warning(f,s)
{ f.focus();
  f.select();
  alert(s);
  return false;
}
function isEmail(email)
{
  if(isEmpty(email)) return false;
  if(isWhiteSpace(email)) return false;
  invalidChars = " /:,;";
  for(i=0; i<invalidChars.length; i++)
  {
    badChar = invalidChars.charAt(i);
    if(email.indexOf(badChar,0) > -1) return false; 
  }
  atPos = email.indexOf("@",1);
  if(atPos == -1) return false; 
  if(email.indexOf("@",atPos+1) > -1) return false; 
  periodPos = email.indexOf(".",atPos);
  if(periodPos == -1) return false; 
  if(periodPos+3 > email.length) return false; 
 return true;
}
function isFormContact(fm)
{
  TheEmail = fm.email.value;
  TheName = fm.fname.value;
  TheLast = fm.lname.value;
  TheCity = fm.city.value;
  if(isEmpty(TheName))
    return (warning(fm.fname,"Please enter your first name."));
  if(isEmpty(TheLast))
    return (warning(fm.lname,"Please enter your last name."));
  if(isEmpty(TheCity))
    return (warning(fm.city,"Please enter your city name."));
  if(!isEmail(TheEmail))
    return (warning(fm.email,"Email address is empty or invalid"));
  
  return true;
}