queued = new Object; visible = new Object;
last = lnk = isMos = isOp = false;
var intr = 300; var nat = ''; var hvr = '#E2E2DD';
var tpadd=-2;

if (navigator.appName == "Netscape") isMos = 1;
if (navigator.userAgent.indexOf("Opera")>-1) isOp = 1;


function cancel_queue() {
	try {clearTimeout(ti);}
	catch (f) {}
}

function popup(ev, pa, ch) {
  if(last) document.getElementById(last).style.background=nat;
  last = "l"+ch;

	lnk = document.getElementById("l"+ch);
	try {
		visible.style.visibility = 'hidden';
		visible.style.display = 'none';}
	catch(f) {}
	try {
		clearTimeout(ti);
		queued.style.visibilty = 'hidden';
		queued.style.display = 'none';
	}
	catch(f) {}
	ch = document.getElementById(ch);
	var rr = getDim(pa);
	if (isMos != 1) {
		ch.style.pixelLeft = rr.x;
		ch.style.pixelTop = rr.y + pa.offsetHeight + tpadd;
	} else {
		ch.style.left = rr.x  + 'px';
		ch.style.top = (rr.y + pa.offsetHeight + tpadd) + 'px';
	}

  lnk.style.background=hvr;
	ch.style.visibility = 'visible'; ch.style.display = 'inline';
	visible = ch;
}

function popdown(event, wh, l) {

	if (isMos != 1) {
		if (!wh.contains(event.toElement)) {
			ti = setTimeout(hide, intr);
			queued = wh;
		}
	}	else {
		ti = setTimeout(hide, intr);
		queued = wh;
	}

	function hide() {
		wh.style.visibility = 'hidden';		wh.style.display = 'none';
	  lnk.style.background=nat;
	  last='';
	}
}

function popdown_1(event, pa, ch) {
  ch = document.getElementById(ch);
  
	if (isMos != 1) {
		if (event.toElement != ch && !ch.contains(event.toElement) && !pa.contains(event.toElement)) {
			ti = setTimeout(hide, intr);
			queued = ch;
		}
	}	else {
		if (event.relatedTarget != ch && event.relatedTarget.parentNode != ch && event.relatedTarget.parentNode.parentNode != ch && event.relatedTarget.parentNode != pa)
			ti = setTimeout(hide, intr);
			queued = ch;
	}

	function hide() {
		ch.style.visibility = 'hidden'; ch.style.display = 'none';
	  lnk.style.background=nat;
	  last='';
	}
}

function getDim(el){
for (var lx=0,ly=0;el!=null;
lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent);
return {x:lx,y:ly}
}

