var debut_lien_albums;
var fin_lien_albums;

var debut_lien_images;
var fin_lien_images;

var nombre_cache = 1;

/**
 * calculerCache()
 * 
 * Permet de "modifier" l'url pour éviter la mise en cache d'IE
 */
function calculerCache(){
	nombre_cache++;
	
	return nombre_cache;
}

// Va créer un objet Ajax:
function createAjax(){
	var xhr = null;
	
	if(window.XMLHttpRequest){
	   xhr = new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject){
	   try {
           xhr = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
           xhr = new ActiveXObject("Microsoft.XMLHTTP");
       }
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas Ajax, veuillez le mettre à jour"); 
	   xhr = false; 
	} 
	
	return xhr;
}

// 2 fonctions servant de cleaner AJAX:
function go(c){
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}

function clean(d){
	var bal=d.getElementsByTagName('*');
	
	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
}

/**
 * gererCheckbox()
 * 
 * Permet de cocher automatiquement une checkbox ou non.
 * 
 * @param string nom de l'id contenant la checkbox
 * @param int ordre (1=cocher, 0=décocher)
 */
function gererCheckbox(conteneur, a_faire){
	var etat = null;
	
	// Récupération de la première checkbox dans le div:
	var Chckbox = document.getElementById(conteneur).firstChild;
	
	// Boucle de parcours de toutes les checkbox:
	while(Chckbox != null){
		// On vérifie que l'élément est bien une checkbox:
		if((Chckbox.nodeName=="INPUT") && (Chckbox.getAttribute("type")=="checkbox")){
			blnEtat = (a_faire=='0') ? false : (a_faire=='1') ? true : (document.getElementById(Chckbox.getAttribute("id")).checked) ? false : true;
			
			// Application de l'état:
			document.getElementById(Chckbox.getAttribute("id")).checked = blnEtat;
		}
		
		// Passage à l'élément suivant:
		Chckbox = Chckbox.nextSibling;
	}
}

/**
 * showDetailAlbum()
 * 
 * Va chercher les renseignements éntrés dans la bdd sur un album, et remplit automatiquement le formulaire avec.
 * 
 * @param int id de l'album
 * @param string chemin où sont stockées les vignettes
 * @see gererCheckbox()
 */
function showDetailAlbum(numero,dirvignettes,base_url){
	document.getElementById("bandeauInformations").innerHTML = 'Patientez';
	
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			reponse = clean(xhr.responseXML.documentElement);
			document.modifier_album.nom.value = reponse.getElementsByTagName("nom")[0].firstChild.nodeValue;
			document.modifier_album.description.value = reponse.getElementsByTagName("description")[0].firstChild.nodeValue;
			document.modifier_album.vignette.value = '';
			if(reponse.getElementsByTagName("url_vignette")[0].firstChild.nodeValue){
				var nom_image = reponse.getElementsByTagName("url_vignette")[0].firstChild.nodeValue;
				document.modifier_album.vignette.value = nom_image;
				
				dirvignettes = escape(dirvignettes);
				dirvignettes = dirvignettes.replace('%3A',':');
				
				document.getElementById('image_vignette').innerHTML = '<img src="'+ dirvignettes +'/'+escape(nom_image)+'" />';
			}
			else {
				document.getElementById('image_vignette').innerHTML = '<img src="'+escape(dirvignettes)+'/vignette_vide.gif" />';
			}
			
			var date_debut_parution = reponse.getElementsByTagName("date_debut_parution")[0].firstChild.nodeValue;
			var date_fin_parution = reponse.getElementsByTagName("date_fin_parution")[0].firstChild.nodeValue;
			
			if(date_debut_parution != -1){
				document.modifier_album.debut_publication_modifier_album.value = date_debut_parution;
			} else {
				document.modifier_album.debut_publication_modifier_album.value = '';
			}
			
			if(date_fin_parution != -1){
				document.modifier_album.fin_publication_modifier_album.value = date_fin_parution;
			} else {
				document.modifier_album.fin_publication_modifier_album.value = '';
			}
			
			showForms(2,''+ base_url +'');
			
			var protegercontreclicdroit = reponse.getElementsByTagName("protegercontreclicdroit")[0].firstChild.nodeValue;
			
			if(protegercontreclicdroit == 'oui'){
				gererCheckbox('div_checkbox_modifier_album',1);
			} else {
				gererCheckbox('div_checkbox_modifier_album',0);
			}
			
			document.modifier_album.id.value = numero;
			document.modifier_album.submitModifier.style.display = 'block';
			
			$('form_modifier_album').style.display = 'block';
			
		}
	}
	
	var nombre_cache = calculerCache();
	
	xhr.open("GET","getDetailAlbum.php?id="+numero+"&var="+nombre_cache,true);
	xhr.send(null);
}

