(function($) {
	
	$.fn.visibility = function(settings) {
 
		var self = this;
		
		var clean = function(val,queries) {
			for(var i=0; i < queries.length; i++) {
				if(val!=i) {
					$(queries[i]).hide();
				}
			}	
		}

		var show = function(val,queries) {
			if(queries.length == 1) val = 0;
			$(queries[val]).show();
		}	

		var toggle = function(obj,control,queries) {
			var val = $(obj).val();
			var checked = $(control+":checked").val();
			if($(obj).attr("checked")) {
				clean(checked,queries);
				show(val,queries);
			} else {
				clean(checked,queries);
			}	
		}	   
	   
		var toggleVisibility = function (obj,control,queries) {
			
			toggle(obj,control,queries);
			$(obj).click(function(){
				toggle(this,control,queries);
			});
		}
		
		this.each(function() {
			toggleVisibility(this,self.selector,settings.queries);  	 
		});
		 
		return this;
   };
})(jQuery);
