JavaScript The Definitive Guide by David Flanagan