/*
	FontSize for jQuery (version 1.1)
	Copyright (c) 2009 Ramon Victor
	http://www.ramonvictor.com/plugin-font-size-jquery
	
	Licensed under the MIT license:
		http://www.opensource.org/licenses/mit-license.php

	Any and all use of this script must be accompanied by this copyright/license notice in its present form.
*/

(function($){
    $.fn.fontSize = function(options) {
        var defaults = {
            alvo: 'body',
            tipoPaiLink: 'none',
            setCookie: false,
            variacoes: 7,
            opResetar: false
        };
        var d = $.extend(defaults, options);
	
        return this.each(function() {
            //Acrescentando os links para aumentar e diminuir tamanho da fonte
            pailink = d.tipoPaiLink;
            reset = d.opResetar;
		
            if (pailink != 'none') {
                if (reset) {
                    if (pailink == 'ul') {
                        $(this).html('<ul style="margin:0 0 0 5px"><li><a href="javascript:;" class="menos" title="Diminuir tamanho da letra">A-</a></li><li><a href="javascript:;" class="resetar" title="Tamanho padrão">A</a></li><li><a href="javascript:;" class="mais" title="Aumentar tamanho da letra">A+</a></li></ul>');
                    }
                    else {
                        $(this).html('<a href="javascript:;" class="menos" title="Diminuir tamanho da letra">A-</a> <a href="javascript:;" class="resetar" title="Tamanho padrão">A</a> <a href="javascript:;" class="mais" title="Aumentar tamanho da letra">A+</a>');
                    }
                }
                else {
                    if (pailink == 'ul') {
                        $(this).html('<ul><li><a href="javascript:;" class="menos" title="Diminuir tamanho da letra">A-</a></li><li><a href="javascript:;" class="mais" title="Aumentar tamanho da letra">A+</a></li></ul>');
                    }
                    else {
                        $(this).html('<a href="javascript:;" class="menos"  title="Diminuir tamanho da letra">A-</a> <a href="javascript:;" class="mais" title="Aumentar tamanho da letra">A+</a>');
                    }
                }
            }
            alvo = d.alvo;
            cook = d.setCookie;
            nvariacoes = d.variacoes;
		
            //Verificando número de variações
            if(nvariacoes % 2 == 0){
                padrao = (nvariacoes/2) + 1;
            } else {
                padrao = parseInt((nvariacoes/2) + 1);
            }
		
            //Verificando se há cookie
            if($.cookie("fontSize") != null){
                $(alvo).addClass($.cookie("fontSize"));
            } else {
                $(alvo).addClass("tam"+padrao);
            }
     	
            // Recuperando o número da classe atual
            $.natual = function() {
                atual = $(alvo).attr("class");
                t = atual.indexOf("tam");
                num = atual.substring((t+3),(t+5));
                return parseInt(num);
            }
		
            //Gravando valor da classe no cookie
            $.verifyCookie = function(nclass) {
                if(cook) {
                    $.cookie('fontSize', nclass.toString());
                }
            }

			
            //Diminuindo número da classe até chegar a "1"
            $('.menos').click(function () {
                n = $.natual();
                if(n>1){
                    nAtual = "tam" + n;
                    n -= 1;
                    nc = "tam" + n;
                    $(alvo).removeAttr("class");
                    $(alvo).addClass(atual.replace(nAtual, nc));
                    $(this).parent().parent().find('a').removeClass('disabilitar');
                    return $.verifyCookie(nc);
                } else {
                    $(this).addClass('disabilitar');
                }
            });
		
            //Aumentando o n�mero da classe até chegar ao número total de variações
            $('.mais').click(function () {
                n = $.natual();
                if(n < nvariacoes){
                    nAtual = "tam" + n;
                    n = n + 1;
                    nc = "tam" + n;
                    $(alvo).removeAttr("class");
                    $(alvo).addClass(atual.replace(nAtual, nc));
                    $(this).parent().parent().find('a').removeClass('disabilitar');
                    return $.verifyCookie(nc);
                } else {
                    $(this).addClass('disabilitar');
                }
            });
		
            //função de resetar
            $(".resetar").click(function(){
                nAtual = "tam" + $.natual();
                $(alvo).removeAttr("class");
                nc = "tam"+padrao;
                $(alvo).addClass(atual.replace(nAtual, nc));
                $(this).parent().parent().find('a').removeClass('disabilitar');
                return $.verifyCookie(nc);
						
            });
		
		
        });
    };
})(jQuery);
