Prado.WebUI.TRatingList=Base.extend({selectedIndex:-1,rating:-1,readOnly:false,constructor:function(a){var b=$(a.CaptionID);this.options=Object.extend({caption:b?b.innerHTML:""},a||{});Prado.WebUI.TRatingList.register(this);this._init();Prado.Registry.set(a.ListID,this);this.selectedIndex=a.SelectedIndex;this.rating=a.Rating;this.readOnly=a.ReadOnly;if(a.Rating<=0&&a.SelectedIndex>=0){this.rating=a.SelectedIndex+1}this.setReadOnly(this.readOnly)},_init:function(c){Element.addClassName($(this.options.ListID),this.options.Style);this.radios=new Array();this._mouseOvers=new Array();this._mouseOuts=new Array();this._clicks=new Array();var b=0;for(var d=0;d<this.options.ItemCount;d++){var a=$(this.options.ListID+"_c"+d);var e=a.parentNode.parentNode;if(a&&e.tagName.toLowerCase()=="td"){this.radios.push(a);this._mouseOvers.push(this.hover.bindEvent(this,b));this._mouseOuts.push(this.recover.bindEvent(this,b));this._clicks.push(this.click.bindEvent(this,b));b++;Element.addClassName(e,"rating")}}},hover:function(d,a){if(this.readOnly==true){return}for(var b=0;b<this.radios.length;b++){var c=this.radios[b].parentNode.parentNode;var e=b<=a?"addClassName":"removeClassName";Element[e](c,"rating_hover");Element.removeClassName(c,"rating_selected");Element.removeClassName(c,"rating_half")}this.showCaption(this.getIndexCaption(a))},recover:function(b,a){if(this.readOnly==true){return}this.showRating(this.rating);this.showCaption(this.options.caption)},click:function(c,a){if(this.readOnly==true){return}for(var b=0;b<this.radios.length;b++){this.radios[b].checked=(b==a)}this.selectedIndex=a;this.setRating(a+1);if(this.options.AutoPostBack==true){this.dispatchRequest(c)}},dispatchRequest:function(b){var a=Object.extend({ID:this.options.ListID+"_c"+this.selectedIndex,EventTarget:this.options.ListName+"$c"+this.selectedIndex},this.options);Prado.PostBack(b,a)},setRating:function(f){this.rating=f;var e=Math.floor(f-1);var d=f-e-1;var g=this.options.HalfRating["1"];var b=d>g?e+1:e;for(var c=0;c<this.radios.length;c++){this.radios[c].checked=(c==b)}var a=this.getIndexCaption(b);this.setCaption(a);this.showCaption(a);this.showRating(this.rating)},showRating:function(h){var a=Math.floor(h-1);var j=h-a-1;var g=this.options.HalfRating["0"];var k=this.options.HalfRating["1"];var f=j>k?a+1:a;var e=j>=g&&j<=k;for(var d=0;d<this.radios.length;d++){var b=this.radios[d].parentNode.parentNode;var c=d>f?"removeClassName":"addClassName";Element[c](b,"rating_selected");if(d==f+1&&e){Element.addClassName(b,"rating_half")}else{Element.removeClassName(b,"rating_half")}Element.removeClassName(b,"rating_hover")}},getIndexCaption:function(a){return a>-1?this.radios[a].value:this.options.caption},showCaption:function(b){var a=$(this.options.CaptionID);if(a){a.innerHTML=b}$(this.options.ListID).title=b},setCaption:function(a){this.options.caption=a;this.showCaption(a)},setReadOnly:function(c){this.readOnly=c;for(var a=0;a<this.radios.length;a++){var b=c?"addClassName":"removeClassName";Element[b](this.radios[a].parentNode.parentNode,"rating_disabled");var b=c?"stopObserving":"observe";var d=this.radios[a].parentNode.parentNode;Event[b](d,"mouseover",this._mouseOvers[a]);Event[b](d,"mouseout",this._mouseOuts[a]);Event[b](d,"click",this._clicks[a])}this.showRating(this.rating)}},{ratings:{},register:function(a){Prado.WebUI.TRatingList.ratings[a.options.ListID]=a},setReadOnly:function(b,a){Prado.WebUI.TRatingList.ratings[b].setReadOnly(a)},setRating:function(b,a){Prado.WebUI.TRatingList.ratings[b].setRating(a)},setCaption:function(b,a){Prado.WebUI.TRatingList.ratings[b].setCaption(a)}});Prado.WebUI.TActiveRatingList=Prado.WebUI.TRatingList.extend({dispatchRequest:function(c){var a=Object.extend({ID:this.options.ListID+"_c"+this.selectedIndex,EventTarget:this.options.ListName+"$c"+this.selectedIndex},this.options);var b=new Prado.CallbackRequest(a.EventTarget,a);if(b.dispatch()==false){Event.stop(c)}}});
