
var currentType = '';

function show_popup(e,date,month,year,notes){
	if(e==null) e=window.event;
	var type = getType(e);
	
	var popupdiv = document.getElementById("popupdiv_"+type);
	var top = document.getElementById(type+"_top");
	setOpacity(popupdiv);
	popupdiv.style.display = 'block';

	top.innerHTML = "Date: <b>"+date+"</b><br>Month: <b>"+month
	+"</b><br>Year: <b>"+year+"</b><br>What to do: <b>"+notes+"</b>";
	currentType = type; 
	Locate(e);
}

function hide_popup(e){
	var popupdiv = document.getElementById("popupdiv_"+currentType);
	popupdiv.style.display = 'none';

	currentType = '';
}

function setOpacity(el){
	el.style.filter="alpha(opacity:95)";
	el.style.KHTMLOpacity="0.95";
	el.style.MozOpacity="0.95";
	el.style.opacity="0.95";
}

function Locate(e){

	if (!currentType) currentType = "bottom";
	var offsetX, offsetY;
	offsetY = currentType == "top" ? -245 : 15; 
	offsetX = 100;

	var posx=0,posy=0;
	
	if(e==null) e=window.event;
	if(e.pageX || e.pageY){
		posx=e.pageX; posy=e.pageY;
		}
	else if(e.clientX || e.clientY){
		if(document.documentElement.scrollTop){
			posx=e.clientX+document.documentElement.scrollLeft;
			posy=e.clientY+document.documentElement.scrollTop;
			}
		else{
			posx=e.clientX+document.body.scrollLeft;
			posy=e.clientY+document.body.scrollTop;
			}
	}
	
	//change the position of the image showing
	document.getElementById("popupdiv_"+currentType).style.top=(posy+offsetY)+"px";
	document.getElementById("popupdiv_"+currentType).style.left=(posx-offsetX)+"px";
}

function getType(e) {
	var winH = getHeight();
	var cursorY = 0;
	if (typeof(e.pageY) == 'number') {
		// Mozilla page Y is relative to top of body, so subtract scroll
		var scrollY = getScrollY();
		cursorY = e.pageY - scrollY;
	} else if (typeof(e.clientY) == 'number') {
		// IE is relative to viewable area
		cursorY = e.clientY;
	}
	
	// Show to either the top or the bottom, based on which has more room
	if (cursorY > (winH-cursorY)) {
		return "top";
	} else {
		return "bottom";
	}
}

// Gets height of viewable area in browser
function getHeight() {
  var height = 0;
  if (typeof(window.innerWidth) == 'number') {
    // Non-IE
    height = window.innerHeight;
  } else if (document.documentElement && document.documentElement.clientHeight) {
    // IE 6+ in 'standards compliant mode'
    height = document.documentElement.clientHeight;
  } else if (document.body && document.body.clientHeight) {
    // IE 4 compatible
    height = document.body.clientHeight;
  }
  return height;
}

// Gets the height of page that has been scrolled above view
function getScrollY() {
	var scrollY = 0;
	if (document.documentElement && document.documentElement.scrollTop) {
    scrollY = document.documentElement.scrollTop;
  } else if (document.body && document.body.scrollTop) {
    scrollY = document.body.scrollTop;
  } else if (typeof(window.pageYOffset) == 'number') {
  	scrollY = window.pageYOffset;
  }
	return scrollY;
}
