Dynamic weighted jukebox

...d a generalised version of banner campaigns for availability-based things
this has quite a lot of code duplication with the above. Also some comments here and there wouldn't go amiss, it's taken me a while to work out what is what