Javascript 1.5 By Example by Kathie Kingsley-Hughes & Adrian Kingsley--Hughes