function ws_zoom()
{
    $('body').append('<div id="ws_zoom_controls"><a href="#" onclick="return ws_zoom.close();"><span>CLOSE</span></a></div>' + 
                         '<div id="ws_zoom_shadow"></div>' + 
                         '<div id="ws_zoom_container">' + 
                         '<div id="ws_zoom_tl"></div>' + 
                         '<div id="ws_zoom_br"></div>' + 
                         '<div id="ws_zoom_tr"></div>' + 
                         '<div id="ws_zoom_bl"></div>' + 
                         '<div id="ws_zoom_content"></div>' + 
                         '</div>');
                         
    var absolute = false;
    
    var container = $('#ws_zoom_container');
    var content = $('#ws_zoom_content');
    var controls = $('#ws_zoom_controls');
    var shadow = $('#ws_zoom_shadow');
    var corners = $('#ws_zoom_tr, #ws_zoom_bl');
    
    shadow.click(ws_zoom.close);
    ws_zoom.close();
    
    // Resize the container div to suit the content and position it
    var modifyContainer = function() { 
    
        corners.css({ width: (content.width() + 20), height: (content.height() + 20) });

        container.css({
            width: (content.width() + 40), 
            height: (content.height() + 40)
        }).css({
            position: absolute ? 'absolute' : 'fixed',
            left: '50%',
            top: '50%',
            zIndex: '99'
        }).css({
            marginLeft: '-' + (container.outerWidth() / 2) + 'px',
            marginTop: '-' + (container.outerHeight() / 2) + 'px'
        });

        if (absolute)
        {
            container.css({
                marginTop: parseInt(container.css('marginTop'), 10) + $(window).scrollTop(),
                marginLeft: parseInt(container.css('marginLeft'), 10) + $(window).scrollLeft()
            });
        }
        
        controls.css({ top: (container.offset().top - $(window).scrollTop()) + 'px', left: ((container.width() + container.offset().left) - 110) + 'px' });
        controls.show();
    
    };
    
    // Get the document height (whichever is largest)
    var getDocHeight = function() {
        var D = document;
        return Math.max(
            Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
            Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
            Math.max(D.body.clientHeight, D.documentElement.clientHeight)
        );
    };
    
    // Method to perform the zoom
    this.zoom = function(o) {
        // If the link points to an image
        if (o.attr('href').indexOf('.jpg') != -1) {
            // We need to load the image into an object
            var img = new Image();

            $(img).load(function() {

                shadow.show().css({ height: getDocHeight() });

                content.empty().append(this);

                container.show();

                var img = $(this).css({ visibility: 'hidden' });

                content.css({ width: img.width(), height: img.height() });

                img.hide();

                modifyContainer();

                img.css({ visibility: '' }).fadeIn();

            }).error(function() {
                // If we're here, the image could not be loaded
            }).attr('src', o.attr('href'));
        }
        else {
            content.load('/embedfeed/850/500/' + o.attr('href').substring(1) + '/', function() {

            container.show();

                content.css({ width: 850, height: 500 });

                shadow.show().css({ height: getDocHeight() });

                modifyContainer();

                

            });
        }

        return false;
    };

    return true;
}

ws_zoom.close = function() {

    $('#ws_zoom_container').hide();
    $('#ws_zoom_shadow').hide();
    $('#ws_zoom_controls').hide();

    return false;

};