
var capaCabecera = [];
var capaSubmenu = [];
var menuListener, submenuListener;
var relX = 0, relY = 0;
var relSX = 0, relSY = 0;
var mouse = new DynMouseEvent();
    
function dnInit () {
    MM_preloadImages('/img/fav/menu/miperfil-o.gif', '/img/fav/menu/misfavoritos-o.gif', '/img/fav/menu/servicios-o.gif', '/img/fav/menu/directorios-o.gif', '/img/fav/menu/contenidos-o.gif', '/img/fav/menu/acercade-o.gif');

    //cabeceraCreate();
	cabeceraResize();

}


function cabeceraCreate () {
	//create layers
    rnum = menuContent.length;

	for(var i = 0; i<rnum; i++) {
        capaCabecera[i] = {};
        capaCabecera[i].link = new DynLayer ();
        capaCabecera[i].link.index = i;
        capaCabecera[i].over = false;
        capaCabecera[i].submenu=[];
        capaCabecera[i].lastblink_id=null;
        capaCabecera[i].lastopen_submenu=-1;
        capaCabecera[i].link.setVisible(false);
        capaCabecera[i].link.setZIndex(1000);
        capaCabecera[i].link.setHTML(getHTML(i, true));
        DynAPI.document.addChild(capaCabecera[i].link);

	}

    rnum = submenuContent.length;
	for(var i = 0; i<rnum; i++) {
        capaSubmenu[i] = {};
        capaSubmenu[i].over = false;
        capaSubmenu[i].lastblink_id=null;
        capaCabecera[i].lastopen_submenu=-1;
        capaSubmenu[i].link = new DynLayer ();
        capaSubmenu[i].link.index = i;
        capaSubmenu[i].link.setVisible(false);
        capaCabecera[i].link.setZIndex(1000);
        capaSubmenu[i].link.setHTML(getHTML(i, false));
        j = submenuContent[i].menu;
        k = capaCabecera[j].submenu.length;
        capaCabecera[j].submenu[k] = i;
        DynAPI.document.addChild(capaSubmenu[i].link);
	}
    var loadFunctions = DynAPI.getLoadFunctions();
    DynAPI.resetLoadFunctions();
    DynAPI.loadHandler();
    DynAPI.created = false;
    cabeceraResize();
    DynAPI.addLoadFunction(loadFunctions);
}

function cabeceraResize () {
	rnum = menuContent.length;

	if (is.ns6) {
		relX = document.getElementById('relativoMenuDiv').offsetLeft;
		relY = document.getElementById('relativoMenuDiv').offsetTop;
	} else if (is.ns) {
		relX = document.layers['relativoMenuDiv'].pageX;
		relY = document.layers['relativoMenuDiv'].pageY;
	} else {
        if (document.all['relativoMenuDiv'].offsetTop) {
    		relX=document.all['relativoMenuDiv'].offsetLeft;
	    	relY=document.all['relativoMenuDiv'].offsetTop;
        } else {
            relY = menuYPos;
            relX = 4;
        }
	}
	relX = relX+1; 

	for(var i = 0; i<rnum; i++) {
		capaCabecera[i].link.moveTo(relX, relY);
        if( (numSubmenus=capaCabecera[i].submenu.length) > 0 ) {  // si tiene submenus hay que colocarlos
            relSX = relX + capaCabecera[i].link.getContentWidth()-3;
            for( j=0; j<numSubmenus; j++ ) {   // Iteramos todos los submenús de un menú
                relSY = relY + 20;
                z = capaCabecera[i].submenu[j];
                n = submenuContent[z].option;
                for( k=0; k<n; k++ ) {
                    if( menuContent[i].labels[k] != null ) {
                        relSY += 17;
                    } else {
                        relSY += 2;
                    }
                }
                capaSubmenu[z].link.moveTo(relSX, relSY);
            }
        }
        relX += menuContent[i].img[1];
	    }

    }

var capaActualOver = null;
var subCapaActualOver = null;
var capaTimeouts = [];
var subCapaTimeouts = [];


function capaMouseout(i, menu_p) {
    if (menu_p) {
        capaActualOver = null;
        capaTimeouts [i] = setTimeout('capaMouseoutDo(' + i + ', ' + menu_p + ')', 100);
    } else {
        subCapaActualOver = null;
        subCapaTimeouts [i] = setTimeout('capaMouseoutDo(' + i + ', ' + menu_p + ')', 500);
    }
}

function capaMouseover(i, menu_p) {
    if (menu_p) {
        if (capaTimeouts[i]) clearTimeout(capaTimeouts[i]);
        capaActualOver = i;
    } else {
        if (subCapaTimeouts[i]) clearTimeout(subCapaTimeouts[i]);
        subCapaActualOver = i;
    }
}

