// Image Tick Box
// replace a checkbox with a image version without losing the functionality
// License: http://www.gnu.org/licenses/lgpl.txt
// Homepage: http://blog.leenix.co.uk/2009/10/jquery-plugin-imagetickbox-change-any.html
// Version 1.00
var settings = undefined;
jQuery.fn.imageTickBox = function(options) {

	//Default text to change submit button too
	settings = jQuery.extend({
		tickedImage: null,
		unTickedImage: null,
		imageClass: null
	}, options);

	//preload images
	jQuery("<img>").attr("src", settings.tickedImage);
	jQuery("<img>").attr("src", settings.unTickedImage);

	var imageTickBoxUnquieId = 0;

	jQuery(this).each( function () {
		imageTickBoxUnquieId++;
		
		if(jQuery(this).attr("checked")) { var imageURL = settings.tickedImage;	} else { var imageURL = settings.unTickedImage;	}
		
		jQuery(this).hide().before("<img id='tickboxImage"+imageTickBoxUnquieId+"' src='"+imageURL+"' class='"+settings.imageClass+"'>");

		jQuery("#tickboxImage"+imageTickBoxUnquieId).click(function() {
			check(jQuery(this));
		});		
	});
	
	jQuery("label").each( function () {
		jQuery(this).click(function(){
			checkFromLabel(jQuery("#"+jQuery(this).attr("for")+""));
		});
	});
};

function check(elt){
	if(jQuery(elt).next().attr("checked")) {
		// is ticked, so untick
		jQuery(elt).attr("src", settings.unTickedImage);
		jQuery(elt).next().removeAttr("checked");
		jQuery(elt).next().next().removeClass("checkedlabel");
	}else{
		// is not ticked, so tick
		jQuery(elt).attr("src", settings.tickedImage);
		jQuery(elt).next().attr("checked", "checked");
		jQuery(elt).next().next().addClass("checkedlabel");
	}
	//si on est sur une page liste, on submit
	if(jQuery(elt).parent().parent().attr('name') == 'triform'){
		jQuery(elt).parent().parent().submit();
	}
	return false;
}
function checkFromLabel(elt){
	if(jQuery(elt).attr('checked')){
		jQuery(elt).prev().attr("src", settings.unTickedImage);
		jQuery(elt).next().removeClass("checkedlabel");
	}else{
		jQuery(elt).prev().attr("src", settings.tickedImage);
		jQuery(elt).next().addClass("checkedlabel");
	}
	return false;
}