var flagMenuC = '';
var timerId = null;
var timerId2 = null;
var menuIds = new Array()

var repositioned= false;
var imgID;
DOM = (document.getElementById) ? true : false;
NS4 = (document.layers) ? true : false;
NS6 = ((navigator.appName == "Netscape") && (parseFloat(navigator.appVersion) >=5 ))
NS4old = (NS4 && (parseFloat(navigator.appVersion) < 4.02));
IE = (document.all) ? true : false;
IE4 = IE && !DOM;
Mac = (navigator.appVersion.indexOf("Mac") != -1);
Unix = (navigator.appVersion.indexOf("X11") != -1);
IE4M = IE4 && Mac;
Opera = (navigator.userAgent.indexOf("Opera")!=-1);
Konqueror = (navigator.userAgent.indexOf("Konqueror")!=-1);

function setFlagM(mId) {
    if (mId != "") {
        if (timerId) {
            window.clearTimeout(timerId);
        }
        timerId = window.setTimeout("closeMif2('" + mId + "')", 0);
    }
    flagMenuC = mId;
}

function showM(mId, imgId) {
    closeAllMenus();
    var divSM;
    if (timerId) {
        window.clearTimeout(timerId);
    }
    if (timerId2) {
        window.clearTimeout(timerId2);
    }
    //petite modif, laisser le temps à l'autre menu de partir avant d'afficher le nouveau...
    timerId2 = window.setTimeout("showMenu('" + mId + "', '" + imgId + "')", 2);
}

function showMenu(mId, imgId){
    if (subMenuExist(mId)) {
        var mX = findXY(imgId, "x");
        var mY = findXY(imgId, "y");
        var pxLeft = mX;
        var pxTop = mY + 18;
        if (document.getElementById) {
            divSM = document.getElementById(mId);
            divSM.style.visibility = "visible";
            divSM.style.top = pxTop + "px";
            divSM.style.left = pxLeft + "px";
        } else if (document.all) {
            divSM = document.all[mId];
            divSM.style.visibility = "visible";
            divSM.style.pixelTop = pxTop + "px";
            divSM.style.pixelLeft = pxLeft + "px";
        } else if (document.layers) {
            divSM = document.layers[mId];
            divSM.visibility = "show";
            divSM.top = pxTop + "px";
            divSM.left = pxLeft + "px";
        }
    }
}

function closeM(mId) {
    if (mId == null || mId == "") {
        closeAllMenus();
    } else {
        if (document.getElementById) {
            if (document.getElementById(mId)) {
                document.getElementById(mId).style.visibility = "hidden";
            }
        } else if (document.all) {
            if (document.all[mId]) {
                document.all[mId].style.visibility = "hidden";
            }
        } else if (document.layers) {
            if (document.layers[mId]) {
                document.layers[mId].visibility = "hide";
            }
        }
    }
}

function closeAllMenus() {
    if (document.getElementById) {
        for (var i = 0; i < menuIds.length; i++) {
            if (document.getElementById(menuIds[i])) {
                document.getElementById(menuIds[i]).style.visibility = "hidden";
            }
        }
    } else if (document.all) {
        for (var i = 0; i < menuIds.length; i++) {
            if (document.all[menuIds[i]]) {
                document.all[menuIds[i]].style.visibility = "hidden";
            }
        }
    } else if (document.layers) {
        for (var i = 0; i < menuIds.length; i++) {
            if (document.layers[menuIds[i]]) {
                document.layers[menuIds[i]].style.visibility = "hidden";
            }
        }
    }
}

function closeMif(mId) {
    if (subMenuExist(mId)) {
        if (timerId) {
            window.clearTimeout(timerId);
        }
        window.setTimeout("closeMif2('" + mId + "')", 0);
    }
}

function closeMif2(mId) {
    if (flagMenuC == mId) {
        timerId = window.setTimeout("closeMif2('" + mId + "')", 0);
    } else {
        closeM(mId);
        if (timerId) {
            window.clearTimeout(timerId);
        }
    }
}

function subMenuExist(mId) {
    var mExist = false;
    if (document.getElementById) {
        if (document.getElementById(mId)) {
            mExist = true;
        }
    } else if (document.all) {
        if (document.all[mId]) {
            mExist = true;
        }
    } else if (document.layers) {
        if (document.layers[mId]) {
            mExist = true;
        }
    }
    return mExist;
}

function findXY(elementid, xory) {
    var thePlacer = DOM ? document.getElementById(elementid) : IE ? document.all(elementid) : document.images[elementid];
    if (thePlacer != null) {
        retVal = getReal(xory, thePlacer);
        return retVal;
    }
}

function getReal(xy, el) {
    if (IE || DOM) {
        Pos = xy == "x" ? el.offsetLeft : el.offsetTop;
        if (IE &&
            !Mac &&
            el.tagName &&
            el.tagName.toUpperCase() == "TABLE" &&
            el.border && el.border > 0) {
            Pos++;
        }
        tmpEl = el.offsetParent;
        while (tmpEl != null) {
            Pos += xy == "x" ? tmpEl.offsetLeft : tmpEl.offsetTop;
            if (IE &&
                !Mac &&
                tmpEl.tagName &&
                tmpEl.tagName.toUpperCase() == "TABLE" &&
                tmpEl.border && tmpEl.border > 0) {
                Pos++;
            }
            tmpEl = tmpEl.offsetParent;
        }
    } else {
        Pos = xy == "x" ? el.x : el.y;
    }
    return Pos;
}