function capaMouseoutDo(i, menu_p) {
    if (menu_p) {
        if (capaActualOver != i) {
            capaCabecera[i].over = false;
            hideDesc(i);
        }
    } else {
        if (subCapaActualOver != i) {
            capaSubmenu[i].over = false;
            window.setTimeout('hideAll('+i+')', 300);
        }
    }
}
    


function changeOption(id, menuI, submenuI) {
    if( id.substr(0, 5) == 'menu_' ) {
        option = capaCabecera[menuI];
    } else {
        option = capaSubmenu[menuI];
    }
    option.over = true;
    if( option.lastblink_id != null ) {
        bgColorOption(option.lastblink_id, '#DBE7E9');
    }
    showAndHideSubmenu(menuI, submenuI);
    bgColorOption(id, '#FFFFFF');
    option.lastblink_id = id;
}

function bgColorOption(id, color) {
    obj = document.getElementById(id);
    obj.style.backgroundColor=color;
}

function showHide(i) {
    ComboHide.hide(capaCabecera[i].link);
	for (var j=0; j<menuContent.length; j++)
		if (i==j) {
            capaCabecera[i].link.setVisible(true)
            capaCabecera[i].link.moveTo(capaCabecera[i].x, capaCabecera[i].y);
        }
		else {
            capaCabecera[j].link.setVisible(false);
        }
}

function hideDesc(i) {
    n = capaCabecera[i].submenu.length;
    found = false;
    for( j=0; j<n; j++ ) {
        k = capaCabecera[i].submenu[j];
        if( capaSubmenu[k].link.getVisible() ) {
            found = true;
            window.setTimeout('_hideDesc('+i+', '+k+')', 1000);
        }
    }
    if( ! found ) {
        if( capaCabecera[i].lastblink_id != null ) {
            bgColorOption(capaCabecera[i].lastblink_id, '#DBE7E9');
            capaCabecera[i].lastblink_id = null;
        }
        capaCabecera[i].link.setVisible(false);
        ComboHide.show();
    }
}

function _hideDesc(i,k) {
    if( ! capaSubmenu[k].over ) {
        if( capaCabecera[i].lastblink_id != null ) {
            bgColorOption(capaCabecera[i].lastblink_id, '#DBE7E9');
            capaCabecera[i].lastblink_id = null;
        }
        hideSubmenu(i, k);
        capaCabecera[i].lastopen_submenu = -1;
    	capaCabecera[i].link.setVisible(false);
        ComboHide.show();
    }
}

function hideAll(submenuI) {
    menuI = submenuContent[submenuI].menu;
    if( capaSubmenu[submenuI].lastblink_id != 'null' ) {
        bgColorOption(capaSubmenu[submenuI].lastblink_id, '#DBE7E9');
    }
    if( !capaCabecera[menuI].over ) {
        capaSubmenu[submenuI].link.setVisible(false);
        hideDesc(menuI);
    }
}

function showAndHideSubmenu(menuI, submenuI) {
    if( capaCabecera[menuI].lastopen_submenu >= 0 ) {
        hideSubmenu(menuI, capaCabecera[menuI].lastopen_submenu);
    }

    if( submenuI >= 0 ) { // Tenemos submenu
        ComboHide.hide(capaSubmenu[submenuI].link);
        capaSubmenu[submenuI].link.setVisible(true);
        capaSubmenu[submenuI].link.moveTo(capaSubmenu[submenuI].x, capaSubmenu[submenuI].y);
        capaCabecera[menuI].lastopen_submenu = submenuI;
    }
}

function hideSubmenu(menuI, submenuI) {
    if( ! capaSubmenu[submenuI].over ) {
        capaSubmenu[submenuI].link.setVisible(false);
    }
}

