var selboxMaxSize = 10;
function addAgencies() {

  	var formulaire = document.getElementById("userForm");
	var userAgenciesSelectbox = formulaire.userAgencies;
	var agenciesSelectBox = formulaire.agenciesToAdd;
	// Boucle sur les entrées de la liste de gauche :
	// On déplace dans l'autre liste chaque agence sélectionnée : 
	for(i=0; i<agenciesSelectBox.options.length; i++) {
		var entry = agenciesSelectBox.options[i];
		if(entry.selected == true || entry.selected == "selected") {
			addSelboxItem(userAgenciesSelectbox, entry.value, entry.text);
			removeSelboxItem(agenciesSelectBox, i);
			i--;
		}
	}
	adjustSelboxesSizes();
	refreshAgenciesHiddenInputs();
}

function removeAgencies() {

  	var formulaire = document.getElementById("userForm");
	var userAgenciesSelectbox = formulaire.userAgencies;
	var agenciesSelectBox = formulaire.agenciesToAdd;
	// Boucle sur les entrées de la liste de droite :
	// On déplace dans l'autre liste chaque agence sélectionnée : 
	for(i=0; i<userAgenciesSelectbox.options.length; i++) {
		var entry = userAgenciesSelectbox.options[i];
		if(entry.value == "") {
			removeSelboxItem(userAgenciesSelectbox, i);
		} else if(entry.selected == true || entry.selected == "selected") {
			addSelboxItem(agenciesSelectBox, entry.value, entry.text);
			removeSelboxItem(userAgenciesSelectbox, i);
			i--;
		}
	}
	adjustSelboxesSizes();
	refreshAgenciesHiddenInputs();
}

function adjustSelboxesSizes() {
	
  	var formulaire = document.getElementById("userForm");
	var userAgenciesSelectbox = formulaire.userAgencies;
	var agenciesSelectBox = formulaire.agenciesToAdd;
	if((userAgenciesSelectbox.options.length > selboxMaxSize)) {
		userAgenciesSelectbox.size = selboxMaxSize;
	} else {
		userAgenciesSelectbox.size = userAgenciesSelectbox.options.length;
	}
	if((agenciesSelectBox.options.length > selboxMaxSize)) {
		agenciesSelectBox.size = selboxMaxSize;
	} else {
		agenciesSelectBox.size = agenciesSelectBox.options.length;
	}
	
}
function addSelboxItem(selbox, itemValue, itemText) {
	selbox.options[selbox.options.length] = new Option(itemText, itemValue);
}

function removeSelboxItem(selbox, itemIndex) {
	var formulaire = document.getElementById("userForm");
	var agenciesSelectBox = formulaire.agenciesToAdd;
	selbox.options[itemIndex] = null;
}

function refreshAgenciesHiddenInputs() {

	var formulaire = document.getElementById("userForm");
	var hiddenInputAvailable = document.getElementById("availableAgenciesConcatenation");
	var hiddenInputUser = document.getElementById("userAgenciesConcatenation");
	var availableAgenciesSelectbox = formulaire.agenciesToAdd;
	var userAgenciesSelectbox = formulaire.userAgencies;
	
	if(hiddenInputAvailable != null) {
		hiddenInputAvailable.value = "";
		var nbAvailableAgencies = availableAgenciesSelectbox.options.length; 
		if(nbAvailableAgencies > 0) {
			for(var i=0; i<nbAvailableAgencies; i++) {
				hiddenInputAvailable.value += availableAgenciesSelectbox.options[i].value;
				if(i<availableAgenciesSelectbox.options.length -1) {
					hiddenInputAvailable.value += "|";
				} 
			} 
		}
	}
	
	if(hiddenInputUser != null) {
		hiddenInputUser.value = "";
		var nbUserAgencies = userAgenciesSelectbox.options.length; 
		if(nbUserAgencies > 0) {
			for(var i=0; i<nbUserAgencies; i++) {
				hiddenInputUser.value += userAgenciesSelectbox.options[i].value;
				if(i<userAgenciesSelectbox.options.length -1) {
					hiddenInputUser.value += "|";
				} 
			}
		} 
	}
}


