(function($){$.bind=function(b,c){var d=Array.prototype.slice.call(arguments,2);if(d.length){return function(){var a=[this].concat(d,$.makeArray(arguments));return c.apply(b,a)}}else{return function(){var a=[this].concat($.makeArray(arguments));return c.apply(b,a)}}}})(jQuery);(function($){$.widget('ui.checkBox',{_init:function(){var a=this,opts=this.options,toggleHover=function(e){if(this.disabledStatus){return false}a.hover=(e.type=='focus'||e.type=='mouseenter');a._changeStateClassChain()};if(!this.element.is(':radio,:checkbox')){return false}this.labels=$([]);this.checkedStatus=false;this.disabledStatus=false;this.hoverStatus=false;this.radio=(this.element.is(':radio'));this.visualElement=$('<span />').addClass(this.radio?'ui-radio':'ui-checkbox').bind('mouseenter.checkBox mouseleave.checkBox',toggleHover).bind('click.checkBox',function(e){a.element[0].click();return false});if(opts.replaceInput){this.element.addClass('ui-helper-hidden-accessible').after(this.visualElement[0]).bind('usermode',function(e){(e.enabled&&a.destroy.call(a,true))})}this.element.bind('click.checkBox',$.bind(this,this.reflectUI)).bind('focus.checkBox blur.checkBox',toggleHover);if(opts.addLabel){this.labels=$('label[for='+this.element.attr('id')+']').bind('mouseenter.checkBox mouseleave.checkBox',toggleHover)}this.reflectUI({type:'initialReflect'})},_changeStateClassChain:function(){var c=(this.checkedStatus)?'-checked':'',baseClass='ui-'+((this.radio)?'radio':'checkbox')+'-state';c+=(this.disabledStatus)?'-disabled':'';c+=(this.hover)?'-hover':'';if(c){c=baseClass+c}function switchStateClass(){var b=this.className.split(' '),found=false;$.each(b,function(i,a){if(a.indexOf(baseClass)===0){found=true;b[i]=c;return false}});if(!found){b.push(c)}this.className=b.join(' ')}this.labels.each(switchStateClass);this.visualElement.each(switchStateClass)},destroy:function(a){this.element.removeClass('ui-helper-hidden-accessible');this.visualElement.addClass('ui-helper-hidden');if(!a){var o=this.options;this.element.unbind('.checkBox');this.visualElement.remove();this.labels.unbind('.checkBox').removeClass('ui-state-hover ui-state-checked ui-state-disabled')}},disable:function(){this.element[0].disabled=true;this.reflectUI({type:'manuallyDisabled'})},enable:function(){this.element[0].disabled=false;this.reflectUI({type:'manuallyenabled'})},toggle:function(e){this.changeCheckStatus((this.element.is(':checked'))?false:true,e)},changeCheckStatus:function(a,e){if(e&&e.type=='click'&&this.element[0].disabled){return false}this.element.attr({'checked':a});this.reflectUI(e||{type:'changeCheckStatus'})},propagate:function(n,e,a){if(!e||e.type!='initialReflect'){if(this.radio&&!a){$(document.getElementsByName(this.element.attr('name'))).checkBox('reflectUI',e,true)}return this._trigger(n,e,{options:this.options,checked:this.checkedStatus,labels:this.labels,disabled:this.disabledStatus})}},reflectUI:function(a,e){var b=this.checkedStatus,oldDisabledStatus=this.disabledStatus;e=e||a;this.disabledStatus=this.element.is(':disabled');this.checkedStatus=this.element.is(':checked');if(this.disabledStatus!=oldDisabledStatus||this.checkedStatus!==b){this._changeStateClassChain();(this.disabledStatus!=oldDisabledStatus&&this.propagate('disabledChange',e));(this.checkedStatus!==b&&this.propagate('change',e))}}});$.ui.checkBox.defaults={replaceInput:true,addLabel:true}})(jQuery);
