﻿var mouseX = 0;
var mouseY = 0;

var muestraTitulo = false;
var tituloActual = "";
var detalleActual = "";

function AbrirDetalleTitulo(idTitulo, idDivDetalle, idDivDetalle2, hizoClick, posicionarControl) 
{
    if (!muestraTitulo && !hizoClick) return;
    
    muestraTitulo = true;
    tituloActual = idTitulo;
    detalleActual = idDivDetalle;
    
    var h2Titulo = document.getElementById(idTitulo);
    var divDetalle = document.getElementById(idDivDetalle);
    var divDetalle2 = document.getElementById(idDivDetalle2);
    
    h2Titulo.className = 'showThis';

    if (IE) {
        h2Titulo.onmouseover = function() { AbrirDetalleTitulo(idTitulo, idDivDetalle, idDivDetalle2, false, false); };
        h2Titulo.onmouseout = function() { CerrarDetalleTitulo(idTitulo, idDivDetalle); };
    }
    else {
        h2Titulo.setAttribute("onMouseOver", "AbrirDetalleTitulo('" + idTitulo + "', '" + idDivDetalle + "', '" + idDivDetalle2 + "', false);");
        h2Titulo.setAttribute("onMouseOut", "CerrarDetalleTitulo('" + idTitulo + "', '" + idDivDetalle + "');");
    }

    divDetalle.className = 'showThis tituloBox_UR'

    if (IE) {
        divDetalle.onmouseover = function() { AbrirDetalleTitulo(idTitulo, idDivDetalle, idDivDetalle2, true, false); };
        divDetalle.onmouseout = function() { CerrarDetalleTitulo(idTitulo, idDivDetalle); };
    }
    else {
        divDetalle.setAttribute("onMouseOver", "AbrirDetalleTitulo('" + idTitulo + "', '" + idDivDetalle + "', '" + idDivDetalle2 + "');");
        divDetalle.setAttribute("onMouseOut", "CerrarDetalleTitulo('" + idTitulo + "', '" + idDivDetalle + "');");
    }
    
    if (posicionarControl) DefinirPosicionDetalleTitulo(h2Titulo, divDetalle, divDetalle2);
}

function CerrarDetalleTitulo(idTitulo, idDivDetalle) 
{
    var h2Titulo = document.getElementById(idTitulo);
    var divDetalle = document.getElementById(idDivDetalle);

    h2Titulo.className = '';
    divDetalle.className = 'itemsList';
}

function RevisarDetalleTitulo(idTitulo, idDivDetalle) {
    var h2Titulo = document.getElementById(idTitulo);
    var divDetalle = document.getElementById(idDivDetalle);

    var dentroH2 = false;
    var dentroDIV = false;
    
    findPosDetalleTitulo(h2Titulo);
    var inixT = leftCentro;
    var iniyT = topCentro;
    var finxT = inixT + h2Titulo.clientWidth;
    var finyT = iniyT + h2Titulo.clientHeight;

    findPosDetalleTitulo(divDetalle);
    var inixD = leftCentro;
    var iniyD = topCentro;
    var finxD = inixD + divDetalle.clientWidth;
    var finyD = iniyD + divDetalle.clientHeight;

    if (mouseX >= inixT && mouseX <= finxT && mouseY >= iniyT && mouseY <= finyT) dentroH2 = true;
    if (mouseX >= inixD && mouseX <= finxD && mouseY >= iniyD && mouseY <= finyD) dentroDIV = true;

    if (!dentroH2 && !dentroDIV) {
        muestraTitulo = false;
    }
}

var leftCentro = 0;
var topCentro = 0;

function findPosDetalleTitulo(obj) {
    leftCentro = 0;
    topCentro = 0;
    if (obj.offsetParent) {
        do {
            leftCentro += obj.offsetLeft;
            topCentro += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
}

var IE = (navigator.appName.indexOf("Microsoft") >= 0) ? true : false;
var w_y;
var w_x;

function getWindowDimsDetalleTitulo() {
    if (IE) {
        var _scrollheight = 0;
        var _scrolltop = 0;
        var _scrollwidth = 0;
        var bodys = document.getElementsByTagName("HTML");
        var count = bodys.length;
        for (var i = 0; i < count; i++) {
            var obj = document.getElementsByTagName("HTML")[i];
            _scrollheight = obj.clientHeight;
            _scrolltop = obj.scrollTop;
            _scrollwidth = obj.clientWidth;
        }
        w_y = _scrollheight + _scrolltop;
        w_x = _scrollwidth;
    }
    else {
        w_y = window.innerHeight + window.scrollY;
        w_x = window.innerWidth;
    }
}

function DefinirPosicionDetalleTitulo(objCentro, divMover, divMoverDetalle) 
{
    var anchoTotal = 0;
    var cantidadColumnas = 0;

    for (var i = 1; i < 6; i++) {
        var ulTitulo = document.getElementById(divMover.id + '_' + i);
        if (ulTitulo != null) cantidadColumnas++;
    }        
        
    if (IE) {        
        DefinirPosicionDetalleTitulo2(objCentro, divMover, divMoverDetalle, anchoTotal);
            
        for (var i = 1; i < 6; i++) {                        
            var ulTitulo = document.getElementById(divMover.id + '_' + i);                        
            if (ulTitulo != null)
            {                   
                var anchoUL = ulTitulo.offsetWidth;
                if (anchoUL == 0) anchoUL = ulTitulo.clientWidth;
                if (cantidadColumnas <= 2) ulTitulo.style.width = anchoUL + 7 + "px";
                anchoTotal = anchoTotal + anchoUL + 7;                
            }
        }
        //anchoTotal = anchoTotal + 30;        
        divMover.style.width = anchoTotal + "px";                
    }
    else 
    {
        if (cantidadColumnas <= 2) 
        {
            for (var i = 1; i < 6; i++) {
                var ulTitulo = document.getElementById(divMover.id + '_' + i);
                if (ulTitulo != null) {
                    var anchoUL = objCentro.clientWidth;
                    ulTitulo.style.minWidth = anchoUL + 5 + "px";
                }
            }
        }
    
        anchoTotal = divMover.clientWidth;
    }
    
    DefinirPosicionDetalleTitulo2(objCentro, divMover, divMoverDetalle, anchoTotal);        
}

function DefinirPosicionDetalleTitulo2(objCentro, divMover, divMoverDetalle, anchoTotal)
{
    var altoMover = divMover.clientHeight;
    var anchoMover = divMover.clientWidth;
    var anchoTab = objCentro.offsetWidth;
    
    getWindowDimsDetalleTitulo();

    topCentro = 45;
    leftCentro = objCentro.offsetLeft;

    if (leftCentro + anchoMover > 635)
        leftCentro = (635 - anchoMover - 10);
    
    divMover.style.top = topCentro + "px";
    divMover.style.left = (leftCentro - 19) + "px";
    
    if (IE)
    {
        if (anchoTotal == 0)
            divMoverDetalle.style.width = anchoTab + "px";
        else    
            divMoverDetalle.style.width = anchoTotal + "px";
    }
    else
    {
        divMoverDetalle.style.minWidth = anchoTab + "px";
    }
}

function getMouse(e) 
{
    e = e || window.event;

    var mouse = new Object();
    
    mouse.x = (e.pageX || e.clientX);
    mouse.y = (e.pageY || e.clientY);
    
    return mouse;
}

function outputMouse(e) 
{
    var m = getMouse(e);
        
    mouseX = m.x;
    mouseY = m.y;

    if (tituloActual != "" && detalleActual != "") RevisarDetalleTitulo(tituloActual, detalleActual);
}

document.onmouseover = outputMouse;