/*! jQuery Checkall - v0.0.1 - 2013-11-01 * https://github.com/xixilive/jquery-checkall * Copyright (c) 2013 xixilive; Licensed MIT */ !function(a){var b;return b=function(b,c){return this.el=b,this.options=a.extend({target:":checkbox",reverse:!1,checked:null,sync:!0},c),a(this.options.target).on("change.checkall",a.proxy(this.checkMaster,this)),this.el.on("click.checkall",a.proxy(this.clickMaster,this)),this.options.sync&&(this.el.is(":checkbox")||this.el.is(":radio"))&&this.checkAll(this.el.is(":checked")),this},b.prototype={clickMaster:function(){var a;return this.options.reverse?this.checkReverse():this.checkAll(null!=(a=this.options.checked)?a:this.el.is(":checked"))},checkAll:function(b){return a(this.options.target).prop("checked",b).trigger("change.checkall")},checkReverse:function(){return a(this.options.target).each(function(){return a(this).prop("checked",!a(this).is(":checked")).trigger("change.checkall")})},checkMaster:function(){var b,c;return this.options.sync?(b=a(this.options.target+":checked").length,c=a(this.options.target).length,this.el.prop("checked",b>0&&b===c)):void 0}},a.fn.checkAll=function(c){return null==c&&(c={}),this.each(function(){var d,e;return e=a(this),d=e.data("checkall"),d||(c=a.extend(e.data(),c),e.data("checkall",d=new b(e,c))),e})},a(function(){return a("[data-toggle=checkall][data-target]").checkAll()}),null}(jQuery);