(function($) {
  $.fn.niceInputs = function (settings) {

	var self = this;
	var o = $.extend({
	  checkboxClass : 'checkbox',
	  radioClass : 'radio',	  
  	  checkedClass : 'checked'
	}, settings);
	
	return (
	  $('input[@type="checkbox"] + label, input[@type="radio"] + label', this).each( 
	    function(i) {
		  if ( $(this).prev()[0].checked ) {
		    $(this).addClass(o.checkedClass);
		  }
	    }
	  ).bind(
	    'click', 
	    function(e) {
		  switch ($(this).prev()[0].type.toLowerCase()) {
		    case 'checkbox': {
	  		  $(this).toggleClass(o.checkedClass).prev()[0].checked = !$(this).prev()[0].checked;
			  break;
			}
			case 'radio': {
			  $('input[@type="radio"] + label', self).each( 
			    function() {
				  $(this).removeClass(o.checkedClass).prev()[0].checked = false;
				}
			  );
			  $(this).addClass(o.checkedClass).prev()[0].checked = true;
			}
		  }
	    }
	  ).prev().hide()
	);
  };
})(jQuery);
