/*
Bon, ce truc la est pas encore propre...
*/
// Detection des navigateurs
var nc4 = (document.layers)? true:false;
var ieName = 'Microsoft Internet Explorer';
var 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)

function initCalque() {
	if (calque != null) return;
	
	if (nc4) {
		calque = document.bulle;
	}
	if (navigator.appName==ieName) {
		if (typeof(bulle) != "undefined") {
			calque = bulle.style;
		} else {
			calque = document.getElementById("bulle");
		}
	}
	if (nc6) {
		var bulleLayer = document.getElementById('bulle');
		if (bulleLayer != null) {
			calque = bulleLayer.style;
		}
	}
}

// Creation d'un raccourci pour manipuler le calque
var tableWidth = "300";
var calque = null;


initCalque();
decal_x = 15-tableWidth;
decal_y = 10;
document.onmousemove = suivre_souris;


function on_click(message){
	if (calque.type_calque=="type2_bulle") disparaitre();
	else pop(message, '2', 'type2_bulle');
}

function try_disparaitre(){
	if(calque.type_calque=="type1_bulle") disparaitre();
}

var popImage_refreshNumber = 0;
var popImage_Src;
var popImage_mustRefresh = false;

function refreshPop() {
	if (popImage_mustRefresh) {
		if (calque.visibility == "visible") {
			document.getElementById("bulle").innerHTML = "<img src=\"" + popImage_Src + "&rn=" + (popImage_refreshNumber++) + "\">";
			setTimeout("refreshPop()", 7000);
		}
	}
}

/*******************************************************
 * affiche une image
 *
 ******************************************************/
function popImage(imageSrc, refresh, imageSize, type) {
	initCalque();
	
	popImage_Src = imageSrc;
	popImage_mustRefresh = refresh;
	
	var contenu = "";
	contenu += "<img src=\""+popImage_Src + "&rn=" + (popImage_refreshNumber++) + "\">";

	// Instructions pour Netscape
	if (nc4) {
		calque.document.write(contenu);
		calque.document.close();
		calque.type_calque=type;
		calque.visibility = "visible";
	}	
	// Instructions equivalentes pour Internet Explorer
	if (navigator.appName==ieName) {
		document.all("bulle").innerHTML = contenu;
		calque.type_calque=type;
		calque.visibility = "visible";
	}
	//Instructions equivalentes pour Netscape 6.x et sup.
	if (nc6) {
		document.getElementById("bulle").innerHTML = contenu;
		calque.type_calque=type;
		calque.visibility = "visible";
	}

	if (popImage_mustRefresh) setTimeout("refreshPop()", 3000);
}

/*******************************************************
 * affiche un message textuel
 *
 ******************************************************/
function pop(message, gui, type) {
	initCalque();
	if (!gui) gui='0';
	if (gui=='1'){
		// Formatage de l'infobulle (ici un tableau jaune)
		var contenu = "<table border='1' bordercolor='#000000' cellspacing='0' cellpadding='5' width=" + tableWidth + "><tr><td bgcolor='#FFFF99'><font color=black size=2 face='Arial'>" + message + "</font></td></tr></table>";
	} else{
		if (gui=='2'){
			var contenu = "<table border='0' cellspacing='0' cellpadding='5'><tr><td bgcolor='#FFFFE1'><font color=black size=1 face='Arial'>" + message + "</font></td></tr></table>";
		}
		else{
			var contenu = "<table border='0' cellspacing='0' cellpadding='5' width=" + tableWidth + "><tr><td bgcolor='#FFFFE1'><font color=black size=1 face='Arial'>" + message + "</font></td></tr></table>";
		}
	}
	// Instructions pour Netscape
	if (nc4) {
		calque.document.write(contenu);
		calque.document.close();
		calque.type_calque=type;
		calque.visibility = "visible";
	}	
	// Instructions equivalentes pour Internet Explorer
	if (navigator.appName==ieName) {
		document.all("bulle").innerHTML = contenu;
		calque.type_calque=type;
		calque.visibility = "visible";
	}
	//Instructions equivalentes pour Netscape 6.x et sup.
	if (nc6) {
		document.getElementById("bulle").innerHTML = contenu;
		calque.type_calque=type;
		calque.visibility = "visible";
	}
}


/*******************************************************
 * 
 *
 ******************************************************/
function suivre_souris(e) {
	initCalque();
	if(typeof(calque.type_calque) != "undefined" && calque.type_calque=="type2_bulle") return;
	// 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 (navigator.appName==ieName) {
		var x = event.x + document.body.scrollLeft;
		var y = event.y + document.body.scrollTop;
	}

	position(x,y);
}

function position(x,y) {
	// 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+5;
	}
}

// Fonction pour masquer le calque
function disparaitre() {
	initCalque();
	// Instructions pour Netscape
	if (nc4) {
		calque.document.write('');
		calque.document.close();
		calque.visibility = "hidden";
	}

	// Instructions equivalentes pour Internet Explorer
	if (navigator.appName==ieName) {
		document.all("bulle").innerHTML = '';
		calque.visibility = "hidden";
	}

	//Instructions equivalentes pour Netscape 6.x et sup.
	if (nc6) {
		document.getElementById("bulle").innerHTML = '';
		calque.visibility = "hidden";
	}
}