// Pour le tri des chiffres
function sortNumber(a,b)
{
return a - b;
}


// Pour ouvrir une requête AJAX
function getHTTPObject() 
{
	var xhr_object = false; // Valeur par défaut
	
	if(window.XMLHttpRequest) // Firefox   
		xhr_object = new XMLHttpRequest();   
		
	else if (window.ActiveXObject) // Internet Explorer   
		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");   
		
	else // XMLHttpRequest non supporté par le navigateur   
		alert("Votre navigateur ne peut afficher le viewer. Essayez Mozilla Firefox.");   

	return xhr_object;  

}

function gestionTouches(evenement)
{
	var touche = window.event ? evenement.keyCode : evenement.which;
	if (touche == 39) // Si la touche pressée est la flèche droite
		pageSuivante(); 
	else if (touche == 37)  // Si la touche pressée est la flèche gauche
		pagePrecedente();
}


function listerChapitreConnu(manga, chap) // Pour afficher les chapitres une fois que l'utilisateur a choisi le manga
{
	document.getElementById('manga').value = manga;
	listerChapitres(chap);
}


function listerChapitres(chap) // Pour afficher les chapitres une fois que l'utilisateur a choisi le manga
{
	manga = document.getElementById('manga').value;
	var requete = getHTTPObject(); // On crée la requête.
	var url='listerChapitres.php'; // URL de la page qui va recevoir la requête.
	requete.open('POST', url, true); // On ouvre la requête avec la méthode POST, en mode asynchrone.
	requete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Encodage de la reqûete
	requete.onreadystatechange = function() 
	{ 
		document.getElementById('chapitre').innerHTML = '';
	
		if(requete.readyState == 4) // Si la requête a été correctement effectuée
		{
			// chapitres est un tableau de string. On récupère la réponse de la requête, qui est une grande chaine de caractere "340 341 342..."
			// et on va séparer cette chaine en plusieurs éléments "340" "341" "342". Chaque élément est placé dans une case du tableau chapitres.
			var chapitres = requete.responseText.split('//'); 
			
			var cpt = 0; // Compteur du nombre de chapitres
			
			while ( cpt < (chapitres.length - 1)) // On parcourt tout les chapitres disponibles
			{
				choix = document.createTextNode(chapitres[cpt]); // Le choix à ajouter dans la liste déroulante
				cible = document.createElement('option'); // On crée une balise <option> 
				cible.appendChild(choix);
				cible.setAttribute('value', chapitres[cpt]); // On insère l'attribut value = "valeur"
				document.getElementById('chapitre').appendChild(cible); // On ajoute notre balise dans le code, à l'endroit spécifié.
				
				cpt++;
			}
			
			if (!chap)
				document.getElementById("chapitre").value = chapitres[cpt - 1]; // On affiche le dernier chapitre en date.
			else 
				document.getElementById("chapitre").value = chap;
			listerPages(); // On liste les pages correspondantes.
		}
	};
	requete.send('manga='+manga); // On envoie la requête.
}


function listerPages() // Pour afficher les pages une fois que l'utilisateur a choisi le manga et le chapitre
{
	manga = document.getElementById('manga').value;
	chapitre = document.getElementById('chapitre').value;
	var requete = getHTTPObject(); // On crée la requête.
	var url='listerPages.php'; // URL de la page qui va recevoir la requête.
	requete.open('POST', url, true); // On ouvre la requête avec la méthode POST, en mode asynchrone.
	requete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Encodage de la reqûete
	requete.onreadystatechange = function() 
	{ 
		document.getElementById('page').innerHTML = '';
	
		if(requete.readyState == 4) // Si la requête a été correctement effectuée
		{
			nbrPages = requete.responseText;
			
			var cpt = 1;
			
			while ( cpt <= nbrPages)
			{
				choix = document.createTextNode(cpt); // Le choix à ajouter dans la liste déroulante
				cible = document.createElement('option'); // On crée une balise <option> 
				cible.appendChild(choix);
				cible.setAttribute('value', cpt); // On insère l'attribut value = "valeur"
				document.getElementById('page').appendChild(cible); // On ajoute notre balise dans le code, à l'endroit spécifié.
				
				cpt++;
			}
			
			afficherImage();
		}
	};
	requete.send('manga='+manga+'&chapitre='+chapitre); // On envoie la requête.
}


