(function($){	$.fn.rating = function(options) {		var settings = $.extend({			containerClass: 'rating',			disableReset: false,			onClass: 'on',			overClass: 'over',			resetClass: 'reset',			starClass: 'star'		}, options);				return this.each(function(e) {			var obj = $(this);			if (obj.is('select')) {								// create the stars html				var wrap = $('<div class="'+ settings.containerClass +'"></div>');				$('option', obj).each(function(i, v) {									if ($(v).attr('value') == '') {						if (!settings.disableReset) {							wrap.append('<a class="'+ settings.resetClass +'" href="#0">Reset</a>');						}					} else {						wrap.append('<a class="'+ settings.starClass +'" href="#'+ $(v).val() +'">'+ $(v).text() +'</a>');					}					});								// the reset button				$('a.'+ settings.resetClass, wrap).hover(function() {					$(this).addClass(settings.overClass);				}, function() {					$(this).removeClass(settings.overClass);				}).click(function(e) {					$(this).siblings('.'+ settings.starClass).andSelf().data('state', '').removeClass(settings.onClass);					obj.val('');					e.preventDefault();				});								// the stars buttons				$('a.'+ settings.starClass, wrap).hover(function() {					$(this).siblings('.'+ settings.starClass).andSelf().removeClass(settings.onClass);					$(this).prevAll('.'+ settings.starClass).andSelf().addClass(settings.overClass);				}, function() {					$(this).siblings('.'+ settings.starClass).andSelf().filter(function() {						return $(this).data('state') == 'on';					}).addClass(settings.onClass);					$(this).prevAll('.'+ settings.starClass).andSelf().removeClass(settings.overClass);				}).click(function(e) {					$(this).siblings('.'+ settings.starClass).andSelf().data('state', '').removeClass(settings.onClass);					$(this).prevAll('.'+ settings.starClass).andSelf().data('state', 'on').addClass(settings.onClass);					obj.val($(this).attr('href').slice(1));					e.preventDefault();				});								// if there is a selected option				var si = $('option:selected', obj).val();				if (si > 0) {					$('a.'+ settings.starClass, wrap).eq(si-1).trigger('click');				}								// add the html after the select				obj.hide().after(wrap);							}		});	};})(jQuery);	
