// JavaScript Document
/* Tutos by eMeRiKa */
/* http://www.affinity-web.org */
/* URL tuto : http://www.affinity-web.org/lanews-48.php */
/* Bonne utilisation :p */

if (window.XMLHttpRequest)                 //  Objet de la fenêtre courant
{ 
    xhr = new XMLHttpRequest();     //  Firefox, Safari, ...
} 
else 
   if (window.ActiveXObject)                    //  Version Active
   {
      xhr = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer 
   }

/* Evènement globale appelle une fonction qui va gérer tout les autres évènements */
Event.observe(window, 'load', page_loaded);
	
/* Fonction qui gére tout les évènements */
function page_loaded(evt) {
	
	/* Récupère toutes les éléments p où se trouvent les étoiles de vote */
	var zonevote = document.getElementsByClassName('zone_vote');
	
	/* Pour chaque élément p on attribut un event sur toutes les étoiles */
	for(var i=0; i<zonevote.length; i++) {
    	
		/* Les étoiles de la zone de vote => tout les éléments fils de notre p */
		var tabStar = zonevote[i].childNodes;

		/* Pour chaque étoile, les 3 évènements */
		for(var j=0; j<tabStar.length; j++) {
			
			Event.observe(tabStar[j], 'click', saveVote);
			Event.observe(tabStar[j], 'mouseover', starOver);
			Event.observe(tabStar[j], 'mouseout', starOut);
			
		}
		
  	}

}

/* Enregistrement en ajax du vote */
function saveVote(evt) {
		
	/* On récupère l'élément HTML img */
	var star = Event.element(evt);
	
	/* La note est mise dans l'attribut alt */
	var valueStar = star.alt;
	
	/* Il faut aussi savoir pourquoi on vote */
	/* Ici on récupère l'id de l'élément span parent des étoiles */
	/* En utilisant la méthode de Prototype Element.up() */
	var idvote = star.up(0).id;
	
	/* Requète Ajax */
	var options = {
		method: "get",
		parameters: "idvote="+idvote+"&valuestar="+valueStar
		}
		/* On va modifier le contenu du span des étoiles avec l'url qu'on lui donne */
		/* Le fichier save_vote.php gère aussi l'enregistrement en BDD */
		var  ajaxCall = new Ajax.Updater(idvote, "pages/includes/save_vote.php", options);
}

/* Etoiles du survol */
function starOver(evt) {
	
	/* On récupère l'élément HTML img */
	var star = Event.element(evt);
	
	/* Cette élément étoile et tous les éléments frères précédents doivent changer d'image */
	star.src = "img/gen/star.jpg";
	
	/* J'utilise ici la méthode de Prototype Element.previousSiblings() qui récupère tous les frères précédents */
	var starPre = star.previousSiblings();
	
	for(var i=0; i<starPre.length; i++) {
		starPre[i].src = "img/gen/star.jpg";
	}
	
}

/* Etoiles normal */
function starOut(evt) {
	
	/* On récupère l'élément HTML img */
	var star = Event.element(evt);
	
	/* Cette élément étoile et tous les éléments frères précédents doivent changer d'image */
	star.src = "img/gen/star_gris.jpg";
	
	/* J'utilise ici la méthode de Prototype Element.previousSiblings() qui récupère tous les frères précédents */
	var starPre = star.previousSiblings();
	
	for(var i=0; i<starPre.length; i++) {
		starPre[i].src = "img/gen/star_gris.jpg";
	}
	
}
	
