/* ******************************************************************************************** */
/* ***** Funcion que cambia de tamano la letra del(los) estilo(s) referenciado(s).        ***** */
/* ***** Archivo de estilos usado:                                                        ***** */
/* *****     /web/p4_lanacion/css/site/port/estilos.css                                   ***** */
/* ***** V1.0 10/01/2003 - MCO                                                            ***** */
/* ***** V1.1 13/01/2003 - ALD - Uso de selectorText                                      ***** */
/* ***** V1.2 13/01/2003 - MCO - Recuperacion y reasignacion de atributos al mismo estilo ***** */
/* ***** V1.3 15/01/2003 - MCO - Se elimina cant en porcentaje de la llamada a la funcion ***** */
/* *****                         para dejarlo en forma local al js y modificar solo este  ***** */
/* *****                         en afinamientos o cambios posteriores.                   ***** */
/* ***** V1.4 15/01/2003 - ALD - Agrega estilos, aumenta "salto" y disminuye margenes.    ***** */
/* ***** V1.5 17/01/2003 - ALD - Optimiza un poco para agilizar la ejecucion.             ***** */
/* ***** V1.6 30/01/2003 - ALD - Mejora manejo de intervalos de tamaņo.                   ***** */
/* ***** V1.7 03/06/2003 - MCO - Nueva optimizacion. Se agrega tratamiento para el * que  ***** */
/* *****                         indica valor generico de las cascadas                    ***** */
/* ***** V1.8 16/11/2004 - MCO - Se agrega cookie para mantener por seis dias ultimo      ***** */
/* *****                         tamano de letras, seleccionado.                          ***** */
/* ******************************************************************************************** */


var size_actual = 100;
var intervalo   = 10;  // 10% o -10% Segun el signo que venga como parametro de la funcion.

var tamanos = new Array(70,80,90,100,130,180,250);
var size_actual_i = 3; // Corresponde al cuarto elemento en el arreglo tamanos.

// Variable por defecto.
var fontWeight_default = '';
var fontFamily_default = '';
var fontSize_default = '';
var color_default = '';
var indice_hoja_estilos = 0;
var cant_anosCookie = 10; // Anos que durara la cookie para el tamano de letras, desde la ultima actualizacion (+/-).

