jQuery.fn.cssCheckbox = function (o) {

	var checked = o && o.checked ? o.checked : "checked";
	var unchecked = o && o.unchecked ? o.unchecked : "unchecked";
	var over = o && o.over ? o.over : "over";

	$("input[@type='checkbox'] + label", this)
		.each( function(){
			$(this).addClass( $(this).prev().attr( "checked" ) == true ? checked : unchecked )
		})
		.click( function() {
			var check = $(this).prev().attr( "checked" ) == true;
			$(this)
				.removeClass(over) //<--- why does this need to be here for it to work in IE
				.removeClass(unchecked)
				.removeClass(checked)
				.addClass( check ? unchecked : checked )
				.prev().attr( "checked", check ? "" : "checked" );
		})
		.hover(
			function() { $(this).addClass(over); },
			function() { $(this).removeClass(over); }
		)
		.prev().hide();
}

