jQuery('document').ready(initChecks);
var checkedBoxes=[];
var maxChecks = 3
var checkBoxes = null;

//Bind the click event and pushes the already checked boxes, if any.
function initChecks() {
	checkBoxes = jQuery('#typeEquipement input[type=checkbox]')
	checkBoxes.bind('click',handleChecks)
	
	for(i=0;i<checkBoxes.length;i++) {
		if(checkBoxes[i].checked) {
			checkedBoxes.push(checkBoxes[i]);
		}
	}
	checkMax();
}

//function called by the click event
function handleChecks(e) {
	//if the current target was checked
	if(e.target.checked) {
		checkedBoxes.push(e.target);
	}
	//else, wich means the target was unchecked
	else {
		var pos = jQuery.inArray(e.target,checkedBoxes)
		if(pos != -1) {
			checkedBoxes.splice(pos,1);
			//if the boxes were disabled, enable them back
			if(checkedBoxes.length == maxChecks-1) {
				enableCheckBoxes();
			}
		}
	}
	checkMax();
}

function checkMax() {
	//if the max checks is reached, disable the boxes
	if(checkedBoxes.length == maxChecks) {
		disableCheckboxes();
	}
}

//Disables all boxes, except the checked ones.
function disableCheckboxes() {
	for(i=checkBoxes.length;i>=0;i--) {
		if(jQuery.inArray(checkBoxes[i],checkedBoxes) == -1) {
			jQuery(checkBoxes[i]).attr('disabled','disabled');
			jQuery(checkBoxes[i]).next().css('color','#aaa');
		}
	}
}

//Enables all boxes
function enableCheckBoxes() {
	for(i=checkBoxes.length;i>=0;i--) {
		jQuery(checkBoxes[i]).removeAttr('disabled');
		jQuery(checkBoxes[i]).next().removeAttr('style')
	}
}
