function findPosY( obj ) {
    var curtop = 0;

    if ( obj.offsetParent ) {
        while ( obj.offsetParent ) {
            curtop += obj.offsetTop;
            obj     = obj.offsetParent;
        }
    }
    else if( obj.y ) {
        curtop += obj.y;
    }
    return curtop;
}

function resize_body_backgrounds()
{
    var obj                 = $('body_backgrounds_obj');
    var obj_width           = obj.getWidth();
    var obj_height          = obj.getHeight();
    
    var window_dimensions = document.viewport.getDimensions();
    var image_aspect      = obj_width / obj_height;
    var window_aspect     = window_dimensions['width'] / window_dimensions['height'];
    
    if (window_dimensions['width'] / image_aspect >= window_dimensions['height']) {
        obj.setStyle({
            width: window_dimensions['width'] + 'px',
            height: window_dimensions['width'] / image_aspect + 'px'
        });
    } else {
        obj.setStyle({
            width: window_dimensions['width'] * image_aspect + 'px',
            height: window_dimensions['width'] + 'px'
        });
    }
}

Event.observe(window, 'load', function() {
    if( $('body_backgrounds_obj') ) {
        resize_body_backgrounds();
        Event.observe(window, 'resize', function() {
            resize_body_backgrounds();
        });
    }
});