// Detection des navigateurs
nc4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
nc6 = (typeof(window.controllers) != 'undefined' && typeof(window.locationbar) != 'undefined')? true:false;

// Decallage de l'infobulle par rapport au pointeur en X et en Y (en pixels)
//decal_x = 15;
//decal_y = 18;
/*
decal_x = 150;
decal_y = 120;*/

// Creation d'un raccourci pour manipuler le calque
/*
if (nc4) {
	var calque = document.bulle;
	}
if (ie4) {
	var calque = bulle.style;
	}
if (nc6) {
	var calque = document.getElementById('bulle').style;
	}
*/

// Interception des mouvements du pointeur
// Instruction pour Netscape
if (nc4) document.captureEvents(Event.MOUSEDOWN);

//Instruction equivalente pour Netscape 6.x et sup.
/*
if (nc6) {
	document.addEventListener("mouseclick",document.onmousedown,true);
	gerer_click_souris;
}
*/

// Instruction equivalente pour Internet Explorer
/*
document.onmousemove = suivre_souris;


// Fonction d'affichage de l'infobulle
function pop(message,largeur) {

// Formatage de l'infobulle (ici un tableau bleu)
//	var contenu = "<table border='0' cellspacing='0' cellpadding='5' width='200'><tr><td bgcolor='#CCCCFF'>" + message + "</td></tr></table>";
//	var contenu = "<table border='1' bordercolor='#000000' bordercolordark='#000000' bordercolorlight='#000000' cellspacing='0' cellpadding='5' width='" + largeur + "'><tr><td bgcolor='#FFFFE0'><font size='2'>" + message + "</font></td></tr></table>";
	var contenu = "<table bordercolor='#000000' cellspacing='0' cellpadding='5' width='" + largeur + "' style='border-style:solid;border-width:1px;'><tr><td bgcolor='#FFFFE0'><div style='font-family:Arial;font-size:12px;text-align:justify;'>" + message + "</div></td></tr></table>";


// Instructions pour Netscape
	if (nc4) {
		calque.document.write(contenu);
		calque.document.close();
		calque.visibility = "visible";
		}

// Instructions equivalentes pour Internet Explorer
	if (ie4) {
		document.all("bulle").innerHTML = contenu;
		calque.visibility = "visible";
		}

//Instructions equivalentes pour Netscape 6.x et sup.
	if (nc6) {
		document.getElementById("bulle").innerHTML = contenu;
		calque.visibility = "visible";
		}
}

// Gestion du pointeur
function suivre_souris(e) {

// Creation des variables de decallage
// Instructions pour Netscape 4 et 6
	if (nc4 || nc6) {
		var x = e.pageX;
		var y = e.pageY;
		}

// Instructions equivalentes pour Internet Explorer
	if (ie4) {
		var x = event.x; //+ document.body.scrollLeft;
		var y = event.y; //+ document.body.scrollTop;
		}

// Cas particulier pour Internet Explorer sur Mac (les coordonnees de decallages sont modifiees)
	if ( (navigator.userAgent.indexOf('Mac') != -1) && (navigator.userAgent.indexOf('MSIE') != -1) ) {
		calque.left = x + decal_x - 135;
		calque.top  = y + decal_y - 155;
		}

// Pour les autres cas, decallage normal du calque par rapport au pointeur
	else {
		calque.left = x + decal_x;
		calque.top  = y + decal_y;
		}
	}

// Fonction pour masquer le calque
function disparaitre() {

// Instructions pour Netscape
	if (nc4) {
		calque.document.write('');
		calque.document.close();
		calque.visibility = "hidden";
		}

// Instructions equivalentes pour Internet Explorer
	if (ie4) {
		document.all("bulle").innerHTML = '';
		calque.visibility = "hidden";
		}

//Instructions equivalentes pour Netscape 6.x et sup.
	if (nc6) {
		document.getElementById("bulle").innerHTML = '';
		calque.visibility = "hidden";
		}
	}
*/
	

/********************************************************************************/
/* Fonction d'ouvertue de la fenêtre des info-bulles                            */
/********************************************************************************/
var wnd_infobulle;
var int_souris_x;
var int_souris_y;

document.onmousedown = gerer_click_souris;
window.onunload      = fermer_infobulle;

function gerer_click_souris(e)
{
	if (nc4 || nc6) {
		int_souris_x = e.screenX;
		int_souris_y = e.screenY;
	}
	
	if (ie4) {
		int_souris_x = window.event.screenX;
		int_souris_y = window.event.screenY;
	}
}


function fermer_infobulle()
{
	if (wnd_infobulle!=null && wnd_infobulle.closed==false) {
		wnd_infobulle.close();
		wnd_infobulle = null;
	}
}


function afficher_infobulle(int_id, int_width, int_height)
{	
	// Calcul de la position de la fenêtre.
	var int_decalage = 20;
	var int_x; 	
	var int_y;
	
	if ((int_souris_x+int_decalage+int_width) <= screen.width)
		int_x = int_souris_x + int_decalage;
	else
		int_x = int_souris_x - int_decalage - int_width; 
	
	if ((int_souris_y-int_height) > 0)
		int_y = int_souris_y - int_height;
	else
		int_y = int_souris_y;
	
	// Fermeture de la fenêtre info-bulle si elle est déjà ouverte.
	fermer_infobulle();
	
	// Définition des paramètres de la fenêtre et de son url.
	var str_params = "top=" + int_y + ",left=" + int_x + ",width=" + int_width + ",height=" + int_height;
	var str_url    = "./Common/popup_infobulle.php?id=" + int_id;
	
	// Ouverture de la fenêtre info-bulle.
	wnd_infobulle = window.open(str_url, "popup_infobulle", str_params);
}