/**
 * afficherListeImagesAssociées()
 * 
 * Va afficher la liste des images dans un album
 * 
 * @param int id de l'album
 */
function afficherListeImagesAssociees(id, show_num_form, base_url){
	if(id != null){
		document.getElementById("bandeauInformations").innerHTML = 'Patientez';
		
		var xhr = createAjax();
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				reponse = clean(xhr.responseXML.documentElement);
				
				if(reponse.getElementsByTagName("nombre")[0].firstChild.nodeValue == 0){
					document.getElementById("bandeauInformations").innerHTML = 'Cet album ne contient aucune image.';
					
					document.getElementById("listeImagesAssociees").innerHTML = '';
					document.getElementById("divFormEditerImage").style.display = 'none';
					
					document.formEditerImage.id.value = '';
					document.formEditerImage.nom_courant.value = '';
					document.formEditerImage.nom_album.value = '';
					document.formEditerImage.nom.value = '';
					document.formEditerImage.description.value = '';
					document.formEditerImage.nom_album.value = '';
					document.formEditerImage.imageActuelle.value = '';
					document.formEditerImage.newimage.value = '';
				} else {
					document.getElementById('listeImagesAssociees').innerHTML = reponse.getElementsByTagName("contenu")[0].firstChild.nodeValue;
					
					showForms(show_num_form, base_url);
				}
				
				document.getElementById('listeImagesAssociees').style.display = 'block';
			}
		}
		
		var nombre = calculerCache();
		
		xhr.open("GET","getListeImagesAssocieesAlbum.php?id="+id+"&var="+nombre+"&show_num_form="+show_num_form+"&base_url="+base_url,true);
		xhr.send(null);
	}
}

/**
 * afficherListeImagesAssocieesPourSuppression()
 * 
 * Affiche dans un block la liste des images d'un album
 * 
 * @param int id de l'album
 */
function afficherListeImagesAssocieesPourSuppression(id,num_show_form,base_url){
	if(id!= null){
		
		document.getElementById("listeImagesSuppression").innerHTML = '';
		
		document.getElementById("bandeauInformations").innerHTML = 'Patientez';
		
		var xhr = createAjax();
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				reponse = clean(xhr.responseXML.documentElement);
				
				if(reponse.getElementsByTagName("nombre")[0].firstChild.nodeValue == 0){
					document.getElementById("bandeauInformations").innerHTML = 'Cet album ne contient aucune image.';
				} else {
					document.getElementById("listeImagesSuppression").innerHTML = reponse.getElementsByTagName("contenu")[0].firstChild.nodeValue;
					
					showForms(num_show_form,''+base_url+'');
				}
			}
		}
		
		var nombre = calculerCache();
		
		xhr.open("GET","getListeImagesAssocieesPourSuppression.php?id="+id+"&nb="+nombre,true);
		xhr.send(null);
	}
}

/**
 * listerOrdreImages()
 * 
 * Affiche la liste des images contenues dans un album, triées par l'attribut ordre
 * 
 * @param int id de l'album
 * @param int numéro de div à afficher dans le template
 * @param string constante BASE_URL dans /includes/defines.php
 */
function listerOrdreImages(id_album, num_show_form, base_url){
	
	document.getElementById("listeOrdreImages").style.display = 'none';
	document.getElementById("listeOrdreImages").innerHTML = '';
	
	if(id_album != null){
		
		document.getElementById("bandeauInformations").innerHTML = 'Patientez';
		
		var xhr = createAjax();
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				reponse = clean(xhr.responseXML.documentElement);
				
				if(reponse.getElementsByTagName("nombre")[0].firstChild.nodeValue == 0){
					document.getElementById("bandeauInformations").innerHTML = 'Cet album ne contient aucune image';
				} else {
					document.getElementById("listeOrdreImages").innerHTML = reponse.getElementsByTagName("contenu")[0].firstChild.nodeValue;
					
					document.getElementById("listeOrdreImages").style.display = 'block';
					
					document.modifierOrdre.albumCourant.value = id_album;
					
					showForms(num_show_form, base_url);
				}
			}
		}
		
		b = calculerCache();
		
		xhr.open("GET","getListeOrdreImages.php?id="+id_album+"&var="+b+"&num_show_form="+num_show_form+"&base_url="+base_url,true);
		xhr.send(null);
	}
}

