Americans in best Christmas shopping mood in years.