Link to home
Start Free TrialLog in
Avatar of Mia Johnson
Mia JohnsonFlag for United States of America

asked on

Could this be a new syntax error based on newer browser versions; and can anyone tell me where in the file and what the cause of the error is? I'm hoping it's a relatively minor fix.

For asp classic, we have used a very robust javascript menu from Ger Versluis since his 2005, version 13.11.  I have been unable to find any newer versions of his code since then.  Recently, I updated a web application and made a small configuration change to the menu.  Basically a text change, nevertheless, now the menu has disappeared from the page when it loads.  Chrome console tells me that there is Uncaught SyntaxError: Invalid or unexpected token in the menu131_compact.js:2  file which is the functioning of the menu (and I have not touched).  Firefox says Syntax Error:  Invalid character.

This is the line I changed in the config file:

   var BaseHref = "https://" + serverHR + "/HRTraining/";            // BaseHref lets you specify the root directory for relative links.


This is the code for the menu131_compact.js file (formatted):

/*(c) Ger Versluis 2000 version 13.11 April 13, 2005. You may use this script on non commercial sites. www.burmees.nl/menu*/
if (document.getElementById) {
    var maa = navigator.userAgent.toLowerCase()
      , mab = navigator.appVersion.toLowerCase()
      , mac = maa.indexOf("opera") != -1 && parseInt(maa.substring(maa.indexOf("opera") + 6)) > 6 ? true : false;
    if ((maa.indexOf("opera") == -1 || mac)) {
        var mad = ((maa.indexOf("mozilla") != -1 && maa.indexOf("compatible") == -1) || mac) ? true : false
          , mae = (maa.indexOf("msie") != -1 && !mac) ? true : false;
        if (MenuUsesFrames && !parent.frames[0])
            MenuUsesFrames = 0;
        var maf = ((mab.indexOf("msie 6") != -1 || mab.indexOf("msie 7") != -1) && !mac) ? true : false, mag = (mab.indexOf("mac") != -1 && mab.indexOf("msie 5") != -1) ? true : false, FLoc, ScLoc, DcLoc, mah, mai, maj, mak, mal, mam, man, mao, map = 0, maq = 1, mar = 0, mas = 100, FrstCreat = true, Ldd = false, mat = false, mau = false, mav = false, maw = false, max = false, may = false, maz = true, FrstCntnr = null, mba = null, mbb = null, mbc = null, mbd = null, mbe = null, mbf = null, mbg = "", M_Hide = "hidden", M_Show = "visible", P_X = "px", mbh = StartTop, mbi = StartLeft, Par = MenuUsesFrames ? parent : window, Doc = Par.document, Bod = Doc.body, mbj = mad ? Par : Bod, mbk = mad && maa.indexOf("gecko/") != -1 && maa.indexOf("mac") == -1 && parseInt(maa.substring(maa.indexOf("gecko/") + 6, maa.indexOf("gecko/") + 12)) >= 200303 ? true : false, mbl, mbm = 0;
        mbn = setInterval("mbo()", 100)
    }
}
function mbo() {
    mbl = mae ? MenuUsesFrames ? Par.frames[FirstLineFrame].document.readyState == "complete" && Par.frames[SecLineFrame].document.readyState == "complete" ? 1 : 0 : Par.document.readyState == "complete" ? 1 : 0 : MenuUsesFrames ? Par.frames[FirstLineFrame].document.body && Par.frames[SecLineFrame].document.body ? 1 : 0 : Par.document.body ? 1 : 0;
    if (mbl) {
        clearInterval(mbn);
        Go()
    }
}
function mbp() {
    return false
}
function mbq() {
    mao = mae ? mau ? mbb.clientWidth : FLoc.document.body.clientWidth : FLoc.innerWidth;
    mai = mae ? mau ? mbb.clientHeight : FLoc.document.body.clientHeight : FLoc.innerHeight;
    mam = mae ? mav ? mbc.clientWidth : ScLoc.document.body.clientWidth : ScLoc.innerWidth;
    man = mae ? mav ? mbc.clientHeight : ScLoc.document.body.clientHeight : ScLoc.innerHeight;
    if (mbm)
        mbr(FrstCntnr);
    mar = -1;
    mbs();
    if (TargetLoc)
        mbt();
    mbu();
    mbv();
    mbw(FrstCntnr, StartTop, StartLeft);
    if (RememberStatus)
        mbx()
}
function mby() {
    Ldd = mat = false;
    SetMenu = "0";
    var M = FrstCntnr ? FrstCntnr.mcd : null;
    if (mae) {
        while (M != null) {
            if (M.CCn) {
                mbz(M.CCn);
                M.CCn = null
            }
            M = M.mca
        }
    }
    mbn = setInterval("mcb()", 100)
}
function mcc() {
    mbz(FrstCntnr);
    FrstCntnr = mbf = FLoc = ScLoc = DcLoc = mah = mba = mbd = Doc = Bod = mbj = null
}
function mbz(P) {
    var M = P.mcd, Mi;
    while (M != null) {
        Mi = M;
        if (M.CCn) {
            mbz(M.CCn);
            M.CCn.mif = null;
            M.CCn = null
        }
        M = M.mca;
        Mi.mca = null;
        Mi = null
    }
    P.mcd = null
}
function mcb() {
    if (!mae) {
        if (ScLoc.document.body) {
            clearInterval(mbn);
            Go()
        }
    } else if (ScLoc.document.readyState == "complete") {
        if (mbn)
            clearInterval(mbn);
        Go()
    }
}
function Go() {
    if (!Ldd) {
        mat = false;
        Ldd = true;
        BeforeStart();
        if (ScaleMenu) {
            if (document.defaultView && document.defaultView.getComputedStyle)
                maq = parseInt(document.defaultView.getComputedStyle(document.body, '').getPropertyValue("font-size")) / 16;
            else if (mae && document.body.currentStyle)
                maq = parseInt(document.body.currentStyle.fontSize) / 12
        }
        status = "Building menu";
        FLoc = MenuUsesFrames ? parent.frames[FirstLineFrame] : window;
        ScLoc = MenuUsesFrames ? parent.frames[SecLineFrame] : window;
        DcLoc = MenuUsesFrames ? parent.frames[DocTargetFrame] : window;
        if (MenuUsesFrames) {
            if (!FLoc)
                FLoc = window;
            if (!ScLoc)
                ScLoc = window;
            if (!DcLoc)
                DcLoc = window
        }
        if (FLoc == ScLoc)
            maz = false;
        if (maz)
            FirstLineHorizontal = MenuFramesVertical ? 0 : FirstLineHorizontal ? FirstLineHorizontal : 1;
        if (maf || mac) {
            mbb = FLoc.document.getElementsByTagName("HTML")[0];
            mbc = ScLoc.document.getElementsByTagName("HTML")[0];
            mau = FLoc.document.compatMode.indexOf("CSS") == -1 ? false : true;
            mav = ScLoc.document.compatMode.indexOf("CSS") == -1 ? false : true
        }
        mao = mae ? mau ? mbb.clientWidth : FLoc.document.body.clientWidth : FLoc.innerWidth;
        mai = mae ? mau ? mbb.clientHeight : FLoc.document.body.clientHeight : FLoc.innerHeight;
        mam = mae ? mav ? mbc.clientWidth : ScLoc.document.body.clientWidth : ScLoc.innerWidth;
        man = mae ? mav ? mbc.clientHeight : ScLoc.document.body.clientHeight : ScLoc.innerHeight;
        maj = FLoc.document.body;
        mak = ScLoc.document.body;
        mal = ScLoc.document.body;
        if (TakeOverBgColor)
            maj.style.backgroundColor = maz ? mak.bgColor : mal.bgColor;
        if (FrstCreat || FLoc == ScLoc)
            FrstCntnr = mce("Menu", NoOffFirstLineMenus, null);
        else
            mcf("Menu", NoOffFirstLineMenus);
        mbr(FrstCntnr);
        mbs();
        if (TargetLoc)
            mbt();
        mbu();
        mbv();
        mbw(FrstCntnr, StartTop, StartLeft);
        mat = true;
        mah = mae ? ScLoc.document.body : ScLoc;
        mah.onunload = mby;
        if (mae)
            mbj.onunload = mcc;
        mbj.onresize = mbq;
        AfterBuild();
        if (RememberStatus)
            mbx();
        FrstCreat = false;
        if (MenuVerticalCentered == "static" && !maz)
            setInterval("mcg()", 50);
        if (!mae) {
            mao = -1;
            mbq()
        }
        max = true;
        mch();
        status = "Menu ready for use"
    }
}
function mcg() {
    var TS = mae ? mav ? mbc.scrollTop : ScLoc.document.body.scrollTop : ScLoc.pageYOffset;
    if (TS != mar) {
        mar += (TS - mar) * .2;
        if (Math.abs(mar - TS) <= 1)
            mar = TS;
        FrstCntnr.mci = StartTop + mar;
        FrstCntnr.style.top = FrstCntnr.mif.style.top = FrstCntnr.mci + P_X
    }
}
function mbs() {
    StartTop = mbh < 1 && mbh > 0 ? mbh * mai : mbh;
    StartLeft = mbi < 1 && mbi > 0 ? mbi * mao : mbi
}
function mbt() {
    var mcj = FLoc.document.getElementById(TargetLoc);
    while (mcj) {
        StartTop += mcj.offsetTop;
        StartLeft += mcj.offsetLeft;
        mcj = mcj.offsetParent
    }
}
function mbu() {
    if (MenuCentered.indexOf("left") == -1) {
        var Sz = mao - parseInt(FrstCntnr.style.width);
        StartLeft += MenuCentered.indexOf("right") != -1 ? Sz : Sz / 2;
        if (StartLeft < 0)
            StartLeft = 0
    }
}
function mbv() {
    if (MenuVerticalCentered != "top" && MenuVerticalCentered != "static") {
        var Sz = mai - parseInt(FrstCntnr.style.height);
        StartTop += MenuVerticalCentered == "bottom" ? Sz : Sz / 2;
        if (StartTop < 0)
            StartTop = 0
    }
}
function mbr(C) {
    var mck = C.Lvl == 1 ? mau : mav, M = C.mcd, Mi, i, W = 0, H = 0, Wd, Ht, RI, BRW = C.Lvl == 1 ? BorderWidthMain : BorderWidthSub, mcl = C.Lvl == 1 ? BorderBtwnMain : BorderBtwnSub;
    if (C.Lvl <= FirstLineHorizontal) {
        while (M != null) {
            W += Math.round((M.Arr[5] < 1 ? (M.Arr[5] * (M.Lvl == 1 ? mao : mam)) : (M.Arr[5] * maq)));
            Mi = M;
            M = M.mca
        }
        W += ((C.mcm - 1) * mcl + 2 * BRW);
        Ht = H = Math.round((Mi.Arr[4] < 1 ? (Mi.Arr[4] * (Mi.Lvl == 1 ? mai : man)) : (Mi.Arr[4] * maq)));
        H += (2 * BRW)
    } else {
        while (M != null) {
            H += Math.round((M.Arr[4] < 1 ? (M.Arr[4] * (M.Lvl == 1 ? mai : man)) : (M.Arr[4] * maq)));
            Mi = M;
            M = M.mca
        }
        H += ((C.mcm - 1) * mcl + 2 * BRW);
        Wd = W = Math.round((Mi.Arr[5] < 1 ? (Mi.Arr[5] * (Mi.Lvl == 1 ? mao : mam)) : (Mi.Arr[5] * maq)));
        W += (2 * BRW)
    }
    C.style.width = C.mif.style.width = W + P_X;
    C.style.height = C.mif.style.height = H + P_X;
    M = C.mcd;
    while (M != null) {
        if (M.Arr[5] < 1) {
            W = C.Lvl <= FirstLineHorizontal ? (M.Arr[5] * (M.Lvl == 1 ? mao : mam)) : Wd;
            mbm = 1
        } else
            W = (C.Lvl <= FirstLineHorizontal ? M.Arr[5] : Wd) * maq;
        if (M.Arr[4] < 1) {
            H = C.Lvl <= FirstLineHorizontal ? Ht : (M.Arr[4] * (M.Lvl == 1 ? mai : man));
            mbm = 1
        } else
            H = (C.Lvl <= FirstLineHorizontal ? Ht : M.Arr[4]) * maq;
        W = Math.round(W);
        H = Math.round(H);
        if (M.mcn.indexOf("<") == -1) {
            M.tpd = TopPaddng < 0 ? (Math.round(H * .5 - M.Arr[12] * maq)) : TopPaddng;
            if (M.tpd < 0 || M.tpd > H)
                M.tpd = 0;
            M.ltp = LeftPaddng;
            if (M.ltp < 0 || M.ltp > W)
                M.ltp = 0;
            if ((mad && !mac) || mag || mck) {
                M.lx = M.ltp;
                M.tx = M.tpd
            }
        }
        M.style.width = W - M.lx + P_X;
        M.style.height = H - M.tx + P_X;
        M.style.paddingLeft = M.ltp + P_X;
        M.style.paddingTop = M.tpd + P_X;
        if (M.ro) {
            RI = (M.Lvl == 1 ? FLoc : ScLoc).document.images[M.rid];
            RI.style.width = W + P_X;
            RI.style.height = H + P_X
        }
        if (M.CCn)
            mbr(M.CCn);
        M = M.mca
    }
}
function mbw(Ct, Tp, Lt) {
    map++;
    var a, Mb = Ct.mcd, MWt = parseInt(Mb.style.width) + Mb.lx, MHt = parseInt(Mb.style.height) + Mb.tx, CWt = parseInt(Ct.style.width), CHt = parseInt(Ct.style.height), CCw, CCh, STp, SLt, Ti, Li, Hi, BRW = map == 1 ? BorderWidthMain : BorderWidthSub, mcl = map == 1 ? BorderBtwnMain : BorderBtwnSub;
    if (map == 1 && maz)
        !MenuFramesVertical ? Tp = BottomUp ? DistFrmFrameBrdr : mai - CHt - DistFrmFrameBrdr : Lt = RightToLeft ? DistFrmFrameBrdr : mao - CWt - DistFrmFrameBrdr;
    if (map == 2 && maz)
        !MenuFramesVertical ? Tp = BottomUp ? man - CHt : 0 : Lt = RightToLeft ? mam - CWt : 0;
    if (map == 2) {
        Tp += VerCorrect;
        Lt += HorCorrect
    }
    Ct.style.top = Ct.mif.style.top = map == 1 ? Tp + P_X : 0;
    Ct.mci = Tp;
    Ct.style.left = Ct.mif.style.left = map == 1 ? Lt + P_X : 0;
    Ct.mco = Lt;
    if (map <= FirstLineHorizontal) {
        Hi = 1;
        Li = CWt - MWt - 2 * BRW;
        Ti = 0
    } else {
        Hi = Li = 0;
        Ti = CHt - MHt - 2 * BRW
    }
    while (Mb != null) {
        Mb.style.left = Li + BRW + P_X;
        Mb.style.top = Ti + BRW + P_X;
        if (Mb.CCn) {
            if (RightToLeft)
                CCw = parseInt(Mb.CCn.style.width);
            if (BottomUp)
                CCh = parseInt(Mb.CCn.style.height);
            if (Hi) {
                STp = BottomUp ? Ti - CCh : Ti + MHt + 2 * BRW;
                SLt = RightToLeft ? Li + MWt - CCw : Li
            } else {
                SLt = RightToLeft ? Li - CCw + ChildOverlap * MWt + BRW : Li + (1 - ChildOverlap) * MWt + BRW;
                STp = map == 1 && maz ? BottomUp ? Ti - CCh + MHt : Ti : BottomUp ? Ti - CCh + (1 - ChildVerticalOverlap) * MHt + 2 * BRW : Ti + ChildVerticalOverlap * MHt
            }
            mbw(Mb.CCn, STp, SLt)
        }
        a = map <= FirstLineHorizontal ? BottomUp ? 9 : 3 : RightToLeft ? 6 : 0;
        if (Mb.ai) {
            Mb.ai.style.top = (map <= FirstLineHorizontal ? BottomUp ? 2 : MHt - Arrws[a + 2] - 2 : (MHt - Arrws[a + 2]) / 2) + P_X;
            Mb.ai.style.left = (RightToLeft ? 2 : MWt - Arrws[a + 1] - 2) + P_X
        }
        Mb = Mb.mca;
        if (Mb) {
            MWt = parseInt(Mb.style.width) + Mb.lx;
            MHt = parseInt(Mb.style.height) + Mb.tx;
            Hi ? Li -= MWt + mcl : Ti -= MHt + mcl
        }
    }
    map--
}
function mbx() {
    if (mat) {
        var i, mcp = FrstCntnr, Str = ScLoc.SetMenu ? ScLoc.SetMenu : "0";
        while (Str.indexOf("_") != -1 && RememberStatus == 1) {
            i = mcp.mcm - parseInt(Str.substring(0, Str.indexOf("_")));
            Str = Str.slice(Str.indexOf("_") + 1);
            mcp = mcp.mcd;
            for (i; i; i--)
                mcp = mcp.mca;
            mcp.OM();
            mcp = mcp.CCn
        }
        i = mcp.mcm - parseInt(Str);
        mcp = mcp.mcd;
        for (i; i; i--)
            mcp = mcp.mca;
        if (mbf != null) {
            mcq(mbf, 0);
            mbf.mcr = 0
        }
        if (mcp != null) {
            mcq(mcp, 1);
            mcp.mcr = 1;
            if (RememberStatus == 1)
                mcp.OM()
        }
        mbf = mcp;
        mcs(FrstCntnr.mcd);
        mct(FrstCntnr)
    }
}
function mch() {
    if (max && Ldd) {
        mcu(FrstCntnr);
        max = false;
        if (RememberStatus)
            mct(FrstCntnr);
        if (may)
            AfterCloseAll();
        may = maw = false
    }
}
function mct(mcv) {
    var Mbr = mcv.mcd, St;
    while (Mbr != null) {
        if (Mbr.mda) {
            mcw(Mbr);
            if (Mbr.CCn && RememberStatus == 1) {
                St = Mbr.CCn.style;
                St.visibility = M_Show;
                mct(Mbr.CCn)
            }
            break
        } else
            Mbr = Mbr.mca
    }
}
function mcu(CPt) {
    var Mb = CPt.mcd;
    map++;
    CPt.style.visibility = CPt.mif.style.visibility = map == 1 ? M_Show : M_Hide;
    CPt.Shw = map == 1 ? 1 : 0;
    while (Mb != null) {
        if (Mb.mcx)
            mcy(Mb);
        if (Mb.CCn)
            mcu(Mb.CCn);
        Mb = Mb.mca
    }
    map--
}
function mcs(Pt) {
    var PSt, Pc;
    while (Pt) {
        if (Pt.mcx) {
            Pc = Pt;
            if (Pc != mba)
                mcy(Pt);
            if (Pt.CCn) {
                PSt = Pt.CCn.style;
                if (Pc != mba) {
                    PSt.visibility = Pt.CCn.mif.style.visibility = M_Hide;
                    Pt.CCn.Shw = 0
                }
                mcs(Pt.CCn.mcd)
            }
            break
        }
        Pt = Pt.mca
    }
}
function mcq(mcp, x) {
    while (mcp != null) {
        mcp.mda = x;
        mcp = mcp.mdb.mdc
    }
}
function mdd() {
    if (UnfoldsOnClick && !maw && this.Arr[3]) {
        maw = true;
        mde(this)
    } else if (this.Arr[1]) {
        status = "";
        mcy(this);
        max = true;
        mch();
        if (this.Arr[1].indexOf("javascript:") != -1)
            eval(this.Arr[1]);
        else
            DcLoc.location.href = BaseHref + this.Arr[1]
    }
}
function mcw(P) {
    if (P.rob)
        P.style.backgroundImage = "url(\"" + P.mdf + "\")";
    if (P.ro) {
        var Lc = P.Lvl == 1 ? FLoc : ScLoc;
        Lc.document.images[P.rid].src = P.ri2
    } else {
        if (P.Arr[7])
            P.style.backgroundColor = P.Arr[7];
        if (P.Arr[9])
            P.style.color = P.Arr[9];
        if (HooverBold)
            P.style.fontWeight = "bold";
        if (HooverItalic)
            P.style.fontStyle = "italic";
        if (HooverUnderLine)
            P.style.textDecoration = "underline";
        if (HooverTextSize)
            P.style.fontSize = parseInt(P.style.fontSize) + HooverTextSize + P_X;
        if (HooverVariant)
            P.style.fontVariant = "small-caps"
    }
    P.mcx = 1
}
function mcy(P) {
    P.mcx = 0;
    if (P.rob)
        P.style.backgroundImage = "url(\"" + P.mdg + "\")";
    if (P.ro) {
        var Lc = P.Lvl == 1 ? FLoc : ScLoc;
        Lc.document.images[P.rid].src = P.ri1
    } else {
        if (P.Arr[6])
            P.style.backgroundColor = P.Arr[6];
        if (P.Arr[8])
            P.style.color = P.Arr[8];
        if (HooverBold)
            P.style.fontWeight = "normal";
        if (HooverItalic)
            P.style.fontStyle = "normal";
        if (HooverUnderLine)
            P.style.textDecoration = "none";
        if (HooverTextSize)
            P.style.fontSize = parseInt(P.style.fontSize) - HooverTextSize + P_X;
        if (HooverVariant)
            P.style.fontVariant = "normal"
    }
}
function mdh() {
    if (Ldd && mat) {
        if (UnfoldsOnClick && !maw) {
            mba = this;
            max = false;
            mcs(this.mdb.mcd);
            mcw(this);
            status = this.Arr[16]
        } else
            mde(this)
    }
}
function mde(Ptr) {
    if (mbe)
        clearTimeout(mbe);
    if (Ptr.Arr[3] && !Ptr.CCn) {
        map = Ptr.Lvl;
        Ptr.CCn = mce(Ptr.MN + "_", Ptr.Arr[3], Ptr);
        mbr(Ptr.CCn);
        var Ti, Li, Hi, CCw, CCh, STp, SLt, MWt = parseInt(Ptr.style.width) + Ptr.lx, MHt = parseInt(Ptr.style.height) + Ptr.tx, BRW = map == 1 ? BorderWidthMain : BorderWidthSub;
        if (RightToLeft)
            CCw = parseInt(Ptr.CCn.style.width);
        if (BottomUp)
            CCh = parseInt(Ptr.CCn.style.height);
        if (map <= FirstLineHorizontal) {
            Hi = 1;
            Li = parseInt(Ptr.style.left) - BRW;
            Ti = 0
        } else {
            Hi = Li = 0;
            Ti = parseInt(Ptr.style.top) - BRW
        }
        if (Hi) {
            STp = BottomUp ? Ti - CCh : Ti + MHt + 2 * BRW;
            SLt = RightToLeft ? Li + MWt - CCw : Li
        } else {
            SLt = RightToLeft ? Li - CCw + ChildOverlap * MWt + BRW : Li + (1 - ChildOverlap) * MWt;
            STp = map == 1 && maz ? BottomUp ? Ti - CCh + MHt : Ti : BottomUp ? Ti - CCh + (1 - ChildVerticalOverlap) * MHt + 2 * BRW : Ti + ChildVerticalOverlap * MHt + BRW
        }
        mbw(Ptr.CCn, STp, SLt);
        map = 0
    }
    mba = Ptr;
    max = false;
    mcs(Ptr.mdb.mcd);
    if (!Ptr.mcx)
        mcw(Ptr);
    if (Ptr.CCn != null && !Ptr.CCn.Shw)
        RememberStatus ? mdi() : mbe = setTimeout("mdi()", UnfoldDelay);
    status = Ptr.Arr[16]
}
function mdi() {
    var P = mba
      , CSt = P.mdb.style
      , mdj = P.CCn
      , mdk = mdj.style
      , mdl = mdj.mif.style
      , THt = parseInt(P.style.height)
      , TWt = parseInt(P.style.width)
      , TLt = maz && P.Lvl == 1 && !FirstLineHorizontal ? 0 : parseInt(CSt.left)
      , TTp = maz && P.Lvl == 1 && FirstLineHorizontal ? 0 : parseInt(CSt.top)
      , CCW = parseInt(mdk.width)
      , CCH = parseInt(mdk.height)
      , TS = mae ? mav ? mbc.scrollTop : ScLoc.document.body.scrollTop : ScLoc.pageYOffset
      , LS = mae ? mav ? mbc.scrollLeft : ScLoc.document.body.scrollLeft : ScLoc.pageXOffset
      , SLt = maz && P.Lvl == 1 ? mdj.mco + TLt + LS : mdj.mco + TLt
      , STp = maz && P.Lvl == 1 ? mdj.mci + TTp + TS : mdj.mci + TTp;
    if (!may) {
        may = true;
        BeforeFirstOpen()
    }
    if (MenuWrap) {
        if (RightToLeft) {
            if (SLt < LS)
                SLt = P.Lvl == 1 ? LS : SLt + (CCW + (1 - 2 * ChildOverlap) * TWt);
            if (SLt + CCW > mam + LS)
                SLt = mam + LS - CCW
        } else {
            if (SLt + CCW > mam + LS)
                SLt = P.Lvl == 1 ? mam + LS - CCW : SLt - (CCW + (1 - 2 * ChildOverlap) * TWt);
            if (SLt < LS)
                SLt = LS
        }
        if (BottomUp) {
            if (STp < TS)
                STp = P.Lvl == 1 ? TS : STp + (CCH - (1 - 2 * ChildVerticalOverlap) * THt);
            if (STp + CCH > man + TS)
                STp = man + TS - CCH + 0
        } else {
            if (STp + CCH > TS + man)
                STp = P.Lvl == 1 ? STp = TS + man - CCH : STp - CCH + (1 - 2 * ChildVerticalOverlap) * THt;
            if (STp < TS)
                STp = TS
        }
    }
    mdk.top = mdl.top = STp + P_X;
    mdk.left = mdl.left = SLt + P_X;
    if (maf && MenuSlide) {
        mdj.filters[0].Apply();
        mdj.filters[0].play()
    }
    mdk.visibility = mdl.visibility = M_Show
}
function mdm() {
    if (Ldd && mat) {
        status = "";
        if (this == mba) {
            if (mbe)
                clearTimeout(mbe);
            if (mbd)
                clearTimeout(mbd);
            max = true;
            mbd = setTimeout("mch(mba)", DissapearDelay)
        }
    }
}
function mdn(mdo, WMu, Mc) {
    var x = eval(WMu + "[10]") != "" ? eval(WMu + "[10]") : BorderColor
      , TS = this.style;
    this.Lvl = map;
    this.mcd = null;
    this.mcm = mdo;
    this.mdc = Mc;
    this.Shw = 0;
    this.mco = this.mci = 0;
    if (x)
        TS.backgroundColor = x;
    TS.zIndex = map + mas;
    if (mae && !mag)
        this.mif.style.zIndex = TS.zIndex - 1;
    if (mbk && !mac && MenuOpacity)
        TS.MozOpacity = parseInt(MenuOpacity.substring(MenuOpacity.indexOf("=") + 1, MenuOpacity.indexOf(")"))) / 105;
    if (maf) {
        mbg = "";
        if (MenuSlide && map != 1)
            mbg = MenuSlide;
        if (MenuShadow)
            mbg += MenuShadow;
        if (MenuOpacity)
            mbg += MenuOpacity;
        if (mbg != "")
            TS.filter = mbg
    }
    if (mae && !mag && OverFormElements)
        this.mif.style.filter = "Alpha(Opacity=0)"
}
function mdp(MbC, mdq, WMu) {
    var mdr = map == 1 ? FLoc : ScLoc, t, a, ta2 = this.Arr[2], mds = this.Arr[0];
    this.mca = mdq;
    this.Lvl = map;
    this.mdb = MbC;
    this.CCn = this.ai = null;
    this.mcx = this.mda = this.mcr = this.ro = this.rob = this.lx = this.tx = this.ltp = this.tpd = 0;
    this.OM = mdh;
    this.MN = WMu;
    this.style.overflow = "hidden";
    this.style.cursor = (this.Arr[1] || (map == 1 && UnfoldsOnClick)) ? mae ? "hand" : "pointer" : "default";
    if (mds.indexOf("rollover") != -1) {
        this.ro = 1;
        this.ri1 = mds.substring(mds.indexOf("?") + 1, mds.lastIndexOf("?"));
        this.ri2 = mds.substring(mds.lastIndexOf("?") + 1, mds.length);
        this.rid = WMu + "i";
        mds = "<img src=\"" + this.ri1 + "\" name=\"" + this.rid + "\">"
    }
    this.mcn = mds;
    if (!this.Arr[6])
        this.Arr[6] = LowBgColor;
    if (this.Arr[6] && !this.ro)
        this.style.backgroundColor = this.Arr[6];
    if (!this.Arr[7])
        this.Arr[7] = HighBgColor;
    if (!this.Arr[8])
        this.Arr[8] = FontLowColor;
    this.style.color = this.Arr[8];
    if (!this.Arr[9])
        this.Arr[9] = FontHighColor;
    if (!this.Arr[11])
        this.Arr[11] = FontFamily;
    this.style.fontFamily = this.Arr[11];
    if (this.Arr[12] == -1)
        this.Arr[12] = FontSize;
    this.style.fontSize = this.Arr[12] * (mad ? 1 : maq) + "px";
    if (this.Arr[13] == -1)
        this.Arr[13] = FontBold;
    this.style.fontWeight = this.Arr[13] ? "bold" : "normal";
    if (this.Arr[14] == -1)
        this.Arr[14] = FontItalic;
    this.style.fontStyle = this.Arr[14] ? "italic" : "normal";
    if (!this.Arr[15])
        this.Arr[15] = MenuTextCentered;
    this.style.textAlign = this.Arr[15];
    if (!this.Arr[16])
        this.Arr[16] = this.Arr[1];
    if (ta2) {
        if (ta2.indexOf("rollover") == -1)
            this.style.backgroundImage = "url(\"" + ta2 + "\")";
        else {
            this.rob = 1;
            this.mdg = ta2.substring(ta2.indexOf("?") + 1, ta2.lastIndexOf("?"));
            this.mdf = ta2.substring(ta2.lastIndexOf("?") + 1, ta2.length);
            this.style.backgroundImage = "url(\"" + this.mdg + "\")";
            this.style.backgroundRepeat = "no-repeat";
            this.style.backgroundPosition = BgImgLeftOffset + "px"
        }
    }
    if (mds.indexOf("<") == -1) {
        t = mdr.document.createTextNode(mds);
        this.appendChild(t)
    } else
        this.innerHTML = mds;
    if (this.Arr[3]) {
        a = map <= FirstLineHorizontal ? BottomUp ? 9 : 3 : RightToLeft ? 6 : 0;
        if (Arrws[a]) {
            t = mdr.document.createElement("img");
            this.appendChild(t);
            t.style.position = "absolute";
            t.src = Arrws[a];
            t.style.width = Arrws[a + 1] * maq + P_X;
            t.style.height = Arrws[a + 2] * maq + P_X;
            this.ai = t
        }
    }
    if (mae) {
        this.onselectstart = mbp;
        this.onmouseover = mdh;
        this.onmouseout = mdm;
        this.onclick = mdd
    } else {
        this.addEventListener("mouseover", mdh, false);
        this.addEventListener("mouseout", mdm, false);
        this.addEventListener("click", mdd, false)
    }
}
function mce(MNm, No, mdt) {
    map++;
    var i, Mbr, PMb = null, mdv = MNm + "1", MWd = eval(mdv + "[5]") * maq, MHt = eval(mdv + "[4]") * maq, mdr = map == 1 ? FLoc : ScLoc, MbC = mdr.document.createElement("div"), MIF = !mae || mag || !OverFormElements ? MbC : mdr.document.createElement("iframe");
    mdr.document.body.appendChild(MbC);
    if (mae && !mag && OverFormElements) {
        MIF.src = "blank.html";
        mdr.document.body.appendChild(MIF)
    }
    MbC.style.position = MIF.style.position = "absolute";
    MbC.style.visibility = MIF.style.visibility = M_Hide;
    MbC.mif = MIF;
    MbC.mdu = mdn;
    MbC.mdu(No, MNm + "1", mdt);
    for (i = 1; i < No + 1; i++) {
        mdv = MNm + eval(i);
        Mbr = mdr.document.createElement("div");
        Mbr.style.position = "absolute";
        Mbr.style.visibility = "inherit";
        MbC.appendChild(Mbr);
        Mbr.Arr = eval(mdv);
        if (!Mbr.Arr[4])
            Mbr.Arr[4] = MHt;
        if (!Mbr.Arr[5])
            Mbr.Arr[5] = MWd;
        Mbr.mdu = mdp;
        Mbr.mdu(MbC, PMb, mdv);
        if (Mbr.Arr[3] && !BuildOnDemand) {
            Mbr.CCn = mce(mdv + "_", Mbr.Arr[3], Mbr)
        }
        PMb = Mbr
    }
    MbC.mcd = Mbr;
    map--;
    return (MbC)
}
function mcf(MNm, No) {
    var Mbr = FrstCntnr.mcd, i, mdv;
    if (!BuildOnDemand) {
        map++;
        for (i = No; i > 0; i--) {
            mdv = MNm + eval(i);
            if (Mbr.Arr[3])
                Mbr.CCn = mce(mdv + "_", Mbr.Arr[3], Mbr);
            Mbr = Mbr.mca
        }
        map--
    } else {
        while (Mbr) {
            Mbr.CCn = null;
            Mbr = Mbr.mca
        }
    }
}