/**
 * afficherImageAvantSuppression()
 * 
 * Cette fonction agît dans la page de suppression des images.
 * Au clic sur le nom d'une image, l'image associée apparaîtra, 
 * avec un lien "Supprimer", demandant confirmation de suppression.
 * 
 * @param string adresse de la photo
 * @param int id de la photo
 */
function afficherImageAvantSuppression(url_photo,id_photo){
	document.getElementById("lienSuppressionImage").href = "javascript:if(confirm('Voulez-vous vraiment supprimer cette photo?')){document.location.href='photos.php?page=supprimer&id="+id_photo+"';}";
	
	url_photo = escape(url_photo);
	url_photo = url_photo.replace('%3A',':');
	
	document.getElementById("imagePrevisualisationSuppression").src = url_photo;
	document.getElementById("previsualisationAvantSuppression").style.display = 'block';
}

function addCar(c, s, i) {
	var chaine = "";
	if(i>0) {
		for(var j=0;j<i;j++) {
			chaine += s.charAt(j);
		}
	}
	chaine += c;
	for(var j=i;j<s.length;j++) {
		chaine += s.charAt(j);
	}
	
	return chaine;
}

function stripslashes(str) {
	for(var i=0;i<str.length;i++) {
		switch(str.charAt(i)) {
			case "\'" : str = addCar("'", str, --i);
		}
	}
	
	return str;
}

/**
 * showDetailsImageInForm()
 * 
 * Cette fonction sert dans le cas de modification des renseignements d'une image.
 * Au clic sur le nom d'une image, cette fonction pré-remplit un formulaire
 * avec les renseignements de cette image
 * 
 * @param int id de l'album
 * @param string nom de l'album
 * @param int numéro du formulaire à afficher
 * @param string constante BASE_URL dans /includes/defines.php
 */
function showDetailsImageInForm(id, nom_album, show_num_form, base_url){
	if(id != null){
		// document.formEditerImage.nom_album.value = nom_album;
		document.getElementById("bandeauInformations").innerHTML = 'Patientez';
		
		document.formEditerImage.id.value = id;
		var xhr = createAjax();
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				document.getElementById('divFormEditerImage').style.display = 'block';
				
				reponse = clean(xhr.responseXML.documentElement);
				
				if(reponse.getElementsByTagName('nom_texte')[0].firstChild.nodeValue != 'null'){
					document.formEditerImage.nom.value = reponse.getElementsByTagName('nom_texte')[0].firstChild.nodeValue;
				}
				
				if(reponse.getElementsByTagName('description')[0].firstChild.nodeValue != 'null'){
					document.formEditerImage.description.value = reponse.getElementsByTagName('description')[0].firstChild.nodeValue;
				}
				
				var protegercontreclicdroit = reponse.getElementsByTagName('proteger_image_contre_clic_droit')[0].firstChild.nodeValue;
				
				if(protegercontreclicdroit == 'oui'){
					gererCheckbox('chckbox_modphoto_anticlic_droit',1);
				} else {
					gererCheckbox('chckbox_modphoto_anticlic_droit',0);
				}
				
				document.formEditerImage.imageActuelle.value = reponse.getElementsByTagName('nom_fichier')[0].firstChild.nodeValue;
				document.formEditerImage.nom_courant.value = reponse.getElementsByTagName('nom_fichier')[0].firstChild.nodeValue;
				document.formEditerImage.nom_album.value = reponse.getElementsByTagName("nom_album")[0].firstChild.nodeValue;
				
				showForms(show_num_form,base_url);
			}
		}
		
		xhr.open("GET","getDetailsImage.php?id="+id,true);
		xhr.send(null);
	}
}

/**
 * afficherImageCourante()
 * 
 * Affiche une image dans un block
 * 
 * @param string url du site depuis http:// jusqu'au répertoire "dynamic"
 * @see fermerImageCourante()
 */
