;(function($){
    var $$;

    $.fn.extend({
        increaseFont: function(settings){
            $$ = this;
            settings = $.extend({ratio: 1.2}, settings);

            return this.each(function(){
                fontSizer(settings);
            });
        },
        decreaseFont: function(settings){
            $$ = this;
            settings = $.extend({ratio: (1/1.2)}, settings);

            return this.each(function(){
                fontSizer(settings);
            });
        }
    });

    function fontSizer( settings ){
        settings = $.extend({min: 10, max:20}, settings);

        return $$.each(function(){
            if( $(this).css('font-size') ){
                $(this).css( 'font-size', giveMeNewSize($(this).css('font-size'), settings)+'px' );
                if( parseInt($(this).css('lineHeight')) )
                    $(this).css( 'lineHeight', giveMeNewSize($(this).css('lineHeight'), settings)+'px' );
            }
        });
    };

    function giveMeNewSize( oldSize, settings ){
        var newSize = parseInt(oldSize)*(settings.ratio?settings.ratio:1);

        if( newSize < settings.min ) return settings.min;
        if( newSize > settings.max ) return settings.max;
        return newSize;
    }

})(jQuery);