// -----------------------------------------------------------
if (document.all) { // ie.

  // Inicializa arreglos de estilos. V1.7.
  var fontweight = new Array();
  var fontfamily = new Array();
  var fontsize   = new Array();
  var fontcolor  = new Array();

  // Rescata los atributos de los css del primer archivo de estilos de la pagina html (por eso se usa el subindice 0).
  for (var i=0; i < document.styleSheets[indice_hoja_estilos].rules.length; i++) { // 1.2
    fontweight[i] = document.styleSheets[indice_hoja_estilos].rules[i].style.fontWeight;
    fontfamily[i] = document.styleSheets[indice_hoja_estilos].rules[i].style.fontFamily;
    fontsize[i] = document.styleSheets[indice_hoja_estilos].rules[i].style.fontSize;
    fontcolor[i] = document.styleSheets[indice_hoja_estilos].rules[i].style.color;
  };

  // Inicializa elementos a modificar.
  var var_elements = new Array();

  // alert(document.styleSheets[indice_hoja_estilos].name);
  // Busca los elementos a modificar (css). Estos son fijos y hay que agregarlos directamente en este archivo.
  for (var i=0; i < document.styleSheets[indice_hoja_estilos].rules.length; i++) {
    var aux = document.styleSheets[indice_hoja_estilos].rules[i].selectorText;
    found = 0;
    // alert(aux + ' ' + aux.indexOf(':hover'));
    if (aux == '*') {
      fontWeight_default = document.styleSheets[indice_hoja_estilos].rules[i].style.fontSize;
      fontFamily_default = document.styleSheets[indice_hoja_estilos].rules[i].style.fontWeight;
      fontSize_default   = document.styleSheets[indice_hoja_estilos].rules[i].style.fontFamily;
      color_default      = document.styleSheets[indice_hoja_estilos].rules[i].style.color;
    };

    if ( (aux.indexOf('TEXTarticulo') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('TEXTepigrafe') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('TITULAR')      >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('TITULOS')      >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('TITUblackLB')  >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('TEXTlinks')    >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('FOTO')         >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('TEXTbajada')   >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('autor')        >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('fuente')       >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };

    if ( (aux.indexOf('titular')      >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('textosnegrita P') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('fecha') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('textos P') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('textos') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };
    if ( (aux.indexOf('texto_foto') >= 0) && (aux.indexOf(':hover') < 0) ) { found = 1; };

    if (found == 1) { var_elements[var_elements.length] = i; };
  };
}; // if.

// -----------------------------------------------------------
function cambia_size(signo) {
  // Hasta el momento el cambio de fonts sirve solo para ie.

  if (document.all) {
    if (signo == 'mas') {// 1.3
      if (size_actual_i >= (tamanos.length - 1)) { return; };
      size_actual_i++;
    }
    else {
      if (size_actual_i <= 0) { return; };
      size_actual_i--;
    };

    size_actual = tamanos[size_actual_i];

    graba_posBase_tamanoLetras(size_actual_i); // V1.8.

    aplica_cambios(size_actual);
  };
}; // cambia_size.

// -----------------------------------------------------------
function cambia_size_cookie() { // V1.8.
  // Hasta el momento el cambio de fonts sirve solo para ie.

  if (document.all) {
    size_actual_i = carga_pos_base(); // V1.8. Rescata de la cookie tamano actual de las fonts.
    size_actual = tamanos[size_actual_i];

    aplica_cambios(size_actual);
  };
}; // cambia_size_cookie.

// -----------------------------------------------------------
function aplica_cambios(size_actual) {
  // 1.5 Solo aplica cambios a elementos preseleccionados.
  for (var i=0; i < var_elements.length; i++) {
    var j = var_elements[i];

    if (fontsize[j]   == '') { if (fontSize_default != '') { fontsize[j] = fontSize_default; }else{ fontsize[j] = 12 }; }; // V1.7.
    if (fontweight[j] == '') { if (fontWeight_default != '') { fontweight[j] = fontWeight_default; }else{ fontweight[j] = 'Normal' }; };
    if (fontfamily[j] == '') { if (fontFamily_default != '') { fontfamily[j] = fontFamily_default; }else{ fontfamily[j] = 'Arial, Helvetica, sans-serif' }; };
    if (fontcolor[j]  == '') { if (color_default != '') { fontcolor[j]  = color_default; }else{ fontcolor[j] = '#000000' }; };

    var tam_final = parseInt((parseInt(fontsize[j]) * size_actual)/100);

    if (tam_final - parseInt(tam_final) > 0) { // Si resultado da con decimal, se agrega uno al entero.
      tam_final = parseInt(tam_final) + 1;
    };

    document.styleSheets[indice_hoja_estilos].rules[j].style.fontSize   = tam_final + 'px';
    document.styleSheets[indice_hoja_estilos].rules[j].style.fontWeight = fontweight[j];
    document.styleSheets[indice_hoja_estilos].rules[j].style.fontFamily = fontfamily[j];
    document.styleSheets[indice_hoja_estilos].rules[j].style.color      = fontcolor[j];
  };
}; // aplica_cambios.

// -----------------------------------------------------------
// Obtiene la posicion del tamano predefinido de letras desde la cookie.
function carga_pos_base() { // V1.8.
  var cookies = new Array();
  cookies = document.cookie.split(";");
  for (i = 0; cookies.length > i; i++) {
    if (cookies[i].indexOf('posBase') > -1) { // Encuentra la seccion en la cookie.
      var cookie_pos = new Array();
      cookie_pos = cookies[i].split("=");
      posBase = parseInt(cookie_pos[1]);

      return isNaN(posBase) ? 3 : posBase; // Devuelve la posicion del tamano predefinido de letras, sino devuelve posicion base (3).
    };
  };

  return 3;
}; // carga_pos_base.

// -----------------------------------------------------------
// Graba indice del arreglo de tamanos de letras, en una cookie.
function graba_posBase_tamanoLetras(fontSize) { // V1.8.
  var expire = new Date ();
  expire.setTime (expire.getTime() + (31553280000 * cant_anosCookie)); // Expira en 10 aņos aprox.
  expire = expire.toGMTString();
  document.cookie = "posBase=" + fontSize + "; path=/; expires=" + expire;
}; // graba_posBase_tamanoLetras.



setTimeout("cambia_size_cookie()", 1000); // V1.8. Espera un segundo y se ejecuta.

