
        var aMenuOptions = Array();
        var aDefaultColors = Array("#ffffff", "#ffffff", "#ffffff", "#ffffff", "#ffffff", "#ffffff", "#ffffff", "#ffffff");
        var nLastMenuOpt = -1;
        var nLastShown = -1;
        var oTimeOut;
        var nTDWidth = 0;
        var lAutoHide = true;

        function setTDWidth(nWidth) {

                nTDWidth = nWidth;
        }


        function setAutoHide(lIsToHide) {

                lAutoHide = lIsToHide;
        }

        function addMenuOption(strOption, strURL, strTarget, strAdditonalCode) {

                nLastMenuOpt++;
                aMenuOptions[nLastMenuOpt]    = Array();
                aMenuOptions[nLastMenuOpt][0] = strOption;
                aMenuOptions[nLastMenuOpt][1] = Array();
                aMenuOptions[nLastMenuOpt][2] = strURL;
                aMenuOptions[nLastMenuOpt][3] = strTarget;
                aMenuOptions[nLastMenuOpt][4] = strAdditonalCode;
                aMenuOptions[nLastMenuOpt][5] = -1;
        }

        function addSubMenuOption(nMenuItem, strSubOption, strURL, strTarget, strAdditonalCode) {

                var nSubOption;

                aMenuOptions[nMenuItem][5] += 1;
                nSubOption = aMenuOptions[nMenuItem][5];
                aMenuOptions[nMenuItem][1][nSubOption] = Array();
                aMenuOptions[nMenuItem][1][nSubOption][0] = strSubOption;
                aMenuOptions[nMenuItem][1][nSubOption][1] = strURL;
                aMenuOptions[nMenuItem][1][nSubOption][2] = strTarget;
                aMenuOptions[nMenuItem][1][nSubOption][3] = strAdditonalCode;
        }

        function setDefaultBGColors(strMenuColor, strMenuBGColor, strMenuColorHigh, strMenuBGColorHigh, strSubColor, strSubBGColor, strSubColorHigh, strSubBGColorHigh) {

                aDefaultColors[0] = strMenuColor;
                aDefaultColors[1] = strMenuBGColor;
                aDefaultColors[2] = strMenuColorHigh;
                aDefaultColors[3] = strMenuBGColorHigh;
                aDefaultColors[4] = strSubColor;
                aDefaultColors[5] = strSubBGColor;
                aDefaultColors[6] = strSubColorHigh;
                aDefaultColors[7] = strSubBGColorHigh;
        }

        function showHide(nMenu){

                var oElement, oStyle;
                var nLastMenu, nSubOptions, strStatus, nStatrt, nIncrement, nLimit, nSubMenu, nTimeOut;

                if (nMenu != -1) {

                        if (nLastShown != -1) {
                                nLastMenu = nLastShown
                                nLastShown = -1;
                                if (lAutoHide == true)
                                   showHide(nLastMenu);
                        }

                         nSubOptions = aMenuOptions[nMenu][1].length;
                        oElement   = document.getElementById("subMenu"+nMenu+0);
                        oStyle = oElement.style;

                        if (oStyle.display == "none") strStatus = "block"; else  strStatus = "none";

                } else strStatus = "block";

                if (strStatus == "block") {
                        nStart = 0;
                        nIncrement = 1;
                        nLimit = nSubOptions;
                        nLastShown = nMenu;
                }
                else {
                        nStart = nSubOptions-1;
                        nIncrement = -1;
                        nLimit = -1;
                        nLastShown = -1;
                }

                nTimeOut = 200;
                setTimeout("unhideMenuElement('subMenuTable" + nMenu + "', '" + strStatus + "');", nTimeOut + (30*nStart+2));

                for (nSubMenu = nStart; nSubMenu != nLimit; nSubMenu += nIncrement) {
                        oElement = document.getElementById("subMenu"+nMenu+nSubMenu);
                        setTimeout("unhideMenuElement('subMenu" + nMenu + nSubMenu + "', '" + strStatus + "');", nTimeOut);
                        nTimeOut += 30;
                }
        }

        function unhideMenuElement(strSubMenuTable, strStatus) {

                var oElement;

                oElement = document.getElementById(strSubMenuTable);
                oElement.style.display = strStatus;
        }

        function writeMenuOptions() {

                var nMenu, nSubMenu, strSubMenu;

                for (nMenu=0; nMenu<=nLastMenuOpt; nMenu++) {
                        document.write("<table border=0 cellSpacing=0 cellPadding=0>");
                        document.write("<tr><td width=" + nTDWidth + " class=menu id=menu" + nMenu + " ");
                        document.write("onMouseOut=\"changeMenuColors('menu" + nMenu + "', 'linkMenu" + nMenu + "', '" + aDefaultColors[0] + "', '" + aDefaultColors[1] + "'); clearTimeout(oTimeOut);\" ")
                        if (aMenuOptions[nMenu][1].length > 0) {
                                document.write("onMouseOver=\"changeMenuColors('menu" + nMenu + "', 'linkMenu" + nMenu + "', '" + aDefaultColors[2] + "', '" + aDefaultColors[3] + "'); ")
                                document.write("oTimeOut=setTimeout('showHide(" + nMenu + ")', 500);\" ")
                                document.write("onClick=\"showHide(" + nMenu + "); clearTimeout(oTimeOut);\" >")
                                document.write("&nbsp;")
                                document.write(aMenuOptions[nMenu][0])
                        }
                        else
                        {
                                document.write("onMouseOver=\"changeMenuColors('menu" + nMenu + "', 'linkMenu" + nMenu + "', '" + aDefaultColors[2] + "', '" + aDefaultColors[3] + "');\" ")
                                document.write("onClick=\"window.open('" + aMenuOptions[nMenu][2] + "', '" + aMenuOptions[nMenu][3] + "','', false);\">")
                                document.write("&nbsp;")
                                document.write(aMenuOptions[nMenu][0]);
                        }
                        document.write("</td></tr></table>");
                        if (aMenuOptions[nMenu][1].length > 0) {
                                   document.write("<table border=0 cellSpacing=0 cellPadding=0 ID=subMenuTable" + nMenu + " style=display:none>");
                                for (nSubMenu=0; nSubMenu<=aMenuOptions[nMenu][5]; nSubMenu++) {
                                        strSubMenu = "subMenu" + nMenu + "" + nSubMenu
                                        document.write("<tr><td width=" + (nTDWidth) + " ID=" + strSubMenu + " style=display:none class=subMenu ")
                                        document.write("onMouseOver=\"changeMenuColors('" + strSubMenu + "', 'link" + strSubMenu + "', '" + aDefaultColors[6] + "', '" + aDefaultColors[7] + "');\"")
                                        document.write("onMouseOut=\"changeMenuColors('" + strSubMenu + "', 'link" + strSubMenu + "', '" + aDefaultColors[4] + "', '" + aDefaultColors[5] + "');\" ")
                                        document.write("onClick=\"");
                                        if(aMenuOptions[nMenu][1][nSubMenu][1]) document.write("window.open('" + aMenuOptions[nMenu][1][nSubMenu][1] + "', '" + aMenuOptions[nMenu][1][nSubMenu][2] + "','', false); ")
                                        if (aMenuOptions[nMenu][1][nSubMenu][3] != null) {
                                                document.write(aMenuOptions[nMenu][1][nSubMenu][3]);
                                        }
                                        document.write("\">")
                                        document.write("&nbsp;")
                                        document.write(aMenuOptions[nMenu][1][nSubMenu][0]);
                                        document.write("</td></tr>");
                                }
                                document.write("</table>");
                        }
                }
        }

        function changeMenuColors(strSubMenu, strLink, strColor, strBGColor) {

                var oElement;

                oElement = document.getElementById(strSubMenu);
                oElement.style.color = strColor;
                oElement.style.backgroundColor = strBGColor;
        }
