// Chris Richards 2009
// rating control for jQuery.
// http://zensoftware.org/
(function($){$.fn.rating=function(e){var f={showCancel:true,cancelValue:null,};$.extend(f,e);var g={hoverOver:function(a){var b=$(a.target);if(b.hasClass("ui-rating-cancel")){b.addClass("ui-rating-cancel-full")}else{b.prevAll().andSelf().not(".ui-rating-cancel").addClass("ui-rating-hover")}},hoverOut:function(a){var b=$(a.target);if(b.hasClass("ui-rating-cancel")){b.addClass("ui-rating-cancel-empty").removeClass("ui-rating-cancel-full")}else{b.prevAll().andSelf().not(".ui-rating-cancel").removeClass("ui-rating-hover")}},click:function(a){var b=$(a.target);var c=f.cancelValue;if(b.hasClass("ui-rating-cancel")){b.attr("className","ui-rating-cancel ui-rating-cancel-empty").nextAll().attr("className","ui-rating-star ui-rating-empty")}else{b.closest(".ui-rating-star").prevAll().andSelf().not(".ui-rating-cancel").attr("className","ui-rating-star ui-rating-full");b.closest(".ui-rating-star").nextAll().not(".ui-rating-cancel").attr("className","ui-rating-star ui-rating-empty");b.siblings(".ui-rating-cancel").attr("className","ui-rating-cancel ui-rating-cancel-empty");c=b.attr("value")}if(!a.data.hasChanged){$(a.data.selectBox).val(c).trigger("change")}},change:function(a){var b=$(this).val();g.setValue(b,a.data.container,a.data.selectBox)},setValue:function(a,b,c){var d={"target":null,"data":{}};d.target=$(".ui-rating-star[value="+a+"]",b);d.data.selectBox=c;d.data.hasChanged=true;g.click(d)},};var h={createContainer:function(a){var b=$("<div/>").attr({title:a.title,className:"ui-rating"}).insertAfter(a);return b},createStar:function(a,b){$("<a/>").attr({className:"ui-rating-star ui-rating-empty",title:$(a).text(),value:a.value,}).appendTo(b)},createCancel:function(a,b){$("<a/>").attr({className:"ui-rating-cancel ui-rating-cancel-empty",title:"Cancel",}).appendTo(b)},};return this.each(function(){if($(this).attr("type")!=="select-one"){return}var a=this;$(a).css("display","none");var b=h.createContainer(a);$(b).bind("mouseover",g.hoverOver).bind("mouseout",g.hoverOut).bind("click",{"selectBox":a},g.click);if(f.showCancel){h.createCancel(this,b)}$("option",a).each(function(){h.createStar(this,b)});g.setValue($(a).val(),b,a);$(this).bind("change",{"selectBox":a,"container":b},g.change)})}})(jQuery);
