function resizeContent(block, content) {
    this.block = $(block);
    this.content = $(content);

    _thisRC = this;
}

resizeContent.prototype = {
    compareSize: function() {
        var blocks = _thisRC.getBlockSize();
        var contents = _thisRC.getContentSize();

        for (var i = 0; i < blocks.length; i++) {
            if (typeof(contents[i]) != "undefined" && (blocks[i].width < contents[i].width || blocks[i].height < contents[i].height)) {
                _thisRC.reduceContent(contents[i].element, blocks[i]);
            } else if (typeof(contents[i]) != "undefined")
                _thisRC.showContent(contents[i].element);
        }
    },

    getBlockSize: function(currentBlock) {
        var blocks = [];
        var blockObj;
        var blockEl;

        if (!currentBlock)
            currentBlock = _thisRC.block;

        for (i = 0; i < currentBlock.length; i++) {
            blockEl = $(currentBlock[i]);
            if (blockEl.css("height") == "auto")
                blockElHeight = blockEl.height();
            else
                blockElHeight = parseInt(blockEl.css("height").replace("px", ""));

            if (blockEl.css("width") == "auto")
                blockElWidth = blockEl.width();
            else
                blockElWidth = parseInt(blockEl.css("width").replace("px", ""));

            blockObj = {
                element: blockEl,
                height: blockElHeight,
                width: blockElWidth
            };
            blocks.push(blockObj);
        }

        return blocks;
    },

    getContentSize: function(currentContent) {
        var contents = [];
        var contentObj;

        if (!currentContent)
            var currentContent = _thisRC.content;

        for (i = 0; i < currentContent.length; i++) {
            if ($(currentContent[i]).html() != "") {
                contentObj = {
                    element: $(currentContent[i]),
                    height: $(currentContent[i]).height(),
                    width: $(currentContent[i]).width()
                };
                contents.push(contentObj);
            }
        }
        
        return contents;
    },

    reduceContent: function(ticketObj, blockObj) {
        var fontSize;
        var newFontSize;

        fontSize = ticketObj.parent().css("font-size").replace("px", "");
        newFontSize = (parseInt(fontSize) - 1);

       ticketObj.parent().css({
            "font-size": newFontSize + "px"
        });

        validateContentSize = _thisRC.validateContentSize(_thisRC.getBlockSize(blockObj.element), _thisRC.getContentSize(ticketObj));

        if (!validateContentSize)
            return _thisRC.reduceContent(ticketObj, blockObj);
        else
            return _thisRC.showContent(ticketObj[0]);
    },

    showContent: function(ticketObj) {
        if ($(ticketObj).hasClass("invisible")) {
            $(ticketObj).removeClass("invisible");
        }
    },

    validateContentSize: function(block, content) {
        for (var i=0; i < block.length; i++) {
            if ((block[i].width < content[i].width) || (block[i].height < content[i].height && block[i].height > $(block[i].element).parent().height())) {
                return false;
            } else
                return true;
        }
    }
}