/*!
 * jQuery UI Stars v3.0.X
 * http://plugins.jquery.com/project/Star_Rating_widget
 *
 * Copyright (c) 2008-2011 Marek "Orkan" Zajac (orkans@gmail.com)
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * THIS IS AN UNOFFICIAL RELEASE WITH INCLUDED PATCH FOR JQUERY 1.6
 *
 * Depends:
 *	jquery.ui.core.js
 *	jquery.ui.widget.js
 *
 */
(function(a){a.widget("ui.stars",{options:{inputType:"radio",split:0,disabled:false,cancelTitle:"Cancel Rating",cancelValue:0,cancelShow:true,disableValue:true,oneVoteOnly:false,showTitles:false,captionEl:null,callback:null,starWidth:16,cancelClass:"ui-stars-cancel",starClass:"ui-stars-star",starOnClass:"ui-stars-star-on",starHoverClass:"ui-stars-star-hover",starDisabledClass:"ui-stars-star-disabled",cancelHoverClass:"ui-stars-cancel-hover",cancelDisabledClass:"ui-stars-cancel-disabled"},_create:function(){function f(){b.$stars.removeClass(c.starOnClass+" "+c.starHoverClass);b._showCap("")}function e(a,d){if(a!=-1){var e=d?c.starHoverClass:c.starOnClass;var g=d?c.starOnClass:c.starHoverClass;b.$stars.eq(a).prevAll("."+c.starClass).andSelf().removeClass(g).addClass(e);b.$stars.eq(a).nextAll("."+c.starClass).removeClass(c.starHoverClass+" "+c.starOnClass);b._showCap(c.id2title[a])}else f()}var b=this,c=this.options,d=0;this.element.data("former.stars",this.element.html());c.isSelect=c.inputType=="select";this.$form=a(this.element).closest("form");this.$selec=c.isSelect?a("select",this.element):null;this.$rboxs=c.isSelect?a("option",this.$selec):a(":radio",this.element);this.$stars=this.$rboxs.map(function(e){var f={value:this.value,title:(c.isSelect?this.text:this.title)||this.value,isDefault:c.isSelect&&this.defaultSelected||this.defaultChecked};if(e==0){c.split=typeof c.split!="number"?0:c.split;c.val2id=[];c.id2val=[];c.id2title=[];c.name=c.isSelect?b.$selec.get(0).name:this.name;c.disabled=c.disabled||(c.isSelect?a(b.$selec).prop("disabled"):a(this).prop("disabled"))}if(f.value==c.cancelValue){c.cancelTitle=f.title;return null}c.val2id[f.value]=d;c.id2val[d]=f.value;c.id2title[d]=f.title;if(f.isDefault){c.checked=d;c.value=c.defaultValue=f.value;c.title=f.title}var g=a("<div/>").addClass(c.starClass);var h=a("<a/>").attr("title",c.showTitles?f.title:"").text(f.value);if(c.split){var i=d%c.split;var j=Math.floor(c.starWidth/c.split);g.width(j);h.css("margin-left","-"+i*j+"px")}d++;return g.append(h).get(0)});c.items=d;c.isSelect?this.$selec.remove():this.$rboxs.remove();this.$cancel=a("<div/>").addClass(c.cancelClass).append(a("<a/>").attr("title",c.showTitles?c.cancelTitle:"").text(c.cancelValue));c.cancelShow&=!c.disabled&&!c.oneVoteOnly;c.cancelShow&&this.element.append(this.$cancel);this.element.append(this.$stars);if(c.checked===undefined){c.checked=-1;c.value=c.defaultValue=c.cancelValue;c.title=""}this.$value=a("<input type='hidden' name='"+c.name+"' value='"+c.value+"' />");this.element.append(this.$value);this.$stars.bind("click.stars",function(a){if(!c.forceSelect&&c.disabled)return false;var d=b.$stars.index(this);c.checked=d;c.value=c.id2val[d];c.title=c.id2title[d];b.$value.val(c.value);b.$value.prop("disabled",c.disabled);e(d,false);b._disableCancel();!c.forceSelect&&b.callback(a,"star")}).bind("mouseover.stars",function(){if(c.disabled)return false;var a=b.$stars.index(this);e(a,true)}).bind("mouseout.stars",function(){if(c.disabled)return false;e(b.options.checked,false)});this.$cancel.bind("click.stars",function(a){if(!c.forceSelect&&(c.disabled||c.value==c.cancelValue))return false;c.checked=-1;c.value=c.cancelValue;c.title="";b.$value.val(c.value);c.disableValue&&b.$value.prop("disabled",true);f();b._disableCancel();!c.forceSelect&&b.callback(a,"cancel")}).bind("mouseover.stars",function(){if(b._disableCancel())return false;b.$cancel.addClass(c.cancelHoverClass);f();b._showCap(c.cancelTitle)}).bind("mouseout.stars",function(){if(b._disableCancel())return false;b.$cancel.removeClass(c.cancelHoverClass);b.$stars.triggerHandler("mouseout.stars")});this.$form.bind("reset.stars",function(){!c.disabled&&b.select(c.defaultValue)});a(window).unload(function(){b.$cancel.unbind(".stars");b.$stars.unbind(".stars");b.$form.unbind(".stars");b.$selec=b.$rboxs=b.$stars=b.$value=b.$cancel=b.$form=null});this.select(c.value);c.disabled&&this.disable()},_disableCancel:function(){var a=this.options,b=a.disabled||a.oneVoteOnly||a.value==a.cancelValue;if(b)this.$cancel.removeClass(a.cancelHoverClass).addClass(a.cancelDisabledClass);else this.$cancel.removeClass(a.cancelDisabledClass);this.$cancel.css("opacity",b?.5:1);return b},_disableAll:function(){var a=this.options;this._disableCancel();if(a.disabled)this.$stars.filter("div").addClass(a.starDisabledClass);else this.$stars.filter("div").removeClass(a.starDisabledClass)},_showCap:function(a){var b=this.options;if(b.captionEl)b.captionEl.text(a)},value:function(){return this.options.value},select:function(a){var b=this.options,c=a==b.cancelValue?this.$cancel:this.$stars.eq(b.val2id[a]);b.forceSelect=true;c.triggerHandler("click.stars");b.forceSelect=false},selectID:function(a){var b=this.options,c=a==-1?this.$cancel:this.$stars.eq(a);b.forceSelect=true;c.triggerHandler("click.stars");b.forceSelect=false},enable:function(){this.options.disabled=false;this._disableAll()},disable:function(){this.options.disabled=true;this._disableAll()},destroy:function(){this.$form.unbind(".stars");this.$cancel.unbind(".stars").remove();this.$stars.unbind(".stars").remove();this.$value.remove();this.element.unbind(".stars").html(this.element.data("former.stars")).removeData("stars");return this},callback:function(a,b){var c=this.options;c.callback&&c.callback(this,b,c.value,a);c.oneVoteOnly&&!c.disabled&&this.disable()}});a.extend(a.ui.stars,{version:"@VERSION@"})})(jQuery)
