(function($){$.widget("ui.zvjezde",{_init:function(){var self=this,o=this.options,id=0;o.isSelect=o.inputType=="select";this.$form=$(this.element).closest("form");this.$selec=o.isSelect?$("select",this.element):null;this.$rboxs=o.isSelect?$("option",this.$selec):$(":radio",this.element);this.$zvjezde=this.$rboxs.map(function(i){var el={value:this.value,title:(o.isSelect?this.text:this.title)||this.value,isDefault:(o.isSelect&&this.defaultSelected)||this.defaultChecked};if(i==0){o.split=typeof o.split!="number"?0:o.split;o.val2id=[];o.id2val=[];o.id2title=[];o.name=o.isSelect?self.$selec.get(0).name:this.name;o.disabled=o.disabled||(o.isSelect?$(self.$selec).attr("disabled"):$(this).attr("disabled"))}if(el.value==o.cancelValue){o.cancelTitle=el.title;return null}o.val2id[el.value]=id;o.id2val[id]=el.value;o.id2title[id]=el.title;if(el.isDefault){o.checked=id;o.value=o.defaultValue=el.value;o.title=el.title}var $s=$("<div/>").addClass(o.zvjezdaClass);var $a=$('<a/>').attr("title",o.showTitles?el.title:"").text(el.value);if(o.split){var oddeven=(id%o.split);var stwidth=Math.floor(o.zvjezdaWidth/o.split);$s.width(stwidth);$a.css("margin-left","-"+(oddeven*stwidth)+"px")}id++;return $s.append($a).get(0)});o.items=id;o.isSelect?this.$selec.remove():this.$rboxs.remove();this.$cancel=$("<div/>").addClass(o.cancelClass).append($("<a/>").attr("title",o.showTitles?o.cancelTitle:"").text(o.cancelValue));o.cancelShow&=!o.disabled&&!o.oneVoteOnly;o.cancelShow&&this.element.append(this.$cancel);this.element.append(this.$zvjezde);if(o.checked===undefined){o.checked=-1;o.value=o.defaultValue=o.cancelValue;o.title=""}this.$value=$('<input type="hidden" name="'+o.name+'" value="'+o.value+'" />');this.element.append(this.$value);this.$zvjezde.bind("click.zvjezde",function(e){if(!o.forceSelect&&o.disabled)return false;var i=self.$zvjezde.index(this);o.checked=i;o.value=o.id2val[i];o.title=o.id2title[i];self.$value.attr({disabled:o.disabled?"disabled":"",value:o.value});fillTo(i,false);self._disableCancel();!o.forceSelect&&self.callback(e,"zvjezda")}).bind("mouseover.zvjezde",function(){if(o.disabled)return false;var i=self.$zvjezde.index(this);fillTo(i,true)}).bind("mouseout.zvjezde",function(){if(o.disabled)return false;fillTo(self.options.checked,false)});this.$cancel.bind("click.zvjezde",function(e){if(!o.forceSelect&&(o.disabled||o.value==o.cancelValue))return false;o.checked=-1;o.value=o.cancelValue;o.title="";self.$value.val(o.value).attr({disabled:"disabled"});fillNone();self._disableCancel();!o.forceSelect&&self.callback(e,"cancel")}).bind("mouseover.zvjezde",function(){if(self._disableCancel())return false;self.$cancel.addClass(o.cancelHoverClass);fillNone();self._showCap(o.cancelTitle)}).bind("mouseout.zvjezde",function(){if(self._disableCancel())return false;self.$cancel.removeClass(o.cancelHoverClass);self.$zvjezde.triggerHandler("mouseout.zvjezde")});this.$form.bind("reset.zvjezde",function(){!o.disabled&&self.select(o.defaultValue)});$(window).unload(function(){self.$cancel.unbind(".zvjezde");self.$zvjezde.unbind(".zvjezde");self.$form.unbind(".zvjezde");self.$selec=self.$rboxs=self.$zvjezde=self.$value=self.$cancel=self.$form=null});function fillTo(index,hover){if(index!=-1){var addClass=hover?o.zvjezdaHoverClass:o.zvjezdaOnClass;var remClass=hover?o.zvjezdaOnClass:o.zvjezdaHoverClass;self.$zvjezde.eq(index).prevAll("."+o.zvjezdaClass).andSelf().removeClass(remClass).addClass(addClass);self.$zvjezde.eq(index).nextAll("."+o.zvjezdaClass).removeClass(o.zvjezdaHoverClass+" "+o.zvjezdaOnClass);self._showCap(o.id2title[index])}else fillNone()};function fillNone(){self.$zvjezde.removeClass(o.zvjezdaOnClass+" "+o.zvjezdaHoverClass);self._showCap("")};this.select(o.value);o.disabled&&this.disable()},_disableCancel:function(){var o=this.options,disabled=o.disabled||o.oneVoteOnly||(o.value==o.cancelValue);if(disabled)this.$cancel.removeClass(o.cancelHoverClass).addClass(o.cancelDisabledClass);else this.$cancel.removeClass(o.cancelDisabledClass);this.$cancel.css("opacity",disabled?0.5:1);return disabled},_disableAll:function(){var o=this.options;this._disableCancel();if(o.disabled)this.$zvjezde.filter("div").addClass(o.zvjezdaDisabledClass);else this.$zvjezde.filter("div").removeClass(o.zvjezdaDisabledClass)},_showCap:function(s){var o=this.options;if(o.captionEl)o.captionEl.text(s)},value:function(){return this.options.value},select:function(val){var o=this.options,e=(val==o.cancelValue)?this.$cancel:this.$zvjezde.eq(o.val2id[val]);o.forceSelect=true;e.triggerHandler("click.zvjezde");o.forceSelect=false},selectID:function(id){var o=this.options,e=(id==-1)?this.$cancel:this.$zvjezde.eq(id);o.forceSelect=true;e.triggerHandler("click.zvjezde");o.forceSelect=false},enable:function(){this.options.disabled=false;this._disableAll()},disable:function(){this.options.disabled=true;this._disableAll()},destroy:function(){this.options.isSelect?this.$selec.appendTo(this.element):this.$rboxs.appendTo(this.element);this.$form.unbind(".zvjezde");this.$cancel.unbind(".zvjezde").remove();this.$zvjezde.unbind(".zvjezde").remove();this.$value.remove();this.element.unbind(".zvjezde").removeData("zvjezde")},callback:function(e,type){var o=this.options;o.callback&&o.callback(this,type,o.value,e);o.oneVoteOnly&&!o.disabled&&this.disable()}});$.extend($.ui.zvjezde,{version:"1.1.1",getter:"value",defaults:{inputType:"radio",split:0,disabled:false,cancelTitle:"Cancel Rating",cancelValue:0,cancelShow:true,oneVoteOnly:false,showTitles:false,captionEl:null,callback:null,zvjezdaWidth:16,cancelClass:'ui-zvjezde-cancel',zvjezdaClass:'ui-zvjezde-zvjezda',zvjezdaOnClass:'ui-zvjezde-zvjezda-on',zvjezdaHoverClass:'ui-zvjezde-zvjezda-hover',zvjezdaDisabledClass:'ui-zvjezde-zvjezda-disabled',cancelHoverClass:'ui-zvjezde-cancel-hover',cancelDisabledClass:'ui-zvjezde-cancel-disabled'}})})(jQuery);