(function($){
	$.fn.checkbox = function(options) {
		try	{ document.execCommand('BackgroundImageCache', false, true);	} catch (e) {}
		var settings = {cls: 'jquery-checkbox',empty: 'fileadmin/template/images/empty.png'};
		settings = $.extend(settings, options || {});
		var addEvents = function(object)
		{
			var checked = object.checked;
			var disabled = object.disabled;
			var $object = $(object);
			if ( object.stateInterval )clearInterval(object.stateInterval);
			object.stateInterval = setInterval(
				function() {
					if ( object.disabled != disabled )$object.trigger( (disabled = !!object.disabled) ? 'disable' : 'enable');
					if ( object.checked != checked )$object.trigger( (checked = !!object.checked) ? 'check' : 'uncheck');
				}, 
				10
			);
			return $object;
		}
		try { console.log(this); } catch(e) {}
		return this.each(function() 
		{
			var ch = this;
			var $ch = addEvents(ch);
			if (ch.wrapper){ch.wrapper.remove();}
			ch.wrapper = $('<span class="' + settings.cls + '"><span class="mark"><img src="' + settings.empty + '" /></span></span>');
			ch.wrapperInner = ch.wrapper.children('span');
			$ch.css({position: 'absolute', zIndex: -1}).after(ch.wrapper);
			var parents = $ch.parents('label');
			if($ch.attr('name')!=='categories')
			if ( parents.length ){parents.click(function(e) { $ch.trigger('click', [e]); return ( $.browser.msie && $.browser.version < 7 ); });}
			else{ch.wrapper.click(function(e) { $ch.trigger('click', [e]); });}
			delete parents;				
			$ch.bind('disable', function() { ch.wrapperInner.addClass(settings.cls+'-disabled');}).bind('enable', function() { ch.wrapperInner.removeClass(settings.cls+'-disabled');});
			$ch.bind('check', function() { ch.wrapper.addClass(settings.cls+'-checked' );}).bind('uncheck', function() { ch.wrapper.removeClass(settings.cls+'-checked' );});
			$('img', ch.wrapper).bind('dragstart', function () {return false;}).bind('mousedown', function () {return false;});
			if ( window.getSelection )ch.wrapper.css('MozUserSelect', 'none');
			if ( ch.checked )ch.wrapper.addClass(settings.cls + '-checked');
			if ( ch.disabled )ch.wrapperInner.addClass(settings.cls + '-disabled');
		});
	};
})(jQuery);