//Declaration des variables globales aux domaines
var nombreImagesChargees = 0;
var nombreImagesACharger = 0;
var intervalVerificationChargementImages;

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////    
function chargementImages()
{   
    var adresse = location.pathname;
    var positionMotDomaine = adresse.search("Domaine");
    var positionExtentionPhp = adresse.search(".php");
    
    var domaineEnCours = adresse.substring(positionMotDomaine,positionExtentionPhp);
    
    //////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////
  
    //On cree une requete ajax qui va demander si les images on déjà ete chargees ou quelles sont les images a chargees
    //On cree une requete ajax qui va demander si les images on déjà ete chargees ou quelles sont les images a chargees
    //On cree une requete ajax qui va demander si les images on déjà ete chargees ou quelles sont les images a chargees
  
    //On cree la variable en fonction des navigateur
    var xmlHttp;
    
    if (document.all)
    {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
        xmlHttp = new XMLHttpRequest();
        
        try
        {
            netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');
        }
        catch(e)
        {
        }
    }
    //////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////
    //On defini son gestionnaire d'evenement a la reception de la requete
    xmlHttp.onreadystatechange = function()
    {
        if(xmlHttp.readyState == 4)
        {           
            //On recupere le document XML crée par le programme php
            var docXML = xmlHttp.responseXML;        
            
            //On stoque les sources des images dans un tableau
            var tableauSourcesImages = docXML.getElementsByTagName("image");
            nombreImagesACharger = tableauSourcesImages.length;
            
            //L'affichage doit fonctionner même si ce script ne fonctionne pas. On remet l'affichage du contenu à la place de l'image de chargement même si la reponse XML est vide
            if(tableauSourcesImages[0].firstChild.data == undefined)
            {
                restaurationAffichage();                                                                 
            }            
        
            //On lance le chargement des images dont les sources sont définies par la réponse XML du serveur (pour cela on redefini des images fictives que l'ont place dans un tableau). Lorsque toutes ces sources sont chargées, on incremente le nombre d'Images chargées 
            var tableauImages = new Array();
            
            var i;
            
            for (i=0; i<nombreImagesACharger; i++)
            {
                tableauImages[i] = new Image();
                tableauImages[i].onload = function(){nombreImagesChargees++;}
                tableauImages[i].src = "../Images/" + domaineEnCours + "/Etiquettes/" + tableauSourcesImages[i].firstChild.data;
            }
            
            //On lance la fonction verificationChargementImages() a interval regilier pour verifier si les images sont chargees
            intervalVerificationChargementImages = setInterval("verificationChargementImages()",10);
        }      
    }
    //////////////////////////////////////////////////////////////////////////
    //////////////////////////////////////////////////////////////////////////
    //on envoi la requete
    var url = "http://www.lesvinsdufleuve.com/Ajax/recuperationImagesVigneron.php";
    
    url += "?domaineEnCours=" + domaineEnCours;
    
    //On lance la requete. Si elle retourne "false" a cause d'un echec de connection, on remet l'affichage du contenu à la place de l'image de chargement même si on a aucune réponse du serveur
    if(!xmlHttp.open("GET", url))
    {
    restaurationAffichage();
    }
    
    xmlHttp.send(null);
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
function verificationChargementImages()
{   
    //Si toutes les images sont chargées on restaure l'affichage   
    if(nombreImagesChargees == nombreImagesACharger)
    {
        restaurationAffichage();
    }
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//On remplace l'image de chargement par la barre de "NavigationInterne" et par le "Contenu1" qui contient la présentation du vigneron
function restaurationAffichage()
{     
    var imageChargement = document.getElementById("ImageChargement");
    imageChargement.style.display = "none";
        
    var navigationInterne = document.getElementById("NavigationInterne");
    navigationInterne.style.display = "block";
        
    var contenu1 = document.getElementById("Contenu1");
    contenu1.style.display = "block";
        
    hauteurTexte();    
    commentaireEtPositionPortrait();
                    
    clearInterval(intervalVerificationChargementImages);
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////

function commentaireEtPositionPortrait()
{
    
    //On recupere les images contenu dans la div de presentation "Contenu1"
    var tableauImage = document.getElementById("Contenu1").getElementsByTagName("IMG");
    
    //on recupère la div qui contient les images
    var divParent = tableauImage[0].offsetParent;
    
    var hauteurTotaleImages = 0;
    
    var i;
    
    //On parcours le tableau des images
    for(i=0; i<tableauImage.length; i++)
    {
        
        //on regarde si l'image en cours contient un commentaire
        var commentaire = tableauImage[i].getAttribute("commentaire");
        
        //On défini une variable hauteur de commentaire égale à zero
        var hauteurCommentaire = 0;
        
        //Si il existe un commentaire on met dans un paragraphe html que l'on place en dessous de l'image dans la page html le place en dessous de l'image
        if (commentaire != undefined)
            {
               //on cre le paragraphe commentaire
               var paragrapheCommentaire = document.createElement("P");
               
                //on lui attribut un style et une position 
               paragrapheCommentaire.style.position = "absolute";
               paragrapheCommentaire.style.width = tableauImage[i].offsetWidth;//sa largeur est identique a celle de l'image 
               
               if(document.all)
                    paragrapheCommentaire.style.top = hauteurTotaleImages + tableauImage[i].offsetHeight + 20;//on le place en dessous de l'image en cours(la valeur qu'on rajoute depend du navigateur)
               else
                    paragrapheCommentaire.style.top = hauteurTotaleImages + tableauImage[i].offsetHeight + 10;//on le place en dessous de l'image en cours (la valeur qu'on rajoute depend du navigateur)
                    
               paragrapheCommentaire.style.textAlign="center";
               paragrapheCommentaire.style.color = "rgb(98,40,160)";
               paragrapheCommentaire.style.margin = "0,0,0,0";
               paragrapheCommentaire.style.padding = "0,0,0,0";

              
               
               //on lui attribut un contenu
               paragrapheCommentaire.innerHTML = commentaire;
               
               divParent.appendChild(paragrapheCommentaire);              
               
               //on defini hauteur commentaire egale a la hauteur du paragraphe commentaire
               hauteurCommentaire = paragrapheCommentaire.offsetHeight;
            }
        
        //on rajoute à la hauteur totale des images, la hauteur de l'image en cours + la hauteur du commentaire + une marge de 20 pixel
        hauteurTotaleImages += (tableauImage[i].offsetHeight + hauteurCommentaire + 20);
        
        //Si elle existe, on positionne l'image qui suit dans le tableau, en dessous de l'image en cours dans la page html
        if(tableauImage[i+1])
            tableauImage[i+1].style.top = hauteurTotaleImages + 20;
    }  
}

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////

function hauteurTexte()
{
    //On recupere les images contenu dans la div de presentation "Contenu1"
    var tableauImage = document.getElementById("Contenu1").getElementsByTagName("IMG");
    
    //On recupere le texte de presentation
    var texte = document.getElementById("Contenu1").getElementsByTagName("BLOCKQUOTE")[0];
    
    var i;
    
    var hauteurTotaleImages = 0;
    
    //On enregistre la hauteur initiale du texte, c'est à dire la hauteur défini par son contenu
    var hauteurInitialeTexte = texte.offsetHeight;
    
     //On parcours le tableau des images
    for(i=0; i<tableauImage.length; i++)
    {
        //on en enregistre le cumul des hauteur de toutes les images + une marge de 10 pixel pour chacune d'entre elles
        hauteurTotaleImages += (tableauImage[i].offsetHeight + 20);
    }
    
    //si la hauteur initiale du textes est inférieur a la taille totale des images, on défini la hauteur du texte égal à la taille totale des images
    if (hauteurInitialeTexte < hauteurTotaleImages)
    {
        texte.style.height = hauteurTotaleImages;
    }
    
}

