//document.write('<style> .menu{position: absolute;}</style>');
var timeOn = null
//var numMenus = 20;
var mouseison = null;
var onmenus = new Array();
document.onmouseover = hideAllMenus;
document.onclick = hideAllMenus;
window.onerror = null;

function menuOver() {
    clearTimeout(timeOn)
}// MENU MOUSE OVER 
function menuOut() {
    if(document.layers) {
        timeOn = setTimeout("hideAllMenus()", 5000)
    }
}// MENU MOUSE OUT 
function removefrommenu(item){
    for (var  i = 0; onmenus[i] != null; i++) {
        if(onmenus[i] == item) {
            onmenus.splice(i,1);
            return
        }
    }
}
function showMenu(menuNumber,eventObj, offsetx) {
    var menuId = 'menu' + menuNumber;
    menuOver()
    hideAllMenus();
    baseObj = getObject("img" + menuNumber)
    imgy = findPosY(baseObj)
    imgx = findPosX(baseObj)
    if((imgx + eval(offsetx)) < 2) imgx = 2
    else imgx = imgx + eval(offsetx)
    moveObject(menuId, imgx, imgy+2)
    eventObj.cancelBubble = true;
    if(changeObjectVisibility(menuId, 'visible')) {
        onmenus.push(menuId);
        return true;
    } else return false;
}
function showsubMenu(menuNumber,eventObj, offsetx) {
    var menuId = 'menu' + menuNumber;
    eventObj.cancelBubble = true;
    KillMenus(menuId)
    if(! changeObjectVisibility(menuId, 'visible'))  return false;
    var imgObj = getObject("img" + menuNumber)
    var yx = getParPos(imgObj)
    moveObject(menuId, eval(yx.x + eval(offsetx)), eval(yx.y - imgObj.offsetHeight + offsetx))
    onmenus.push(menuId);
    return true;
}
function getallmenus()	{
    var allElements = document.getElementsByTagName("*");
    var results = [];
    var element;
    for (var i = 0; (element = allElements[i]) != null; i++) {
        var elementid = String(element.id);
        if (elementid && elementid.indexOf('menu') == 0)
            results.push(element);
    }
    return results;
}
function hideAllMenus() {
    var menus = getallmenus();
    var menu;
    for(var i = 0; (menu = menus[i]) != null; i++) {
        changeObjectVisibility(menu.id, 'hidden');
    }
    onmenus = [];
}
function KillMenus(item) {
    var menu;
    var str = new String(item);
    for(var i = 0; (menu = onmenus[i]) != null; i++) {
        if(str.lastIndexOf(menu) == -1){
            changeObjectVisibility(menu, 'hidden');
            removefrommenu(menu);
            i=0
        }
    }
}
function findPosX(obj){
    var x = 0;
    while( obj != null ) {
        x += obj.offsetLeft;
        obj = obj.offsetParent;
    }
    return x;
}
function findPosY(obj){
    var y = 0;
    while( obj != null ) {
        y += obj.offsetTop;
        obj = obj.offsetParent;
    }
    return y;
}
function getPos (obj) {
    var pos = {x: obj.offsetLeft||0, y: obj.offsetTop||0};
    while(obj.offsetParent) {
        pos.x += obj.offsetLeft||0;
        pos.y += obj.offsetTop||0;
        obj = obj.offsetParent;
    }
    return pos;
}
function getParPos (obj) {
    var pos = {x: obj.offsetLeft||0, y: obj.offsetTop||0};
    if(obj.offsetParent) {
        obj = obj.offsetParent;
        pos.x += obj.offsetLeft||0;
        pos.y += obj.offsetTop||0;
    }
    return pos;
}
function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
        styleObject.left = eval(newXCoordinate) + 'px';
        styleObject.top = eval(newYCoordinate) + 'px';
        return true;
    } else {
        var obj = document.getElementById(objectId)
        obj.top = y;
        obj.left = x;
        return true;
    }
} // moveObject
function getStyleObject(objectId) {
         // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
        // W3C DOM
        return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
        // MSIE 4 DOM
        return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
        // NN 4 DOM.. note: this won't find nested layers
        return document.layers[objectId];
    } else {
        return false;
    }
} // getStyleObject
function getObject(objectId) {
         // cross-browser function to get an object given its id
    if(document.getElementById && document.getElementById(objectId)) {
        // W3C DOM
        return document.getElementById(objectId);
    } else if (document.all && document.all(objectId)) {
        // MSIE 4 DOM
        return document.all(objectId);
    } else if (document.layers && document.layers[objectId]) {
        // NN 4 DOM.. note: this won't find nested layers
        return document.layers[objectId];
    } else {
        return false;
    }
} // getObject
function changeObjectVisibility(objectId, newVisibility) {
  // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(!styleObject)  return false;
    styleObject.visibility = newVisibility;
    return true;
} // changeObjectVisibility
// ***********************
// hacks and workarounds *
// ***********************
// initialize hacks whenever the page loads
window.onload = initializeHacks;
// setup an event handler to hide popups for generic clicks on the document
function initializeHacks() {
         // this ugly little hack resizes a blank div to make sure you can click
         // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
            && (navigator.platform.indexOf('Mac') != -1)
            && getStyleObject('blankDiv')) {
        window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}
function createFakeEventObj() {
         // create a fake event object for older browsers to avoid errors in function call
         // when we need to pass the event object to functions
    if (!window.event) {
        window.event = false;
    }
} // createFakeEventObj
function resizeBlankDiv() {
         // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
            && (navigator.platform.indexOf('Mac') != -1)
            && getStyleObject('blankDiv')) {
        getStyleObject('blankDiv').width = document.body.clientWidth - 20;
        getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}
function explorerMacResizeFix () {
    location.reload(false);
}
function mClk(src){ 
    if(event.srcElement.tagName=='TD')
        src.children.tags('A')[0].click();
}

