var StarRater=new Class({Implements:[Options],options:{whereRater:[null,"inside"],whereMessage:[null,"inside"],size:5,value:0,unitSize:18,starClass:"note-{i}",ratedClass:"rated",jsonVoteURI:"gallery-photo.json",messageOk:"",messageError1:"",messageError2:"",messageOkClass:"message-ok",messageErrorClass:"message-error"},initialize:function(a){this.setOptions(a),this.construct()},construct:function(){var a=this.options.whereRater[0],b=this.options.whereRater[1];if(document.getElements("p.message-error").length==0)var c="a";else var c="span";for(var d=1;d<=this.options.size;d++)a=(new Element(c,{"class":this.options.starClass.substitute({i:d})})).inject(a,b),c=="a"&&a.set("href","#").addEvent("click",this.vote.bind(this)),d==2&&a.setStyle("width",this.options.value*this.options.unitSize+"px"),b="inside"},vote:function(a){var a=a.stop(),b=a.target.get("class").replace(this.options.starClass.substitute({}),"").toInt(),c={note:b,validerVote:"Ok"};document.id("idPhoto")?c.idPhoto=document.id("idPhoto").get("value"):c.idMedia=document.id("idMedia").get("value");var d=(new Request.JSON({url:this.options.jsonVoteURI,onComplete:this.updateDisplay.bind(this)})).get(c)},updateDisplay:function(a){if(!!a){var b=this.options.whereMessage[0].setProperty("class",this.options.ratedClass);b.getElements('a[class^="'+this.options.starClass.substitute({})+'"]').forEach(function(a){a.removeEvents(),a.removeProperty("href")}),a.status=="ok"?((new Element("p",{"class":this.options.messageOkClass,html:this.options.messageOk})).inject(b,this.options.whereMessage[1]),b.getElement("."+this.options.starClass.substitute({i:2})).setStyle("width",a.note*this.options.unitSize)):(new Element("p",{"class":this.options.messageErrorClass,html:a.status=="dejaVote"?this.options.messageError2:this.options.messageError1})).inject(b,this.options.whereMessage[1])}}});document.addEvent("domready",function(){var a=document.getElement("form.rating");a&&(a.getElement("select").destroy(),a.getElement("button").destroy(),new StarRater({whereRater:[a.getElement("p"),"inside"],whereMessage:[a,"top"],jsonVoteURI:"/transaction/votePhoto.php",value:a.getElement("input").get("value"),messageOk:Locale.get("StarRater.Thanks-to-vote"),messageError1:Locale.get("StarRater.You-must-be")+'<a href="/fr/Communaute/501001/Mon-compte">'+Locale.get("StarRater.logged")+"</a>"+Locale.get("StarRater.to-vote"),messageError2:Locale.get("StarRater.Already-voted-for-this-photo")}))})
