(function($) {  
    $.fn.fontResizer = function(options) {
        
        // Set some default options
        var defaults = {
            baseFontSize: 12,
            limits: 3
        };  
        
        // Extend function with options
        var options = $.extend(defaults,options);
        
        // Apply function to all matched objects
        return this.each(function() {
        
            var resize = $(this);
            var body = $('body');
            var counter = options.baseFontSize;
            var plusLimit = options.baseFontSize + options.limits;
            var minusLimit = options.baseFontSize - options.limits;
            
            var plus = $('<a>');
            plus.addClass('plus');
            plus.attr('href','javascript:void(0)').attr('title','Increase Font Size').html('Plus');
            plus.appendTo(resize);
            
            var minus = $('<a>');
            minus.addClass('minus');
            minus.attr('href','javascript:void(0)').attr('title','Reduce Font Size').html('Minus');
            minus.appendTo(resize);            
            
            
            plus.click(function() {
                if(counter == plusLimit) {
                    body.css({ 'font-size' : plusLimit+'px' });
                }
                else {
                    body.css({ 'font-size' : (options.baseFontSize += 1)+'px' });
                    counter += 1;
                }
                
                return false;                     
            });
            
            minus.click(function() {
                if(counter == minusLimit) {
                    body.css({ 'font-size' : minusLimit+'px' });
                }
                else {
                    body.css({ 'font-size' : (options.baseFontSize -= 1)+'px' });
                    counter -=1;
                }                          
                
                return false;
            });
                        
        });
        
    };
})(jQuery);