/*   ________________________
 *  |    ____  ____  ____    |	Plugin de jQuery por Jorge H. Morales www.jhmorales.es 17/01/2009
 *  |   |    ||    ||    |   |	 * Copyright (c) 2009 Jorge H. Morales (www.jhmorales.es). Licencia GPL
 *  |   | -a ||  a || a+ |   |   * http://www.gnu.org/licenses/gpl.html
 *  |   |____||____||____|   |	    (basado en el font-resize de http://www.shopdev.co.uk/blog/text-resizing-with-jquery/)
 *  |________________________|	  Crea un recuadro dinámicamente con -a a a+ para cambiar el tamaño de fuente en
 *    pantalla, en la primera visita calcula el tamaño de fuente inicial de acuerdo a la resolución para presentar
 *    el texto en la misma proporción en relación al tamaño	 de pantalla. Así en resoluciones mayores la fuente 
 *    se muestra adecuadamente. Además almacena en una cookie el tamaño escogido para mantenerlo en la navegación.
 * 
 * EJEMPLOS:
 * $("body)$("div:first").before y $("#cambiarTamanyo").css("position", "absolute").css("top", "0").css("right", "0")
 *    se crea el recuadro en la esquina superior derecha de la pantalla sin afectar al diseño.
 * $("#menu");$("li a:first").before y $("#cambiarTamanyo").css("position", "relative")
 *    para crearlo al comienzo de un menu vertical.
 * $("#menu);$("li a:last").after y $("#cambiarTamanyo").css("position", "relative")
 *    para crearlo al final de un menu vertical.
 * OPCIONES:
 * Editar los primeros datos que se piden y cambiar, añadir y/o eliminar etiquetas de formato css("...","...") para 
 *    dar formato al recuadro y a los enlaces -a a a+. Guardar el archivo y recargar la página para ver los cambios.
 * INSTALACIÓN:
 * Antes del </head> poner estas líneas:
 * <script src="jquery-1.2.6.min.js" type="text/javascript"></script>
 * <script src="jquery.cookie.min.js" type="text/javascript"></script>
 * <script src="fontSize.js" type="text/javascript"></script>
 *
*/
$(function(){
	var fuenteInicial = 18; // tamaño de fuente inicial en px (10px=1em)
    var minAlturaFuente = 14; // tamaño mínimo de fuente en px
    var maxAlturaFuente = 36; // tamaño máximo de fuente en px
    var nombreSitio = "web_ergo"; // proporciono el NOMBRE DEL SITIO para personalizar la cookie
    $("body"); // IDENTIFICADOR DEL ELEMENTO PADRE donde (dentro del cual) quiero las -a a a+
    $(".txtgrande") // IDENTIFICADOR DEL ELEMENTO HIJO en relación al que quiero las -a a a+
	//con before decido si el contenedor de las -a a a+ va ANTES del elemento hijo o
    //con after decido si el contenedor de las -a a a+ va DESPUÉS del elemento hijo
    	.append(/*no cambiar esto=>*/"<div id='cambiarTamanyo'><p><a href='#' id='fuenteInicial'></a><a href='#' id='disminuirFuente'>-a&nbsp;</a><a href='#' id='resetearFuente'>&nbsp;a&nbsp;</a><a href='#' id='aumentarFuente'>&nbsp;a+</a></p></div>");
	//situo el contenedor de las -a a a+ en relación al lugar escogido
    	$("#cambiarTamanyo")
    		//.css("position", "absolute")
			//.css("top", 0)
			//.css("right", 0)
			//.css("z-index",999)
		//y le doy formato al contenedor
			.css("width","auto")
			.css("height","auto")
			.css("text-align","left")
			.css("border-color", "#E7E7E9");
    //doy formato a los enlaces
    	$("#cambiarTamanyo a")
			.css("display", "inline-block")
			.css("padding", 2)
			.css("margin", 2)
			.css("width", "auto")
			.css("text-align","left")
			.css("color","#FFFFFF")
			.css("background-color", "#006595");
    
/* Cambiar el divisor del cocienteCalculo solamente en caso de necesidad (posiblemente por IE)==================== */
    var anchoPantalla = screen.availWidth;
	var cocienteCalculo = anchoPantalla / fuenteInicial;
    if (anchoPantalla < 1100) {
        alturaFuente = anchoPantalla / cocienteCalculo;//calculamos para navegadores estandar a 1024
    }
    else {
        alturaFuente = anchoPantalla / (cocienteCalculo/1.2);//calculamos para navegadores estandar a >1024
    }
    if ($.browser.msie) {
        if (anchoPantalla < 1100) {
            alturaFuente = anchoPantalla / (cocienteCalculo/1.1);//calculamos para ie a 1024
        }
	    else {
    	    alturaFuente = anchoPantalla / (cocienteCalculo/1.4);//calculamos para navegadores estandar a >1024
    	}
    }
/* No cambiar nada de aquí hacia abajo =========================================================================== */
    $("body").css("font-size", "62.5%");//establecemos el tamaño equivalente a 10px=1em
    // mostramos los enlaces
	$("a:last",("#cambiarTamanyo")).after("<div></div>").css("clear","both");
    $("#cambiarTamanyo").show();
    var $nombreCookie = nombreSitio + "-cambiarTamanyo";
    // si existe valor guardado en cookie lo recuperamos, sinó lo almacenamos
    if ($.cookie($nombreCookie)) {
        var $getSize = $.cookie($nombreCookie);
        $("html").css({
            fontSize: $getSize + ($getSize.indexOf("px") != -1 ? "" : "px")// corrige el error de doble pxpx en IE
        }); 
    }
    else {
        $.cookie($nombreCookie, alturaFuente, { expires: 30 });
    }
    // enlace resetear fuente
    $("#resetearFuente").bind("click", function(){
        $("html").css("font-size", alturaFuente);
        $.cookie($nombreCookie, alturaFuente, { expires: 30 });
    });
    // enlace aumentar fuente
    $("#aumentarFuente").bind("click", function(){
        var actualAlturaFuente = $("html").css("font-size");
        var actualAlturaFuenteNum = parseFloat(actualAlturaFuente, 10);
        var nuevaAlturaFuente = actualAlturaFuenteNum * 1.1;
        if (nuevaAlturaFuente < maxAlturaFuente) {
            $("html").css("font-size", nuevaAlturaFuente);
            $.cookie($nombreCookie, nuevaAlturaFuente, { expires: 30 });
        }
        return false;
    });
    // enlace disminuir fuente
    $("#disminuirFuente").bind("click", function(){
        var actualAlturaFuente = $("html").css("font-size");
        var actualAlturaFuenteNum = parseFloat(actualAlturaFuente, 10);
        var nuevaAlturaFuente = actualAlturaFuenteNum * 0.9;
        if (nuevaAlturaFuente > minAlturaFuente) {
            $("html").css("font-size", nuevaAlturaFuente);
            $.cookie($nombreCookie, nuevaAlturaFuente, { expires: 30 });
        }
        return false;
    });
    // enlace invisible para aplicar fuente calculada
    $("#fuenteInicial").css("visibility", "hidden").css("font-size", 0).css("padding", 0).css("margin", 0).css("width",0);
    $("#fuenteInicial").bind("click", function(){
        var $getSize = $.cookie($nombreCookie);
        var previaAlturaFuente = $getSize + ($getSize.indexOf("px") != -1 ? "" : "px");// IE fix for double "pxpx" error
        $("html").css("font-size", previaAlturaFuente);
        $.cookie($nombreCookie, previaAlturaFuente, { expires: 10 });
    });
    if ($.cookie($nombreCookie)) {
        $("#fuenteInicial").click();//usa la fuente registrada en cookie
    }
    else {
        $("#resetearFuente").click();//usa la fuente calculada por pantalla
    }
});
