(function(f){f.fn.raty=function(l){options=f.extend({},f.fn.raty.defaults,l);if(this.length==0){d("Invalid selector!");return;}else{if(this.length>1){return this.each(function(){f.fn.raty.apply(f(this),[l]);});}}if(options.number>20){options.number=20;}else{if(options.number<0){options.number=0;}}if(options.path.substring(options.path.length-1,options.path.length)!="/"){options.path+="/";}$global=f(this);var j=this.attr("id"),k=0,q=options.starOn,m="";if(j==""){j="raty-"+new Date().getMilliseconds();$global.attr("id",j);}if(!isNaN(options.start)&&options.start>0){k=(options.start>options.number)?options.number:options.start;}for(var n=1;n<=options.number;n++){q=(k>=n)?options.starOn:options.starOff;m=(n<=options.hintList.length&&options.hintList[n-1]!==null)?options.hintList[n-1]:n;$global.append('<img id="'+j+"-"+n+'" src="'+options.path+q+'" alt="'+n+'" title="'+m+'" class="'+j+'"/>').append((n<options.number)?"&nbsp;":"");}f('<input id="'+j+'-score" type="hidden" name="'+options.scoreName+'"/>').appendTo($global).val(k);if(options.showHalf){b($global,f("input#"+j+"-score").val(),options);}if(!options.readOnly){if(options.showCancel){var o=f("img."+j),r='<img src="'+options.path+options.cancelOff+'" alt="x" title="'+options.cancelHint+'" class="button-cancel"/>',h=options,p=$global;if(h.cancelPlace=="left"){$global.prepend(r+"&nbsp;");}else{$global.append("&nbsp;").append(r);}f("#"+j+" img.button-cancel").mouseenter(function(){f(this).attr("src",h.path+h.cancelOn);o.attr("src",h.path+h.starOff);}).mouseleave(function(){f(this).attr("src",h.path+h.cancelOff);o.mouseout();}).click(function(){f("input#"+j+"-score").val(0);if(h.onClick){h.onClick.apply(p,[0]);}});$global.css("width",h.number*20+20);}else{$global.css("width",options.number*20);}$global.css("cursor","pointer");e($global,options);}else{$global.css("cursor","default");g($global,k,options);}return $global;};f.fn.raty.defaults={cancelHint:"cancel this rating!",cancelOff:"cancel-off.png",cancelOn:"cancel-on.png",cancelPlace:"left",hintList:["bad","poor","regular","good","gorgeous"],noRatedMsg:"not rated yet",number:5,path:"img/",iconRange:[],readOnly:false,scoreName:"score",showCancel:false,showHalf:false,starHalf:"star-half.png",starOff:"star-off.png",starOn:"star-on.png",start:0,onClick:null};f.fn.raty.click=function(h){a($global,h,options);if(options.onClick){options.onClick.apply($global,[h]);}else{d('You should add the "onClick: function(score) { }" option.');}return f.fn.raty;};f.fn.raty.readOnly=function(h){var i=$global.find("img.button-cancel");if(i.length>0){(h)?i.hide():i.show();}if(h){f("img."+$global.attr("id")).die();$global.css("cursor","default").die();}else{e($global,options);$global.css("cursor","pointer");}return f.fn.raty;};f.fn.raty.start=function(h){a($global,h,options);return f.fn.raty;};function e(j,i){var l=j.attr("id"),k=f("input#"+l+"-score"),h=f("img."+l).length;f("#"+l).mouseleave(function(){a(j,k.val(),i);});f("img."+l).mouseenter(function(){c(l,this.alt,i);}).click(function(){k.val(this.alt);if(i.onClick){i.onClick.apply(j,[this.alt]);}});}function d(h){if(window.console&&window.console.log){window.console.log(h);}}function c(h,j,q){var k=f("img."+h).length,p=0,n=0,o,l;for(var m=1;m<=k;m++){o=f("img#"+h+"-"+m);if(m<=j){if(q.iconRange&&q.iconRange.length>p){l=q.iconRange[p][0];n=q.iconRange[p][1];if(m<=n){o.attr("src",q.path+l);}if(m==n){p++;}}else{o.attr("src",q.path+q.starOn);}}else{o.attr("src",q.path+q.starOff);}}}function g(i,j,h){if(j!=0){j=parseInt(j);hint=(j>0&&h.number<=h.hintList.length&&h.hintList[j-1]!==null)?h.hintList[j-1]:j;}else{hint=h.noRatedMsg;}f("#"+i.attr("id")).attr("title",hint).children("img").attr("title",hint);}function a(i,j,h){var k=i.attr("id");if(j<0||isNaN(j)){j=0;}else{if(j>h.number){j=h.number;}}f("input#"+k+"-score").val(j);c(k,j,h);if(h.showHalf){b(i,j,h);}if(h.readOnly||i.css("cursor")=="default"){g(i,j,h);}}function b(j,l,i){var m=j.attr("id"),h=Math.ceil(l),k=(h-l).toFixed(1);if(k>=0.3&&k<=0.7){h=h-0.5;f("img#"+m+"-"+Math.ceil(h)).attr("src",i.path+i.starHalf);}else{if(k>=0.8){h--;}else{f("img#"+m+"-"+h).attr("src",i.path+i.starOn);}}}})(jQuery);
