/**
 * Fonctionnalité permettant d'agrandir ou diminuer certains textes de la page.
 * La taille choisie est conservé d'une page à l'autre grace à un cookie.
 */

var zoomLevel   =   0;
var zoomSize	=	2;	// Taille de l'agrandissement ou de la diminussion en pixel

function setTextZoom() {

    $("#aPlus").click(
        function () {
            if (zoomLevel < 3) {
                zoomText(2);
                zoomLevel ++;
                saveZoomLevel(zoomLevel);
            }
        }
    );
    $("#aMoins").click(
        function () {
            $.cookie("textZoomLevel", null);
            if (zoomLevel != 0) {
                zoomText(-2);
                zoomLevel --;
                saveZoomLevel(zoomLevel);
            }
        }
    );

    restaureZoomLevel();
    setButtonAspect();
}

function saveZoomLevel(level) {
        setButtonAspect();
        $.cookie("textZoomLevel", level, { path: '/', expires: 10 });
}

function restaureZoomLevel() {
    // Zoom en fonction du cookie.
    var textZoomLevel   =   $.cookie("textZoomLevel");
    if (textZoomLevel != null && textZoomLevel != NaN) {
        textZoomLevel   =   parseInt(textZoomLevel);
        zoomText(textZoomLevel * 2);
        zoomLevel   =   textZoomLevel;
    }
}

function setButtonAspect() {
    var buttonOpacityEnabled	=	1;
    var buttonOpacityDisabled	=	0.3;

    $("#aMoins").css('opacity', buttonOpacityEnabled);
    $("#aPlus").css('opacity', buttonOpacityEnabled);
    if (zoomLevel == 0) {
        $("#aMoins").css('opacity', buttonOpacityDisabled);
    }
    else if(zoomLevel == 3) {
        $("#aPlus").css('opacity', buttonOpacityDisabled);
    }
}

/**
 * Fonction qui modifie la taille d'un texte.
 * @param indice Nombre de pixel à ajouter ou supprimer de la taille du texte.
 * @return
 */
function zoomText(indice) {
    $(".text-zoom").each(
        function () {
            var fontSize    =   parseFloat($(this).css("font-size"));
            $(this).css("font-size", fontSize + indice + "px")
        }
    );
}