// context menu data objectsvar cMenu = new Object();cMenu["lookup1"] = {menuID:"contextMenu1", hrefs:["http://www.usscouts.org","http://www.usscouts.org"]};cMenu["lookup2"] = {menuID:"contextMenu2", hrefs:["http://www.missouritourism.org","http://www.modot.state.mo.us/roadcond/statemap.htm ","http://www.cnn.com","http://www.google.com","http://www.yahoo.com"]};// position and display context menufunction showContextMenu(evt) {    // hide any existing menu just in case    hideContextMenus();    evt = (evt) ? evt : ((event) ? event : null);    if (evt) {        var elem = (evt.target) ? evt.target : evt.srcElement;         if (elem.nodeType == 3) {            elem = elem.parentNode;        }        if (elem.className == "contextEntry") {            var menu = document.getElementById(cMenu[elem.id].menuID);            // turn on IE mouse capture            if (menu.setCapture) {                menu.setCapture();            }            // position menu at mouse event location            var left, top;            if (evt.pageX) {                left = evt.pageX;                top = evt.pageY;            } else if (evt.offsetX || evt.offsetY) {                left = evt.offsetX;                top = evt.offsetY;            } else if (evt.clientX) {                left = evt.clientX;                top = evt.clientY;            }            menu.style.left = left + "px";            menu.style.top = top + "px";            menu.style.visibility = "visible";            if (evt.preventDefault) {                evt.preventDefault();            }            evt.returnValue = false;        }    }}// retrieve URL from cMenu object related to chosen itemfunction getHref(tdElem) {    var div = tdElem.parentNode.parentNode.parentNode.parentNode;    var index = tdElem.parentNode.rowIndex;    for (var i in cMenu) {        if (cMenu[i].menuID == div.id) {            return cMenu[i].hrefs[index];            }    }    return "";}// navigate to chosen menu itemfunction execMenu(evt) {    evt = (evt) ? evt : ((event) ? event : null);    if (evt) {        var elem = (evt.target) ? evt.target : evt.srcElement;        if (elem.nodeType == 3) {            elem = elem.parentNode;        }        if (elem.className == "menuItemOn") {            location.href = getHref(elem);        }        hideContextMenus();    }}// hide all context menusfunction hideContextMenus() {    if (document.releaseCapture) {        // turn off IE mouse event capture        document.releaseCapture();    }    for (var i in cMenu) {        var div = document.getElementById(cMenu[i].menuID)        div.style.visibility = "hidden";    }}// rollover highlights of context menu itemsfunction toggleHighlight(evt) {    evt = (evt) ? evt : ((event) ? event : null);    if (evt) {        var elem = (evt.target) ? evt.target : evt.srcElement;        if (elem.nodeType == 3) {            elem = elem.parentNode;        }        if (elem.className.indexOf("menuItem") != -1) {            elem.className = (evt.type == "mouseover") ? "menuItemOn" : "menuItem";        }    }}// set tooltips for menu-capable and lesser browsersfunction setContextTitles() {    var cMenuReady = (document.body.addEventListener || typeof document.oncontextmenu != "undefined")    var spans = document.body.getElementsByTagName("span");    for (var i = 0; i < spans.length; i++) {        if (spans[i].className == "contextEntry") {            if (cMenuReady) {                var menuAction = (navigator.userAgent.indexOf("Mac") != -1) ? "Click and hold " : "Right click ";                spans[i].title = menuAction + "to view relevant links"            } else {                spans[i].title = "Relevant links available with other browsers (IE5+/Windows, Netscape 6+)."                spans[i].style.cursor = "default";            }        }    }}// bind events and initialize tooltipsfunction initContextMenus() {    if (document.body.addEventListener) {        // W3C DOM event model        document.body.addEventListener("contextmenu", showContextMenu, true);        document.body.addEventListener("click", hideContextMenus, true);    } else {        // IE event model        document.body.oncontextmenu = showContextMenu;    }    // set intelligent tooltips    setContextTitles();}