// Bibliotheque jaquette
// (c) Livrenpoche/Eliasis 2008

var evenCacheJaquette=null; // Evenement cachant la jaquette
var evenAfficheJaquette=null; // Evenement affichant la jaquette
var sourisSurPetiteJaquette; // Indique si la mini jaquette a le focus
var sourisSurGrandeJaquette; // Indique si la grande jaquette a le focus

var popup_DivGeneral; // Div du popup
var popup_Image; // Image du popup

// Charge la jaquette
function chargeJaquette(idDivGeneral, idImage, idImgAppel, urlImage, lien, fonctionAppellee)
	{
	
	var objDivGeneral=$(idDivGeneral);
	
	if (typeof objDivGeneral.idImgAppel=='undefined')
		objDivGeneral.idImgAppel='';
		
	if (typeof objDivGeneral.enCoursOpacite=='undefined')
		objDivGeneral.enCoursOpacite=false;		
		
	sourisSurPetiteJaquette=true;
	if (objDivGeneral.idImgAppel!==idImgAppel)
		{
		cacheJaquette();
		
		// Mémorise le nouveau div
		popup_DivGeneral=objDivGeneral;
		popup_Image=$(idImage);
		
		sourisSurGrandeJaquette=false;
		popup_DivGeneral.enCoursAff=true;
		
		// Memorise ID de la jaquette et le lien
		popup_DivGeneral.idImgAppel=idImgAppel;
		
		
		// Annule l'affichage si souris ailleurs
		$(idImgAppel).onmouseout=function(){sourisSurPetiteJaquette=false;};
		popup_DivGeneral.onmouseover=function(){sourisSurGrandeJaquette=true;};
		
		var tabURL=urlImage.split('/');
		var tabIMG=popup_Image.src.split('/');
		
		// Appelle la suite quand l'image est chargee
		if (tabIMG[tabIMG.length-1] == tabURL[tabURL.length-1])
			{
			afficheJaquette(true); // Déjà chargée
			}
		else
			{
			popup_Image.onload=function(){if (afficheJaquette) afficheJaquette(true);};
			popup_Image.src= urlImage; 
			}
		popup_DivGeneral.lien=lien;
		if (typeof fonctionAppellee!='undefined')
			fonctionAppellee();
		
		}
	}
	
// Affiche la jaquette chargee
function afficheJaquette(premierAppel)
	{	
	
	if (sourisSurPetiteJaquette===false && sourisSurGrandeJaquette===false) 
		{
		cacheJaquette();
		}
	else
		{
		
		if (premierAppel)
			{
			// N'affiche la jaquette qu'au bout d'un certain temps
			evenAfficheJaquette=setTimeout('afficheJaquette(false)',500);
			}
		else
			{
			evenAfficheJaquette=null;
			var imgReduite=$(popup_DivGeneral.idImgAppel);
			
			popup_DivGeneral.style.zIndex=100;
			var tabPositions=new String();

			// Fixe la largeur/hauteur
			popup_DivGeneral.style.width='410px';
			popup_DivGeneral.style.height='auto';
			
			// Position absolue de l'image reduite
			tabPositions=Element.cumulativeOffset(imgReduite);
			
			// Taille du navigateur
			var tailleNavig=document.viewport.getDimensions() ;
			var decalageScroll=document.viewport.getScrollOffsets();
			var largeurNavig=tailleNavig['width'];
			var hauteurNavig=tailleNavig['height'];
			
			// Calcule la nouvelle position
			var posX=tabPositions[0]+ (imgReduite.offsetWidth-popup_Image.offsetWidth)/2;
			var posY=tabPositions[1]+ (imgReduite.offsetHeight-popup_Image.offsetHeight)/2;
			// Décale si dépasse le navigateur
			if (posY<decalageScroll[1]) 
				posY=decalageScroll[1];
			else
				if (posY + popup_DivGeneral.offsetHeight > hauteurNavig+decalageScroll[1])
					posY=hauteurNavig-popup_DivGeneral.offsetHeight+decalageScroll[1];
			
			if (posX<0) 
				posX=0;			
			else
				if (posX + popup_DivGeneral.offsetWidth > largeurNavig)
					posX=largeurNavig-popup_DivGeneral.offsetWidth;
			
			
			
			popup_DivGeneral.style.position='absolute';
			popup_DivGeneral.style.left= posX+ 'px';
			popup_DivGeneral.style.top= posY + 'px';
			
			popup_DivGeneral.opacite=5;
			fixeOpacite (popup_DivGeneral,popup_DivGeneral.opacite);
			
			popup_DivGeneral.style.visibility='visible';

			// Permet d'annuler la suppression de l'affichage si DIV contient plusieurs elements
			popup_DivGeneral.onmouseover=function()
				{
				if (evenCacheJaquette)
					{
					clearTimeout(evenCacheJaquette);
					evenCacheJaquette=null;
					}
				};
				
			popup_DivGeneral.onmouseout=function(){evenCacheJaquette=setTimeout('cacheJaquette()',10);};
			// Lien vers la fiche
			if (popup_DivGeneral.lien!=='')
				{
					
					objDivDisplay=$('popup_display');
					if(objDivDisplay)//si on a charger le popup_gallerie, on veut que le pointer soit sur la partie interne
					{
						objDivDisplay.style.cursor='pointer';
				    	objDivDisplay.onclick=function(){document.location.href=popup_DivGeneral.lien;};
					}
					else 
					{
						popup_DivGeneral.style.cursor='pointer';  	                                        objDivDisplay=$('popup_display');
                        popup_DivGeneral.onclick=function(){document.location.href=this.lien;};
					}
				}
				
			popup_DivGeneral.enCoursOpacite=true; // Evite de recharger
			
			if (window.SwapSelect)
				SwapSelect(popup_DivGeneral.id, 'visible','');			
			setTimeout('afficheJaquetteEffet(true)',20);
			}
		}
	}
	
