There's no such thing as a stupid question, but they're the easiest to answer.
JoinTour
Login
 
Tag Cloud
acer black screen boot bsod computer connection crash css dell drive driver drivers email error ethernet excel explorer firefox firefox 3 freeze game hard drive internet internet explorer itunes laptop malware monitor network networking outlook outlook 2003 outlook express partition password printer problem problems ram router slow sound sprtcmd.exe trojan usb virus vista windows windows xp wireless
Software Development
Search
Search in:
 
Advanced Search
Tech Support Guy Forums > Software & Hardware > Software Development >
javascript


HELLO AND WELCOME! Before you can post your question, you'll have to register -- it's completely free! Click here to join today! We highly recommend that you print a copy of our Guide for New Members. Enjoy!

Closed Thread
 
Thread Tools
JWasibpi's Avatar
Member with 34 posts.
 
Join Date: Mar 2002
15-Jul-2002, 01:09 PM #1
Unhappy javascript
Below is my code. In Netscape the Producer and Carrier dropdown menus "hang" but work fine in IE.
Can anyone tell me why?

The website is https://www.asibpi.com/index.htm

Appreciate any help you can give me.

SCRIPT LANGUAGE="JavaScript"

!-- Begin
var isDOM = (document.getElementById ? true : false);
var isIE4 = ((document.all && !isDOM) ? true : false);
var isNS4 = (document.layers ? true : false);
function getRef(id) {
if (isDOM) return document.getElementById(id);
if (isIE4) return document.all[id];
if (isNS4) return document.layers[id];
}
function getSty(id) {
return (isNS4 ? getRef(id) : getRef(id).style);
}
// Hide timeout.
var popTimer = 0;
// Array showing highlighted menu items.
var litNow = new Array();
function popOver(menuNum, itemNum) {
clearTimeout(popTimer);
hideAllBut(menuNum);
litNow = getTree(menuNum, itemNum);
changeCol(litNow, true);
targetNum = menu[menuNum][itemNum].target;
if (targetNum > 0) {
thisX = parseInt(menu[menuNum][0].ref.left) + parseInt(menu[menuNum][itemNum].ref.left);
thisY = parseInt(menu[menuNum][0].ref.top) + parseInt(menu[menuNum][itemNum].ref.top);
with (menu[targetNum][0].ref) {
left = parseInt(thisX + menu[targetNum][0].x);
top = parseInt(thisY + menu[targetNum][0].y);
visibility = 'visible';
}
}
}
function popOut(menuNum, itemNum) {
if ((menuNum == 0) && !menu[menuNum][itemNum].target)
hideAllBut(0)
else
popTimer = setTimeout('hideAllBut(0)', 500);
}
function getTree(menuNum, itemNum) {

// Array index is the menu number. The contents are null (if that menu is not a parent)
// or the item number in that menu that is an ancestor (to light it up).
itemArray = new Array(menu.length);

while(1) {
itemArray[menuNum] = itemNum;
// If we've reached the top of the hierarchy, return.
if (menuNum == 0) return itemArray;
itemNum = menu[menuNum][0].parentItem;
menuNum = menu[menuNum][0].parentMenu;
}
}

// Pass an array and a boolean to specify colour change, true = over colour.
function changeCol(changeArray, isOver) {
for (menuCount = 0; menuCount < changeArray.length; menuCount++) {
if (changeArray[menuCount]) {
newCol = isOver ? menu[menuCount][0].overCol : menu[menuCount][0].backCol;
// Change the colours of the div/layer background.
with (menu[menuCount][changeArray[menuCount]].ref) {
if (isNS4) bgColor = newCol;
else backgroundColor = newCol;
}
}
}
}
function hideAllBut(menuNum) {
var keepMenus = getTree(menuNum, 1);
for (count = 0; count < menu.length; count++)
if (!keepMenus[count])
menu[count][0].ref.visibility = 'hidden';
changeCol(litNow, false);
}

// *** MENU CONSTRUCTION FUNCTIONS ***

