
/*********************************************************************************************
function disabling the "send button" after post
*********************************************************************************************/
function transfert_en_cours(f)
{

	var input = f.getElementsByTagName('input');
	
	for (var j = 0; j < input.length; j++) 
	{
		if (input[j].type.toLowerCase() == 'submit') 
		{
			input[j].disabled = true;
			input[j].value    = "please wait...";
		}
	}

	return true;
}

/*********************************************************************************************
gets all the values + ids of a select, and stores them in a global Array()
*********************************************************************************************/
var DEFAULT_TABLE = new Array()
function create_default_table(select)
{
	// test pour savoir si le tableau a déjà été créé
	if(typeof(DEFAULT_TABLE[unique_name(select)]) == "undefined")
	{
		var dflt_tbl = new Array();
		var dflt_slct = 0;
		
		for(i=0; i < select.length; i++)
			dflt_tbl[select.options[i].value] = select.options[i].text;
		
		DEFAULT_TABLE[unique_name(select)]    = new Array();
		DEFAULT_TABLE[unique_name(select)]    = dflt_tbl;
	}
}

/*********************************************************************************************
parcours tous les éléments du tableau par défaut, et ne garde dans le select que ceux dont
					param_tbl[value] == valid_param
si la fonction n'est appelée qu'avec le premier argument, toutes les entrées sont affichées (réinitialisation de la première liste)
*********************************************************************************************/
function choice_table_SelectEntries(select, param_tbl, valid_param)
{
	create_default_table(select);	// on commence par sauvegarder les éléments par défaut du select
	
	var selectedValue = select.options[select.selectedIndex].value;  // sauvegarde la valeur de la ligne sélectionnée
	var selectedOption = 0;
	
	var i = 0;
	if(choice_table_SelectEntries.arguments.length == 2)
	{
		selectedOption = 0;
		select.options[i] = new Option(param_tbl, 0);
		i++;
	}
	else
	{
		// on parcours le tableau des valeurs du select
		for (var value in DEFAULT_TABLE[unique_name(select)])
		{
			// test si on garde cette entrée
			// si on ne passe que le premier argument, on garde toutes les entrées, sinon, on test si le paramètre est valide
			if(choice_table_SelectEntries.arguments.length == 1 || param_tbl[value] == valid_param)
			{
				if(selectedValue == value)		// si on tombe sur la valeur qui était sélectionnée avant, on garde l'indice en mémoire
					selectedOption = i;
				
				select.options[i] = new Option( DEFAULT_TABLE[unique_name(select)][value], value);
				i++;
			}
		}
	}
	// on donne à la liste sa sélection et sa taille
	select.selectedIndex = selectedOption;
	select.length = i;
}
/*********************************************************************************************
change les choix d'un select, en les remplaçant par ceux du tableau passé en paramètre
*********************************************************************************************/
function choice_table_SetEntries(select, new_table)
{
	create_default_table(select);	// on commence par sauvegarder les éléments par défaut du select
	
	var selectedValue = select.options[select.selectedIndex].value;  // sauvegarde la valeur de la ligne sélectionnée
	var selectedOption = 0;
	
	var i = 0;
	// on parcours le tableau des valeurs du select
	for (var value in new_table)
	{
		if(selectedValue == value)		// si on tombe sur la valeur qui était sélectionnée avant, on garde l'indice en mémoire
			selectedOption = i;
		
		select.options[i] = new Option( new_table[value], value);
		i++;
	}
	// on donne à la liste sa sélection et sa taille
	select.selectedIndex = selectedOption;
	select.length = i;
}

function unique_name(form_element)
{
	return form_element.form.name + form_element.name;
}

/*********************************************************************************************
séletionne l'entrée ayant la valueur 'value' d'un choice table
*********************************************************************************************/
function choice_table_SelectEntry(select, value)
{
	for(var i=0; i < select.length; i++)
		if(select.options[i].value == value) select.selectedIndex = i;

}

/*********************************************************************************************
return the value of the radio button that is checked
return an empty string if none are checked, or there are no radio buttons
*********************************************************************************************/
function radio_getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

/*********************************************************************************************
set the radio button with the given value as being checked
do nothing if there are no radio buttons
if the given value does not exist, all the radio buttons are reset to unchecked
*********************************************************************************************/
function radio_SelectEntry(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}