function afficherImageCourante(start_url){
	// Recomposition de toute l'url de l'image:
	
	var target = start_url+"/galerie/albums/"+document.formEditerImage.nom_album.value+"/"+document.formEditerImage.imageActuelle.value;
	
	// On place ça dans le div de démonstration:
	document.getElementById('div_image_courante').src = target;
	
	document.getElementById('photo_courante').style.display = 'block';
}

/**
 * fermerImageCourante()
 * 
 * Cesse d'afficher l'image affichée par la fonction afficherImageCourante()
 * 
 * @see afficherImageCourante()
 */
function fermerImageCourante(){
	document.getElementById('photo_courante').style.display = 'none';
	document.getElementById('div_image_courante').src = '';
}

/**
 * afficherImageModifierOrdre()
 * 
 * Cette fonction agît lorsque l'on veut modifier l'ordre d'affichage des images.
 * Au clic sur le nom d'une image, cette fonction l'affichera
 * 
 * @param int id de l'image
 * @param string url d'accès jusqu'au répertoire "/dynamic/galerie/albums/"
 * @param string nom de l'album
 */
function afficherImageModifierOrdre(id_image,start_url,nom_album){
	if(id_image != null){
		var xhr = createAjax();
		document.getElementById("div_image_courante").src = '';
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				
				reponse = clean(xhr.responseXML.documentElement);
				
				var nom_image = reponse.getElementsByTagName("nom_fichier")[0].firstChild.nodeValue;
				
				var target = start_url+nom_album+"/"+nom_image;
				
				target = escape(target);
				target = target.replace('%3A',':');
				
				document.getElementById("photo_courante").style.display = 'block';
				document.getElementById("div_image_courante").src = target;
			}
		}
		
		xhr.open("GET","getDetailsImage.php?id="+id_image,true);
		xhr.send(null);
	}
}

/**
 * listerOrdreAlbums()
 * 
 * Affiche la liste des albums photos dans l'ordre établit dans la bdd
 */
function listerOrdreAlbums(){
	document.getElementById("bandeauInformations").innerHTML = 'Patientez';
	
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById("listeAlbumsOrdre").innerHTML = reponse.getElementsByTagName("contenu")[0].firstChild.nodeValue;
			
			
			return true;
		}
	}
	
	var nombre = calculerCache();
	
	xhr.open("GET","getListeOrdreAlbums.php?var="+nombre,true);
	xhr.send(null);
}

/**
 * changerOrdre()
 * 
 * Modifie l'ordre d'affichage des images placées dans un album
 * 
 * @param string direction
 * @param int id de l'image à déplacer
 * @see listerOrdreImages()
 */
function changerOrdre(direction,id, num_show_form, base_url){
	if(((direction == 'haut') || (direction == 'bas')) && (id != null)){
		var xhr = createAjax();
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				var id_album = document.modifierOrdre.albumCourant.value;
				
				reponse = xhr.responseText;
				
				if(reponse == 'true'){
					listerOrdreImages(id_album,num_show_form,base_url);
					showForms(num_show_form, base_url);
				}
			}
		}
		
		xhr.open("GET","modifierOrdre.php?direction="+direction+"&id="+id,true);
		xhr.send(null);
	}
}

/**
 * changerOrdreAlbum()
 * 
 * Modifie l'ordre d'affichage des albums contenus dans la bdd
 * 
 * @param string direction
 * @param int id de l'album à déplacer
 * @see listerOrdreAlbums()
 */
function changerOrdreAlbum(direction, id, base_url){
	document.getElementById("bandeauInformations").innerHTML = 'Patientez';
	
	if(((direction == 'haut') || (direction == 'bas')) && (id != null)){
		var xhr = createAjax();
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				reponse = xhr.responseText;
				
				if((reponse == 'true') || (reponse == true)){
					listerOrdreAlbums();
					// document.getElementById("bandeauInformations").innerHTML = '';
					showForms(4, base_url);
				}
			}
		}
		
		xhr.open("GET","modifierOrdreAlbums.php?direction="+direction+"&id="+id,true);
		xhr.send(null);
	} else {
		document.getElementById("bandeauInformations").innerHTML = 'Erreur: déplacement impossible';
	}
}

