Code based on Joe Marini' course HTML5: Web Forms in Depth from Lynda.com