Don't forget to convert your surfaces to 16bit, and make a surface for the dark version.
background_dark = SDL_CreateRGBSurface(SDL_SWSURFACE, background->w, background->h, 16, background->format->Rmask, background->format->Gmask, background->format->Bmask, background->format->Amask);
And...