(function($) { var i = function(e) { if (!e) var e = window.event; e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation() }; $.fn.checkbox = function(f) { try { document.execCommand('BackgroundImageCache', false, true) } catch (e) { } var g = { cls: 'jquery-checkbox', empty: '/Resources/Javascripts/jQuery/Checkbox/empty.png' }; g = $.extend(g, f || {}); var h = function(a) { var b = a.checked; var c = a.disabled; var d = $(a); if (a.stateInterval) clearInterval(a.stateInterval); a.stateInterval = setInterval(function() { if (a.disabled != c) d.trigger((c = !!a.disabled) ? 'disable' : 'enable'); if (a.checked != b) d.trigger((b = !!a.checked) ? 'check' : 'uncheck') }, 10); return d }; return this.each(function() { var a = this; var b = h(a); if (a.wrapper) a.wrapper.remove(); a.wrapper = $('<span class="' + g.cls + '"><span class="mark"><img src="' + g.empty + '" /></span></span>'); a.wrapperInner = a.wrapper.children('span:eq(0)'); a.wrapper.hover(function(e) { a.wrapperInner.addClass(g.cls + '-hover'); i(e) }, function(e) { a.wrapperInner.removeClass(g.cls + '-hover'); i(e) }); b.css({ position: 'absolute', zIndex: -1, visibility: 'hidden' }).after(a.wrapper); var c = false; if (b.attr('id')) { c = $('label[for=' + b.attr('id') + ']'); if (!c.length) c = false } if (!c) { c = b.closest ? b.closest('label') : b.parents('label:eq(0)'); if (!c.length) c = false } if (c) { c.hover(function(e) { a.wrapper.trigger('mouseover', [e]) }, function(e) { a.wrapper.trigger('mouseout', [e]) }); c.click(function(e) { b.trigger('click', [e]); i(e); return false }) } a.wrapper.click(function(e) { b.trigger('click', [e]); i(e); return false }); b.click(function(e) { i(e) }); b.bind('disable', function() { a.wrapperInner.addClass(g.cls + '-disabled') }).bind('enable', function() { a.wrapperInner.removeClass(g.cls + '-disabled') }); b.bind('check', function() { a.wrapper.addClass(g.cls + '-checked') }).bind('uncheck', function() { a.wrapper.removeClass(g.cls + '-checked') }); $('img', a.wrapper).bind('dragstart', function() { return false }).bind('mousedown', function() { return false }); if (window.getSelection) a.wrapper.css('MozUserSelect', 'none'); if (a.checked) a.wrapper.addClass(g.cls + '-checked'); if (a.disabled) a.wrapperInner.addClass(g.cls + '-disabled') }) } })(jQuery);