Open in new window


Original:

menu131_compact.js

Avatar of Michel Plungjan
Michel Plungjan
Flag of Denmark image

My guess is you will find you have a 404 in the network tab and the invalid char is the “<“ of the first tag in the 404 page
Avatar of Mia Johnson

ASKER

I looked at the network tab, however I did not see any page statuses of 404.
You changed a config file to point somewhere else. There is a high chance that the file is not found in the new location.

If possible, I would like to take a look. If you do not want to publish your URL, please post screenshots of the network tab with anything identifying blanked out.

My initial verdict: Do not use a menu from 17 years ago ;)

The link you posted just redirects?  


User generated image


Yeah, it's 17 years old -
The only thing I changed was calling our site HRTraining instead of something else.  This is local on our server.  The javascript does not use any remote files to run, it uses a config .js file and the .js file which runs the functioning as described above.  The remote links are simply commented reference files to give credit to the author.  I know his site doesn't carry the menu files anymore.

These asp classic applications were coded in 2005 when the menus were new.  They have worked all these years so we have not changed them.  These applications are still in use at least for the time being and we have not changed code in them that we did not have to.

I have uploaded the config file as well.  My puzzle is that I notice on another application that uses this same menu but I haven't touched any config files lately; that one runs without giving any console errors.  So I may try to compare the two and see if there is some petty difference that is causing this one to 'fail' a bit.
hrMasterAdminmenu_var.js