function getHTML (index, menu_p) {
    if( menu_p ) {
        menu = menuContent[index];
    } else {
        menu = submenuContent[index];
    }
    var txt = '';
    if( menu_p ) {
        var href = menu.link;
        if (!href) {
            href = 'javascript:;';
        }
        txt += '<a href="' + href + '" onmouseout="capaMouseout(' + index + ', ' + menu_p + ')" onmouseover="capaMouseover(' + index + ', ' + menu_p + ')">';
        txt += '<img src="/img/fav/menu/' + menu.img[0] + '-o.gif" width="' + menu.img[1] + '" height="19" border="0"><br>';
        txt += '</a>';
    }
    if (menu.labels) {
        var n = menu.labels.length;
        var c = n * 2 - 1;
        var c2 = 2 + c;
        var n1 = n-1;
        txt += '<table width="' + (menu.img[1]+3) + '" border=0 cellspacing=0 cellpadding=0 onmouseout="capaMouseout(' + index + ', ' + menu_p + ')" onmouseover="capaMouseover(' + index + ', ' + menu_p+ ')">';
        if ( ! menu_p ) {
            txt += '    <tr>';
            txt += '        <td bgcolor="#005F6F" colspan="5"><img src="/img/sp.gif" width=1 height=1></td>';
            txt += '        <td><img src="/img/sp.gif" width=1 height=1></td>';
            txt += '    </tr>';
        }
        txt += '    <tr>';
        txt += '        <td bgcolor="#005F6F" rowspan="' + (2+c2) +'"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '        <td bgcolor="#ffffff" rowspan="' + (1+c2) +'"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '        <td bgcolor="#ffffff"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '        <td bgcolor="#C1CBCD" rowspan="' + (1+c2) +'"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '        <td bgcolor="#005F6F" rowspan="' + (2+c2) +'"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '        <td bgcolor="#ffffff"><img src="/img/sp.gif" width=3 height=1></td>';
        txt += '    </tr>';
        txt += '    <tr>';
        txt += '        <td bgcolor="#DBE7E9"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '        <td rowspan="' + (c+3) +'" background="/img/fav/flo/bg-sombra-vert.gif"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '    </tr>';
        
        for (i=0; i<n; i++) {
          if( menu_p ) {
            id = 'menu_' + index + '_' + i;
          } else {
            id = 'submenu_' + index + '_' + i;
          }
          submenuI = -1;
          if (menu.labels[i]!=null) {
            gotsubmenu = menu_p && (submenuI = menu.submenu[i]) >= 0;
            txt += '    <tr onmouseover="capaMouseover(' + index + ', ' + menu_p + ');changeOption(\'' + id + '\', ' + index + ', ' + submenuI + ')" onmouseout="capaMouseout(' + index + ', ' + menu_p + ')">';
            txt += '        <td bgcolor="#DBE7E9" id="' + id + '">';
            txt += '        <table border=0 cellspacing=0 cellpadding=1>';
            txt += '        <tr>';
            txt += '            <td><img src="/img/sp.gif" width=7 height=14></td>';
            if( gotsubmenu ) {
                txt += '            <td width="100%">';
                txt += '            <table border=0 cellspacing=0 cellpadding=0>';
                txt += '            <tr>';
            }
            txt += '             <td width="100%" class="tipoMenu" nowrap>';
            txt += '        <a href="'+ menu.hrefs[i]+'">';
            txt += '        <font color="#005F6F" class="textov9">'+ menu.labels[i]+'</font>';
            txt += '        </a></td><td>';
            if( gotsubmenu ) {   //hay submenú
                txt += '        <a href="'+ menu.hrefs[i]+'">';
                txt += '            <img src="/img/cab/flecha-submenu.gif" alt="" width="5" height="5" border="0"></a></td></tr></table><td>';
            }
            txt += '            <img src="/img/sp.gif" width=7 height=1></td>';
            txt += '        </tr>';
            txt += '        </table>';
            txt += '        </td>';
            txt += '    </tr>';
            if (i!=n1) {
                txt += '    <tr>';
                if (menu.labels[i+1]!=null)
                    txt += '        <td bgcolor="#DBE7E9" background="/img/fav/elems/bgpuntos-verde.gif"><img src="/img/sp.gif" width=1 height=1></td>';
                else
                    txt += '        <td bgcolor="#C1CBCD"><img src="/img/sp.gif" width=1 height=1></td>';
                txt += '    </tr>';
            }
          }
          else {
                txt += '    <tr>';
                txt += '        <td bgcolor="#72ABB4"><img src="/img/sp.gif" width=1 height=1></td>';
                txt += '    </tr>';
                txt += '    <tr>';
                txt += '        <td bgcolor="#ffffff"><img src="/img/sp.gif" width=1 height=1></td>';
                txt += '    </tr>';
          }
        }
        txt += '<tr>';
        txt += '    <td bgcolor="#C1CBCD"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '</tr>';
        txt += '<tr>';
        txt += '    <td colspan="3" bgcolor="#005F6F"><img src="/img/sp.gif" width=1 height=1></td>';
        txt += '</tr>';
        txt += '<tr>';
        txt += '    <td colspan="6"><table border=0 cellspacing=0 cellpadding=0 width="100%"><tr><td><img src="/img/sp.gif" width=3 height=3></td><td background="/img/fav/flo/bg-sombra-hor.gif" width="100%"><img src="/img/sp.gif" width=1 height=1></td></tr></table></td>';
        txt += '</tr>';
        txt += '</table>';
    }
    return txt;
}





