var indiceSiguienteLogo = 0;
var array_logosSRC = new Array();
var array_linksLogos = new Array();
var array_altenateTextLogos = new Array();
var array_logosDimensiones = new Array ();
        
var velocidad_de_rotacion = 2500;
var velocidad_de_movimiento = 16;
var imgSiguienteLogo = null;
var imgSiguienteLogo_W = 0;
var imgSiguienteLogo_H = 0;

function rotarLogos(){
    if (array_logosSRC.length > 3)
    {
        var tbody = document.getElementById('tabla_logos').getElementsByTagName("TBODY")[0];
        var tr = document.createElement("TR");
        var td = document.createElement("TD");
        td.align = "center";
        td.valign = "middle";
        td.height = "90px";
        td.onmouseover = function(){pararTodo();};


        var linkLogo = document.createElement("A");
        linkLogo.href = array_linksLogos[indiceSiguienteLogo];
        linkLogo.target = "_blank";

        imgSiguienteLogo_W = array_logosDimensiones[indiceSiguienteLogo].split("x")[0];
        imgSiguienteLogo_H = array_logosDimensiones[indiceSiguienteLogo].split("x")[1];
        imgSiguienteLogo = new Image();
        imgSiguienteLogo.src = array_logosSRC[indiceSiguienteLogo];
        imgSiguienteLogo.title = array_altenateTextLogos[indiceSiguienteLogo];
        if (imgSiguienteLogo_W > imgSiguienteLogo_H)
        {
            var proporcion = Math.round(imgSiguienteLogo_W / imgSiguienteLogo_H)
            imgSiguienteLogo.width = (proporcion>0)?proporcion:1;
            imgSiguienteLogo.height = 1;                
        }
        else if (imgSiguienteLogo_W < imgSiguienteLogo_H)
        {
            var proporcion = Math.round(imgSiguienteLogo_H / imgSiguienteLogo_W);
            imgSiguienteLogo.width = 1;
            imgSiguienteLogo.height = (proporcion>0)?proporcion:1;              
        }
        else
        {
            imgSiguienteLogo.width = 1;
            imgSiguienteLogo.height = 1;            
        }

        linkLogo.appendChild(imgSiguienteLogo);

        td.appendChild(linkLogo);
        tr.appendChild(td);
        tbody.appendChild(tr);

        indiceSiguienteLogo = (indiceSiguienteLogo+1 >= array_logosSRC.length)?0:indiceSiguienteLogo+1;

        mover(velocidad_de_movimiento);
     }
}

var estadoRotacion = null;
var estadoMovimiento = null;
function mover(velocidad)
{
    var tbody = document.getElementById('tabla_logos').getElementsByTagName("TBODY")[0];
    var tr = tbody.getElementsByTagName("TR")[0];
    var td = tr.getElementsByTagName("TD")[0];
    var nFilas = tbody.getElementsByTagName("TR").length;
    var capa = document.getElementById("logos_dinamicos");
    if (parseInt(capa.style.top.replace("px","")) > -90 && nFilas == 4)
    {
     if (estadoMovimiento != null){
        var image0 = td.getElementsByTagName("IMG")[0];
        cambiarTamImg(image0, -2, 0, 0);
        if (parseInt(capa.style.top.replace("px","")) < -35) cambiarTamImg(imgSiguienteLogo, 2, imgSiguienteLogo_W, imgSiguienteLogo_H);
        capa.style.top = (parseInt(capa.style.top.replace("px","")) - 1) + "px";
     }
     estadoMovimiento = setTimeout('mover(' + velocidad + ')',velocidad);
    }
    else if (parseInt(capa.style.top.replace("px","")) <= -90 && nFilas == 4)
    {
        capa.style.top = "0px";
        tbody.removeChild(tr);
        imgSiguienteLogo.width = imgSiguienteLogo_W;
        imgSiguienteLogo.height = imgSiguienteLogo_H;
        estadoRotacion = setTimeout('rotarLogos()',velocidad_de_rotacion);
    }
    else if (nFilas == 3) estadoRotacion = setTimeout('rotarLogos()',1);
}

function pararRotar()
{
    if (estadoRotacion != null) clearTimeout(estadoRotacion);
    estadoRotacion = null;
}

function pararMover()
{
    if (estadoMovimiento != null) clearTimeout(estadoMovimiento);
    estadoMovimiento = null;
}

function pararTodo()
{
    pararMover();
    pararRotar();
}

function cambiarTamImg(image, pixels, anchoFinal, altoFinal)
{
    
    if ((pixels < 0 && image.width > anchoFinal && image.height > altoFinal) || (pixels > 0 && image.width < anchoFinal && image.height < altoFinal))
    {
        if (image.width > image.height)
        {
            var proporcion = Math.round(((image.width+(pixels)) * 100) / image.width);
            var nuevoAncho = image.width+(pixels);
            var nuevoAlto = Math.round((image.height * proporcion) / 100);
        }
        else if (image.height > image.width)
        {
            var proporcion = Math.round(((image.height+(pixels)) * 100) / image.height);
            var nuevoAlto = image.height+(pixels);
            var nuevoAncho = Math.round((image.width * proporcion) / 100);
        }
        else
        {
            var nuevoAncho = image.width+(pixels);
            var nuevoAlto = image.height+(pixels);
        }
    }
    else
    {
        var nuevoAncho = anchoFinal;
        var nuevoAlto = altoFinal;
    }

    image.width = (nuevoAncho>0)?nuevoAncho:1;
    image.height = (nuevoAlto>0)?nuevoAlto:1;
}