Blame Identity/Models/Html/phpBB/3.0.4/adm/style/tooltip.js

d6e8d8
/*
d6e8d8
javascript for Bubble Tooltips by Alessandro Fulciniti
d6e8d8
- http://pro.html.it - http://web-graphics.com 
d6e8d8
obtained from: http://web-graphics.com/mtarchive/001717.php
d6e8d8
d6e8d8
phpBB Development Team:
d6e8d8
	- modified to adhere to our coding guidelines
d6e8d8
	- integration into our design
d6e8d8
	- added ability to perform tooltips on select elements
d6e8d8
	- further adjustements
d6e8d8
*/
d6e8d8
d6e8d8
var head_text, tooltip_mode;
d6e8d8
d6e8d8
/**
d6e8d8
* Enable tooltip replacements for links
d6e8d8
*/
d6e8d8
function enable_tooltips_link(id, headline, sub_id)
d6e8d8
{
d6e8d8
	var links, i, hold;
d6e8d8
	
d6e8d8
	head_text = headline;
d6e8d8
d6e8d8
	if (!document.getElementById || !document.getElementsByTagName)
d6e8d8
	{
d6e8d8
		return;
d6e8d8
	}
d6e8d8
d6e8d8
	hold = document.createElement('span');
d6e8d8
	hold.id = '_tooltip_container';
d6e8d8
	hold.setAttribute('id', '_tooltip_container');
d6e8d8
	hold.style.position = 'absolute';
d6e8d8
d6e8d8
	document.getElementsByTagName('body')[0].appendChild(hold);
d6e8d8
d6e8d8
	if (id == null)
d6e8d8
	{
d6e8d8
		links = document.getElementsByTagName('a');
d6e8d8
	}
d6e8d8
	else
d6e8d8
	{
d6e8d8
		links = document.getElementById(id).getElementsByTagName('a');
d6e8d8
	}
d6e8d8
d6e8d8
	for (i = 0; i < links.length; i++)
d6e8d8
	{
d6e8d8
		if (sub_id)
d6e8d8
		{
d6e8d8
			if (links[i].id.substr(0, sub_id.length) == sub_id)
d6e8d8
			{
d6e8d8
				prepare(links[i]);
d6e8d8
			}
d6e8d8
		}
d6e8d8
		else
d6e8d8
		{
d6e8d8
			prepare(links[i]);
d6e8d8
		}
d6e8d8
	}
d6e8d8
d6e8d8
	tooltip_mode = 'link';
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Enable tooltip replacements for selects
d6e8d8
*/
d6e8d8
function enable_tooltips_select(id, headline, sub_id)
d6e8d8
{
d6e8d8
	var links, i, hold;
d6e8d8
	
d6e8d8
	head_text = headline;
d6e8d8
d6e8d8
	if (!document.getElementById || !document.getElementsByTagName)
d6e8d8
	{
d6e8d8
		return;
d6e8d8
	}
d6e8d8
d6e8d8
	hold = document.createElement('span');
d6e8d8
	hold.id = '_tooltip_container';
d6e8d8
	hold.setAttribute('id', '_tooltip_container');
d6e8d8
	hold.style.position = 'absolute';
d6e8d8
d6e8d8
	document.getElementsByTagName('body')[0].appendChild(hold);
d6e8d8
d6e8d8
	if (id == null)
d6e8d8
	{
d6e8d8
		links = document.getElementsByTagName('option');
d6e8d8
	}
d6e8d8
	else
d6e8d8
	{
d6e8d8
		links = document.getElementById(id).getElementsByTagName('option');
d6e8d8
	}
d6e8d8
d6e8d8
	for (i = 0; i < links.length; i++)
d6e8d8
	{
d6e8d8
		if (sub_id)
d6e8d8
		{
d6e8d8
			if (links[i].parentNode.id.substr(0, sub_id.length) == sub_id)
d6e8d8
			{
d6e8d8
				prepare(links[i]);
d6e8d8
			}
d6e8d8
		}
d6e8d8
		else
d6e8d8
		{
d6e8d8
			prepare(links[i]);
d6e8d8
		}
d6e8d8
	}
d6e8d8
d6e8d8
	tooltip_mode = 'select';
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Prepare elements to replace
d6e8d8
*/
d6e8d8
function prepare(element)
d6e8d8
{
d6e8d8
	var tooltip, text, desc, title;
d6e8d8
d6e8d8
	text = element.getAttribute('title');
d6e8d8
d6e8d8
	if (text == null || text.length == 0)
d6e8d8
	{
d6e8d8
		return;
d6e8d8
	}
d6e8d8
d6e8d8
	element.removeAttribute('title');
d6e8d8
	tooltip = create_element('span', 'tooltip');
d6e8d8
d6e8d8
	title = create_element('span', 'top');
d6e8d8
	title.appendChild(document.createTextNode(head_text));
d6e8d8
	tooltip.appendChild(title);
d6e8d8
d6e8d8
	desc = create_element('span', 'bottom');
d6e8d8
	desc.innerHTML = text;
d6e8d8
	tooltip.appendChild(desc);
d6e8d8
d6e8d8
	set_opacity(tooltip);
d6e8d8
d6e8d8
	element.tooltip = tooltip;
d6e8d8
	element.onmouseover = show_tooltip;
d6e8d8
	element.onmouseout = hide_tooltip;
d6e8d8
d6e8d8
	if (tooltip_mode == 'link')
d6e8d8
	{
d6e8d8
		element.onmousemove = locate;
d6e8d8
	}
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Show tooltip
d6e8d8
*/
d6e8d8
function show_tooltip(e)
d6e8d8
{
d6e8d8
	document.getElementById('_tooltip_container').appendChild(this.tooltip);
d6e8d8
	locate(this);
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Hide tooltip
d6e8d8
*/
d6e8d8
function hide_tooltip(e)
d6e8d8
{
d6e8d8
	var d = document.getElementById('_tooltip_container');
d6e8d8
	if (d.childNodes.length > 0)
d6e8d8
	{
d6e8d8
		d.removeChild(d.firstChild);
d6e8d8
	}
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Set opacity on tooltip element
d6e8d8
*/
d6e8d8
function set_opacity(element)
d6e8d8
{
d6e8d8
	element.style.filter = 'alpha(opacity:95)';
d6e8d8
	element.style.KHTMLOpacity = '0.95';
d6e8d8
	element.style.MozOpacity = '0.95';
d6e8d8
	element.style.opacity = '0.95';
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Create new element
d6e8d8
*/
d6e8d8
function create_element(tag, c)
d6e8d8
{
d6e8d8
	var x = document.createElement(tag);
d6e8d8
	x.className = c;
d6e8d8
	x.style.display = 'block';
d6e8d8
	return x;
d6e8d8
}
d6e8d8
d6e8d8
/**
d6e8d8
* Correct positioning of tooltip container
d6e8d8
*/
d6e8d8
function locate(e)
d6e8d8
{
d6e8d8
	var posx = 0;
d6e8d8
	var posy = 0;
d6e8d8
d6e8d8
	e = e.parentNode;
d6e8d8
d6e8d8
	if (e.offsetParent)
d6e8d8
	{
d6e8d8
		for (var posx = 0, posy = 0; e.offsetParent; e = e.offsetParent)
d6e8d8
		{
d6e8d8
			posx += e.offsetLeft;
d6e8d8
			posy += e.offsetTop;
d6e8d8
		}
d6e8d8
	}
d6e8d8
	else
d6e8d8
	{
d6e8d8
		posx = e.offsetLeft;
d6e8d8
		posy = e.offsetTop;
d6e8d8
	}
d6e8d8
d6e8d8
	if (tooltip_mode == 'link')
d6e8d8
	{
d6e8d8
		document.getElementById('_tooltip_container').style.top=(posy+20) + 'px';
d6e8d8
		document.getElementById('_tooltip_container').style.left=(posx-20) + 'px';
d6e8d8
	}
d6e8d8
	else
d6e8d8
	{
d6e8d8
		document.getElementById('_tooltip_container').style.top=(posy+30) + 'px';
d6e8d8
		document.getElementById('_tooltip_container').style.left=(posx-205) + 'px';
d6e8d8
	}
d6e8d8
d6e8d8
/*
d6e8d8
	if (e == null)
d6e8d8
	{
d6e8d8
		e = window.event;
d6e8d8
	}
d6e8d8
d6e8d8
	if (e.pageX || e.pageY)
d6e8d8
	{
d6e8d8
		posx = e.pageX;
d6e8d8
		posy = e.pageY;
d6e8d8
	}
d6e8d8
	else if (e.clientX || e.clientY)
d6e8d8
	{
d6e8d8
		if (document.documentElement.scrollTop)
d6e8d8
		{
d6e8d8
			posx = e.clientX+document.documentElement.scrollLeft;
d6e8d8
			posy = e.clientY+document.documentElement.scrollTop;
d6e8d8
		}
d6e8d8
		else
d6e8d8
		{
d6e8d8
			posx = e.clientX+document.body.scrollLeft;
d6e8d8
			posy = e.clientY+document.body.scrollTop;
d6e8d8
		}
d6e8d8
	}
d6e8d8
*/
d6e8d8
}