Form validation with less pain and more fun