var sPath;
function cMenu (oParPadre, sParNombre, sParID, sParIDCapaPadre, sParImagen, sParEnlace, sParTarget, nParDX, nParAlto, nParEspaciado, sParAlignment, nParTipo,
bParAutoClose, bParNoPlegar, nParPausa, asParBGColor, asParColor, sParFontFamily, sParFontSize, sParTextDecoration, sParFontWeight, sParFontStyle)
{
this.oRaiz = ( oParPadre == null ) ? this : oParPadre.oRaiz;
this.oPadre = oParPadre;
this.sNombre = sParNombre;
this.sImagen = (sParImagen == null) ? "" : sParImagen;
this.sID = sParID;
var sIDCapa = (sParIDCapaPadre == null) ? sParID : sParIDCapaPadre;
sIDCapa = (oNavegador.bEsNS4) ? (sIDCapa + ".document." + sParID) : sParID;
this.oCapa = new cLayer (sIDCapa);
this.sLinkID = "L" + sParID;
this.oLink = new cLayer (this.sLinkID);
this.sEnlace = (sParEnlace == null) ? '' : sParEnlace;
this.sTarget = (sParTarget == null) ? '' : sParTarget;
this.nDX = (nParDX == null) ? ((this.oPadre == null) ? 10 : this.oPadre.nDX) : nParDX;
this.nAlto = (nParAlto == null) ? ((this.oPadre == null) ? 16 : this.oPadre.nAlto) : nParAlto;
this.nEspaciado = (nParEspaciado == null) ? ((this.oPadre == null) ? 1 : this.oPadre.nParEspaciado) : nParEspaciado;
this.sAlignment = (sParAlignment == null) ? 'left' : sParAlignment;
this.nTipo = (nParTipo == null) ? ((this.oPadre == null) ? nMENU_TIPO_NORMAL : this.oPadre.nTipo) : nParTipo;
this.bAutoClose = (bParAutoClose == null) ? ((this.oPadre == null) ? true : this.oPadre.bAutoClose) : bParAutoClose;
this.bNoPlegar = (bParNoPlegar == null) ? ((this.oPadre == null) ? false : this.oPadre.bNoPlegar) : bParNoPlegar;
this.nPausa = (nParPausa == null) ? ((this.oPadre == null) ? 0 : this.oPadre.nPausa ) : nParPausa;
this.asBGColor = (asParBGColor==null) ? ((this.oPadre == null) ? ["#FFFFFF","#FFFFFF","#FFFFFF"] : this.oPadre.asBGColor) : asParBGColor;
this.asColor = (asParColor == null) ? ((this.oPadre == null) ? ["#000000","#000000","#000000"] : this.oPadre.asColor) : asParColor;
this.sFontFamily = "font-family:" + ( (sParFontFamily == null || sParFontFamily == '') ? "Verdana" : sParFontFamily ) + "; ";
this.nFontSize = parseInt ((sParFontSize == null || sParFontSize == '') ? "11px" : sParFontSize);
this.sFontSize = "font-size:" + this.nFontSize + "px" + "; ";
this.sTextDecoration = "text-decoration:" + ( (sParTextDecoration == null || sParTextDecoration == '') ? "none" : sParTextDecoration) + "; ";
this.sFontWeight = (sParFontWeight == null || sParFontWeight == '') ? "" : ("font-weight:" + sParFontWeight + "; ");
this.sFontStyle = (sParFontStyle == null || sParFontStyle == '') ? "" : ("font-style:" + sParFontStyle + "; ");
this.aoHijos = new Array ();
if (this.oPadre != null) {
aH = this.oPadre.aoHijos;
this.nHijoNumero = aH.length;
aH[aH.length] = this;
}
this.bExpandido = false;
this.nEstado = 0;
for (i = 0, Padre = this.oPadre; Padre != null; i++, Padre = Padre.oPadre) ;
this.nNivel = i - 1;
this.oActual = null;
this.mouseOver = cMenu_MouseOver;
this.mouseOut = cMenu_MouseOut;
this.mouseDown = cMenu_MouseDown;
this.mostrar = cMenu_mostrar;
this.ocultar = cMenu_ocultar;
this.contraer = cMenu_contraer;
this.expandir = cMenu_expandir;
this.contraerHermanoExpandido = cMenu_contraerHermanoExpandido;
this.aoPreOrden = cMenu_aoPreOrden;
this.aoSubArbolDebajo = cMenu_aoSubArbolDebajo;
this.aoSubArbolDentro = cMenu_aoSubArbolDentro;
this.sGenerar = cMenu_sGenerar;
this.write = cMenu_write;
}
function cMenu_MouseDown ()
{
if (this.aoHijos.length == 0) {
if (this.bAutoClose)
this.contraerHermanoExpandido();
if (this.oRaiz.oActual) {
this.oRaiz.oActual.nEstado = 1;
this.oRaiz.oActual.mouseOut();
}
this.oCapa.SetBGColor (this.asBGColor[2]);
this.oCapa.SetColor (this.asColor[2]);
if (this.oLink) {
this.oLink.SetBGColor (this.asBGColor[2]);
this.oLink.SetColor (this.asColor[2]);
}
this.nEstado = 2;
this.oRaiz.oActual = this;
sPath = sCalcularPath (this);
} else if (this.bExpandido) {
if (! this.bNoPlegar)
this.contraer();
} else {
if (this.bAutoClose)
this.contraerHermanoExpandido();
this.expandir();
}
}
function cMenu_MouseOver ()
{
if (this.nEstado == 0) {
if (this.oCapa) {
this.oCapa.SetBGColor (this.asBGColor[1]);
this.oCapa.SetColor (this.asColor[1]);
}
if (this.oLink) {
this.oLink.SetBGColor (this.asBGColor[1]);
this.oLink.SetColor (this.asColor[1]);
}
this.nEstado = 1;
}
}
function cMenu_MouseOut ()
{
if (this.nEstado == 1) {
if (this.oCapa) {
this.oCapa.SetBGColor (this.asBGColor[0]);
this.oCapa.SetColor (this.asColor[0]);
}
if (this.oLink) {
this.oLink.SetBGColor (this.asBGColor[0]);
this.oLink.SetColor (this.asColor[0]);
}
this.nEstado = 0;
}
}
function cMenu_aoPreOrden (bParSoloExpandidos)
{
var r = new Array;
r[0] = this;
var bSoloExpandidos = (bParSoloExpandidos == null) ? false : bParSoloExpandidos;
if (! bSoloExpandidos || this.bExpandido)
for (var i=0; i < this.aoHijos.length; i++)
r = r.concat (this.aoHijos[i].aoPreOrden (bSoloExpandidos))
return r;
}
function cMenu_aoSubArbolDebajo ()
{
var aoArbol = this.oRaiz.aoPreOrden (true);
var bEncontrado = false;
var aoRet = new Array();
var k = 0;
for (var i=0; i < aoArbol.length; i++) {
if (aoArbol [i].sNombre == this.sNombre) {
bEncontrado = true;
continue;
}
if (bEncontrado) aoRet [k++] = aoArbol [i];
}
return aoRet;
}
function cMenu_aoSubArbolDentro ()
{
var aoArbolDentro = this.aoPreOrden (true);
return aoArbolDentro.slice(1);
}
function nTopSiguiente (p, h, i)
{
return p.oCapa.nGetTop() + p.nAlto + p.nEspaciado + ( h.nAlto + h.nEspaciado ) * i;
}
function cMenu_expandir ()
{
var nTop = this.oCapa.nGetTop() + this.nAlto + this.nEspaciado;
var aoArbolDebajo = this.aoSubArbolDebajo(); // Nodos debajo de este
this.bExpandido = true;
var aoArbolDentro = this.aoSubArbolDentro(); // Nodos dentro de este
if (this.nTipo == nMENU_TIPO_NORMAL) {
for (var i = 0; i < aoArbolDentro.length; i++) {
aoArbolDentro[i].mostrar (nTop);
// pausa(this.nPausa);
nDY = aoArbolDentro[i].nAlto + aoArbolDentro[i].nEspaciado;
for (var k = 0; k < aoArbolDebajo.length; k++ ) {
aoArbolDebajo[k].oCapa.MoveDown (nDY);
// pausa(this.nPausa);
}
nTop += nDY;
}
} else if (this.nTipo == nMENU_TIPO_SMOOTH) {
for (var i = 0; i < aoArbolDentro.length; i++) {
pausa (this.nPausa / aoArbolDentro.length);
setTimeout (aoArbolDentro[i].sID + ".mostrar (nTopSiguiente(" + this.sID + ", " + aoArbolDentro[i].sID + ", " + i + "))", this.nPausa);
nDY = aoArbolDentro[i].nAlto + aoArbolDentro[i].nEspaciado;
for (var k = 0; k < aoArbolDebajo.length; k++ ) {
setTimeout (aoArbolDebajo[k].sID + ".oCapa.MoveDown (nDY);", this.nPausa);
}
nTop += nDY;
}
}
}
function cMenu_mostrar (nParTop)
{
var nLeft = ((this.oPadre == null) ? 0 : this.oPadre.oCapa.nGetLeft());
var nTop = (nParTop == null) ? ((this.oPadre == null) ? 0 : this.oPadre.oCapa.nGetTop()) : nParTop;
this.mouseOver();
this.mouseOut();
this.oCapa.MoveTo (nLeft, nTop);
this.oCapa.Show();
}
function cMenu_contraer ()
{
var aoArbolDentro = this.aoSubArbolDentro(); // Nodos dentro de este
this.bExpandido = false;
var aoArbolDebajo = this.aoSubArbolDebajo(); // Nodos debajo de este
if (this.nTipo == nMENU_TIPO_NORMAL) {
for (var i = aoArbolDentro.length - 1; i >= 0; i--) {
nDY = aoArbolDentro[i].nAlto + aoArbolDentro[i].nEspaciado;
for (var k = aoArbolDebajo.length - 1; k >= 0; k--) {
aoArbolDebajo[k].oCapa.MoveUp (nDY);
// pausa(this.nPausa);
}
aoArbolDentro[i].ocultar();
// pausa(this.nPausa);
}
} else if (this.nTipo == nMENU_TIPO_SMOOTH) {
for (var i = aoArbolDentro.length - 1; i >= 0; i--) {
pausa (this.nPausa / aoArbolDentro.length);
setTimeout (aoArbolDentro[i].sID + ".ocultar();", this.nPausa);
nDY = aoArbolDentro[i].nAlto + aoArbolDentro[i].nEspaciado;
for (var k = 0; k < aoArbolDebajo.length; k++) {
setTimeout (aoArbolDebajo[k].sID + ".oCapa.MoveUp (nDY);", this.nPausa);
}
}
}
}
function cMenu_contraerHermanoExpandido ()
{
if (this.oPadre != null)
for (var i = 0; i < this.oPadre.aoHijos.length; i++) {
oHijo = this.oPadre.aoHijos[i];
if (oHijo != this && oHijo.bExpandido) {
oHijo.contraer();
break;
}
}
}
function cMenu_ocultar ()
{
this.oCapa.Hide();
if (this.bExpandido) {
for (var i=0; i < this.aoHijos.length; i++) {
this.aoHijos[i].ocultar();
}
}
}
function cMenu_sGenerar (nParX, nParY)
{
sID = " id='" + this.sID + "'";
sNivel = (this.nNivel > 2) ? 2 : this.nNivel;
sMouseDown = "window." + this.sID + ".mouseDown()";
sMouseOver = "window." + this.sID + ".mouseOver()";
sMouseOut = "window." + this.sID + ".mouseOut()";
sClase = oNavegador.bEsNS4 ? "" : " class='Nivel" + sNivel + "'";
sEstilo = " style='position:absolute; visibility:hidden; margin:0px; padding:0px;'";
sClaseEnlace = " class='Enlace" + sNivel + "'";
nLH = oNavegador.bEsNS4 ? (2 * this.nAlto / 3 + 1) : this.nAlto;
nImgWidth = 13;
nImgHeight = 13;
nImgX = 10;
nImgY = (nLH - nImgHeight) / 2;
nDxImgTxt = 6;
nPaddingLeft = (this.sImagen == "") ? nParX : (nParX + nImgWidth + nDxImgTxt);
nPaddingRight = nParX;
sPadding = (this.sAlignment == 'left') ? "padding-left:" + nPaddingLeft + "px; " : "padding-right:" + nPaddingRight + "px; ";
sEstiloEnlace = " style='line-height:" + nLH + "px; " + sPadding + this.sTextDecoration + this.sFontStyle + this.sFontWeight + this.sFontFamily + this.sFontSize + "color:" + this.asColor[0] + ";' ";
sHRef = (this.sEnlace == "null") ? "javascript:void(null)" : this.sEnlace;
sLink = "id='" + this.sLinkID + "' title='' href='" + sHRef + "' " + sEstiloEnlace +
"onmouseup='" + sMouseDown + "' onmouseover='" + sMouseOver + "' " +
"onmouseout='" + sMouseOut + "'" + sClaseEnlace
sImagen = (this.sImagen == "") ? "" : "";
//style='position:absolute; left:" + nImgX + "px; top:" + nImgY + "px'; width:" + nImgWidth + "px; height:" + nImgHeight + "px
sNombre = this.sNombre;
sTarget = (this.sTarget == "") ? "" : " TARGET=" + this.sTarget;
sEnlace = "" + "