
window.onunload = myonunload;
var mCur;
function myonunload() {
	notifyCalcListener("unload");
	sleep(2000);
}
function sleep(milliseconds) {
	var start = new Date().getTime();
	for (var i = 0; i < 10000000; i++) {
		if ((new Date().getTime() - start) > milliseconds) {
			break;
		}
	}
}
var listeners = new Array();
function addCalcListener(listener) {
	listeners.push(listener);
}

function getPageY()
{
	return mCur.y;
}

function getPageX()
{
	return mCur.x
}

function mousePageXY(e)
{
  var x = 0, y = 0;
 
  if (!e) e = window.event;
 
  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }
  return {"x":x, "y":y};
}


function notifyCalcListener(object) {
    if (window.event)
	{
		mCur = mousePageXY(window.event);
	} 
	else mCur = {"x":0, "y":60};
	
	for (var i = 0; i < listeners.length; i++) {
		listeners[i].handle(object);
	}
}


