/**
 * Tpl Title : interception des title et alt pour un affichage perso
 *
 */

// nom de la div utilisée pour l'info bulle
var tpl_title_nom_div = 'DIV_MY_INFOBULL';

// indique si on est sous IE
var tpl_title_ie = false;

// objet survolé par la souris
var tpl_title_overObject = null

// Affichage de l'infobulle
function tpl_title_display(obj, content)
{
	// si pas de contenu => exit
	if (content == "")	return false;
	
	// objet info bulle
	var myInfoBull	= document.getElementById(tpl_title_nom_div);
	if (!myInfoBull) return false;
	
	// contenu dans une table
	var html = '';
	html  = '<div id="tpl_title_temp" class="tpl_title" cellpadding="0" cellspacing="0">';
	html += '<nobr>'+content+'</nobr>';
	html += '</div>';
	
	// si l'objet info bulle existe
	if (myInfoBull)
	{
		// initialiser le contenant
		myInfoBull.innerHTML	= '';
		myInfoBull.style.width	= '';
		// afficher le contenu
		myInfoBull.innerHTML	= html;
		myInfoBull.style.display = "inline";

		// reduire la taille du contenant si elle est trop grande
		var w = document.getElementById('tpl_title_temp').clientWidth;
		myInfoBull.style.width = (w>300) ? '300px' : w+'px';

		
		tpl_title_move();


		// on refait le contenu en se basant sur la taille de la table pour y rajouter une iframe pour cacher les select
		var contentTotal =  '<div		style="width:'+parseInt(myInfoBull.clientWidth) +'px;height:'+ parseInt(myInfoBull.clientHeight) +'px;position:relative">';
		contentTotal += 		'<iframe	style="width:'+ parseInt(myInfoBull.clientWidth) +'px;height:'+ parseInt(myInfoBull.clientHeight) +'px;position:absolute; left:0px; top:0px; border: none; padding:0; margin:0;" scrolling="no"></iframe>';
		contentTotal += 		'<div		style="position:absolute; left:0px; top:0px;">'+ html +'</div>';
		contentTotal +=		'</div>';
		
		// affichage du contenu
		myInfoBull.innerHTML = contentTotal;
		window.status = content;
		return true;
	}
	
	return false;
}

// action onMouseOver
function tpl_title_over(e)
{
	try
	{
		// objet survolé
		if (tpl_title_ie)
		{
			e = event;
			tpl_title_overObject = e.toElement;
		}
		else
		{
			tpl_title_overObject = e.originalTarget;
		}
		
		// objet info bulle
		var myInfoBull = document.getElementById(tpl_title_nom_div);
		if (!myInfoBull) return false;
		
		// si l'objet est bien d'un bon type, et qu'il ne contient pas de on pouseover et onpouseout spécifique
		if (tpl_title_overObject.onmouseover == null && tpl_title_overObject.onmouseout  == null)
		{
			// si l'objet contient un title ou un alt
			if ( (tpl_title_overObject.title || tpl_title_overObject.alt))
			{
				// on ecarte les objets spécifiques du template en comparant le src aux images de fond du template
				if (tpl_title_overObject.src)
				{
					var tab = tpl_title_overObject.src.split("/");
				}
				
				// on récupère le title ou le alt
				var txt = tpl_title_overObject.title != ""	?	tpl_title_overObject.title	:	tpl_title_overObject.alt;
				tpl_title_overObject.title	= '';
				tpl_title_overObject.alt	= '';
				tpl_title_overObject.dummy	= txt;
				
				// on affiche l'info bulle
				tpl_title_display(tpl_title_overObject, txt);
			}
		}
	}catch (err){}
	return true;
}

function tpl_title_out(e)
{
		// objet info bulle
		var myInfoBull	= document.getElementById(tpl_title_nom_div);
		if (!myInfoBull) return false;
		
		if (tpl_title_overObject && tpl_title_overObject.dummy)
		{
			var txt = tpl_title_overObject.dummy;
			if (txt!='')
			{
				tpl_title_overObject.title	= txt;
				tpl_title_overObject.dummy	= '';
			}
		}
				
		// on cache l'info bulle
		tpl_title_overObject = null;
		myInfoBull.style.display = "none";
		window.status = "";

	return true;
}

function tpl_title_move(e)
{
	// objet info bulle
	var myInfoBull	= document.getElementById(tpl_title_nom_div);
	if (!myInfoBull) return false;

	// si l'objet existe et est affiché
	if (myInfoBull && myInfoBull.style.display == "inline" )
	{
		// on récupère l'event
		if (tpl_title_ie)
			e = window.event;
		
		// largeur et hauteur de la fenettre
		var body_w	= parseInt(window.innerWidth  ? window.innerWidth  : document.body.clientWidth);
		var body_h	= parseInt(window.innerHeight ? window.innerHeight : document.body.clientHeight);

		// scrolls
		var scroll_x = parseInt(document.documentElement.scrollLeft);
		var scroll_y = parseInt(document.documentElement.scrollTop);

		// largeur et hauteur de l'info bulle
		var div_w	= parseInt(myInfoBull.clientWidth);
		var div_h	= parseInt(myInfoBull.clientHeight);

		try
		{
			// décalage par rapport à la souris
			var decal_x = 10;
			var decal_y = 10;

			// position de la souris par rapport à l'objet
			var mouse_x = parseInt(e.clientX);
			var mouse_y = parseInt(e.clientY);
			
			// position de l'info bulle
			var pos_x = mouse_x + decal_x;
			var pos_y = mouse_y + decal_y;

			// position finale de la div
			var x = 0;
			var y = 0;

			// les formules...
			if (body_w - 10 - (pos_x + div_w) > 0)	x = pos_x;
			else									x = pos_x - div_w - decal_x - 5;
			if (x < 0)	x = 0;
	
			if (body_h - 10 - (pos_y + div_h) > 0)	y = pos_y;
			else									y = pos_y - div_h - decal_y - 5;
			
			if (y < 0)	y = 0;

			x+= scroll_x;
			y+= scroll_y;

			// position finale
			myInfoBull.style.left = x+'px';
			myInfoBull.style.top  = y+'px';
		}
		catch(er)
		{
		}
	}
	return true;
}

function tpl_title_init()
{
	if (!document.body)
	{
		setTimeout('tpl_title_init()', 200);
		return false;
	}
	
	if (navigator.userAgent.toLowerCase().indexOf('msie')>-1)
	{
		tpl_title_ie = true;
	}
	else if (navigator.userAgent.toLowerCase().indexOf('mozilla')>-1)
	{
		tpl_title_ie = false;
	}
	else
	{
		return false;
	}
	addEvent(document, 'mouseover',	tpl_title_over);
	addEvent(document, 'mouseout',	tpl_title_out);
	addEvent(document, 'mousemove',	tpl_title_move);
	return true;
}

tpl_title_init();
