function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (1) {
			curleft += obj.offsetLeft;
			if (!obj.offsetParent) {
				break;
			}
			obj = obj.offsetParent;
		}
	} else if (obj.x) {
		curleft += obj.x;
	}
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (1) {
			curtop += obj.offsetTop;
			if (!obj.offsetParent) {
				break;
			}
			obj = obj.offsetParent;
		}
	} else if (obj.y) {
		curtop += obj.y;
	}
	return curtop;
}

function getOffsetHeight(id) {
    h = Number.NaN;
    if (document.getElementById) {
        var ele = document.getElementById(id);
        if (ele && typeof ele.offsetHeight != 'undefined') {
            h = ele.offsetHeight;
        }
    }
    return h;
}

function menuover(id, head_id) {
	menu_array = ['menu_about','menu_listings']
	/* make all menus invisible, except the one that matches id */
	for (i=0; i<menu_array.length; i++) {
		menu = menu_array[i]
		if (id != menu) {
			if (document.getElementById(menu)) {
				document.getElementById(menu).style.visibility = "hidden";
			}
		}
	}
    /* Find the head element's position and move div to that position. */
    menu = document.getElementById(id);
    menu_head = document.getElementById(head_id); 
    if (menu != null && menu_head != null) {
		pos = [findPosX(menu_head), findPosY(menu_head)]
        menu.style.position = "absolute";
        menu.style.left = pos[0] + "px" ;
        menu.style.top = (pos[1] + getOffsetHeight(head_id) - 1) + "px";
        menu.style.visibility = "visible";	
        menu.style.zIndex = 100;

		menu_head.className='menuheader';
    } else if (menu == null && menu_head != null) {
		/* mouse out */
		menu_head.className='';
	}
}
