hi guys. I have a JS question. I have a javascript menubar defined as function writeMenus(). In the script is absolute positioning coordinates. How can I make absolute coordinates relative to the screen. The page is all centerd in tables, but I can't get the menubar to center. It used to be aligned to the left so absolute coordinates didn't bother anything. I got the script from Netscape. So here's the script, and here's the HTML.I hope you can follow the script. I took out alot of comments to cut down the space, but left a few "crucial ones there". Also, comments I highlighted in red and where I think the script that needs to be changed I did in blue.
Code:
function writeMenus() {
if (!isDOM && !isIE4 && !isNS4) return;

for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
var str = '', itemX = 0, itemY = 0;

for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
var itemID = 'menu' + currMenu + 'item' + currItem;

var w = (isVert ? width : length);
var h = (isVert ? length : width);

if (isDOM || isIE4) {
str += '<div id="' + itemID + '" style="position: absolute; left: ' + itemX + '; top: ' + itemY + '; width: ' + w + '; height: ' + h + '; visibility: inherit; ';
if (backCol) str += 'background: ' + backCol + '; ';
str += '" ';
}
if (isNS4) {
str += '<layer id="' + itemID + '" left="' + itemX + '" top="' + itemY + '" width="' +  w + '" height="' + h + '" visibility="inherit" ';
if (backCol) str += 'bgcolor="' + backCol + '" ';
}
if (borderClass) str += 'class="' + borderClass + '" ';

str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';

str += '<table width="' + (w - 8) + '" border="0" cellspacing="0" cellpadding="' + (!isNS4 && borderClass ? 3 : 0) + '"><tr><td align="left" height="' + (h - 7) + '">' + '<a class="' + textClass + '" href="' + href + '"' + (frame ? ' target="' + frame + '">' : '>') + text + '</a></td>';
if (target > 0) {

if (popInd) str += '<td class="' + textClass + '" align="right">' + popInd + '</td>';
}
str += '</tr></table>' + (isNS4 ? '</layer>' : '</div>');
if (isVert) itemY += length + spacing;
else itemX += length + spacing;
}
if (isDOM) {
var newDiv = document.createElement('div');
document.getElementsByTagName('body').item(0).appendChild(newDiv);
newDiv.innerHTML = str;
ref = newDiv.style;
ref.position = 'absolute';
ref.visibility = 'hidden';
}

if (isIE4) {
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
ref = getSty('menu' + currMenu + 'div');
}

if (isNS4) {
ref = new Layer(0);
ref.document.write(str);
ref.document.close();
}

for (currItem = 1; currItem < menu[currMenu].length; currItem++) {
itemName = 'menu' + currMenu + 'item' + currItem;
if (isDOM || isIE4) menu[currMenu][currItem].ref = getSty(itemName);
if (isNS4) menu[currMenu][currItem].ref = ref.document[itemName];
   }
}
with(menu[0][0]) {
ref.left = x;
ref.top = y;
ref.visibility = 'visible';
   }
}

// Syntaxes: *** START EDITING HERE, READ THIS SECTION CAREFULLY! ***
//
// menu[menuNumber][0] = new Menu(Vertical menu? (true/false), 'popout indicator', left, top,
// width, 'mouseover colour', 'background colour', 'border stylesheet', 'text stylesheet');
//
// Left and Top are measured on-the-fly relative to the top-left corner of its trigger, or
// for the root menu, the top-left corner of the page.
//
// menu[menuNumber][itemNumber] = new Item('Text', 'URL', 'target frame', length of menu item,
//  additional spacing to next menu item, number of target menu to popout);
var menu = new Array();

// Default colours passed to most menu constructors (just passed to functions, not
// a global variable - makes things easier to change later in bulk).
var defOver = '#336699', defBack = '#003366';
// Default 'length' of menu items - item height if menu is vertical, width if horizontal.
var defLength = 22;
// Menu 0 is the special, 'root' menu from which everything else arises.
menu[0] = new Array();
// A non-vertical menu with a few different colours and no popout indicator, as an example.
// *** MOVE ROOT MENU AROUND HERE ***  it's positioned at (5, 3) and is 17px high now.