/**
 * afficherVignetteModifierOrdre()
 * 
 * Cette fonction agît dans le cas de la modification de l'ordre d'affichage des albums
 * et permet d'afficher la vignette d'un album
 * 
 * @param string url de la vignette de l'album choisi
 */
function afficherVignetteModifierOrdre(url_vignette){
	document.getElementById("photo_courante").style.display = 'block';
	
	url_vignette = escape(url_vignette);
	url_vignette = url_vignette.replace('%3A',':');
	
	document.getElementById("div_image_courante").src = url_vignette;
}

/**
 * getNombreAlbumsDansGalerie()
 * 
 * Donne le nombre d'albums entrés dans la bdd
 * 
 * @return int nombre d'albums
 */
function getNombreAlbumsDansGalerie(){
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = xhr.responseText;
			
			return reponse;
		}
	}
	
	xhr.open("GET","includes/modules/galerie/getNombreAlbumsDansGalerie.php",true);
	xhr.send(null);
}

/**
 * modifierProprietesAffichageGallerie()
 * 
 * Cette fonction agît quand on veut modifier les paramètres d'affichage de la galerie. 
 * Elle se charge d'effectuer les modifications, et affiche leur statut dans un block
 */
function modifierProprietesAffichageGallerie(){
	var nombre_albums = document.formualire_modification_affichage.nombre_albums_par_page.value;
	var nombre_images = document.formualire_modification_affichage.nombre_images_par_page.value;
	
	if((nombre_albums != '') && (nombre_images != '')){
		if($('messageDeRetour')) {
			document.getElementById("messageDeRetour").innerHTML = 'Patientez';
		}
		
		var xhr = createAjax();
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				var reponse = xhr.responseText;
				
				if(reponse == true){
					document.getElementById("messageDeRetour").innerHTML = 'Mise à jour effectuée.';
				} else {
					document.getElementById("messageDeRetour").innerHTML = reponse;
				}
			}
		}
		
		xhr.open("GET","modifierProprietesAffichage.php?albums="+nombre_albums+"&images="+nombre_images,true);
		xhr.send(null);
	} else {
		document.getElementById("messageDeRetour").firstChild.nodeValue = 'Erreur: tous les champs doivent être remplis.';
	}
}

/**
 * afficherThumbnailsAlbum()
 * 
 * Cette fonction affiche le contenu d'un album au clic sur l'un d'eux.
 * Cette fonction affiche aussi les liens "Précédent" et "Suivant"
 */
function afficherThumbnailsAlbum(id,debut,fin){
	document.getElementById("listeAlbums").style.display = 'none';
	document.getElementById("liensNaviguerAlbums").style.display = 'none';
	
	document.getElementById("listePhotos").style.display = 'block';
	document.getElementById("liensNaviguerImages").style.display = 'block';
	
	document.getElementById("cheminDeFer").style.display = 'block';
	document.getElementById("lienAfficherListeGaleries").style.visibility = 'visible';
	
	document.getElementById("lienRevenirALaSelectionDesAlbums").style.display = 'block';
	
	var galerie = new SWFObject('/flash/imagerotator.swf', 'galerie_photos', 550, 375, 8);
	galerie.addVariable('file', '/flash/imageRotator.php?album='+id);
	galerie.addVariable('showNavigation', 'true');
	galerie.addVariable('width', 550);
	galerie.addVariable('height', 375);
	galerie.addVariable('displaywidth', 550);
	galerie.addVariable('displayheight', 375);
	galerie.addVariable('largecontrols', 'true');
	galerie.addVariable('showdigits', 'true');
	galerie.addVariable('showicons', 'true');
	galerie.addVariable('shuffle', 'false');
	galerie.addVariable('rotatetime', 4);
	galerie.write('listePhotos');
	
	/*
	debut_lien_images = debut;
	fin_lien_images = fin;
	
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			document.getElementById("listePhotos").innerHTML = reponse.getElementsByTagName("contenu")[0].firstChild.nodeValue;
			
			var nombre_images = reponse.getElementsByTagName("nombre_images")[0].firstChild.nodeValue;
			nombre_maxi_thumbnails = reponse.getElementsByTagName("maxi_thumbnails")[0].firstChild.nodeValue;
			
			var debut_lien = debut_lien_images;
			var fin_lien = fin_lien_images;
			
			// Affichage ou non du lien "Précédent":
			if(debut_lien_images > 1){
				document.getElementById("lienPhotosPrev").style.display = 'block';
				debut_lien -= nombre_maxi_thumbnails;
				fin_lien -= nombre_maxi_thumbnails;
				
				document.getElementById("ALienPhotosPrev").href = 'javascript:afficherThumbnailsAlbum('+id+','+debut_lien+','+fin_lien+');';
			} else {
				document.getElementById("lienPhotosPrev").style.display = 'none';
			}
			
			// Affichage ou non du lien "Suivant":
			if(fin < nombre_images){
				document.getElementById("lienPhotosNext").style.display = 'block';
				
				int_debut = parseInt(debut);
				int_fin = parseInt(fin);
				int_thumbnails = parseInt(nombre_maxi_thumbnails);
				
				int_next_debut = parseInt(int_debut + int_thumbnails);
				int_next_fin = parseInt(int_fin + int_thumbnails);
				
				fin += nombre_maxi_thumbnails;
				document.getElementById("ALienPhotosNext").href = 'javascript:afficherThumbnailsAlbum('+id+','+int_next_debut+','+int_next_fin+');';
				
			} else {
				document.getElementById("lienPhotosNext").style.display = 'none';
			}
		}
	}
	
	xhr.open("GET","includes/modules/galerie/afficherThumbnailsAlbum.php?id="+id+"&debut="+debut+"&fin="+fin,true);
	xhr.send(null);
	*/
}

