jQuery.fn.rater=function(url,options)
{if(url==null)return;var settings={url:url,maxvalue:5,curvalue:0,validmsg:"You have rated",invalidmsg:"You have not rated",cookiename:"rate",cookievalue:null,expiredays:30,rated:0,rate_msg:"You have rated"};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});if(!settings.style||settings.style==null||settings.style=='basic'){var raterwidth=settings.maxvalue*25;var ratingparent='<ul class="star-rating" style="width:'+raterwidth+'px">';}
if(settings.style=='small'){var raterwidth=settings.maxvalue*10;var ratingparent='<ul class="star-rating small-star" style="width:'+raterwidth+'px">';}
if(settings.style=='inline'){var raterwidth=settings.maxvalue*10;var ratingparent='<span class="inline-rating"><ul class="star-rating small-star" style="width:'+raterwidth+'px">';}
container.append(ratingparent);var starWidth,starIndex,listitems='';var curvalueWidth=Math.floor(100/settings.maxvalue*settings.curvalue);for(var i=0;i<=settings.maxvalue;i++){if(i==0){listitems+='<li class="current-rating" style="width:'+curvalueWidth+'%;">'+settings.curvalue+'/'+settings.maxvalue+'</li>';}else{starWidth=Math.floor(100/settings.maxvalue*i);starIndex=(settings.maxvalue-i)+2;listitems+='<li class="star"><a href="#'+i+'" title="'+i+'/'+settings.maxvalue+'" style="width:'+starWidth+'%;z-index:'+starIndex+'">'+i+'</a></li>';}}
container.find('.star-rating').append(listitems);if(settings.maxvalue>1)
{container.append('<span class="star-rating-result"></span>');}
var stars=jQuery(container).find('.star-rating').children('.star');stars.click(function()
{if(settings.maxvalue==1)
{settings.curvalue=(settings.curvalue==0)?1:0;jQuery(container).find('.star-rating').children('.current-rating').css({width:(settings.curvalue*100)+'%'});jQuery.post(container.url,{"rating":settings.curvalue});return false;}
else
{settings.curvalue=stars.index(this)+1;raterValue=jQuery(this).children('a')[0].href.split('#')[1];jQuery.post(container.url,{"rating":raterValue},function(response){var msg=response==settings.cookievalue&&!findInCookie(settings.cookiename,settings.cookievalue)?settings.validmsg:settings.invalidmsg;container.children('.star-rating-result').html(msg);if(response==settings.cookievalue&&!findInCookie(settings.cookiename,settings.cookievalue))
{setCookie(settings.cookiename,settings.cookievalue,settings.expiredays);jQuery('#rate_msg').html(settings.rate_msg);}});return false;}
return true;});return this;}
function setCookie(name,value,expiredays)
{var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);document.cookie=name+"="+escape(value)+
((expiredays==null)?"":";expires="+exdate.toGMTString());}
function getCookie(name){var dc=document.cookie;var cname=name+"=";if(dc.length>0)
{var begin=dc.indexOf(cname);if(begin!=-1)
{begin+=cname.length;var end=dc.indexOf(";"+begin);if(end==-1)end=dc.length;return unescape(dc.substring(begin,end));}}
return null;}
function findInCookie(name,value)
{var items=getCookie(name);if(items==null)
{return false;}
var ids=items.split(";");for(var i=0;i<ids.length;i++)
{if(ids[i]==value)
{return true;}}
return false;}
