jQuery.fn.rating=function(inputvalue,options){if(inputvalue==null)return;var settings={inputvalue:inputvalue,increment:1,maxvalue:5,curvalue:0,readonly:false,color:'star-r'};if(options){jQuery.extend(settings,options);};jQuery.extend(settings,{cancel:((!settings.readonly)&&(settings.maxvalue>1))?true:false});var container=jQuery(this).empty();jQuery.extend(container,{averageRating:settings.curvalue,inputvalue:settings.inputvalue});if(settings.increment<1)
settings.increment=.25;var s=-1;for(var i=0;i<=settings.maxvalue;i++){if(i==0){if(settings.cancel==true){var div='<div class="cancel"><a href="#0" title="">Cancel Rating</a></div>';container.append(div);}}else{var $div=$('<div class="'+settings.color+'"></div>')
.append('<a href="#'+i+'" title="'+(settings.readonly?(settings.curvalue):(i+'/'+settings.maxvalue))+'" '+(settings.readonly?('style="cursor: default;"'):(''))+'>'+i+'</a>')
.appendTo(container);if(settings.increment==.25){if(s%4==0)
$div.addClass(settings.color+'-1');if(s%4==1)
$div.addClass(settings.color+'-2');if(s%4==2)
$div.addClass(settings.color+'-3');if(s%4==3)
$div.addClass(settings.color+'-4');}}
i=i-1+settings.increment;s++;}
var stars=jQuery(container).children('.'+settings.color);var cancel=jQuery(container).children('.cancel');if(!settings.readonly)
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('#'+inputvalue).val(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('#'+inputvalue).val(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('#'+inputvalue).val(0);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);};
