isvisiblebullerayon = false;
recherche_encours = "";

// attend reponse ajax pour afficher infobulle couverture livre en rollover
// ----------------------------------------------------------------------------------------------------
function alert_ajax(xhr, numvgn) {
    if (xhr.readyState==4) {
		// affiche reponse dans div en position absolute
		var infobulle = document.getElementById("infosbulles");
		infobulle.innerHTML = xhr.responseText;
    }
}


// lance requete pour afficher infobulle ajax couverture livre en rollover
// ----------------------------------------------------------------------------------------------------
function show_infobulle(urlpage, ean, numvgn, typebulle) {
	if (recherche_encours && (recherche_encours.readyState<4)){
    	recherche_encours.abort();
  	}
    var xhr=null;   
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() {
    	if (xhr.readyState==4) {
			if (xhr.status == 200) {
				txtbulle = xhr.responseText;
			} else {
				txtbulle = ""; //txtbulle = "Erreur";
				recherche_encours.abort();
				hide_infobulle_sans_condition();
			}
			// affiche reponse dans div en position absolute
			var infobulle = document.getElementById("infosbulles");
			infobulle.innerHTML = txtbulle;
		}
	}
	// positionne bulle par rapport a div contenant vignette
	var infobulle = document.getElementById("infosbulles");
	var imgbubble = document.getElementById(numvgn);
	vignette_pos_left = findPosX(imgbubble);
	vignette_pos_top = findPosY(imgbubble);
	pos_x = vignette_pos_left + (imgbubble.offsetWidth / 3) ;
	pos_y = vignette_pos_top - infobulle.offsetHeight + 54;
	//pos_y = vignette_pos_top - infobulle.offsetHeight + 32;
	infobulle.style.left = pos_x + "px";
	infobulle.style.top = pos_y + "px";
	infobulle.style.visibility = "visible";
	infobulle.innerHTML = '<p class="attente"><img src="fileadmin/templates/images/loading_litebox.gif" /></p>';
    //on appelle le fichier PHP dans lequel on a interroger le serveur distant (ici Electre)
	urlpage = js_str_replace("&","*",urlpage);
	$url_php = "fonctions_ajax_livres.php?urlpage="+urlpage+"&ean="+ean+"&typebulle="+typebulle;
//	$url_php = "fonctions_ajax_livres.php?urlpage="+urlpage+"&ean="+ean+"&typebulle="+typebulle;
    xhr.open("GET", $url_php, true);
    xhr.send(null);
	recherche_encours = xhr;
}


function maj_mouseout_infobulle(e) {
	isvisiblebullerayon = false;
	if (!e) var e = window.event;
	var relTarg = e.relatedTarget || e.toElement;
	tagname = (relTarg.tagName) ? relTarg.tagName : '';
	tagclass = (relTarg.className) ? relTarg.className : '';
	classbulle = (tagclass+'').indexOf("rollbulle", 0);
	// alert("ju : "+tagname+" / classbulle : "+classbulle+" (si >=0 ie laisseinfobulle ouverte)");
	if ((classbulle >= 0) || (tagname.toLowerCase() == 'input')) isvisiblebullerayon = true;
}


function hide_infobulle_ok() {
	if (!isvisiblebullerayon) { 
		var infobulle = document.getElementById("infosbulles");
		infobulle.style.visibility = "hidden"; 
	}
}

// masque infobulle si pas de rollover sur vignette ou sur bulle elle meme
// ----------------------------------------------------------------------------------------------------
function hide_infobulle(e) {
	isvisiblebullerayon = false;
	if (!e) var e = window.event;
	var relTarg = e.relatedTarget || e.toElement;
	tagname = (relTarg.tagName) ? relTarg.tagName : '';
	tagclass = (relTarg.className) ? relTarg.className : '';
	classbulle = (tagclass+'').indexOf("rollbulle", 0);
	//alert("ju : "+tagname+" / classbulle : "+classbulle+" (si >=0 ie laisseinfobulle ouverte)");
	if ((classbulle >= 0) || (tagname.toLowerCase() == 'input')) isvisiblebullerayon = true;
//	if (((tagname != "DIV") && (tagname != "LI") && (tagname != "HTML") && (tagname != "BODY")) || ((tagclass == "bulle") || (tagclass == "coup_de_coeur") || (tagclass == "infos_bulle") || (tagclass == "image_bulle") || (tagclass == "txt_bulle") || (tagclass == "panier") || (tagclass == "bulle_inside"))) isvisiblebullerayon = true;
	var infobulle = document.getElementById("infosbulles");
	//clearTimeout(timerbulle);
	if (!isvisiblebullerayon) { 
		infobulle.style.visibility = "hidden"; 
		infobulle.innerHTML = "";
		infobulle.style.left = "-999em";
		infobulle.style.top = "0";
	//} else {
	//	timerbulle = setTimeout("hide_infobulle_sans_condition()",10000);
	}
}


// masque infobulle sans condition
// ----------------------------------------------------------------------------------------------------
function hide_infobulle_sans_condition() {
	isvisiblebullerayon = false;
	var infobulle = document.getElementById("infosbulles");
	infobulle.style.visibility = "hidden"; 
	clearTimeout(timerbulle);
}


// recupere posX du div contenant vignette en rollover (differe selon navigateurs)
// ----------------------------------------------------------------------------------------------------
function findPosX(obj) {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent) break;
          obj = obj.offsetParent;
        }
	else if(obj.x)
        curleft += obj.x;
    return curleft;
}


// recupere posY du div contenant vignette en rollover (differe selon navigateurs)
// ----------------------------------------------------------------------------------------------------
function findPosY(obj) {
    var curtop = 0;
    if(obj.offsetParent)
        while(1) {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)  break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
}


// remplace toutes les occurence d un caractere par un autre
// ----------------------------------------------------------------------------------------------------
function js_str_replace(cherche,remplace,texte) {
	while(texte.indexOf(cherche) > -1) {
		texte = texte.replace(cherche,remplace);
	}
	return texte;
}
