var Translator=Class.create({initialize:function(){this.words=["zero","one","two","three","four","five"];},getWord:function(index){return this.words[index];},getNumber:function(word){var toRet;$A(this.words).each(function(value,index){if(value==word){toRet=index;}});return toRet;}});var StarRater=Class.create({initialize:function(elemid,opts){this.translator=new Translator();this.main=$(elemid);if(!this.main){return false;}this.opts=opts||{};this.radios=this.main.select("input[type=radio]");this.image=this.opts.image||"/static/imgs/sprites/estrellas.png";this.main.hide();this.value=0;this.showLabel=this.opts.showLabel!=undefined?this.opts.showLabel:true;if(this.opts){this.value=this.opts.value||this.value;this.callback=this.opts.callback||undefined;}var listContainer=new Element("ul",{"class":"rating"});listContainer.addClassName(this.translator.getWord(this.value)+"star");for(var i=1;i<=5;i++){var starLink=new Element("a",{href:"#",title:this.radios[i].up().innerHTML.stripTags()});starLink.update(i);var starLi=new Element("li",{"class":this.translator.getWord(i)});starLi.observe("click",this.select.bindAsEventListener(this));starLink.observe("click",this.select.bindAsEventListener(this));var img=this.image;starLink.observe("mouseover",function(){this.setStyle({backgroundImage:"url("+img+")"});});starLink.observe("mouseout",function(){this.setStyle({backgroundImage:"none"});});starLi.appendChild(starLink);listContainer.appendChild(starLi);this.hint=new Element("span",{"class":"hint"});listContainer.appendChild(this.hint);starLi.observe("mouseover",this.showHint.bindAsEventListener(this));starLi.observe("mouseout",this.restoreHint.bindAsEventListener(this));}if(this.value>0){this.hint.update(this.initHint());}listContainer.setStyle({backgroundImage:"url("+this.image+")"});$(this.main.parentNode).insert(listContainer);},select:function(ev){var rater=ev.findElement("ul");var oldValue=this.value;var li=ev.findElement("li");var value=this.translator.getNumber(li.className);if(oldValue==value){value=0;this.reset(oldValue);}var radio=this.radios[value];this.value=value;rater.removeClassName(this.translator.getWord(oldValue)+"star");rater.addClassName(this.translator.getWord(value)+"star");if(this.callback){radio.observe("click",this.callback.bindAsEventListener());}radio.click();ev.stop();this.setHint(this.value);},showHint:function(ev){if(ev.findElement("li").hasClassName("reset")){ev.findElement("li").removeClassName("reset");}var value=this.translator.getNumber(ev.findElement("li").className);var radio=$(this.radios[value]);if(this.showLabel){this.hint.update(radio.up().innerHTML.stripTags());}else{this.hint.update("&nbsp;");}},restoreHint:function(ev){var value=this.value;var radio=$(this.radios[value]);if(this.showLabel){this.hint.update(radio.up().innerHTML.stripTags());}else{this.hint.update("&nbsp;");}},initHint:function(){var radio=$(this.radios[this.value]);if(this.showLabel){return radio.up().innerHTML.stripTags();}else{return"&nbsp;";}},setHint:function(value){var radio=$(this.radios[value]);if(this.showLabel){this.hint.update(radio.up().innerHTML.stripTags());}else{this.hint.update("&nbsp;");}},reset:function(value){var rater=$$("ul.rating");rater.first().removeClassName(this.translator.getWord(value)+"star");rater.first().addClassName(this.translator.getWord(0)+"star");rater.first().select("li."+this.translator.getWord(value)).first().addClassName("reset");this.setHint(0);}});
