Beginning JavaScript, 3rd Edition (Programmer to Programmer)