/**
 * afficherImageDansGalerie()
 * 
 * Lorsqu'un visiteur clique sur une miniature d'une photo dans la galerie, 
 * la liste des photos n'est plus affichée, et la photo sélectionnée s'affiche
 * 
 * @param int id de la photo à afficher.
 */
function afficherImageDansGalerie(id_photo){
	
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4 && xhr.status == 200){
			var reponse = clean(xhr.responseXML.documentElement);
			
			var anti_clic_droit_album = reponse.getElementsByTagName("protection_image")[0].firstChild.nodeValue;
			
			document.getElementById("lienRevenirALaSelectionDesAlbums").style.display = 'none';
			document.getElementById("retourAuxMiniatures").style.display = 'block';
			document.getElementById("listePhotos").style.display = 'none';
			document.getElementById("photoSelectionnee").style.display = 'block';
			document.getElementById("photo_a_afficher").style.display = 'block';
			
			var adresse_image = reponse.getElementsByTagName("adresse")[0].firstChild.nodeValue;
			
			var str_image = '<img src="' + adresse_image + '"';
			
			if(anti_clic_droit_album == 'oui'){
				str_image += ' oncontextmenu="javascript:alert(\'Cette image dispose d\\\'un copyright.\');return(false);"';
			} else {
				str_image += ' oncontextmenu=""';
			}
			
			str_image += ' alt="'+adresse_image+'" />';
			
			document.getElementById("photo_a_afficher").innerHTML = str_image;
			
			document.getElementById("descriptionPhoto").innerHTML = reponse.getElementsByTagName("description")[0].firstChild.nodeValue;
			document.getElementById("lienAfficherListePhotos").style.visibility = 'visible';
			document.getElementById("contenuLienAfficherListePhotos").innerHTML = reponse.getElementsByTagName("nom_album")[0].firstChild.nodeValue;
			document.getElementById("contenuLienAfficherListePhotos").style.visibility = 'visible';
			
			document.getElementById("liensNaviguerImages").style.display = 'none';
			
			if(reponse.getElementsByTagName("id_prec")[0].firstChild.nodeValue != 0){
				id = reponse.getElementsByTagName("id_prec")[0].firstChild.nodeValue;
				
				document.getElementById("lienPrecedentPhotoSelectionnee").style.visibility = 'visible';
				document.getElementById("lienPrecedentPhotoSelectionnee").href = "javascript:afficherImageDansGalerie("+id+");";
			} else {
				document.getElementById("lienPrecedentPhotoSelectionnee").style.visibility = 'hidden';
			}
			
			if(reponse.getElementsByTagName("id_suiv")[0].firstChild.nodeValue != 0){
				id = reponse.getElementsByTagName("id_suiv")[0].firstChild.nodeValue;
				
				document.getElementById("lienSuivantPhotoSelectionnee").style.visibility = 'visible';
				document.getElementById("lienSuivantPhotoSelectionnee").href = "javascript:afficherImageDansGalerie("+id+");";
			} else {
				document.getElementById("lienSuivantPhotoSelectionnee").style.visibility = 'hidden';
			}
		}
	}
	
	xhr.open("GET","includes/modules/galerie/afficherImageDansGalerie.php?id="+id_photo,true);
	xhr.send(null);
}

