/**
 * jQuery Raty - A Star Rating Plugin - http://wbotelhos.com/raty
 * 
 * @author	Washington Botelho dos Santos
 * @twitter wbotelhos
 * 
 * Licensed under The MIT License
 * http://opensource.org/licenses/mit-license.php
 * 
 */

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