Ext.namespace("Ext.ux.form");Ext.ux.form.Rater=function(A){Ext.ux.form.Rater.superclass.constructor.call(this,A);this.addEvents({"beforerating":true,"rate":true})};Ext.extend(Ext.ux.form.Rater,Ext.form.NumberField,{unit:20,disabled:false,ratedValue:undefined,maxValue:5,displayValue:undefined,animate:true,topText:undefined,bottomText:undefined,topHoverText:undefined,bottomHoverText:undefined,rated:false,allowNegative:false,wrapClass:"ux-form-rater-wrap",starsClass:"ux-form-rater-stars",hoverClass:"ux-form-rater-hover",voteClass:"ux-form-rater-vote",votedClass:"ux-form-rater-voted",textTopClass:"ux-form-rater-text-top",textBottomClass:"ux-form-rater-text-bottom",autoSize:Ext.emptyFn,onRender:function(B,A){Ext.ux.form.Rater.superclass.onRender.call(this,B,A);this.wrap=this.el.wrap({cls:this.wrapClass});if(Ext.isIE){this.wrap.setHeight(this.unit)}this.el.addClass("x-hidden");this.createStars();this.createTextContainers();this.displayValue=(this.displayValue>this.maxValue)?this.maxValue:this.displayValue;if(this.displayValue>0||this.getValue()>0){this.displayRating()}},createStars:function(){if(this.getStars().getCount()>0){return }var B=this.wrap.createChild({tag:"ul",cls:this.starsClass}).setSize(this.unit*this.maxValue,this.unit);var E=new Ext.Template('<li class="rating"></li>');var D=new Ext.Template('<li class="star"></li>');E.append(B,[],true).setHeight(this.unit);for(var A=this.maxValue;A>0;A--){var C=D.append(B,[],true);C.setSize(this.unit*A,this.unit)}this.alignStars()},createTextContainers:function(){var A=this.getStarsContainer();if(!this.textTopContainer){this.textTopContainer=Ext.DomHelper.insertBefore(A,{tag:"div",cls:this.textTopClass},true)}if(!this.textBottomContainer){this.textBottomContainer=Ext.DomHelper.insertBefore(A,{tag:"div",cls:this.textBottomClass},true)}this.textTopContainer.addClass("x-hidden");this.textBottomContainer.addClass("x-hidden")},initEvents:function(){Ext.ux.form.Rater.superclass.initEvents.call(this);var B=this.getStarsContainer();var A=this.getStars();A.on("mouseover",this.displayHover,this);A.on("mouseout",this.removeHover,this,{delay:5});A.on("click",this.rate,this);this.initText("top");this.initText("bottom");B.on("mouseover",this.onFocus,this);B.on("mouseout",this.onBlur,this);B.on("click",this.onFocus,this)},initText:function(H){var A=this.getStars();var G=(H=="bottom")?"bottomText":"topText";var C=(H=="bottom")?"setBottomText":"setTopText";var F=(H=="bottom")?"bottomHoverText":"topHoverText";this[C](this[G]);if(!(this[F] instanceof Array)){this[F]=null;return }if(Ext.isEmpty(this[G])){this[G]="&nbsp;"}var B=function(){if(this.disabled){return }this[C](this[F][this.hoverValue-1])};var E=function(){if(this.disabled){return }this[C](this[G])};for(var D=0;D<A.getCount();D++){A.item(D).un("mouseover",B,this);A.item(D).un("mouseout",E,this);A.item(D).on("mouseover",B,this,{delay:5});A.item(D).on("mouseout",E,this)}},reInit:function(A){Ext.apply(this,A);this.rated=false;this.initText("top");this.initText("bottom");this.setValue(this.value);this.setDisabled(false);this.displayRating()},isRated:function(){return this.rated},getTopText:function(){return this.textTopContainer.dom.innerHTML},getBottomText:function(){return this.textBottomContainer.dom.innerHTML},setTopText:function(A){this.textTopContainer.dom.innerHTML=A;(A==null||A=="")?this.textTopContainer.addClass("x-hidden"):this.textTopContainer.removeClass("x-hidden")},setBottomText:function(A){this.textBottomContainer.dom.innerHTML=A;(A==null||A=="")?this.textBottomContainer.addClass("x-hidden"):this.textBottomContainer.removeClass("x-hidden")},getStarsContainer:function(){return this.wrap.select("."+this.starsClass,true).item(0)},getRating:function(){return this.wrap.select("li.rating",true)},getStars:function(){return this.wrap.select("li.star",true)},alignStars:function(){var B=this.getStarsContainer();var C=this.getRating();var A=this.getStars();var E=Ext.fly(document.body).getAlignToXY(B)[0];var D=(B.findParent(".x-form-item",5))?true:false;var F=(B.findParent(".x-editor",5))?true:false;if(!D&&!F){C.setLeft(E);A.setLeft(E)}else{C.alignTo(B,"tl");A.alignTo(B,"tl")}},displayHover:function(D){if(this.disabled){return }var C=Ext.get(D.getTarget());C.addClass(this.hoverClass);var A=this.getStars();var B=0;while(A.item(B)!=null){if(A.item(B)==C){this.hoverValue=this.maxValue-B;return }B++}},displayRating:function(C,E){var D=this.getRating();if(Ext.isEmpty(C)){var C=(this.displayValue==null)?this.getValue():this.displayValue;C=Ext.isEmpty(C)?0:C}else{var C=C}if(this.ratedValue>0){C=this.ratedValue;E=true;this.rated=true;this.disabled=true}var B=function(F,G){(E!=true)?D.replaceClass(F,G):D.replaceClass(G,F)};if(this.animate!=true){B(this.votedClass,this.voteClass);D.setWidth(C*this.unit);return }var A=function(){B(this.votedClass,this.voteClass);D.setWidth(C*this.unit,{easing:"easeIn"}).fadeIn()};D.setWidth(0,{easing:"slideOut",duration:0.45,callback:A,scope:this}).fadeOut()},rate:function(B){if(this.disabled){return }var A=this.hoverValue;this.setValue(A);this.setTopText(this.topText);this.setBottomText(this.bottomText);if(this.fireEvent("beforerating",this)===false){return }this.removeHover(B);this.onBlur();this.rated=true;this.disabled=true;this.el.dom.readOnly=true;this.displayRating(A,true);this.fireEvent("rate",this,A)},removeHover:function(B){if(this.disabled){return }var A=B.getTarget();Ext.fly(A).removeClass(this.hoverClass)},removeListeners:function(){this.wrap.select("*",true).removeAllListeners()},onDisable:function(){Ext.ux.form.Rater.superclass.onDisable.call(this);this.wrap.addClass("x-item-disabled")},onEnable:function(){Ext.ux.form.Rater.superclass.onEnable.call(this);this.wrap.removeClass("x-item-disabled")},onHide:function(){this.wrap.addClass("x-hidden")},onShow:function(){this.wrap.removeClass("x-hidden")}})