/**
 * afficherListeGaleries()
 * 
 * Dans le chemin de fer, permet de retourner à la liste des albums
 */
function afficherListeGaleries(){
	document.getElementById("listePhotos").innerHTML = '';
	document.getElementById("lienRevenirALaSelectionDesAlbums").style.display = 'none';
	document.getElementById("photo_a_afficher").style.display = 'none';
	document.getElementById("photo_a_afficher").src = "";
	document.getElementById("photoSelectionnee").style.display = 'none';
	document.getElementById("liensNaviguerImages").style.display = 'none';
	document.getElementById("listePhotos").style.display = 'none';
	document.getElementById("listeAlbums").style.display = 'block';
	document.getElementById("liensNaviguerAlbums").style.display = 'block';
	document.getElementById("lienAfficherListeGaleries").style.visibility = 'visible';
	document.getElementById("lienAfficherListePhotos").style.visibility = 'hidden';
	document.getElementById("contenuLienAfficherListePhotos").style.visibility = 'hidden';
	document.getElementById("cheminDeFer").style.display = 'none';
	document.getElementById("retourAuxMiniatures").style.display = 'none';
}

/**
 * afficherListePhotos()
 */
function afficherListePhotos(){
	document.getElementById("lienAfficherListePhotos").style.visibility = 'hidden';
	document.getElementById("contenuLienAfficherListePhotos").style.visibility = 'hidden';
	
	document.getElementById("photo_a_afficher").src = "";
	
	document.getElementById("listeAlbums").style.display = 'none';
	document.getElementById("liensNaviguerAlbums").style.display = 'none';
	document.getElementById("listePhotos").style.display = 'block';
	document.getElementById("liensNaviguerImages").style.display = 'block';
	document.getElementById("photoSelectionnee").style.display = 'none';
	document.getElementById("retourAuxMiniatures").style.display = 'none';
	document.getElementById("lienRevenirALaSelectionDesAlbums").style.display = 'block';
}

/**
 * cesserAffichagePhotoSelectionnee()
 */
function cesserAffichagePhotoSelectionnee(){
	document.getElementById("photo_a_afficher").style.display = 'none';
	document.getElementById("photo_a_afficher").src = "";
	document.getElementById("photoSelectionnee").style.display = 'none';
	document.getElementById("listePhotos").style.display = 'block';
	document.getElementById("lienAfficherListePhotos").style.visibility = 'hidden';
	document.getElementById("contenuLienAfficherListePhotos").style.visibility = 'hidden';
	document.getElementById("liensNaviguerImages").style.display = 'block';
	document.getElementById("retourAuxMiniatures").style.display = 'none';
	document.getElementById("lienRevenirALaSelectionDesAlbums").style.display = 'block';
}

/**
 * listerAlbumsDansGalerie()
 * 
 * Cette fonction liste les albums dans la galerie, dont l'ordre
 * est compris entre deux valeurs, et affiche au besoin les liens
 * "Précédent" et "Suivant"
 * 
 * @param int première valeur
 * @param int seconde valeur
 * @param int nombre d'albums à afficher par page
 */