Can you go back and use the original file that worked, then lets work on making your update?

Does this

var BaseHref="https://" + serverHR + "/HRTraining/";	
console.log(BaseHref)

Open in new window

show what you expect or for example

https://undefined/HRTraining/
Thanks to the administrator for formatting the code.  I'd like to know how you formatted it to be much more readable.

There is a header.asp file which calls these javascript include files plus additional javascript.  The variable serverHR is defined there.  When I obtain the page source of the whole page, I see that serverHR is properly filled in with the correct domain name in the javascript code.

I will probably take Scott's advice and try to start again with what worked and see if I can get to work afterwards with the slight change.  I will write any more comments if I learn anything new.

Hi Mia,


I just use the browser's developer tools. For example, in Chrome:


1. Go to the web page that loads the JavaScript file.

2. Hit F12 to open up the developer tools.

3. Click on the Sources tab.

4. Use the left-hand tree to find the JavaScript file you want to format and click on it once to select it.

5. When you select it, it should display that file in the middle section.

6. At the bottom (below the middle section) is a little button that are two brackets like this: { } - just click that and it'll format the source code.


User generated image


Perhaps you guys could tell me; are there alternatives to using navigator.userAgent, navigator.appVersion, and navigator.platform?  I see in the Chrome console that these aren't deal breakers but are considered old code.
Your code IS ANCIENT code. We do not user these anymore. We can test the existence of methods, but all modern browsers use the latest standards. It is only if you MUST support older browsers you need to test.

You really need a developer to upgrade your code to 2022.

I may be able to help if you post your site.
ASKER CERTIFIED SOLUTION
Avatar of Mia Johnson
Mia Johnson
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial

There had to be something else besides that. Spacing will not break the code.

I should say that I really appreciate the offer to help upgrade the code to a modern version, as this menu has been fairly simple to use and highly functional for many years.  It would be wonderful to have a modern version.  Seeing that these asp classic applications will probably only last a couple more years, though, I don't know if it's worth asking for the effort.

Can you share the final file?

I can only say that comparison of the files showed No differences other than the formatting of this line between the working and non-working version.