var maxChbx = 5;
var caractSepar = '*';

$j(function(){
	$j(document).ready(function(){
		//dans le cas d'une validation du formulaire, on recharge les checkboxes
		if($j("select#edit-filiere").val() != 0) {
			getAgenciesList($j("#edit-agenciesChecked").val());
		}
	})
	$j("select#edit-filiere").change(function(){
		getAgenciesList();
	})
})

function verifCheckboxes(maxChbx) {
	//on ajoute les checkboxes cochés dans un input de type hidden
	$j("#edit-agenciesChecked").val(getListCheckedBoxes());
	//on verifie si le nombre maxi de checkboxes a pas été atteind
	if(getNbCheckedBoxes() >= maxChbx)
	{
		$j(".checkAgencies input[@type='checkbox']").each(function() {
			if(!this.checked)
				this.disabled = true;
		})
	}
	else
		$j(".checkAgencies input[@type='checkbox']").removeAttr("disabled");
}

function getNbCheckedBoxes() {
	var nbCheck = 0;
	$j(".checkAgencies input[@type='checkbox']").each(function() {
		if(this.checked)
			nbCheck++;
	})
	return nbCheck;
}

function getListCheckedBoxes() {
	var listCheck = caractSepar;
	$j(".checkAgencies input[@type='checkbox']").each(function() {
		if(this.checked){
			listCheck += this.value + caractSepar;
		}
	})
	return listCheck;
}

function getAgenciesList(listChecked) {

  $j("img#loadingAgencies").show();
  
  // Ajax GET request for autocompletion
  $.ajax({
    type: "GET",
    dataType: "json",
    url: "/jquery/getAgencies/"+$j("select#edit-filiere").val(),
    success: function (j) {
	
      if (j.length>0) {
		var checks = '';
        for (var i = 0; i < j.length; i++) {
			checks += '<div class="checkAgencies"><input id="edit-checkAgencies-' + (i + 1) + '" class="form-checkbox" type="checkbox" value="' + j[i].optionValue + '" name="checkAgencies[' + (i + 1) + ']"';
			if (typeof(listChecked) != 'undefined' && listChecked.indexOf(caractSepar + j[i].optionValue + caractSepar) >= 0)	checks += ' checked="true"';
			checks += '>' + j[i].optionDisplay + '</div>';
        }
        $j("div#agencyList").html(checks);
      }
	  
      $j("img#loadingAgencies").hide();
	  
	  verifCheckboxes(maxChbx);//Premier passage pour verification au moment du chargement
	  $j(".checkAgencies input[@type='checkbox']").click(function() {
		verifCheckboxes(maxChbx);//Il est important que la fonction soit chargé à chaque Ajax request
	  })
	  
    }
  })
  
}


