jQuery.fn.rating=function(url,options){if(url==null)return;var settings={url:url,increment:1,maxvalue:5,curvalue:0,id:0,concept:'',callBack:'',active:1};if(options){jQuery.extend(settings,options);};var container=jQuery(this);jQuery.extend(container,{averageRating:settings.curvalue,url:settings.url});settings.increment=(settings.increment<.75)?.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"><a href="#0" title="Cancelar Votacion">Cancel Rating</a></div>';container.empty().append(div);}}else{var $div=$('<div class="star"></div>')
.append('<a href="#'+i+'" title="Valorar '+i+'/'+settings.maxvalue+'">'+i+'</a>')
.appendTo(container);if(settings.increment==.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(){if(settings.active){event.drain();event.fill(this);}})
.mouseout(function(){if(settings.active)
{event.drain();event.reset();}})
.focus(function(){if(settings.active){event.drain();event.fill(this);}})
.blur(function(){if(settings.active){event.drain();event.reset();}});stars.click(function(){if(settings.active){if(settings.active==true){settings.curvalue=(stars.index(this)*settings.increment)+settings.increment;jQuery.post(container.url,{"id":settings.id,"concept":settings.concept,"rating":jQuery(this).children('a')[0].href.split('#')[1]},settings.callBack,"json");return false;}else if(settings.maxvalue==1){settings.curvalue=(settings.curvalue==0)?1:0;$(this).toggleClass('on');jQuery.post(container.url,{"id":settings.id,"concept":settings.concept,"rating":jQuery(this).children('a')[0].href.split('#')[1]},settings.callBack,"json");return false;}
return true;}});if(cancel){cancel
.mouseover(function(){if(settings.active){event.drain();jQuery(this).addClass('on');}})
.mouseout(function(){if(settings.active){event.reset();jQuery(this).removeClass('on');}})
.focus(function(){if(settings.active){event.drain();jQuery(this).addClass('on');}})
.blur(function(){if(settings.active){event.reset();jQuery(this).removeClass('on');}});cancel.click(function(){if(settings.active){event.drain();settings.curvalue=0;jQuery.post(container.url,{"id":settings.id,"concept":settings.concept,"rating":jQuery(this).children('a')[0].href.split('#')[1]},settings.callBack,"json");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);};
