window.onresize = resize;
window.onload = resize;

function resize(){
    reescribirNombresArchivo();
}


function reescribirNombresArchivo(){
    //Longitud maxima del nombre del archivo que se ve bien en una resolucion
    //de 1024x768.
    var maxima_longitud_nombre_archivo= '200';
    //Resolución minima para que se vea bien un archivo de longitud de nombre
    //inferior a minima_longitud_nombre_archivo.
    var anchura_minima = '1024';

    nombre = new String();
    nombre="nombreLargo";

    //Recojo todos los elementos span de la pagina.
    var elementosSpan = document.getElementsByTagName("span");
    for (i=0;i<elementosSpan.length; i++) {
        //Me interesan solo los que comienzan por lo que indica la variable
        //"nombre".
        if (elementosSpan[i].id.substring(0,nombre.length)==nombre){
            //El siguiente span es donde esta el nombre completo.
            var nombreLargoCompleto1 = elementosSpan[i+1].innerHTML;
            var longitud = nombreLargoCompleto1.length;
            //Compruebo que la longitud del nombre sea menor que la minima.
            if (longitud >= maxima_longitud_nombre_archivo){
                //Es demasiado grande y hay que acortar con puntos suspensivos
                //Reconstruyo el nombre visible del artefacto añadiendo puntos suspensivos
                trozo = nombreLargoCompleto1.slice(0,calculaLetrasPorPixel(maxima_longitud_nombre_archivo, anchura_minima)-2);
                if (nombreLargoCompleto1.length != trozo.length){
                    //No puede mostrarse el nombre entero y se incorporan los
                    //puntos suspensivos.
                    puntos = '...';
                    cadena = new String();
                    cadena = cadena.concat(trozo,puntos);
                    //Sobreescribo por el nombre acortado.
                    elementosSpan.item(i).innerHTML = cadena;
                }else{
                    //Se puede mostrar el nombre entero.
                    elementosSpan.item(i).innerHTML = nombreLargoCompleto1;
                }
            }else{
                //Si la longitud está por debajo de la resolución minima se escribe el nombre entero
                elementosSpan.item(i).innerHTML = nombreLargoCompleto1;
            }
        }
    }
}

//Devuelve el numero de caracteres que se pueden mostrar sin que desborde el
//campo.
function calculaLetrasPorPixel(minima_longitud_nombre_archivo, anchura_minima){     
    //Resolucion actual de la pagina.
    var x=document.body.clientWidth;    
    
    desplazamiento = x-anchura_minima;
    if (desplazamiento > 0){
        //Entra si la resolucion es mayor que la anchura minima, y depediendo
        //de los pixeles ganados en anchura devuelve un numero de letras que
        //pueden incorporarse al nombre segun esta formula.
        return (parseInt(minima_longitud_nombre_archivo) + parseInt((desplazamiento*5)));
    }else{
        return minima_longitud_nombre_archivo;   
    }
}

//Cuenta los elementos con name "nombreLargo" que hay en la pagina y devuelve
//su valor.
function contar(){
    var elementos = document.getElementsByName("nombreLargo");
    alert("Hay " + elementos.length + " elementos con el nombre \'nombreLargo\'");
    texto = "";
    for (x=0;x<elementos.length;x++){
        texto = texto + elementos[x].innerHTML + "\n";
    }
    alert("Se han encontrado los siguientes valores en elementos \'nombreLargo\'\n" + texto);
}

//Solo funciona en firefox
//
//function capturarResolucion(){
//    //Longitud maxima del nombre del archivo que se ve bien en una resolucion
//    //de 1024x768.
//    var minima_longitud_nombre_archivo= '30';
//
//    //    var capaNombreLargo =document.getElementById("nombreLargo");
//    //    var capaNombreLargoCompleto1 =document.getElementById("nombreLargoCompleto");
//
//
//    var elementosNombreLargo = document.getElementsByName("nombreLargo");
//    var elementosNombreLargoCompleto = document.getElementsByName("nombreLargoCompleto");
//
//    for (x=0;x<elementosNombreLargo.length;x++){
//
//        var nombreLargoCompleto1 = elementosNombreLargoCompleto[x].innerHTML;
//        var longitud = nombreLargoCompleto1.length;
////        window.alert(longitud);
//        if (longitud >= minima_longitud_nombre_archivo){
//            //Reconstruyo en nombre visible del artefacto añadiendo puntos suspensivos
//            trozo = nombreLargoCompleto1.slice(0,calculaLetrasPorPixel(minima_longitud_nombre_archivo)-2);
//            puntos = '...';
//            cadena = new String();
//            cadena = cadena.concat(trozo,puntos);
//            elementosNombreLargo[x].innerHTML = cadena;
//        }
//
//    }
//
//}
