/*
 * jQuery fix checkbox plugin 0.2
 * 
 * Copyright (c) 2009 Gen Ichino
 * 
 * 
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

jQuery.fn.extend({
	fixCheckbox: function(){
		return this.each(function(){
			
			if(jQuery.browser.safari) return;
			
			jQuery(this).find("label[for]").each(function(){
				var id = jQuery(this).attr("for");
				if(!(jQuery("#" + id).is(":checkbox"))) return;
				
				jQuery(this).click(function(e){
					jQuery(this).blur();
					
					if(e.target.id == id) return;
					e.preventDefault();
					var $input = jQuery("#" + id);
					$input.attr("checked", !$input.is(":checked"));
					$input.trigger("change");
				});
				if (jQuery.browser.msie) {
					jQuery(this).dblclick(function(e){
						jQuery(this).blur();
						
						if (e.target.id == id) return;
						var $input = jQuery("#" + id);	
						e.preventDefault();
						$input.attr("checked", !$input.is(":checked"));
						$input.trigger("change");
					});
				}
			})
		});
	}
});
