Conituación
Codigo:
this.hdrFontFamily = "Arial,Helvetica,sans-serif";
this.hdrFontStyle = "plain";
this.hdrFontWeight = "bold";
this.hdrFontSize = "10pt";
this.itmFontFamily = "MS Sans Serif,Arial,Helvetica,sans-serif";
this.itmFontStyle = "plain";
this.itmFontWeight = "bold";
this.itmFontSize = "8pt";
// definir métodos.
this.setSizes = JDWITEMSetSizes;
this.setColors = JDWITEMSetColors;
this.setFonts = JDWITEMSetFonts;
this.addNAVm = JDWITEMaddNAVm;
this.create = JDWITEMCreate;
this.hide = JDWITEMHide;
this.show = JDWITEMShow;
this.moveTo = JDWITEMMoveTo;
this.moveBy = JDWITEMMoveBy;
this.getzIndex = JDWITEMGetzIndex;
this.setzIndex = JDWITEMSetzIndex;
this.getWidth = JDWITEMGetWidth;
this.getMinWidth = JDWITEMGetMinWidth;
this.getAlign = JDWITEMGetAlign;
this.setAlign = JDWITEMSetAlign;
this.resize = JDWITEMResize;
this.invert = JDWITEMInvert;
this.isInverted = JDWITEMIsInverted;
// agregar a la lista.
this.index = JDWITEMs.length;
JDWITEMs[this.index] = this;
}
function JDWITEMSetSizes(border, padding, separator) {
if (!this.created) {
this.border = border;
this.padding = padding;
this.separator = separator;
}
}
function JDWITEMSetColors(bdColor,
hdrFgColor, hdrBgColor, hdrHiFgColor, hdrHiBgColor,
itmFgColor, itmBgColor, itmHiFgColor, itmHiBgColor) {
if (!this.created) {
this.borderColor = bdColor;
this.hdrFgColor = hdrFgColor;
this.hdrBgColor = hdrBgColor;
this.hdrHiFgColor = hdrHiFgColor;
this.hdrHiBgColor = hdrHiBgColor;
this.itmFgColor = itmFgColor;
this.itmBgColor = itmBgColor;
this.itmHiFgColor = itmHiFgColor;
this.itmHiBgColor = itmHiBgColor;
}
}
function JDWITEMSetFonts(hdrFamily, hdrStyle, hdrWeight, hdrSize,
itmFamily, itmStyle, itmWeight, itmSize) {
if (!this.created) {
this.hdrFontFamily = hdrFamily;
this.hdrFontStyle = hdrStyle;
this.hdrFontWeight = hdrWeight;
this.hdrFontSize = hdrSize;
this.itmFontFamily = itmFamily;
this.itmFontStyle = itmStyle;
this.itmFontWeight = itmWeight;
this.itmFontSize = itmSize;
}
}
function JDWITEMaddNAVm(menu) {
if (!this.created)
this.menus[this.menus.length] = menu;
}
function JDWITEMCreate() {
var str;
var i, j;
var norm, high, end;
var width, height;
var x, y;
var scrX, scrY;
if (this.created || (!JDWMinNS4 && !JDWMinIE4))
return;
// Armar HTML
str = "";
// Para IE4.
if (JDWMinIE4 && !JDWMinIE5) {
scrX = getPageScrollX();
scrY = getPageScrollY();
window.scrollTo(getPageWidth(), getPageHeight());
}
if (JDWMinNS4)
str += '<layer name="JDWITEM' + this.index + '_filler"></layer>\n'
+ '<layer name="JDWITEM' + this.index + '_hdrsBase">\n';
if (JDWMinIE4)
str += '<div id="JDWITEM' + this.index + '_filler"'
+ ' style="position:absolute;">'
+ '</div>\n'
+ '<div id="JDWITEM' + this.index + '_hdrsBase"'
+ ' style="position:absolute;">\n';
// Armar HTML para los encabezados.
for (i = 0; i < this.menus.length; i++) {
norm = '<table border=0 cellpadding=' + this.padding
+ ' cellspacing=0'
+ (this.menus.hdrWidth > 0 ? ' width=' + this.menus.hdrWidth : '')
+ ((JDWMinIE4 && !JDWMinIE5) ? ' id="JDWITEM' + this.index + '_tbl' + i + '"': '')
+ '><tr><td'
+ (this.menus.hdrWidth == 0 ? ' nowrap=1' + this.menus.hdrWidth : '')
+ '>'
+ '<span style="color:' + this.hdrFgColor + ';'
+ 'font-family:' + this.hdrFontFamily + ';'
+ 'font-size:' + this.hdrFontSize + ';'
+ 'font-style:' + this.hdrFontStyle + ';'
+ 'font-weight:' + this.hdrFontWeight + ';">';
high = '<table border=0 cellpadding=' + this.padding
+ ' cellspacing=0'
+ (this.menus.hdrWidth > 0 ? ' width=' + this.menus.hdrWidth : '')
+ '><tr><td'
+ (this.menus.hdrWidth == 0 ? ' nowrap=1' + this.menus.hdrWidth : '')
+ '>'
+ '<span style="color:' + this.hdrHiFgColor + ';'
+ 'font-family:' + this.hdrFontFamily + ';'
+ 'font-size:' + this.hdrFontSize + ';'
+ 'font-style:' + this.hdrFontStyle + ';'
+ 'font-weight:' + this.hdrFontWeight + ';">';
end = '</span></td></tr></table>';
if (JDWMinNS4)
str += '<layer name="JDWITEM' + this.index + '_head' + i + '">'
+ norm + this.menus.items[0].text + end
+ '</layer>\n'
+ '<layer name="JDWITEM' + this.index + '_headHigh' + i + '">'
+ high + this.menus.items[0].text + end
+ '</layer>\n'
+ '<layer name="JDWITEM' + this.index + '_headDummy' + i + '">'
+ '</layer>\n';
if (JDWMinIE4) {
str += '<div id="JDWITEM' + this.index + '_head' + i + '"'
+ ' style="position:absolute;">'
+ norm + this.menus.items[0].text + end
+ '</div>\n'
+ '<div id="JDWITEM' + this.index + '_headHigh' + i + '"'
+ ' style="position:absolute;">'
+ high + this.menus.items[0].text + end
+ '</div>\n'
+ '<div id="JDWITEM' + this.index + '_headDummy' + i + '"'
+ ' style="position:absolute;">';
if (JDWMinIE55)
str += '<table cellspacing=0 width="100%" height="100%"><tr><td> </td></tr></table>';
str += '</div>\n';
}
}
if (JDWMinNS4) {
str += '</layer>\n';
this.baseLayer = new Layer(this.width);
this.baseLayer.document.open();
this.baseLayer.document.write(str);
this.baseLayer.document.close();
}
if (JDWMinIE4) {
str += '</div>\n';
str = '<div id="JDWITEM' + this.index + '"'
+ ' style="position:absolute;left:0px;top:0px;">\n'
+ str
+ '</div>\n';
document.body.insertAdjacentHTML("beforeEnd", str);
this.baseLayer = getLayer("JDWITEM" + this.index);
}
// posición y G6JDWinitialize de cada encabezado.
width = 0;
height = 0;
for (i = 0; i < this.menus.length; i++) {
this.menus.hdrNormLayer = getLayer('JDWITEM' + this.index + '_head' + i);
this.menus.hdrHighLayer = getLayer('JDWITEM' + this.index + '_headHigh' + i);
this.menus.hdrDmmyLayer = getLayer('JDWITEM' + this.index + '_headDummy' + i);
height = Math.max(height, getHeight(this.menus.hdrNormLayer));
this.height = height + 2 * this.border;
// Adaptado para IE4.
if (JDWMinIE4 && !JDWMinIE5) {
width = this.menus.hdrWidth;
if (width == 0)
width = eval('document.all.JDWITEM' + this.index + '_tbl' + i + '.clientWidth');
JDWITEMIEResizeLayer(this.menus.hdrNormLayer, width, height);
JDWITEMIEResizeLayer(this.menus.hdrHighLayer, width, height);
JDWITEMIEResizeLayer(this.menus.hdrDmmyLayer, width, height);
}
}
x = this.border;
y = this.border;
for (i = 0; i < this.menus.length; i++) {
width = Math.max(this.menus.hdrWidth, getWidth(this.menus.hdrNormLayer));
if (this.menus.width == 0)
this.menus.width = width + 2 * this.border;
moveLayerTo(this.menus.hdrNormLayer, x, y);
setBgColor(this.menus.hdrNormLayer, this.hdrBgColor);
clipLayer(this.menus.hdrNormLayer, 0, 0, width, height);
inheritLayer(this.menus.hdrNormLayer);
moveLayerTo(this.menus.hdrHighLayer, x, y);
setBgColor(this.menus.hdrHighLayer, this.hdrHiBgColor);
clipLayer(this.menus.hdrHighLayer, 0, 0, width, height);
hideLayer(this.menus.hdrHighLayer);
moveLayerTo(this.menus.hdrDmmyLayer, x, y);
if (JDWMinIE4)
JDWITEMIEResizeLayer(this.menus.hdrDmmyLayer, width, height);
clipLayer(this.menus.hdrDmmyLayer, 0, 0, width, height);
inheritLayer(this.menus.hdrDmmyLayer);
this.menus.hdrDmmyLayer.highLayer = this.menus.hdrHighLayer;
this.menus.hdrLeft = x;
x += width + this.border;
this.menus.hdrRight = x;
}
// Guardar resultados del ancho del encabezado.
this.minWidth = x;
this.width = Math.max(this.minWidth, this.width);
// Posición y G6JDWinitialize base.
moveLayerTo(this.baseLayer, this.x, this.y);
setBgColor(this.baseLayer, this.borderColor);
if (JDWMinIE4)
JDWITEMIEResizeLayer(this.baseLayer, this.width, this.height);
clipLayer(this.baseLayer, 0, 0, this.width, this.height);
this.fillerLayer = getLayer('JDWITEM' + this.index + '_filler');
moveLayerTo(this.fillerLayer, this.border, this.border);
setBgColor(this.fillerLayer, this.hdrBgColor);
width = this.width - 2 * this.border;
height = this.height - 2 * this.border;
if (JDWMinIE4)
JDWITEMIEResizeLayer(this.fillerLayer, width, height);
clipLayer(this.fillerLayer, 0, 0, width, height);
inheritLayer(this.fillerLayer);
this.hdrsBaseLayer = getLayer('JDWITEM' + this.index + '_hdrsBase');
if (this.align == "left")
this.hdrsOffsetX = 0;
else if (this.align == "center")
this.hdrsOffsetX = Math.round((this.width - this.minWidth) / 2);
else if (this.align == "right")
this.hdrsOffsetX = this.width - this.minWidth;
else
this.hdrsOffsetX = Math.min(parseInt(this.align, 10), this.width - this.minWidth);
moveLayerTo(this.hdrsBaseLayer, this.hdrsOffsetX, 0);
setBgColor(this.hdrsBaseLayer, this.borderColor);
if (JDWMinIE4)
JDWITEMIEResizeLayer(this.hdrsBaseLayer, this.minWidth, this.height);
clipLayer(this.hdrsBaseLayer, 0, 0, this.minWidth, this.height);
inheritLayer(this.hdrsBaseLayer);
// preparar eventos.
for (i = 0; i < this.menus.length; i++) {
this.menus.hdrDmmyLayer.index = this.index;
this.menus.hdrDmmyLayer.offsetX = this.menus.hdrLeft - this.border;
if (this.menus.hdrDmmyLayer.offsetX + this.menus.width > this.width)
this.menus.hdrDmmyLayer.offsetX = this.menus.hdrRight - this.menus.width;
this.menus.hdrDmmyLayer.offsetY = this.height - this.border;
this.menus.hdrDmmyLayer.onmouseover = JDWITEMHeaderOn;
this.menus.hdrDmmyLayer.onmouseout = JDWITEMHeaderOff;
if (JDWMinNS4) {
this.menus.hdrDmmyLayer.document.highLayer = this.menus.hdrHighLayer;
this.menus.hdrDmmyLayer.document.link = this.menus.items[0].link;
this.menus.hdrDmmyLayer.document.captureEvents(Event.MOUSEUP);
this.menus.hdrDmmyLayer.document.onmouseup = JDWITEMItemClick;
}
if (JDWMinIE4) {
this.menus.hdrDmmyLayer.highLayer = this.menus.hdrHighLayer;
this.menus.hdrDmmyLayer.link = this.menus.items[0].link;
this.menus.hdrDmmyLayer.onclick = JDWITEMItemClick;
}
}
// Crear las subcategorías.
norm = '<table border=0 cellpadding=' + this.padding
+ ' cellspacing=0 width="100%"><tr><td>'
+ '<span style="color:' + this.itmFgColor + ';'
+ 'font-family:' + this.itmFontFamily + ';'
+ 'font-size:' + this.itmFontSize + ';'
+ 'font-style:' + this.itmFontStyle + ';'
+ 'font-weight:' + this.itmFontWeight + ';">';
high = '<table border=0 cellpadding=' + this.padding
+ ' cellspacing=0 width="100%"><tr><td>'
+ '<span style="color:' + this.itmHiFgColor + ';'
+ 'font-family:' + this.itmFontFamily + ';'
+ 'font-size:' + this.itmFontSize + ';'
+ 'font-style:' + this.itmFontStyle + ';'
+ 'font-weight:' + this.itmFontWeight + ';">';
end = '</span></td></tr></table>';
for (i = 0; i < this.menus.length; i++) {
width = this.menus.width - 2 * this.border;
str = "";
for (j = 1; j < this.menus.items.length; j++) {
if (JDWMinNS4)
str += '<layer name="JDWITEM' + this.index + '_menu' + i + '_norm' + j + '"'
+ ' width=' + width + '>'
+ norm + this.menus.items[j].text + end
+ '</layer>\n'
+ '<layer name="JDWITEM' + this.index + '_menu' + i + '_high' + j + '"'
+ ' width=' + width + '>'
+ high + this.menus.items[j].text + end
+ '</layer>\n'
+ '<layer name="JDWITEM' + this.index + '_menu' + i + '_dmmy' + j + '"'
+ ' width=' + width + '>'
+ '</layer>\n';
if (JDWMinIE4) {
str += '<div id="JDWITEM' + this.index + '_menu' + i + '_norm' + j + '"'
+ ' style="position:absolute;width:' + width + 'px;">'
+ norm + this.menus.items[j].text + end
+ '</div>\n'
+ '<div id="JDWITEM' + this.index + '_menu' + i + '_high' + j + '"'
+ ' style="position:absolute;width:' + width + 'px;">'
+ high + this.menus.items[j].text + end
+ '</div>\n'
+ '<div id="JDWITEM' + this.index + '_menu' + i + '_dmmy' + j + '"'
+ ' style="position:absolute;width:' + width + 'px;">';
if (JDWMinIE55)
str += '<table cellspacing=0 width="100%" height="100%"><tr><td> </td></tr></table>';
str += '</div>\n';
}
}
if (JDWMinNS4) {
this.menus.baseLayer = new Layer(this.menus.width);
this.menus.baseLayer.document.open();
this.menus.baseLayer.document.write(str);
this.menus.baseLayer.document.close();
}
if (JDWMinIE4) {
str = '<div id="JDWITEM' + this.index + '_menu' + i + '"'
+ ' style="position:absolute;left:0px; top:0px;'
+ 'width:' + this.menus.width + 'px;visibility:hidden;">\n'
+ str
+ '</div>\n';
document.body.insertAdjacentHTML("beforeEnd", str);
this.menus.baseLayer = getLayer("JDWITEM" + this.index + "_menu" + i);
}
}
// restaurar posición original del scroll en IE4.
if (JDWMinIE4 && !JDWMinIE5)
window.scrollTo(x, y);
// Posición y G6JDWinitialize de cada menú.
for (i = 0; i < this.menus.length; i++) {
moveLayerTo(this.menus.baseLayer, this.menus.hdrDmmyLayer.offsetX, this.menus.hdrDmmyLayer.offsetY);
setBgColor(this.menus.baseLayer, this.borderColor);
if (this.menus.items.length > 1) {
this.menus.hdrDmmyLayer.menuLayer = this.menus.baseLayer;
if (JDWMinNS4)
this.menus.hdrDmmyLayer.document.menuLayer = this.menus.baseLayer;
}
else {
this.menus.hdrDmmyLayer.menuLayer = null;
if (JDWMinNS4)
this.menus.hdrDmmyLayer.document.menuLayer = this.menus.baseLayer;
}
// Posición y G6JDWinitialize de cada item del menú.
x = this.border;
y = this.border;
width = this.menus.width - 2 * this.border;
for (j = 1; j < this.menus.items.length; j++) {
this.menus.items[j].normLayer = getLayer('JDWITEM' + this.index + '_menu' + i + '_norm' + j);
this.menus.items[j].highLayer = getLayer('JDWITEM' + this.index + '_menu' + i + '_high' + j);
this.menus.items[j].dmmyLayer = getLayer('JDWITEM' + this.index + '_menu' + i + '_dmmy' + j);
height = getHeight(this.menus.items[j].normLayer);
moveLayerTo(this.menus.items[j].normLayer, x, y);
setBgColor(this.menus.items[j].normLayer, this.itmBgColor);
clipLayer(this.menus.items[j].normLayer, 0, 0, width, height);
inheritLayer(this.menus.items[j].normLayer);
moveLayerTo(this.menus.items[j].highLayer, x, y);
setBgColor(this.menus.items[j].highLayer, this.itmHiBgColor);
clipLayer(this.menus.items[j].highLayer, 0, 0, width, height);
hideLayer(this.menus.items[j].highLayer);
moveLayerTo(this.menus.items[j].dmmyLayer, x, y);
if (JDWMinIE4)
JDWITEMIEResizeLayer(this.menus.items[j].dmmyLayer, width, height);
clipLayer(this.menus.items[j].dmmyLayer, 0, 0, width, height);
inheritLayer(this.menus.items[j].dmmyLayer);
this.menus.items[j].dmmyLayer.highLayer = this.menus.items[j].highLayer;
this.menus.items[j].dmmyLayer.onmouseover = JDWITEMItemOn;
this.menus.items[j].dmmyLayer.onmouseout = JDWITEMItemOff;
if (JDWMinNS4) {
this.menus.items[j].dmmyLayer.document.highLayer = this.menus.items[j].highLayer;
this.menus.items[j].dmmyLayer.document.parentHighLayer = this.menus.hdrHighLayer;
this.menus.items[j].dmmyLayer.document.menuLayer = this.menus.baseLayer;
this.menus.items[j].dmmyLayer.document.link = this.menus.items[j].link;
this.menus.items[j].dmmyLayer.document.captureEvents(Event.MOUSEUP);
this.menus.items[j].dmmyLayer.document.onmouseup = JDWITEMItemClick;
}
if (JDWMinIE4) {
this.menus.items[j].dmmyLayer.highLayer = this.menus.items[j].highLayer;
this.menus.items[j].dmmyLayer.parentHighLayer = this.menus.hdrHighLayer;
this.menus.items[j].dmmyLayer.menuLayer = this.menus.baseLayer;
this.menus.items[j].dmmyLayer.link = this.menus.items[j].link;
this.menus.items[j].dmmyLayer.onclick = JDWITEMItemClick;
}
y += height + this.separator;
}
width = this.menus.width;
height = y - this.separator + this.border;
this.menus.baseLayer.width = this.menus.width;
this.menus.baseLayer.height = height;
if (JDWMinIE4)
JDWITEMIEResizeLayer(this.menus.baseLayer, width, height);
clipLayer(this.menus.baseLayer, 0, 0, width, height);
this.menus.baseLayer.parentHighLayer = this.menus.hdrHighLayer;
this.menus.baseLayer.onmouseout = ECSmenuOff;
}
this.created = true;
this.resize(this.width);
showLayer(this.baseLayer);
}
function JDWITEMHide() {
if (this.created)
hideLayer(this.baseLayer);
}
function JDWITEMShow() {
if (this.created)
showLayer(this.baseLayer);
}
function JDWITEMMoveTo(x, y) {
this.x = x;
this.y = y;
if (this.created)
moveLayerTo(this.baseLayer, this.x, this.y);
}
function JDWITEMMoveBy(dx, dy) {
this.x += dx;
this.y += dy;
if (this.created)
moveLayerTo(this.baseLayer, this.x, this.y);
}
function JDWITEMGetzIndex() {
if (this.created)
return getzIndex(this.baseLayer);
return 0;
}
function JDWITEMSetzIndex(z) {
var i;
if (this.created) {
setzIndex(this.baseLayer, z);
for (i = 0; i < this.menus.length; i++)
setzIndex(this.menus.baseLayer, z);
}
}
function JDWITEMGetWidth() {
return this.width;
}
function JDWITEMGetMinWidth() {
return this.minWidth;
}
function JDWITEMGetAlign() {
return this.align;
}
function JDWITEMSetAlign(align) {
this.align = align;
if (this.created)
this.resize(this.width);
}
function JDWITEMResize(width) {
if (this.created) {
this.width = Math.max(width, this.minWidth);
if (JDWMinIE4) {
JDWITEMIEResizeLayer(this.fillerLayer, this.width - 2 * this.border, this.height - 2 * this.border);
JDWITEMIEResizeLayer(this.baseLayer, this.width, this.height);
}
clipLayer(this.fillerLayer, 0, 0, this.width - 2 * this.border, this.height - 2 * this.border);
clipLayer(this.baseLayer, 0, 0, this.width, this.height);
if (this.align == "left")
this.hdrsOffsetX = 0;
else if (this.align == "center")
this.hdrsOffsetX = Math.round((this.width - this.minWidth) / 2);
else if (this.align == "right")
this.hdrsOffsetX = this.width - this.minWidth;
else
this.hdrsOffsetX = Math.min(parseInt(this.align, 10), this.width - this.minWidth);
moveLayerTo(this.hdrsBaseLayer, this.hdrsOffsetX, 0);
for (i = 0; i < this.menus.length; i++) {
this.menus.hdrDmmyLayer.offsetX = this.menus.hdrLeft - this.border;
if (this.hdrsOffsetX + this.menus.hdrDmmyLayer.offsetX + this.menus.width > this.width)
this.menus.hdrDmmyLayer.offsetX = this.menus.hdrRight - this.menus.width;
}
}
else
this.width = width;
}
function JDWITEMInvert() {
this.inverted = !this.inverted;
}
function JDWITEMIsInverted() {
return this.inverted;
}
// Fución layer resize para IE.
function JDWITEMIEResizeLayer(layer, width, height) {
layer.style.pixelWidth = width;
layer.style.pixelHeight = height;
}
// manejar eventos de la barra de navegación.
function JDWITEMHeaderOn(e) {
var bar;
var x, y;
bar = JDWITEMs[this.index];
// Posición de las subcategorías.
if (this.menuLayer != null) {
x = bar.x + bar.hdrsOffsetX + this.offsetX;
y = bar.y + this.offsetY;
if (bar.inverted)
y = bar.y - this.menuLayer.height + bar.border;
moveLayerTo(this.menuLayer, x, y);
// Guardar subcategorías y mostrarlas.
this.menuLayer.left = getPageLeft(this.menuLayer);
this.menuLayer.top = getPageTop(this.menuLayer);
this.menuLayer.right = this.menuLayer.left + this.menuLayer.width + 1;
this.menuLayer.bottom = this.menuLayer.top + this.menuLayer.height + 1;
}
// Esconder encabezados activos.
if (JDWMinIE4) {
if (bar.activeHeader != null && bar.activeHeader != this) {
hideLayer(bar.activeHeader.highLayer);
if (bar.activeHeader.menuLayer != null)
hideLayer(bar.activeHeader.menuLayer);
}
bar.activeHeader = this;
}
// Mostrar encabezado.
showLayer(this.highLayer);
if (this.menuLayer != null)
showLayer(this.menuLayer);
}
function JDWITEMHeaderOff(e) {
// Si subcategoría abierta, salir. De lo contrario, esconder menu.
if (this.menuLayer != null) {
if (JDWMinIE4) {
mouseX = window.event.clientX + document.body.scrollLeft;
mouseY = window.event.clientY + document.body.scrollTop;
}
if (mouseX >= this.menuLayer.left &&
mouseX <= this.menuLayer.right &&
mouseY >= this.menuLayer.top &&
mouseY <= this.menuLayer.bottom)
return;
hideLayer(this.menuLayer);
}
hideLayer(this.highLayer);
}
function ECSmenuOff(e) {
// Si sobre el encabezado, salir.
if (JDWMinIE4) {
mouseX = window.event.clientX + document.body.scrollLeft;
mouseY = window.event.clientY + document.body.scrollTop;
if (mouseX >= this.left &&
mouseX <= this.right &&
mouseY >= this.top &&
mouseY <= this.bottom)
return;
}
// De lo contrario, esconder menú.
hideLayer(this);
hideLayer(this.parentHighLayer);
}
function JDWITEMItemOn() {
showLayer(this.highLayer);
}
function JDWITEMItemOff() {
hideLayer(this.highLayer);
}
function JDWITEMItemClick(e) {
// Si no hay links, salir.
if (this.link == "")
return true;
// Esconder subcategorías.
if (this.menuLayer != null) {
hideLayer(this.menuLayer);
}
if (this.parentHighLayer != null) {
hideLayer(this.parentHighLayer);
}
hideLayer(this.highLayer);
// Si el link comienza con "javascript:" ejecutar el código. Si no,
// ir a la URL.
if (this.link.indexOf("javascript:") == 0)
eval(this.link);
else
window.location.href = this.link;
return true;
}
// MOUSE TRACKING
// Estas variables marcan la posición del mouse.
var mouseX = 0;
var mouseY = 0;
// Capturar evento.
if (JDWMinNS4)
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = JDWITEMGetMousePosition;
function JDWITEMGetMousePosition(e) {
// Guardar posición del mouse.
if (JDWMinNS4) {
mouseX = e.pageX;
mouseY = e.pageY;
}
if (JDWMinIE4) {
mouseX = window.event.clientX + document.body.scrollLeft;
mouseY = window.event.clientY + document.body.scrollTop;
}
}
// EVENTO: Window Resizing
// Esta variable se utiliza para determinarlo en las versiones viejas del NS4
var origWidth;
var origHeight;
// Recargar página en caso de que el browser cambie el tamaño.
if (JDWMinNS4) {
origWidth = window.innerWidth;
origHeight = window.innerHeight;
}
window.onresize = JDWITEMReload;
function JDWITEMReload() {
if (JDWMinNS4 && origWidth == window.innerWidth && origHeight == window.innerHeight)
return;
// Para IE
if (JDWMinIE4)
setTimeout('window.location.href = window.location.href', 2000);
else
window.location.href = window.location.href;
}
function G6JDWinit()
{
fullWidth = getWindowWidth() - (JDWMinNS4 && getWindowHeight() < getPageHeight() ? 16 : 0);
JDWBAR1.create();
JDWBAR1.moveTo(0,-getWindowHeight()+43);
JDWBAR1.setzIndex(1);
JDWBAR1.resize(fullWidth);
JDWBAR1.setAlign(getWindowWidth()+60);
JDWBAR1.hide();JDWBAR2.create();
JDWBAR2.moveBy(0,-getWindowHeight()+17);
JDWBAR2.resize(fullWidth);
JDWBAR2.setzIndex(2);
NAVupdatePOSY();
}
/* Dispararlo!! */
window.onload=G6JDWinit;
function NAVupdatePOSY() {
var viewTop;
var viewBottom;
var dy;
viewTop = getPageScrollY();
viewBottom = viewTop + getWindowHeight();
dy = Math.round(Math.abs(viewTop - JDWBAR1.y)); /* NO ANIM */
if (viewTop < JDWBAR1.y) dy = -dy;
dy = Math.round(Math.abs(viewTop - JDWBAR2.y)); /* NO ANIM */
if (viewTop < JDWBAR2.y) dy = -dy;
if (JDWBAR1.bottom < viewTop)
JDWBAR1.moveTo(0, viewTop - JDWBAR1.height);
if (JDWBAR1.top > viewBottom)
JDWBAR1.moveTo(0, viewBottom);
if (JDWBAR2.bottom < viewTop)
JDWBAR2.moveTo(0, viewTop - JDWBAR2.height);
if (JDWBAR2.top > viewBottom)
JDWBAR2.moveTo(0, viewBottom);
JDWBAR1.moveBy(0, dy);
JDWBAR2.moveBy(0, dy);
setTimeout('NAVupdatePOSY()', 0); /* INFINITLY SMALL VALUE */
}
/*************
Función para Maximizar la ventana en MSIE y NS.
*************/
function maximizeWin() {
if (window.screen) {
var aw = screen.availWidth;
var ah = screen.availHeight;
window.moveTo(0, 0);
window.resizeTo(aw, ah);
}
}
/*
ITEMS DEL MENU:
(Bordes, colores, títulos, color de fondo,
fuentes, tamaños
*/
// ___________________________________
var JDWBAR2 = new JDWITEM(0);
JDWBAR2.setSizes (1, 4, 1);
JDWBAR2.setColors ("#808080","#FFFFFF","#000000","#000000","#A6D2FF","#FFFFFF","#000000","#ffffff","#004080");
JDWBAR2.setFonts ("Arial, Verdana","plain","bold","10px","Arial, Verdana","plain","bold","10px");
var JDWBAR1 = new JDWITEM(0);
JDWBAR1.setSizes (1, 1, 1);
JDWBAR1.setColors ("#000000","#000000","#F5E4C1","#000000","#1CA0E4","#000000","#F5E4C1","#000000","#1CA0E4");
JDWBAR1.setFonts ("Arial, Verdana","plain","bold","10px","Arial, Verdana","plain","bold","10px");
// ___________________________________
/* ITEMS DEL MENU */
siteMenu = new ECSmenu(0, 80); // 80 = ancho en pixeles del menu
siteMenu.addItem(new ITEM("<center> INICIO </center>", "index.html"));
siteMenu.addItem(new ITEM(" Portal", "http://"));
siteMenu.addItem(new ITEM(" Contribuir", "http://"));
siteMenu.addItem(new ITEM(" Contacto", "http://"));
siteMenu.addItem(new ITEM(" Información", "http://"));
JDWBAR2.addNAVm(siteMenu); // agregar menú
siteMenu = new ECSmenu(0, 100);
siteMenu.addItem(new ITEM(" SCRIPTS ", ""));
siteMenu.addItem(new ITEM(" Noticias","http://"));
siteMenu.addItem(new ITEM(" Categorías","http://"));
siteMenu.addItem(new ITEM(" Lista A-Z","http://"));
siteMenu.addItem(new ITEM(" Libros","http://"));
siteMenu.addItem(new ITEM(" Tutoriales","http://"));
JDWBAR2.addNAVm(siteMenu);
siteMenu = new ECSmenu(0, 100);
siteMenu.addItem(new ITEM("<center> FOROS </center>", ""));
siteMenu.addItem(new ITEM(" JavaScript","http://"));
siteMenu.addItem(new ITEM(" VB Script","http://"));
siteMenu.addItem(new ITEM(" Ayuda","http://"));
siteMenu.addItem(new ITEM(" Pedidos","http://"));
JDWBAR2.addNAVm(siteMenu);
siteMenu = new ECSmenu(0, 100);
siteMenu.addItem(new ITEM("<center> AYUDA </center>", ""));
siteMenu.addItem(new ITEM(" Preguntas","http://"));
siteMenu.addItem(new ITEM(" Acerca de...","http://"));
JDWBAR2.addNAVm(siteMenu);
siteMenu = new ECSmenu(0, 100);
siteMenu.addItem(new ITEM("<center> DOWNLOAD </center>", ""));
siteMenu.addItem(new ITEM(" Bajar Script","http://www.stas.net/2/webtutorial/menu.zip"));
JDWBAR2.addNAVm(siteMenu);
y lo grabas como menu.js
lo llamas con este code <script LANGUAGE="JavaScript" src="menu.js"></script>
Solución 4:
Si 1, 2 o 3 no funcionan, mejor te olvidas del menú.