// *******************************************************************
// Fonctions pour la gestion de items de liste 
// *******************************************************************
// -------------------------------------------------------------------
// hasOptions(obj)
//  Utility function to determine if a select object has an options array
// -------------------------------------------------------------------
function hasOptions(obj) 
{
	if (obj!=null && obj.options!=null) 
	{ 
		return true; 
	}
	return false;
}


// -------------------------------------------------------------------
// swapOptions(select_object,option1,option2)
//  Swap positions of two options in a select list
// -------------------------------------------------------------------
function swapOptions(obj,i,j) 
{
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
}
	
// -------------------------------------------------------------------
// moveOptionUp(select_object)
//  Move selected option in a select list up one
// -------------------------------------------------------------------
function moveOptionUp(clientid, hdclientid) 
{

	var obj = document.getElementById(clientid);

	if (hasOptions(obj)) 
	{ 
		for (i=0; i<obj.options.length; i++) 
		{
			if (obj.options[i].selected) 
			{
				if (i != 0 && !obj.options[i-1].selected) 
				{
					swapOptions(obj,i,i-1);
					obj.options[i-1].selected = true;
				}
			}
		}
		
		var hdobj = document.getElementById(hdclientid);
		hdobj.value = '';
				
		for (i=0; i<obj.options.length; i++) 
		{
			if(hdobj.value.length)
				hdobj.value += '|';
			hdobj.value += obj.options[i].value;
		}
	}
}

// -------------------------------------------------------------------
// moveOptionDown(select_object)
//  Move selected option in a select list down one
// -------------------------------------------------------------------
function moveOptionDown(clientid, hdclientid) 
{

	var obj = document.getElementById(clientid);

	if (hasOptions(obj)) 
	{
		for (i=obj.options.length-1; i>=0; i--) 
		{
			if (obj.options[i].selected) 
			{
				if (i != (obj.options.length-1) && ! obj.options[i+1].selected) 
				{
					swapOptions(obj,i,i+1);
					obj.options[i+1].selected = true;
				}
			}
		}
					
		var hdobj = document.getElementById(hdclientid);
		hdobj.value = '';
				
		for (i=0; i<obj.options.length; i++) 
		{
			if(hdobj.value.length)
				hdobj.value += '|';
			hdobj.value += obj.options[i].value;
		}
	}
}
	
