// ポップアップメニューを作る
var popup_current = new Array();
function popup_init () {
    var ie = navigator.userAgent.indexOf("MSIE");
    var win = navigator.userAgent.indexOf("Windows");
    var ver = 0; if(ie >= 0) ver = navigator.userAgent.substr(ie + 5, 1);
    if(win >= 0 && ver >= 5)
    // if(document.getElementById)
        document.onmousedown = popup_click;
}
function popup (e, id, pad, borderw, bordercol) {
    var o = document.getElementById(id);
    if(!o) return; 
    popup_click(e);
    
    var x, y;
    if(window.event) {
        x = event.clientX + popup_scrollleft();
        y = event.clientY + popup_scrolltop();
    }
    else if(e) {
        var x = e.pageX; var y = e.pageY;
    }
    if(window.event) {
        var le = popup_getleft(event.srcElement);
        var to = popup_gettop(event.srcElement);
        var wi = event.srcElement.offsetWidth;
        var hi = event.srcElement.offsetHeight;
        if(popup_current.length == 0) {
            o.style.left = le + "px"; 
            o.style.top = (to + hi) + "px";
        }
        else {
            o.style.left = (le + wi) + "px"; 
            o.style.top = to + "px";
        }
    }
    else {
        o.style.left = x + "px"; o.style.top =  y + "px";
    }
    o.style.padding = pad + "px";
    if(borderw || bordercol) {
        o.style.borderStyle = "solid";
        if(borderw) o.style.borderWidth = borderw + "px";
        if(bordercol) o.style.borderColor = bordercol;
    }
    o.style.visibility = "visible";
    popup_current[popup_current.length] = id;
}
function popup_hide () {
    if(!document.getElementById) return;
    var i;
    for(i = 0; i < popup_current.length; i++)
        document.getElementById(popup_current[i]).style.visibility
            = "hidden";
    popup_current = new Array();
}
function popup_click (e) {
    var i;
    var src = 0;
    if(window.event) src = window.event.srcElement;
    else if(e) src = e.target;
    var cur = -1;
    while(src) {
        for(i = 0; i < popup_current.length; i++) {
            if(src.id == popup_current[i]) { cur = i; break; }
        }
        if(cur >= 0) break;
        src = src.parentNode;
    }
    for(i = popup_current.length - 1; i > cur; i--) {
         document.getElementById(popup_current[i]).style.visibility
              = "hidden";
         if(popup_current.length == 1) popup_current = new Array();
         else popup_current = popup_current.slice(0, -1);
    }
}
function popup_getleft (elm) {
    var left = elm.offsetLeft;
    var pa = elm.offsetParent;
    while(pa) {
        if(pa.offsetLeft) left += pa.offsetLeft;
        pa = pa.offsetParent;
    }
    return left;
}
function popup_gettop (elm) {
    var top = elm.offsetTop;
    var pa = elm.offsetParent;
    while(pa) {
        if(pa.offsetTop) top += pa.offsetTop;
        pa = pa.offsetParent;
    }
    return top;
}
/* ------------------------------------
  スクロール領域の上端
------------------------------------ */
function popup_scrolltop () {
    if(document.compatMode == "CSS1Compat") {
        return document.body.parentNode.scrollTop;
    }
    else if(document.body && document.body.scrollTop) {
        return document.body.scrollTop;
    }
    else if(self.pageYOffset)
        return self.pageYOffset;
    return 0;
}
/* ------------------------------------
  スクロール領域の左端
------------------------------------ */
function popup_scrollleft () {
    if(document.compatMode == "CSS1Compat") {
        return document.body.parentNode.scrollLeft;
    }
    else if(document.body && document.body.scrollLeft) {
        return document.body.scrollLeft;
    }
    else if(self.pageXOffset)
        return self.pageXOffset;
    return 0;
}
popup_init();

