(function(e){function n(c){var e=c.originalEvent.changedTouches[0],g="";switch(c.type){case "touchmove":g="mousemove";break;case "touchend":g="mouseup";break;default:return}var j=document.createEvent("MouseEvent");j.initMouseEvent(g,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null);e.target.dispatchEvent(j);c.preventDefault()}e.fn.rateit=function(c,i){var g={},j="init";if(this.length==0)return this;var h=e.type(c);if(h=="object"||c===void 0||c==null)g=e.extend({},e.fn.rateit.defaults,
c);else if(h=="string"&&i===void 0)return this.data("rateit"+(c.charAt(0).toUpperCase()+c.substr(1)));else h=="string"&&(j="setvalue");return this.each(function(){var d=e(this),a=function(a,b){return d.data("rateit"+(a.charAt(0).toUpperCase()+a.substr(1)),b)};d.hasClass("rateit")||d.addClass("rateit");var h=d.css("direction")!="rtl";if(j=="setvalue"){if(!a("init"))throw"Can't set value before init";c=="readonly"&&!a("readonly")&&(d.find(".rateit-range").unbind(),a("wired",!1));if(a("backingfld")){var b=
e(a("backingfld"));c=="value"&&b.val(i);if(c=="min"&&b[0].min)b[0].min=i;if(c=="max"&&b[0].max)b[0].max=i;if(c=="step"&&b[0].step)b[0].step=i}a(c,i)}if(!a("init")){a("min",a("min")||g.min);a("max",a("max")||g.max);a("step",a("step")||g.step);a("readonly",a("readonly")!==void 0?a("readonly"):g.readonly);a("resetable",a("resetable")!==void 0?a("resetable"):g.resetable);a("backingfld",a("backingfld")||g.backingfld);a("starwidth",a("starwidth")||g.starwidth);a("starheight",a("starheight")||g.starheight);
a("value",a("value")||g.min);a("ispreset",a("ispreset")!==void 0?a("ispreset"):g.ispreset);if(a("backingfld")){b=e(a("backingfld"));a("value",b.hide().val());if(b[0].nodeName=="INPUT"&&(b[0].type=="range"||b[0].type=="text"))a("min",parseInt(b.attr("min"))||a("min")),a("max",parseInt(b.attr("max"))||a("max")),a("step",parseInt(b.attr("step"))||a("step"));b[0].nodeName=="SELECT"&&b[0].options.length>1&&(a("min",Number(b[0].options[0].value)),a("max",Number(b[0].options[b[0].length-1].value)),a("step",
Number(b[0].options[1].value)-Number(b[0].options[0].value)))}d.append('<div class="rateit-reset"></div><div class="rateit-range"><div class="rateit-selected" style="height:'+a("starheight")+'px"></div><div class="rateit-hover" style="height:'+a("starheight")+'px"></div></div>');h||(d.find(".rateit-reset").css("float","right"),d.find(".rateit-selected").addClass("rateit-selected-rtl"),d.find(".rateit-hover").addClass("rateit-hover-rtl"));a("init",!0)}var f=d.find(".rateit-range");f.width(a("starwidth")*
(a("max")-a("min"))).height(a("starheight"));var k="rateit-preset"+(h?"":"-rtl");a("ispreset")?d.find(".rateit-selected").addClass(k):d.find(".rateit-selected").removeClass(k);if(a("value")){var l=(a("value")-a("min"))*a("starwidth");d.find(".rateit-selected").width(l)}var b=d.find(".rateit-reset"),m=function(b,d){var c=(d.changedTouches?d.changedTouches[0].pageX:d.pageX)-e(b).offset().left;h||(c=f.width()-c);c>f.width()&&(c=f.width());c<0&&(c=0);return l=Math.ceil(c/a("starwidth")*(1/a("step")))};
a("readonly")?b.hide():(a("resetable")?b.click(function(){a("value",a("min"));f.find(".rateit-hover").hide().width(0);f.find(".rateit-selected").width(0).show();a("backingfld")&&e(a("backingfld")).val(a("min"));d.trigger("reset")}):b.hide(),a("wired")||(f.bind("touchmove touchend",n),f.mousemove(function(b){var b=m(this,b),c=b*a("starwidth")*a("step"),e=f.find(".rateit-hover");e.data("width")!=c&&(f.find(".rateit-selected").hide(),e.width(c).show().data("width",c),d.trigger("hover",[b*a("step")+a("min")]))}),
f.mouseleave(function(){f.find(".rateit-hover").hide().width(0).data("width","");d.trigger("hover",[null]);f.find(".rateit-selected").show()}),f.mouseup(function(b){var b=m(this,b),c=b*a("step")+a("min");a("value",c);a("backingfld")&&e(a("backingfld")).val(c);a("ispreset")&&(f.find(".rateit-selected").removeClass(k),a("ispreset",!1));f.find(".rateit-hover").hide();f.find(".rateit-selected").width(b*a("starwidth")*a("step")).show();d.trigger("hover",[null]).trigger("rated",[c])}),a("wired",!0)),a("resetable")&&
b.show())})};e.fn.rateit.defaults={min:0,max:5,step:0.5,starwidth:16,starheight:16,readonly:!1,resetable:!0,ispreset:!1};e("div.rateit").rateit()})(jQuery);
