I did this on Friday for a project...going to release it later...very quickly this is what you need to do.
Wrap everything in the body and give the wrapper position absolute, z-index 2, width and height 100%, top and left 0. Maybe width and height can be auto...haven't thought about it yet...
Create a div before the wapper and place it in the body...like...
<div id='the-background'><plug:full_background /></div>
Be sure to style this with the same as the wrapper but with a z-index of 1.
function full_background()
{
// we'll just get it from the page background image
global $rs;
if ($rs['bgimg'] != '') {
// get the dimensions
$size = getimagesize(DIRNAME . '/files/' . $rs['bgimg']);
return "<img src='" . BASEURL . "/files/$rs[bgimg]' width='$size[0]' height='$size[1]' />";
}
return;
}
'full_background' is a plugin that will generate the background image...you have many options for this...from the page itself...randomly from a folder of images...from a particular library of images. Just be sure that on the output it includes the true width and height of the image. Have it output just the image html into that div...
Then, you can use this javascript to resize it...
function bg_img_resize() {
    var w = $(window).width();
    var h = $(window).height();
    var iw = $('#the-background img').attr('width');
    var ih = $('#the-background img').attr('height');
    var rw = iw / ih;
    var rh = ih / iw;
    var sc = h * rw;
    if (sc >= w) {
        nh = h;
        nw = sc;
    } else {
        sc = w * rh;
        nh = sc;
        nw = w;
    }
    $('#the-background img').css({height: nh, width: nw});
}
This is using Jquery - in your document ready rules add this function as well:
bg_img_resize();
You might add this function to a window resize rule as well...
And that's it!