menu[0][0] = new Menu(false, '', 5, 3, 17, '#990033', '#000000', '', 'itemText');
// Notice how the targets are all set to nonzero values...
// The 'length' of each of these items is 120, and there is spacing of 10 to the next item.
// Most of the links are set to '#' hashes, make sure you change them to actual files.
menu[0][1] = new Item('&nbsp; Home', 'http://www.allnations-durham.org', '_self', 50, 10);
menu[0][2] = new Item('&nbsp; All Nations Church', '#', '', 120, 10, 1);
menu[0][3] = new Item('&nbsp; About Us', '#', '', 75, 10, 2);
menu[0][4] = new Item('&nbsp; Prayer & Support', '#', '', 120, 10, 3);
menu[0][5] = new Item('&nbsp; Contact', '#', '', 65, 10, 4);
// An example of a link with a target frame/window as well...
// ANC menu.
menu[1] = new Array();
// The File menu is positioned 0px across and 19 down from its trigger, and is 80 wide.

menu[1][0] = new Menu(true, '&gt;', 0, 18, 120, defOver, defBack, 'itemBorder', 'itemText');
menu[1][1] = new Item('Greetings', 'word.htm', '', defLength, 0, 0);
menu[1][2] = new Item('Vision & Purpose', 'vision.htm', '', defLength, 0, 0);
menu[1][3] = new Item('What We Believe', 'sof.htm', '', defLength, 0, 0);
// About Us menu.
menu[2] = new Array();
menu[2][0] = new Menu(true, '&gt;', 0, 18, 120, defOver, defBack, 'itemBorder', 'itemText');
menu[2][1] = new Item('Who We Are', 'about.htm', '', defLength, 0, 0);
menu[2][2] = new Item('Pastor Tom Brazell', 'bio.htm', '', defLength, 0, 0);
menu[2][3] = new Item('Testimony', 'testimony.htm', '', defLength, 0, 0);

// Support Menu
menu[3] = new Array();
menu[3][0] = new Menu(true, '&lt;', 0, 18, 120, defOver, defBack, 'itemBorder', 'itemText');
menu[3][1] = new Item('Prayer Needs', 'prayer.htm', '', defLength, 0, 0);
menu[3][2] = new Item('Praise Reports', 'answered.htm', '', defLength, 0, 0);
menu[3][3] = new Item('Support ANC', 'support.htm', '', defLength, 0, 0);

// Misc Menu
menu[4] = new Array();
menu[4][0] = new Menu(true, '&lt;', 0, 18, 120, defOver, defBack, 'itemBorder', 'itemText');
menu[4][1] = new Item('Contact Us', 'contact.htm', '', defLength, 0, 0);
menu[4][2] = new Item('Other Links', 'links.htm', '', defLength, 0, 0);
menu[4][3] = new Item('Copyright', 'copyright.htm', '', defLength, 0, 0);
Now the HTML calling the menu is:
Code:
<BODY BGCOLOR="#666666" TEXT="#000000" TOPMARGIN="0" LEFTMARGIN="0" MARGINWIDTH="0" MARGINHEIGHt="0" onLoad="writeMenus()" onResize="if (isNS4)
nsResizeHandler()">
<TABLE WIDTH="760" BORDER="0" CELLSPACING="0" CELPADDINGg="0">
  <TR BGCOLOR="#ffffff"> 
    <TD COLSPAN="2" HEIGHT="47" NOWRAP>
      <!-- It's important that you position the menu over a
background, like a table/image -->
      <TABLE BGCOLOR="#000000" WIDTH="100%" BORDER="0"
CELLPADDING="0" CELLSPACING="0" TOPMARGIN="0" LEFTMARGIN="0" MARGINHEIGHT="0" MARGINWIDTH="0" HEIGHT="14">

...
...
...
       </TABLE>
   </TABLE>
any help?
Sketch