// JavaScript Document

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++) { 
/* Penser que l'évènement se met sans le "on", pas onclick mais click.. */ 
Event.observe(tabStar[j], 'click', saveVote); Event.observe(tabStar[j], 'mouseover', starOver); Event.observe(tabStar[j], 'mouseout', starOut); } } } 



/* 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 = "modules/Artistes/images/star2.png"; 
/* 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 = "modules/Artistes/images/star2.png"; } } 


/* 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 = "modules/Artistes/images/star1.png"; 
/* 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 = "modules/Artistes/images/star1.png"; } } 



/* 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; 
/* Le membre est mit dans l'attribut title */ 
var valueMbr = star.title;
/* Il faut aussi savoir pour qui 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+"&valuembr="+valueMbr } 
/* 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, "modules/Artistes/save_vote.php", options); } 
