/*!
 * 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(e){e.widget("ui.stars",{options:{inputType:"radio",split:0,disabled:!1,cancelTitle:"Cancel Rating",cancelValue:0,cancelShow:!0,disableValue:!0,oneVoteOnly:!1,showTitles:!1,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 b(b,
i){if(b!=-1){var e=i?a.starHoverClass:a.starOnClass,f=i?a.starOnClass:a.starHoverClass;c.$stars.eq(b).prevAll("."+a.starClass).andSelf().removeClass(f).addClass(e);c.$stars.eq(b).nextAll("."+a.starClass).removeClass(a.starHoverClass+" "+a.starOnClass);c._showCap(a.id2title[b])}else d()}function d(){c.$stars.removeClass(a.starOnClass+" "+a.starHoverClass);c._showCap("")}var c=this,a=this.options,f=0;this.element.data("former.stars",this.element.html());a.isSelect=a.inputType=="select";this.$form=e(this.element).closest("form");
this.$selec=a.isSelect?e("select",this.element):null;this.$rboxs=a.isSelect?e("option",this.$selec):e(":radio",this.element);this.$stars=this.$rboxs.map(function(b){var d=this.value,g=(a.isSelect?this.text:this.title)||this.value,h=a.isSelect&&this.defaultSelected||this.defaultChecked;if(b==0)a.split=typeof a.split!="number"?0:a.split,a.val2id=[],a.id2val=[],a.id2title=[],a.name=a.isSelect?c.$selec.get(0).name:this.name,a.disabled=a.disabled||(a.isSelect?e(c.$selec).prop("disabled"):e(this).prop("disabled"));
if(d==a.cancelValue)return a.cancelTitle=g,null;a.val2id[d]=f;a.id2val[f]=d;a.id2title[f]=g;if(h)a.checked=f,a.value=a.defaultValue=d,a.title=g;b=e("<div/>").addClass(a.starClass);d=e("<a/>").attr("title",a.showTitles?g:"").text(d);a.split&&(g=f%a.split,h=Math.floor(a.starWidth/a.split),b.width(h),d.css("margin-left","-"+g*h+"px"));f++;return b.append(d).get(0)});a.items=f;a.isSelect?this.$selec.remove():this.$rboxs.remove();this.$cancel=e("<div/>").addClass(a.cancelClass).append(e("<a/>").attr("title",
a.showTitles?a.cancelTitle:"").text(a.cancelValue));a.cancelShow&=!a.disabled&&!a.oneVoteOnly;a.cancelShow&&this.element.append(this.$cancel);this.element.append(this.$stars);if(a.checked===void 0)a.checked=-1,a.value=a.defaultValue=a.cancelValue,a.title="";this.$value=e("<input type='hidden' name='"+a.name+"' value='"+a.value+"' />");this.element.append(this.$value);this.$stars.bind("click.stars",function(d){if(!a.forceSelect&&a.disabled)return!1;var e=c.$stars.index(this);a.checked=e;a.value=a.id2val[e];
a.title=a.id2title[e];c.$value.val(a.value);c.$value.prop("disabled",a.disabled);b(e,!1);c._disableCancel();!a.forceSelect&&c.callback(d,"star")}).bind("mouseover.stars",function(){if(a.disabled)return!1;var d=c.$stars.index(this);b(d,!0)}).bind("mouseout.stars",function(){if(a.disabled)return!1;b(c.options.checked,!1)});this.$cancel.bind("click.stars",function(b){if(!a.forceSelect&&(a.disabled||a.value==a.cancelValue))return!1;a.checked=-1;a.value=a.cancelValue;a.title="";c.$value.val(a.value);a.disableValue&&
c.$value.prop("disabled",!0);d();c._disableCancel();!a.forceSelect&&c.callback(b,"cancel")}).bind("mouseover.stars",function(){if(c._disableCancel())return!1;c.$cancel.addClass(a.cancelHoverClass);d();c._showCap(a.cancelTitle)}).bind("mouseout.stars",function(){if(c._disableCancel())return!1;c.$cancel.removeClass(a.cancelHoverClass);c.$stars.triggerHandler("mouseout.stars")});this.$form.bind("reset.stars",function(){!a.disabled&&c.select(a.defaultValue)});e(window).unload(function(){c.$cancel.unbind(".stars");
c.$stars.unbind(".stars");c.$form.unbind(".stars");c.$selec=c.$rboxs=c.$stars=c.$value=c.$cancel=c.$form=null});this.select(a.value);a.disabled&&this.disable()},_disableCancel:function(){var b=this.options,d=b.disabled||b.oneVoteOnly||b.value==b.cancelValue;d?this.$cancel.removeClass(b.cancelHoverClass).addClass(b.cancelDisabledClass):this.$cancel.removeClass(b.cancelDisabledClass);this.$cancel.css("opacity",d?0.5:1);return d},_disableAll:function(){var b=this.options;this._disableCancel();b.disabled?
this.$stars.filter("div").addClass(b.starDisabledClass):this.$stars.filter("div").removeClass(b.starDisabledClass)},_showCap:function(b){var d=this.options;d.captionEl&&d.captionEl.text(b)},value:function(){return this.options.value},select:function(b){var d=this.options,b=b==d.cancelValue?this.$cancel:this.$stars.eq(d.val2id[b]);d.forceSelect=!0;b.triggerHandler("click.stars");d.forceSelect=!1},selectID:function(b){var d=this.options,b=b==-1?this.$cancel:this.$stars.eq(b);d.forceSelect=!0;b.triggerHandler("click.stars");
d.forceSelect=!1},enable:function(){this.options.disabled=!1;this._disableAll()},disable:function(){this.options.disabled=!0;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(b,d){var c=this.options;c.callback&&c.callback(this,d,c.value,b);c.oneVoteOnly&&!c.disabled&&
this.disable()}});e.extend(e.ui.stars,{version:"@VERSION@"})})(jQuery);
