// JavaScript Document

// Offset from cursor
var tooltip_offsetX = 16;
var tooltip_offsetY = 16;

var tooltip_lastHTML = null;
var tooltip_lastObject = null;
var tooltip_timer = 0;
var tooltip_delay = 200;
var tooltip_intervalObj = null;

// Minimum distance to screen border
var tooltip_marginX = 5;
var tooltip_marginY = 5;

function tooltip_OnMouseMove(e) {
	var obj = (IEdetected ? e.srcElement : e.target);

	tooltip_SetContent(obj.tt_html);
	tooltip_SetPosition(e);
		
	if(tooltip_timer && (new Date() - tooltip_timer) > tooltip_delay) {
		tooltip_Show();
	}
	
}

function tooltip_SetPosition(e) {
	var mouseX = IEdetected ? window.event.clientX : e.pageX;
  var mouseY = IEdetected ? window.event.clientY : e.pageY;
	var obj = (IEdetected ? e.srcElement : e.target);
	var x, y, scrollY;

	scrollY = (IEdetected ? document.documentElement.scrollTop : window.pageYOffset);

	x = mouseX + tooltip_offsetX;
	y = mouseY + tooltip_offsetY + (IEdetected ? scrollY : 0);	

	tooltip_Update(x, y, obj.tt_width);
}


function tooltip_OnMouseOver(e) {
	var obj = (IEdetected ? e.srcElement : e.target);
	tooltip_SetContent(obj.tt_html);
	tooltip_SetPosition(e);
	
	if(obj != tooltip_lastObject) {
		tooltip_timer = new Date();
		tooltip_lastObject = obj;
		tooltip_intervalObj = setTimeout("tooltip_Activate()", tooltip_delay);
	}
}

function tooltip_OnMouseOut(e) {
	tooltip_timer = 0;
	tooltip_lastObject = null;
	tooltip_Hide();
	clearTimeout(tooltip_intervalObj);
}

function tooltip_Activate() {
	tooltip_Show();
}

function tooltip_Update(offsetX, offsetY, width) {
	var obj = document.getElementById('helpTooltip');
	var iframe = document.getElementById('helpTooltipIframe');

	if(width)	obj.style.width = width + 'px';
	obj.style.left 	= offsetX + 'px';
	obj.style.top 	= offsetY + 'px';
	
	var windowHeight = (IEdetected ? document.documentElement.clientHeight : window.innerHeight);
	var scrollHeight = (IEdetected ? document.documentElement.scrollTop : window.pageYOffset);
	var tooltipHeight = obj.clientHeight;
	var tooltipWidth = obj.clientWidth;
	
	if(offsetX > (document.body.clientWidth - tooltip_marginX - tooltipWidth))
		offsetX = document.body.clientWidth - tooltip_marginX - tooltipWidth;
	if(offsetX < tooltip_marginX) offsetX = tooltip_marginX;

	if(offsetY > (scrollHeight + windowHeight - tooltip_marginY - tooltipHeight))
		offsetY = scrollHeight + windowHeight - tooltip_marginY - tooltipHeight;
	if(offsetY < tooltip_marginY) offsetY = tooltip_marginY;
	
	//window.status = offsetX + ' ' + offsetY;
	
	obj.style.left 	= offsetX + 'px';
	obj.style.top 	= offsetY + 'px';
	iframe.style.width 	=	obj.offsetWidth;
	iframe.style.height = obj.offsetHeight;
	iframe.style.top 		=	obj.style.top;
	iframe.style.left 	=	obj.style.left;
	iframe.style.zIndex = obj.style.zIndex - 1;
}

function tooltip_Show() {
	displayBlock('helpTooltip');
	if(IEdetected)	displayBlock('helpTooltipIframe');
}

function tooltip_SetContent(content) {
	var obj = document.getElementById('helpTooltip');
	if(content != tooltip_lastHTML) {
		obj.innerHTML = content;
		tooltip_lastHTML = content;
	}
}

function tooltip_Hide() {
	displayNone('helpTooltip');
	displayNone('helpTooltipIframe');
}

function tooltip_Keep() {
	var obj = document.getElementById('helpTooltip');
	var iframe = document.getElementById('helpTooltipIframe');
	displayBlock('helpTooltip');
	if(IEdetected)	displayBlock('helpTooltipIframe');
}

