(function($){	
    $.fn.fullframe = function(options) {
		
        var defaults = {
            width: 1280,
            height: 1024,
            parentElement: $(this),
            innerElements: false
        };
        options = $.extend({}, defaults, options);
        var fullframeStage = $(this);
		
        //salvo le proporzioni originali di ogni elemento
        $.each($(options.innerElements), function(i, el){
            var position = $(el).position();
            $(el).data('originals', {
                width: $(el).width() / options.width,
                height: $(el).height() / options.height,
                top: position.top / options.height,
                left: position.left / options.width
            });
        });
		
        $.fullframeResizer(fullframeStage, options);
        $(window).bind("resize", function() {
            $.fullframeResizer(fullframeStage, options);
        });
		
        return this;
    };
	
    $.fullframeResizer = function(container, options) {
		
        var element = $(container);
        var innerElements = $(options.innerElements);
					
        // Set element ratio
        var ratio = options.height / options.width;
        // Get browser window size
        var browserwidth = $(window).width();
        var browserheight = $(window).height();
		
        // Scale the element
        if ((browserheight/browserwidth) > ratio){
            element.height(browserheight);
            element.width(browserheight / ratio);
        } else {
            element.width(browserwidth);
            element.height(browserwidth * ratio);
        }
		
        // Center the element
        element.css('left', (browserwidth - element.width())/2);
        element.css('top', (browserheight - element.height())/2);
						
        $.each(innerElements, function(i, el){
            $.fullframeResizeElement(el, element);
        });
		
        return this;
    };
	
    $.fullframeResizeElement = function(container, parentElement) {
        var element = $(container);
		
        var originals = element.data('originals');
		
        parentElementPosition = parentElement.position();
		
        // Scale the element
        element.height(originals.height * parentElement.height());
        element.width(originals.width * parentElement.width());
		
        // Center the element
        element.css('top', (originals.top * parentElement.height()));
        element.css('left', (originals.left * parentElement.width()));
		
        return element;
    };
	
})(jQuery);
