function cal_get_pos(obj) {
	var pos = { x:0, y:0 };

	do {
		pos.x += obj.offsetLeft;
		pos.y += obj.offsetTop;
	} while (obj = obj.offsetParent);
	return pos;
}

function cal_get_viewpoint() {
  	var size = { w:0, h:0};
 
	if (typeof window.innerWidth != 'undefined')
	{
	     size.w = window.innerWidth;
	     size.h = window.innerHeight;
	}
	else if (document.documentElement.clientWidth != 0 && typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined')
	{
	      size.w = document.documentElement.clientWidth;
	      size.h = document.documentElement.clientHeight;
	}
	else
	{
	      size.w = document.getElementsByTagName('body')[0].clientWidth;
	      size.h = document.getElementsByTagName('body')[0].clientHeight;
	}
		
	return size;

}

function cal_show_detail(obj,index)
{
	//detail div
	detail_obj = document.getElementById(cal_details_obj);
	
	//get position ob object
	tdPos = cal_get_pos(obj);
	divPos = cal_get_pos(detail_obj);
	viewport = cal_get_viewpoint();
	    	
	//put text in hover div
	detail_obj.innerHTML = "";
	for(i = 0; i < cal_details_txt[index].length; i++)
	{
		detail_obj.innerHTML += "<p>"+cal_details_txt[index][i]+"</p>\n";
		
	}
	
	//show hover div to get width
	detail_obj.style.display = "block";

	//calculate left position of div to fit into viewport (12 is half the width of td cell)
	divLeft = (tdPos.x + 12 - detail_obj.offsetWidth / 2);
	
	//if viewport is too small don't do it
	if(divLeft + detail_obj.offsetWidth + 10 > viewport.w && viewport.w > 950)
	{
		divLeft = viewport.w - detail_obj.offsetWidth - 20;
	}

	//set hover position below cell and so it fits in the page area	
	detail_obj.style.left = divLeft + 'px';
	detail_obj.style.top = (tdPos.y - detail_obj.offsetHeight) + 'px';
	
	//show hover div (now realy)
	detail_obj.style.visibility = "visible";	
}

function cal_hide_detail(obj)
{
	//detail div
	detail_obj = document.getElementById(cal_details_obj);

	//hide hover div
	detail_obj.style.display = "none";
	detail_obj.style.visibility = "hidden";
	
	//delete text in hover div
	detail_obj.innerHTML = "";
}
