var iPageWidth=600;
var iTopCushion=60;
var iInitMoat=50;// coming within this many pixels of the hot bar inits it
var iPopId='pop';
var iDimId='popdim';
var iMaxDisplays=4;

var iCheckScroll=2;
var iSkips=3;

var bEntered=0;
var bDidPop=0;
var iShown=0;
var iSinceLast=-1;
var iMouseX, iMouseY,iDim,oPop;
var iTop=-1;
var oBrowser=-1;
var oDocElt=false;
var bIEMac=(navigator.userAgent.indexOf("Mac_")>-1)&&(navigator.userAgent.indexOf("MSIE")>-1);

function doPop(checkSkips) {
	var scrolled;
	var popIt=1;
	if (!bDidPop) {
		if (checkSkips) {
			if ((iSinceLast==iSkips)||(iSinceLast==-1)) iSinceLast=0;
			else {
				iSinceLast++;
				bEntered=0;
				popIt=0;
			}
		}
		if (popIt&&((!iMaxDisplays)||(iShown<iMaxDisplays))) {
			iDim.style.display='block';
			if (!oBrowser)
				iDim.style.height=oDocElt.scrollHeight;
//                iDim.style.height=oDocElt.scrollTop;
			oPop.style.display='block';
			if (iTop==-1) iTop=oPop.offsetTop;
			scrolled=oBrowser?oDocElt.pageYOffset:oDocElt.scrollTop;
			oPop.style.top=(iTop);
			bDidPop=1;
			iShown++;
		}
	}
}

function hidePop() {
	oPop.style.display='none';
	iDim.style.display='none';
	bDidPop=bEntered=0;
	if (bIEMac) {
		window.resizeBy(-1,0);
		window.resizeBy(1,0);
	}
}

function getMouseCoords(myE,checkScroll) {
	if (checkScroll) {
		if (oBrowser) {
			iMouseX=myE.pageX;
			iMouseY=myE.pageY;
		} else {
			iMouseX=myE.clientX+oDocElt.scrollLeft;
			iMouseY=myE.clientY+oDocElt.scrollTop;
		}
	} else {
		if (oBrowser) {
			iMouseX=myE.pageX-oDocElt.pageXOffset;
			iMouseY=myE.pageY-oDocElt.pageYOffset;
		} else {
			iMouseX=myE.clientX;
			iMouseY=myE.clientY;
		}
	}
}

function crossedHotHeader(iXEdge,iYEdge) {
/*    alert('iMouseY:'+iMouseY+', iMouseX:'+iMouseX+', iXEdge:'+iXEdge+', iYEdge:'+iYEdge);
	return ((iMouseY<iYEdge)&&(iMouseX<(iXEdge*2-(iMouseY*iXEdge/iYEdge))));
   return ((iMouseY<iYEdge)&&(iMouseX<iXEdge));*/
    return (iMouseY<iYEdge);
}

function popListener(e) {
	var myE;
	if (!bDidPop) {
		if (e) myE=e;
		else if (window.event) myE=window.event;
		else myE=null;
		if (myE) {
			if (oBrowser==-1)
               oBrowser=(typeof(myE.pageX)=='number');
			if (oBrowser&&(/select|option|optiongroup/i.test(myE.target.tagName)))
               return true;
			if (bEntered) {
				getMouseCoords(myE,iCheckScroll);
				if (crossedHotHeader(iPageWidth,iTopCushion))
                   doPop((iCheckScroll==2)?0:iSkips);
				else if (iCheckScroll==2) {
				   getMouseCoords(myE,0);
				   if (crossedHotHeader(iPageWidth,iTopCushion))
                      doPop(iSkips);
				}
			} else {
				getMouseCoords(myE,0);
				if (!crossedHotHeader(iPageWidth+iInitMoat,iTopCushion+iInitMoat))
                   bEntered=1;
			}
		}
	}
	return true;
}
function xpopInit() {
	if (typeof(window.innerWidth)=='number') oDocElt=window;
	else if (document.documentElement && (typeof(document.documentElement.clientWidth)=='number') &&
		(document.documentElement.clientWidth!=0)) oDocElt=document.documentElement;
	else if (document.body && typeof(document.body.clientWidth=='number')) oDocElt=document.body;
	if (oDocElt) {
		if (document.addEventListener)
           document.addEventListener('mousemove',popListener,true);
		else {
			if (typeof(document.all)=='undefined')
               document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove=popListener;
		}
	}
	oPop=document.getElementById(iPopId);
	iDim=document.getElementById(iDimId);
}

if (document.addEventListener) {
	if (/webkit|safari|khtml/i.test(navigator.userAgent)) {
		function xpopKHTMLInit() {
			/loaded|complete/.test(document.readyState)?xpopInit():setTimeout(xpopKHTMLInit,100);
		}
		xpopKHTMLInit();
	} else document.addEventListener("DOMContentLoaded", xpopInit, false);
} else if (window.attachEvent) window.attachEvent('onload',xpopInit);
else {
	function xpopWinOnLoad(f1,f2) {
		return function() {
			if (f1) f1();
			f2();	
		}
	}
	window.onload=xpopWinOnLoad(window.onload,xpopInit);
}


