jQuery.fn.rating=function(url,options){if(url==null){return }var settings={url:url,increment:1,maxvalue:5,curvalue:0};if(options){jQuery.extend(settings,options)}jQuery.extend(settings,{cancel:(settings.maxvalue>1)?true:false});var container=jQuery(this);jQuery.extend(container,{averageRating:settings.curvalue,url:settings.url});settings.increment=(settings.increment<0.75)?0.5:1;var s=0;for(var i=0;i<=settings.maxvalue;i++){if(i==0){if(settings.cancel==true){var div='<div class="cancel"></div>';container.empty().append(div)}}else{var $div=$('<div class="star"></div>').append('<a href="#'+i+'" title="Give it '+i+"/"+settings.maxvalue+'">'+i+"</a>").appendTo(container);if(settings.increment==0.5){if(s%2){$div.addClass("star-left")}else{$div.addClass("star-right")}}}i=i-1+settings.increment;s++}var stars=jQuery(container).children(".star");var cancel=jQuery(container).children(".cancel");stars.mouseover(function(){event.drain();event.fill(this)}).mouseout(function(){event.drain();event.reset()}).focus(function(){event.drain();event.fill(this)}).blur(function(){event.drain();event.reset()});stars.click(function(){if(settings.cancel==true){settings.curvalue=(stars.index(this)*settings.increment)+settings.increment;jQuery.post(container.url,{"rating":jQuery(this).children("a")[0].href.split("#")[1]});return false}else{if(settings.maxvalue==1){settings.curvalue=(settings.curvalue==0)?1:0;$(this).toggleClass("on");jQuery.post(container.url,{"rating":jQuery(this).children("a")[0].href.split("#")[1]});return false}}return true});if(cancel){cancel.mouseover(function(){event.drain();jQuery(this).addClass("on")}).mouseout(function(){event.reset();jQuery(this).removeClass("on")}).focus(function(){event.drain();jQuery(this).addClass("on")}).blur(function(){event.reset();jQuery(this).removeClass("on")});cancel.click(function(){event.drain();settings.curvalue=0;jQuery.post(container.url,{"rating":jQuery(this).children("a")[0].href.split("#")[1]});return false})}var event={fill:function(el){var index=stars.index(el)+1;stars.children("a").css("width","100%").end().slice(0,index).addClass("hover").end()},drain:function(){stars.filter(".on").removeClass("on").end().filter(".hover").removeClass("hover").end()},reset:function(){stars.slice(0,settings.curvalue/settings.increment).addClass("on").end()}};event.reset();return(this)}