(function(n){var r,i,t;return i=typeof window!="undefined"&&window!==null?window:global,t="ontouchstart"in i,i.BarRating=r=function(){function i(){this.show=function(){var i=n(this.elem),r,f,u=this.options,e,o,s=t?"touchstart":"click";if(!i.data("barrating")){if(o=u.initialRating?n('option[value="'+u.initialRating+'"]',i):n("option:selected",i),i.data("barrating",{currentRatingValue:o.val(),currentRatingText:o.text(),originalRatingValue:o.val(),originalRatingText:o.text()}),r=n("<div />",{"class":"br-widget"}).insertAfter(i),i.find("option").each(function(){var t,i,f,e;t=n(this).val();t&&(i=n(this).text(),f=n("<a />",{href:"#","data-rating-value":t,"data-rating-text":i}),e=n("<span />",{text:u.showValues?i:""}),r.append(f.append(e)))}),u.showSelectedRating&&r.append(n("<div />",{text:"","class":"br-current-rating"})),i.data("barrating").deselectable=i.find("option:first").val()?!1:!0,e=u.reverse?"nextAll":"prevAll",u.reverse&&r.addClass("br-reverse"),u.readonly&&r.addClass("br-readonly"),r.on("ratingchange",function(t,r,f){r=r?r:i.data("barrating").currentRatingValue;f=f?f:i.data("barrating").currentRatingText;i.find('option[value="'+r+'"]').prop("selected",!0);u.showSelectedRating&&n(this).find(".br-current-rating").text(f)}).trigger("ratingchange"),r.on("updaterating",function(){n(this).find('a[data-rating-value="'+i.data("barrating").currentRatingValue+'"]').addClass("br-selected br-current")[e]().addClass("br-selected")}).trigger("updaterating"),f=r.find("a"),t||u.readonly)f.on("click",function(n){n.preventDefault()});if(!u.readonly){f.on(s,function(t){var o=n(this),s,h;return t.preventDefault(),f.removeClass("br-active br-selected"),o.addClass("br-selected")[e]().addClass("br-selected"),s=o.attr("data-rating-value"),h=o.attr("data-rating-text"),o.hasClass("br-current")&&i.data("barrating").deselectable?(o.removeClass("br-selected br-current")[e]().removeClass("br-selected br-current"),s="",h=""):(f.removeClass("br-current"),o.addClass("br-current")),i.data("barrating").currentRatingValue=s,i.data("barrating").currentRatingText=h,r.trigger("ratingchange"),u.onSelect.call(this,i.data("barrating").currentRatingValue,i.data("barrating").currentRatingText),!1});if(!t){f.on({mouseenter:function(){var t=n(this);f.removeClass("br-active").removeClass("br-selected");t.addClass("br-active")[e]().addClass("br-active");r.trigger("ratingchange",[t.attr("data-rating-value"),t.attr("data-rating-text")])}});r.on({mouseleave:function(){f.removeClass("br-active");r.trigger("ratingchange").trigger("updaterating")}})}}i.hide()}};this.clear=function(){var t=n(this.elem),i=t.next(".br-widget");i&&t.data("barrating")&&(i.find("a").removeClass("br-selected br-current"),t.data("barrating").currentRatingValue=t.data("barrating").originalRatingValue,t.data("barrating").currentRatingText=t.data("barrating").originalRatingText,i.trigger("ratingchange").trigger("updaterating"),this.options.onClear.call(this,t.data("barrating").currentRatingValue,t.data("barrating").currentRatingText))};this.destroy=function(){var t=n(this.elem),i=t.next(".br-widget"),r,u;i&&t.data("barrating")&&(r=t.data("barrating").currentRatingValue,u=t.data("barrating").currentRatingText,t.removeData("barrating"),i.off().remove(),t.show(),this.options.onDestroy.call(this,r,u))}}return i.prototype.init=function(t,i){var r;return r=this,r.elem=i,r.options=n.extend({},n.fn.barrating.defaults,t)},i}(),n.fn.barrating=function(t,i){return this.each(function(){var u=new r;if(n(this).is("select")||n.error("Sorry, this plugin only works with select fields."),u.hasOwnProperty(t))return u.init(i,this),u[t]();if(typeof t!="object"&&t)n.error("Method "+t+" does not exist on jQuery.barrating");else return i=t,u.init(i,this),u.show()})},n.fn.barrating.defaults={initialRating:null,showValues:!1,showSelectedRating:!0,reverse:!1,readonly:!1,onSelect:function(){},onClear:function(){},onDestroy:function(){}}})(jQuery),function(n){function t(n){var u=n.originalEvent.changedTouches,t=u[0],i="",r;switch(n.type){case"touchmove":i="mousemove";break;case"touchend":i="mouseup";break;default:return}r=document.createEvent("MouseEvent");r.initMouseEvent(i,!0,!0,window,1,t.screenX,t.screenY,t.clientX,t.clientY,!1,!1,!1,!1,0,null);t.target.dispatchEvent(r);n.preventDefault()}n.rateit={aria:{resetLabel:"reset rating",ratingLabel:"rating"}};n.fn.rateit=function(i,r){var e=1,u={},o="init",s=function(n){return n.charAt(0).toUpperCase()+n.substr(1)},f;if(this.length==0)return this;if(f=n.type(i),f=="object"||i===undefined||i==null)u=n.extend({},n.fn.rateit.defaults,i);else{if(f=="string"&&i!=="reset"&&r===undefined)return this.data("rateit"+s(i));f=="string"&&(o="setvalue")}return this.each(function(){var c=n(this),f=function(n,t){if(t!=null){var i="aria-value"+(n=="value"?"now":n),r=c.find(".rateit-range");r.attr(i)!=undefined&&r.attr(i,t)}return arguments[0]="rateit"+s(n),c.data.apply(c,arguments)},p,w,v,h,d,g,l,y,b,a;if(i=="reset"){p=f("init");for(w in p)c.data(w,p[w]);f("backingfld")&&(h=n(f("backingfld")),h.val(f("value")),h[0].min&&(h[0].min=f("min")),h[0].max&&(h[0].max=f("max")),h[0].step&&(h[0].step=f("step")));c.trigger("reset")}if(c.hasClass("rateit")||c.addClass("rateit"),v=c.css("direction")!="rtl",o=="setvalue"){if(!f("init"))throw"Can't set value before init";i!="readonly"||r!=!0||f("readonly")||(c.find(".rateit-range").unbind(),f("wired",!1));i=="value"&&(r=r==null?f("min"):Math.max(f("min"),Math.min(f("max"),r)));f("backingfld")&&(h=n(f("backingfld")),i=="value"&&h.val(r),i=="min"&&h[0].min&&(h[0].min=r),i=="max"&&h[0].max&&(h[0].max=r),i=="step"&&h[0].step&&(h[0].step=r));f(i,r)}f("init")||(f("min",f("min")||u.min),f("max",f("max")||u.max),f("step",f("step")||u.step),f("readonly",f("readonly")!==undefined?f("readonly"):u.readonly),f("resetable",f("resetable")!==undefined?f("resetable"):u.resetable),f("backingfld",f("backingfld")||u.backingfld),f("starwidth",f("starwidth")||u.starwidth),f("starheight",f("starheight")||u.starheight),f("value",Math.max(f("min"),Math.min(f("max"),f("value")||u.value||u.min))),f("ispreset",f("ispreset")!==undefined?f("ispreset"):u.ispreset),f("backingfld")&&(h=n(f("backingfld")),f("value",h.hide().val()),(h.attr("disabled")||h.attr("readonly"))&&f("readonly",!0),h[0].nodeName=="INPUT"&&(h[0].type=="range"||h[0].type=="text")&&(f("min",parseInt(h.attr("min"))||f("min")),f("max",parseInt(h.attr("max"))||f("max")),f("step",parseInt(h.attr("step"))||f("step"))),h[0].nodeName=="SELECT"&&h[0].options.length>1&&(f("min",Number(h[0].options[0].value)),f("max",Number(h[0].options[h[0].length-1].value)),f("step",Number(h[0].options[1].value)-Number(h[0].options[0].value)))),d=c[0].nodeName=="DIV"?"div":"span",e++,g='<button id="rateit-reset-{{index}}" data-role="none" class="rateit-reset" aria-label="'+n.rateit.aria.resetLabel+'" aria-controls="rateit-range-{{index}}"><\/button><{{element}} id="rateit-range-{{index}}" class="rateit-range" tabindex="0" role="slider" aria-label="'+n.rateit.aria.ratingLabel+'" aria-owns="rateit-reset-{{index}}" aria-valuemin="'+f("min")+'" aria-valuemax="'+f("max")+'" aria-valuenow="'+f("value")+'"><{{element}} class="rateit-selected" style="height:'+f("starheight")+'px"><\/{{element}}><{{element}} class="rateit-hover" style="height:'+f("starheight")+'px"><\/{{element}}><\/{{element}}>',c.append(g.replace(/{{index}}/gi,e).replace(/{{element}}/gi,d)),v||(c.find(".rateit-reset").css("float","right"),c.find(".rateit-selected").addClass("rateit-selected-rtl"),c.find(".rateit-hover").addClass("rateit-hover-rtl")),f("init",JSON.parse(JSON.stringify(c.data()))));c.find(".rateit-selected, .rateit-hover").height(f("starheight"));l=c.find(".rateit-range");l.width(f("starwidth")*(f("max")-f("min"))).height(f("starheight"));y="rateit-preset"+(v?"":"-rtl");f("ispreset")?c.find(".rateit-selected").addClass(y):c.find(".rateit-selected").removeClass(y);f("value")!=null&&(b=(f("value")-f("min"))*f("starwidth"),c.find(".rateit-selected").width(b));a=c.find(".rateit-reset");a.data("wired")!==!0&&a.bind("click",function(n){n.preventDefault();a.blur();c.rateit("value",null);c.trigger("reset")}).data("wired",!0);var nt=function(t,i){var u=i.changedTouches?i.changedTouches[0].pageX:i.pageX,r=u-n(t).offset().left;return v||(r=l.width()-r),r>l.width()&&(r=l.width()),r<0&&(r=0),b=Math.ceil(r/f("starwidth")*(1/f("step")))},tt=function(n){var t=n*f("starwidth")*f("step"),r=l.find(".rateit-hover"),i;r.data("width")!=t&&(l.find(".rateit-selected").hide(),r.width(t).show().data("width",t),i=[n*f("step")+f("min")],c.trigger("hover",i).trigger("over",i))},k=function(t){f("value",t);f("backingfld")&&n(f("backingfld")).val(t);f("ispreset")&&(l.find(".rateit-selected").removeClass(y),f("ispreset",!1));l.find(".rateit-hover").hide();l.find(".rateit-selected").width(t*f("starwidth")-f("min")*f("starwidth")).show();c.trigger("hover",[null]).trigger("over",[null]).trigger("rated",[t])};f("readonly")?a.hide():(f("resetable")||a.hide(),f("wired")||(l.bind("touchmove touchend",t),l.mousemove(function(n){var t=nt(this,n);tt(t)}),l.mouseleave(function(){l.find(".rateit-hover").hide().width(0).data("width","");c.trigger("hover",[null]).trigger("over",[null]);l.find(".rateit-selected").show()}),l.mouseup(function(n){var t=nt(this,n),i=t*f("step")+f("min");k(i);l.blur()}),l.keyup(function(n){(n.which==38||n.which==(v?39:37))&&k(Math.min(f("value")+f("step"),f("max")));(n.which==40||n.which==(v?37:39))&&k(Math.max(f("value")-f("step"),f("min")))}),f("wired",!0)),f("resetable")&&a.show());l.attr("aria-readonly",f("readonly"))})};n.fn.rateit.defaults={min:0,max:5,step:.5,starwidth:16,starheight:16,readonly:!1,resetable:!0,ispreset:!1};n(function(){n("div.rateit, span.rateit").rateit()})}(jQuery)