// Cache la jaquette
function cacheJaquette()
	{
	// Annule l'evenement d'affichage
	if (evenAfficheJaquette!==null) 
		{
		clearTimeout(evenAfficheJaquette);
		evenAfficheJaquette=null;
		}
	
	// Annule l'evenement de masquage
	if (evenCacheJaquette!==null) 
		{
		clearTimeout(evenCacheJaquette);
		evenCacheJaquette=null;
		}

	//var divJaquGrande=$('popupJaqLivre');
	if (popup_DivGeneral)
		{
		if (popup_DivGeneral.idImgAppel!=='')
			{
			// Cache la jaquette si visible à l'ecran
			if (popup_DivGeneral.style.visibility=='visible')
				{
				popup_DivGeneral.enCoursOpacite=false;
				fixeOpacite (popup_DivGeneral,0); // Pour IE
				popup_DivGeneral.style.visibility='hidden';
				
				if (window.SwapSelect)
					SwapSelect(popup_DivGeneral.id, 'hidden','');			
				
				
				}
			$(popup_DivGeneral.idImgAppel).onmouseout='none';
			popup_DivGeneral.idImgAppel='';
			}
		}
		
	}
	
// Fixe l'opacite de la jaquette à intervalles reguliers
function afficheJaquetteEffet()
	{
	//var divJaquGrande=$('popupJaqLivre');
	if (popup_DivGeneral.style.visibility=='visible' && popup_DivGeneral.enCoursOpacite)
		{
		var opacite=(popup_DivGeneral.opacite)+10;
		if (opacite>100) opacite=100;
		popup_DivGeneral.opacite=opacite;
		
		fixeOpacite (popup_DivGeneral,popup_DivGeneral.opacite);
		if (popup_DivGeneral.style.visibility=='visible')
			{
			if (popup_DivGeneral.opacite<100)
				setTimeout('afficheJaquetteEffet(true)',40);
			else
				popup_DivGeneral.enCoursOpacite=false;
			}
		}
	}
	
// Fixe l'opacite d'un objet
function fixeOpacite(objet, valeur)
		{
		if (Prototype.Browser.IE) 
			objet.style.filter="alpha(opacity="+valeur.toString()+")";
		else if (Prototype.Browser.Gecko)
			objet.style.setProperty("-moz-opacity", valeur/100, "");			
		else if (Prototype.Browser.Opera)
			objet.style.opacity=valeur/100;
		else
			objet.style.filter="opacity="+ (valeur/100).toString()+")";
		}
		
// Affiche les informations d'un livre		
function jaquette_infosupp(tabLivre)
{ 
    $('galerie_Titre').innerHTML = tabLivre['titre'];
    $('galerie_Auteur').innerHTML = tabLivre['auteur'];

    if (typeof tabLivre['prix']!='undefined')
    {
        $('galerie_Prix').innerHTML = tabLivre['prix'] + '&nbsp;&euro;';
    }
    
    if (typeof tabLivre['pages']!='undefined')
    {
        if (tabLivre['pages']!=="")
        {
            $('galerie_Pages').innerHTML = tabLivre['pages'] + '&nbsp;pages';
        }

        else
        {
           $('galerie_Pages').innerHTML = "";
        }
    }

    if (typeof tabLivre['editeur']!='undefined')
    {
        $('galerie_Editeur').innerHTML = "Éditeur : " + tabLivre['editeur'];
    }
    
    if (tabLivre['resume'].length==0)
    {
        $('galerie_Resume').innerHTML ='';
    }
    
    else
    {
        $('galerie_Resume').innerHTML = "<b>Résumé :</b><br>"+tabLivre['resume'];
    }

    if (tabLivre['genre']!=="")
    {
        $('galerie_Genre').innerHTML = 'Genre : ';
        $('galerie_GenreTexte').innerHTML = tabLivre['genre']+'<br>';
    }
    else
    {
        $('galerie_Genre').innerHTML = '';
        $('galerie_GenreTexte').innerHTML ='';
    }

    if(typeof tabLivre['intituleTypeProduit']!='undefined')
    {
        $('galerie_TypeProduitTexte').innerHTML =  tabLivre['intituleTypeProduit'];
    }

    if(tabLivre['nbAvis']>0)
    {
        if(tabLivre['nbAvis']==1)
        {
            $('galerie_nbAvis').innerHTML =  "Lire l'avis."+'<br>';
        }
        else
        {
            $('galerie_nbAvis').innerHTML =  "Lire les "+tabLivre['nbAvis']+ " avis."+'<br>';
        }
        $('galerie_moyenneNote').innerHTML = "<img align='absbottom' src='../images/note_"+tabLivre['moyenneNote']+".png'/>";
    }
    else
    {
        $('galerie_nbAvis').innerHTML = "";
        $('galerie_moyenneNote').innerHTML = "";
    }


}