function Menu(isVert, popInd, x, y, width, overCol, backCol, borderClass, textClass) {
// True or false - a vertical menu?
this.isVert = isVert;
// The popout indicator used (if any) for this menu.
this.popInd = popInd
// Position and size settings.
this.x = x;
this.y = y;
this.width = width;
// Colours of menu and items.
this.overCol = overCol;
this.backCol = backCol;
// The stylesheet class used for item borders and the text within items.
this.borderClass = borderClass;
this.textClass = textClass;
// Parent menu and item numbers, indexed later.
this.parentMenu = null;
this.parentItem = null;
// Reference to the object's style properties (set later).
this.ref = null;
}

function Item(text, href, frame, length, spacing, target) {
this.text = text;
this.href = href;
this.frame = frame;
this.length = length;
this.spacing = spacing;
this.target = target;
// Reference to the object's style properties (set later).
this.ref = null;
}

function writeMenus() {
if (!isDOM && !isIE4 && !isNS4) return;

for (currMenu = 0; currMenu < menu.length; currMenu++) with (menu[currMenu][0]) {
// Variable for holding HTML for items and positions of next item.
var str = '', itemX = 0, itemY = 0;

// Remember, items start from 1 in the array (0 is menu object itself, above).
// Also use properties of each item nested in the other with() for construction.
for (currItem = 1; currItem < menu[currMenu].length; currItem++) with (menu[currMenu][currItem]) {
var itemID = 'menu' + currMenu + 'item' + currItem;

// The width and height of the menu item - dependent on orientation!
var w = (isVert ? width : length);
var h = (isVert ? length : width);

// Create a div or layer text string with appropriate styles/properties.
// Thanks to Paul Maden (www.paulmaden.com) for helping debug this in IE4, apparently
// the width must be a miniumum of 3 for it to work in that browser.
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 + '" ';

// Add mouseover handlers and finish div/layer.
str += 'onMouseOver="popOver(' + currMenu + ',' + currItem + ')" onMouseOut="popOut(' + currMenu + ',' + currItem + ')">';

// Add contents of item (default: table with link inside).
// In IE/NS6+, add padding if there's a border to emulate NS4's layer padding.
// If a target frame is specified, also add that to the <a> tag.

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) {

// Set target's parents to this menu item.
menu[target][0].parentMenu = currMenu;
menu[target][0].parentItem = currItem;

// Add a popout indicator.
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';
}

// Insert a div tag to the end of the BODY with menu HTML in place for IE4.
if (isIE4) {
document.body.insertAdjacentHTML('beforeEnd', '<div id="menu' + currMenu + 'div" ' + 'style="position: absolute; visibility: hidden">' + str + '</div>');
ref = getSty('menu' + currMenu + 'div');
}

// In NS4, create a reference to a new layer and write the items to it.
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);
//
// If no target menu (popout) is desired, set it to 0. Likewise, if your site does not use
// frames, pass an empty string as a frame target.
//
// Something that needs explaining - the Vertical Menu setup. You can see most menus below
// are 'true', that is they are vertical, except for the first root menu. The 'length' and
// 'width' of an item depends on its orientation -- length is how long the item runs for in
// the direction of the menu, and width is the lateral dimension of the menu. Just look at
// the examples and tweak the numbers, they'll make sense eventually .

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 = '#999999', defBack = 'black';

// 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, 0) and is 41px high now.

menu[0][0] = new Menu(false, '', 0, 72, 41, 'black', 'Black', 'itemBorder', 'itemText');

// Notice how the targets are all set to nonzero values...
// The 'length' of each of these items is 40, 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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;About<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASI', '#', '', 98, 10, 1);
menu[0][2] = new Item('&nbsp;&nbsp;&nbsp;&nbsp;Policyholder &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Services', '#', '', 99, 10, 2);
menu[0][3] = new Item('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Employer &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Services', '#', '', 99, 10, 3);
menu[0][4] = new Item('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Producer &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Services', '#', '', 99, 10, 4);
menu[0][5] = new Item('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Carrier &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Services', '#', '', 99, 10, 5);
menu[0][6] = new Item('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interesting<br>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Links', '#', '', 98, 10, 6);
menu[0][7] = new Item('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sit e <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Map ', '#', '', 98, 10, 7);


// An example of a link with a target frame/window as well...
//menu[0][4] = new Item(' Site', 'http://gusnz.cjb.net', '_new', 40, 10, 0);

// ASI menu.
menu[1] = new Array();
// The File menu is positioned 0px across and 22 down from its trigger, and is 80 wide.
// All text in this menu has the stylesheet class 'item' -- see the style section above.
// We've passed a 'greater-than' sign '>' as a popout indicator. menu[1][0] = new Menu(true, '>', 0, 40, 115, '#006699', defBack, 'itemBorder', 'itemText');
menu[1][1] = new Item('Home', 'index.htm', '', defLength, 0, 0);
menu[1][2] = new Item('About Us', 'about.htm', '', defLength, 0, 0);
menu[1][3] = new Item('The Right Choice', 'rightChoice.htm', '', defLength, 0, 0);
menu[1][4] = new Item('Frequently<br> Asked Questions', 'faq.htm', '', 36, 0, 0);
menu[1][5] = new Item('Services', 'products.htm', '', defLength, 0, 0);
menu[1][6] = new Item('Products', 'newproducts.htm', '', defLength, 0, 8);
menu[1][7] = new Item('Our Team', 'team.htm', '', defLength, 0, 0);
menu[1][8] = new Item('Careers', 'opportunities.htm', '', defLength, 0, 0);
menu[1][9] = new Item('Contact Us', 'email.htm', '', defLength, 0, 0);

// Policyholder menu.
menu[2] = new Array();
menu[2][0] = new Menu(true, '>', 0, 40, 115, '#006699', defBack, 'itemBorder', 'itemText');
menu[2][1] = new Item('Frequently<br>Asked Questions', 'faq.htm', '', 36, 0, 0);
menu[2][2] = new Item('Request Account<BR>Information', 'CustInfReq.htm', '', 36, 0, 0);
menu[2][3] = new Item('Find A Form', 'forms.asp', '', defLength, 0, 0);
menu[2][4] = new Item('Customer Survey', 'CustSatisf.htm', '', defLength, 0, 0);

// Employer menu
menu[3] = new Array();
menu[3][0] = new Menu(true, '>', 0, 40, 125, '#006699', defBack, 'itemBorder', 'itemText');
menu[3][1] = new Item('Frequently<br> Asked Questions', 'faq.htm', '', 36, 0, 0);
menu[3][2] = new Item('Employer Benefits', 'news.htm', '', defLength, 0, 0);
menu[3][3] = new Item('Employer Survey', '#', '', defLength, 0, 9);
menu[3][4] = new Item('Employer Request<br>Form', 'EmployerReqForm.htm', '', 36, 0, 0);
menu[3][5] = new Item('Electronic Billing', 'ebilling.htm', '', defLength, 0, 0);
menu[3][6] = new Item('Check Employer<br>Group Information', 'orderrptserver/empindex.asp', '', 36, 0, 0);
menu[3][7] = new Item('Find A Form', 'forms.asp', '', defLength, 0, 0);

// Producer menu
menu[4] = new Array();
menu[4][0] = new Menu(true, '>', 0, 40, 125, '#006699', defBack, 'itemBorder', 'itemText');
menu[4][1] = new Item('View Policyholder<br>Information', 'orderrptserver/Producer/index2.asp?path=V1', '', 37, 0, 0);
menu[4][2] = new Item('Check Employer Group<br>Information', 'orderrptserver/Producer/index2.asp?path=V2', '', 37, 0, 0);
menu[4][3] = new Item('Run Web-Based<br>Reports', 'orderrptserver/Producer/index2.asp?path=V3', '', 37, 0, 0);
menu[4][4] = new Item('Access Carrier Forms', 'forms.asp', '', 37, 0, 0);
menu[4][5] = new Item('Read Carrier Field<br>Bulletins', 'construction.htm', '', 37, 0, 0);
menu[4][6] = new Item('Frequently<br> Asked Questions', 'faq.htm', '', 37, 0, 0);

// Carrier menu
menu[5] = new Array();
menu[5][0] = new Menu(true, '>', 0, 40, 125, '#006699', defBack, 'itemBorder', 'itemText');

menu[5][1] = new Item('View Policyholder<br>Information', 'orderrptserver/Carrier/indexCarrier2.asp?path=V1', '', 36, 0, 0);
menu[5][2] = new Item('Check Employer Group<br>Information', 'orderrptserver/Carrier/indexCarrier2.asp?path=V2', '', 36, 0, 0);
menu[5][3] = new Item('Run Web-Based<br>Reports', 'orderrptserver/Carrier/indexCarrier2.asp?path=V3', '', 36, 0, 0);
menu[5][4] = new Item('Frequently<br> Asked Questions', 'faq.htm', '', 36, 0, 0);

// Links menu
menu[6] = new Array();
menu[6][0] = new Menu(true, '>', 0,40, 80, '#006699', defBack, 'itemBorder', 'itemText');
menu[6][1] = new Item('Links', 'links.htm', '', 20, 0, 0);

// Site Map menu
menu[7] = new Array();
menu[7][0] = new Menu(true, '>', 0, 40, 80, '#006699', 'black', 'itemBorder', 'itemText');
menu[7][1] = new Item('Site Map', 'sitemap.htm', '', 20, 0, 0);

// Products sub-menu
menu[8] = new Array();
menu[8][0] = new Menu(true, '>',115, 0, 120, '#006699', 'black', 'crazyBorder', 'crazyText');
menu[8][1] = new Item('Whole Life', 'products/wlife.htm', '', 0, 0, 0);
menu[8][2] = new Item('Universal Life', 'products/ulife.htm', '', 0, 0, 0);
menu[8][3] = new Item('Variable Life', 'products/vlife.htm', '', defLength, 0, 0);
menu[8][4] = new Item('Term Life', 'products/tlife.htm', '', defLength, 0, 0);
menu[8][5] = new Item('Cancer', 'products/cancer.htm', '', defLength, 0, 0);
menu[8][6] = new Item('Accident', 'products/accident.htm', '', defLength, 0, 0);
menu[8][7] = new Item('Disability Income', 'products/disinc.htm', '', defLength, 0, 0);
menu[8][8] = new Item('Critical Illness', 'products/critill.htm', '', defLength, 0, 0);
menu[8][9] = new Item('Long-Term Care', 'products/lterm.htm', '', defLength, 0, 0);
menu[8][10] = new Item('Dental', 'products/dental.htm', '', defLength, 0, 0);
menu[8][11] = new Item('Annuities', 'products/annuities.htm', '', defLength, 0, 0);
menu[8][12] = new Item('Mutual Funds', 'products/mutfunds.htm', '', defLength, 0, 0);


// Customer Survey sub-menu
menu[9] = new Array();
menu[9][0] = new Menu(true, '>', 115, 0, 120, '#006699', 'black', 'crazyBorder', 'crazyText');
menu[9][1] = new Item('Quality Control<br> Survey', 'qualityctrlsurv.htm', '', 36, 0, 0);
menu[9][2] = new Item('Initial Enrollment<br>Survey', 'InitalEnroll.htm', '', 36, 0, 0);

// *** OPTIONAL CODE FROM HERE DOWN ***

// These two lines handle the window resize bug in NS4. See body onResize="..."
// I recommend you leave this here as otherwise when you resize NS4's width menus are hidden.

var popOldWidth = window.innerWidth;
nsResizeHandler = new Function('if (popOldWidth != window.innerWidth) location.reload()');


// This is a quick snippet that captures all clicks on the document and hides the menus
// every time you click. Use if you want.

if (isNS4) document.captureEvents(Event.CLICK);
document.onclick = clickHandle;

function clickHandle(evt)
{
if (isNS4) document.routeEvent(evt);
hideAllBut(0);
}


// This is just the moving command for the example.

function moveRoot()
{
with(menu[0][0].ref) left = ((parseInt(left) < 100) ? 100 : 5);
}
// End --
/script

.itemBorder { border: 2px solid black }
.itemText { text-decoration: none; color: #FFFFFF; font: Bold 12px Arial, Helvetica }
.crazyBorder{ border: 2px outset #663399 }
.crazyText { text-decoration: none; color: white; font: Bold 12px Arial, Helvitica }
/style

/head>

body bgcolor="#ffffff" marginwidth="0" marginheight="0" style="margin: 0" onLoad="writeMenus()" onResize="if (isNS4) nsResizeHandler()">
<font face='arial,helvetica'>
<table width=750 border=0 cellspacing=0 cellpadding=0 height=60>
<tr>
<td><!--Start with Top Navigation Bar-->

<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr>
<td width='94'><IMG alt="ASI Logo" border =0 height=72 src="newlogo.gif" width=94 ></td>
<td width='100'><IMG alt=Navigation border=0 height=72 src="nav2.gif" width=100></td><!--This cell contains a Java Applet that scrolls through different insurance companies-->
<td bgcolor='#0202b1' width='400' height='72'><APPLET code=Fader.class width=400 height=65 VIEWASTEXT id=Applet1>
<Param Name="text21" value="UNIQ Assurance Group">
<PARAM NAME="text20" VALUE="Transamerica Life Insurance Company">
<PARAM NAME="text19" VALUE="The Balanced Program, Inc.">
<PARAM NAME="text18" VALUE="Security Financial Life">
<PARAM NAME="text17" VALUE="Royce Funds">
<PARAM NAME="text16" VALUE="Protective Life">
<PARAM NAME="text15" VALUE="Oxford Life Insurance">
<PARAM NAME="text14" VALUE="National Worksite Partners">
<PARAM NAME="text13" VALUE="Legal Club of America">
<PARAM NAME="TEXT12" VALUE="Kanawha">
<PARAM NAME="text11" VALUE="First Penn Pacific">
<PARAM NAME="text10" VALUE="Fidelity Security Life">
<PARAM NAME="text9" VALUE="Fidelity Investments">
<PARAM NAME="text8" VALUE="Continental American Insurance Company">
<PARAM NAME="text7" VALUE="Canada Life">
<PARAM NAME="fgcolor" VALUE="FFFFFF">
<PARAM NAME="text6" VALUE="Benefit Alliance">
<PARAM NAME="text5" VALUE="Baltimore Life Insurance">
<PARAM NAME="text4" VALUE="American Funds">
<PARAM NAME="text3" VALUE="American Fidelity Assurance">
<PARAM NAME="text2" VALUE="AFLAC">
<PARAM NAME="text1" VALUE="Administrative Systems Strategic Relationships Include.....">
<PARAM NAME="text0" VALUE="Welcome to Administrative Systems, Inc......">
<PARAM NAME="bgcolor" VALUE="0202b1">
<PARAM NAME="delay" VALUE="20">
<PARAM NAME="fontname" VALUE="Arial">
<PARAM NAME="fontsize" VALUE="15">
<PARAM NAME="stop" VALUE="2000">
<PARAM NAME="fontstyle" VALUE="0">
</APPLET>
</td>

<td width='156'><IMG alt=Navigation height=72 src="nav5.gif" width=156></td>

</tr>
</table>

<!--Tab navigation bar. Javascript included in each TD calls the menu array that it is assigned to. See heirArrays.js-->
<table width=100% cellpadding='0' cellspacing='0' border='0' >
<tr>
<td height="41" width=750 bgcolor='#006699'><font size="1"> </font>
</td>
</tr>
</table>
</td>
</tr>
</table>

Last edited by JWasibpi : 15-Jul-2002 01:15 PM.
Closed Thread

THIS THREAD HAS EXPIRED.
Are you having the same problem? We have volunteers ready to answer your question, but first you'll have to join for free. Need help getting started? Check out our Welcome Guide.


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
WELCOME TO TECH SUPPORT GUY! Are you looking for the solution to your computer problem? Join our site today to ask your question -- for free! Our site is run completely by volunteers who help people like you solve computer problems. See our Welcome Guide to get started.



Thread Tools


You Are Using:
Server ID
Advertisements do not imply our endorsement of that product or service.
All times are GMT -4. The time now is 07:21 AM.
Copyright © 1996 - 2008 TechGuy, Inc. All rights reserved.
Powered by vBulletin, Copyright © 2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0
Powered by Cermak Technologies, Inc.