function evt(e) {
	return (e) ? e : ((window.event) ? window.event : null);
}

function tgt(e) {
	return (e.target) ? e.target : e.srcElement;
}

function elLeft(e) {
	if (e) return e.offsetLeft + elLeft(e.offsetParent);
	return 0;
}

function elTop(e) {
	if (e) return e.offsetTop + elTop(e.offsetParent);
	return 0;
}

function elBottom(e) {
    if (e) return e.offsetHeight + elTop(e);
    return 0;
}

function menu() {
    var _el;
    var _menutimer;
    var _o;
    var _c = false;
    var _t;
	
    this.open = function(c, e) {
	_t = tgt(evt(e));
	var f = function() {
	   if (!_el) _el = document.getElementById('menu');
	    _o=document.getElementById('menu.'+c);
	    if (_o) {
		_el.style.display='none';
		_el.innerHTML=_o.innerHTML;
		_el.style.top=elBottom(_t)+'px';	  
		_el.style.left=elLeft(_t)+'px';
		_el.style.display='block';
	    }
	}
	_mt = setTimeout(f, 300);
	_c=false;
    }

    this.close = function(c) {
	var f = function () {
	    _close();
	}
	if (_mt) clearTimeout(_mt);
	_mt=null;
	setTimeout(f, 250); _c=true;
    }

    this.hold = function() {
	_c=false;
    }
    
    var _close = function() {
	if (_c) if (_el) { _el.style.display = 'none'; _el = null; }
    } 
}

function menuhover(ev) {
	if (navigator.appName.indexOf("Internet Explorer") > -1) {
		ev = getEvent(menuevent);
		tg = getTarget(ev);
		if (tg) 
			tg.className += " hover";
	}
}

function menunormal(ev) {
	if (navigator.appName.indexOf("Internet Explorer") > -1) {
		ev = getEvent(ev);
		tg = getTarget(ev);
		
		if (tg) {
			c = tg.className;
			tg.className = c.replace(" hover", "");
		}	
	}
}
