var keepPop=0;
var popId="", linkId="";

// copied from dragtasks.js
function MouseCoords(ev) {
  if (ev.pageX || ev.pageY) {
    return {x:ev.pageX, y:ev.pageY};
  }
  if (document.documentElement.scrollLeft || document.documentElement.scrollTop) {
    return { 
      x:ev.clientX + document.documentElement.scrollLeft,
      y:ev.clientY + document.documentElement.scrollTop
    };
  }
  return { 
    x:ev.clientX + document.body.scrollLeft,
    y:ev.clientY + document.body.scrollTop
  };
}

// copied from dragtasks.js
function GetPosition(obj) {
  var pos=Position.get(obj);
  return {x:pos.left, y:pos.top};
}

// copied from dragtasks.js
function IsOver(obj, mp) {
  var p=GetPosition(obj);
  var w=parseInt(obj.offsetWidth);
  var h=parseInt(obj.offsetHeight);
  return (mp.x>p.x && mp.x<(p.x+w) && mp.y>p.y && mp.y<(p.y+h));
}

function PopLinkOver(_linkId, _popId) {
  var link=document.getElementById(_linkId);
  var pop=document.getElementById(_popId);
  var pos=Position.get(link);
  var popPos=Position.get(pop);
  if (linkId!="" && linkId!=_linkId) {
    var oldPop=document.getElementById(popId);
    var oldLink=document.getElementById(linkId);
    oldPop.style.visibility="hidden";
    oldLink.style.backgroundColor="white";
  }
  linkId=_linkId;
  popId=_popId;
  link.style.backgroundColor="#D6E7F7";
  link.style.cursor="pointer";

  pop.style.visibility="visible";
  pos.top-=popPos.height+2;
  Position.set(popId, pos);
}

function PopLinkOut() {
  setTimeout("HidePop();",200);
}

function HidePop() {
  var pop=document.getElementById(popId);
  if (!keepPop && linkId!="") {
    var link=document.getElementById(linkId);
    pop.style.visibility="hidden";
    link.style.backgroundColor="white";
    linkId="";
  }
  else setTimeout("HidePop();",500);
}

function Pop_MouseMove(ev) {
  var pop=document.getElementById(popId);
  var link=document.getElementById(linkId);
  var mp;
  if (!pop || !link) return;
  ev = ev || window.event;

  mp=MouseCoords(ev);
  if (IsOver(pop, mp) || IsOver(link, mp)) {
    keepPop=1;
  } else {
    if (keepPop) {
      keepPop=0;
    }
  }
}

 