function afficherImage() // Pour afficher une image
{
	manga = document.getElementById('manga').value;
	chapitre = document.getElementById('chapitre').value;
	page = document.getElementById('page').value;
	var requete = getHTTPObject(); // On crée la requête.
	var url='lienImage.php'; // URL de la page qui va recevoir la requête.
	requete.open('POST', url, true); // On ouvre la requête avec la méthode POST, en mode asynchrone.
	requete.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Encodage de la reqûete
	requete.onreadystatechange = function() 
	{ 
		document.getElementById('image').innerHTML = '';
	
		if(requete.readyState == 4) // Si la requête a été correctement effectuée
		{
			lienImage = requete.responseText;
			choix = document.createTextNode(lienImage); // Le choix à ajouter
			cible = document.createElement('img'); // On crée une balise <img> 
			cible.setAttribute('src', lienImage); // On insère l'attribut src = "lienImage"
			numImage = document.getElementById('page').value;
			if (numImage != '')
				cible.setAttribute('alt', numImage); // On insère l'attribut alt = numero de l'image
			else
				cible.setAttribute('alt', ' Image introuvable '); // On insère l'attribut alt = 'introuvable'
			// cible.setAttribute('onclick', 'pageSuivante();'); // Quand l'utilisateur clique sur l'image, l'action pageSuivante() s'effectue
			document.getElementById('image').appendChild(cible); // On ajoute notre balise dans le code, à l'endroit spécifié.
		}
	};
	requete.send('manga='+manga+'&chapitre='+chapitre+'&page='+page); // On envoie la requête.
}


function changerChapitre(chapitre)
{
	document.getElementById("formulaire").chapitres.value = chapitre;
}


function changerPage(page)
{
	document.getElementById("formulaire").pages.value = page;
}


function pagePrecedente()
{
	if (document.getElementById("page").value != 1) // Si l'on n'est pas à la première page
	{
		document.getElementById("page").value--;
		afficherImage();
	}
	else
	{
		document.getElementById("chapitre").value--;
		afficherImage();
	}
}


function pageSuivante ()
{
	if (estDernierePage() == false) // Si l'on n'est pas à la dernière page
	{
		document.getElementById("page").value++;
		afficherImage();
	}
	else // Si on est à la dernière page
	{
		if (estDernierChapitre() == false) // Si l'on n'est pas au dernier chapitre
		{
			document.getElementById("chapitre").value++;
			listerPages();
			document.getElementById("page").value = 1;
			afficherImage();
		}
	}
}


function estDernierePage()
{
	manga = document.getElementById('manga').value; // On récupère le manga actuel
	numChapitre = document.getElementById('chapitre').value; // On récupère le numéro du chapitre actuel
	numPage = document.getElementById('page').value; // On récupère le numéro de la page actuelle
	dernierePage = false; // Booléen indiquant si la page en question est la dernière
	
	requete = getHTTPObject(); // On crée la requête.
	requete.open('GET', 'estDernierePage.php?manga='+manga+'&chapitre='+numChapitre+'&page='+numPage, false); // On ouvre la requête avec la méthode GET, en mode synchrone.
	requete.send(null); // On envoie la requête.
	
	if (requete.responseText == "true") // Si la réponse est "true"
	{
		dernierePage = true;
		// alert("true");
	}
	else // Si la réponse est false
	{
		dernierePage = false;
		// alert("false");
	}
	
	return dernierePage;
}


function estDernierChapitre() // Renvoie true si le chapitre en cours est le dernier
{
	manga = document.getElementById('manga').value; // On récupère le manga actuel
	numChapitre = document.getElementById('chapitre').value; // On récupère le numéro du chapitre actuel
	dernierChapitre = false; // Booléen indiquant si le chapitre en question est le dernier
	requete = getHTTPObject(); // On crée la requête.
	requete.open('GET', 'estDernierChapitre.php?manga='+manga+'&chapitre='+numChapitre, false); // On ouvre la requête avec la méthode GET, en mode synchrone.
	requete.send(null); // On envoie la requête.
	
	if (requete.responseText == "true") // Si la réponse est "true"
	{
		dernierChapitre = true;
		// alert("true");
	}
	else // Si la réponse est false
	{
		dernierChapitre = false;
		// alert("false");
	}
	
	return dernierChapitre;
}


function buttonOver(bouton)
{
	bouton.style.border = "solid 1px white";
		bouton.style.color = "white";
}


function buttonOut(bouton)
{
	bouton.style.border = "solid 1px black";
	bouton.style.color = "black";
}