
var currentPopupName=null;var currentPopupCoor=null;var currentGameCoor=null;var currentMouse=null;window.onresize=hidePopup;if(document.layers)document.captureEvents(Event.MOUSEMOVE);document.onmousemove=mtrack;function mtrack(e){if(document.layers||e)
currentMouse=[e.pageX,e.pageY];else
currentMouse=[document.body.scrollLeft+event.x,document.body.scrollTop+event.y];if(currentPopupName){var hit=(hitPopup(currentGameCoor)||hitPopup(currentPopupCoor));logClear();log(currentMouse[0]+', '+currentMouse[1]+', '+hit);if(!hit)hidePopup();}}
function showPopup(triggerName,popupName)
{if(!currentPopupName){log("showing "+popupName);var trigger=document.getElementById(triggerName);var popup=document.getElementById(popupName);var coors=findPos(trigger);popup.style.display='';currentPopupName=popupName;popup.style.top=(coors[1]-80)+'px';popup.style.left=(coors[0]+parseInt(trigger.offsetWidth)-20)+'px';currentGameCoor=[coors[0],coors[1],coors[0]+parseInt(trigger.offsetWidth),coors[1]+parseInt(trigger.offsetHeight)];currentPopupCoor=[parseInt(popup.style.left)+20,parseInt(popup.style.top)+10,parseInt(popup.style.left)+parseInt(popup.offsetWidth)-10,parseInt(popup.style.top)+parseInt(popup.offsetHeight)-10];}}
function highlight(highliteDivName,coors)
{var hilite=document.getElementById(highliteDivName);hilite.style.left=coors[0]+'px';hilite.style.top=coors[1]+'px';hilite.style.width=(coors[2]-coors[0])+'px';hilite.style.height=(coors[3]-coors[1])+'px';}
function hitPopup(areaCoor)
{var result=false;if(currentMouse[0]>=areaCoor[0]&&currentMouse[0]<=areaCoor[2]){if(currentMouse[1]>=areaCoor[1]&&currentMouse[1]<=areaCoor[3]){result=true;}}
return result;}
function hidePopup()
{log("hide "+currentPopupName);if(currentPopupName){log("hiding "+currentPopupName);var popup=document.getElementById(currentPopupName);popup.style.display='none';currentPopupName=null;currentPopupCoor=null;currentGameCoor=null;currentMouse=null;}}
function findPos(obj)
{var curleft=curtop=0;if(obj.offsetParent){curleft=obj.offsetLeft
curtop=obj.offsetTop
while(obj=obj.offsetParent){curleft+=obj.offsetLeft
curtop+=obj.offsetTop}}
return[curleft,curtop];}
function log(msg)
{var output=document.getElementById("log");if(output)output.innerHTML+=msg+"<br>";}
function logClear()
{var output=document.getElementById("log");if(output)output.innerHTML="";}