function listerAlbumsDansGalerie(debut,fin,nombre_max_albums,nombre_max_thumbnails){
	if((debut != null) && (fin != null) && (nombre_max_albums != null)){
		
		var xhr = createAjax();
		
		var nombre_albums = null;
		debut_lien_albums = debut;
		fin_lien_albums = fin;
		
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 4 && xhr.status == 200){
				reponse = clean(xhr.responseXML.documentElement);
				
				document.getElementById("liensNaviguerAlbums").style.display = 'block';
				
				// Mise en place du texte:
				document.getElementById('listeAlbums').innerHTML = reponse.getElementsByTagName("liste")[0].firstChild.nodeValue;
				
				// Récupération du nombre d'albums:
				nombre_albums = reponse.getElementsByTagName("nombre_albums")[0].firstChild.nodeValue;
				
				// Affichage des liens "suivant" et "précédent".
				// Lien "précédent":
				if(debut > 1){
					document.getElementById("lienAlbumPrev").style.display = 'block';
					debut_lien = debut_lien_albums - nombre_max_albums;
					fin_lien = fin_lien_albums - nombre_max_albums;
					
					document.getElementById("ALienAlbumPrev").href = 'javascript:listerAlbumsDansGalerie('+debut_lien+','+fin_lien+','+nombre_max_albums+','+nombre_max_thumbnails+');';
				} else {
					document.getElementById("lienAlbumPrev").style.display = 'none';
				}
				
				// Lien "suivant":
				if(fin < nombre_albums){
					document.getElementById("lienAlbumNext").style.display = 'block';
					debut += nombre_max_albums;
					fin += nombre_max_albums;
					
					document.getElementById("ALienAlbumNext").href = 'javascript:listerAlbumsDansGalerie('+debut+','+fin+','+nombre_max_albums+','+nombre_max_thumbnails+');';
				} else {
					document.getElementById("lienAlbumNext").style.display = 'none';
				}
				
			}
		}
		
		xhr.open("GET","includes/modules/galerie/getGalerieAlbums.php?debut="+debut+"&fin="+fin+"&nombre_thumbnails="+nombre_max_thumbnails,true);
		xhr.send(null);
	}
}

/**
 * afficherVignette()
 * 
 * Lors de l'ajout d'une photo, cette fonction affichera la vignette de l'album choisi.
 * 
 * @param int id de l'album
 * @param string répertoire où sont stockées les vignettes
 * @param string nom de la vignette
 * @param string nom du formulaire
 */
function afficherVignette(numero,dirvignettes,nom_vignette,wichForm){
	if(wichForm == 1){
		document.ajout_photo.submitForm.style.display = 'block';
		document.getElementById('texte_vignette_album_selectionne_ajout_photo').style.display = 'block';
	} else if(wichForm == 2){
		document.getElementById('listeImagesAssociees').style.display = 'block';
	} else if(wichForm == 3){
		document.getElementById('listeImagesSuppression').style.display = 'block';
	}
	
	var xhr = createAjax();
	
	xhr.onreadystatechange = function(){
	// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200){
			reponse = clean(xhr.responseXML.documentElement);
			
			if(reponse.getElementsByTagName("url_vignette")[0].firstChild.nodeValue){
				var nom_image = reponse.getElementsByTagName("url_vignette")[0].firstChild.nodeValue;
				document.getElementById(nom_vignette).innerHTML = '<img src="'+dirvignettes+'/'+nom_image+'" width="90px" height="90px" />';
			}
			else {
				document.getElementById(nom_vignette).innerHTML = '<img src="'+dirvignettes+'/vignette_vide.gif" width="90px" height="90px" />';
			}
			
			if(reponse.getElementsByTagName("protegercontreclicdroit")[0].firstChild.nodeValue == 'oui'){
				gererCheckbox('chckbox_addphoto_anticlic_droit',1);
			} else {
				gererCheckbox('chckbox_addphoto_anticlic_droit',0);
			}
		}
	}
	
	xhr.open("GET","getDetailAlbum.php?id="+numero,true);
	xhr.send(null);
}


function traitementSelectModifierPhoto(id,rep_vignettes,nom_elt,chiffre,num_show_form,base_url){
	if(id != 0){
		afficherVignette(id,rep_vignettes,nom_elt,chiffre);
		afficherListeImagesAssociees(id,num_show_form,base_url);
	}
}

function traitementSelectChoisirAlbumPourOrdonnerPhotos(id,rep_vignettes,nom_elt,chiffre,num_show_form,base_url){
	if(id != 0){
		afficherVignette(id,rep_vignettes,nom_elt,chiffre);
		listerOrdreImages(id, num_show_form, base_url);
	}
}

function traitementSelectChoisirAlbumPourSupprimerPhoto(id,rep_vignettes,nom_elt,chiffre,num_show_form,base_url){
	if(id != 0){
		afficherVignette(id,rep_vignettes,nom_elt,chiffre);
		afficherListeImagesAssocieesPourSuppression(id,num_show_form,base_url);
	}
}

function afficherMessageDansBandeauInformations(texte){
	document.getElementById("bandeauInformations").style.display = 'block';
	document.getElementById("bandeauInformations").innerHTML = texte;
}