

/*
*	nombre			selectCopy
*
*	descripcion		Copia los elementos seleccionados de un tag <select> a otro. Válido para selección múltiple de elementos.
*
*	argumentos		origen		select origen del que se copian los elementos
*					destinos	select destino donde se copian los elementos
*
*	retorno			(int)
*					0...n  	numero de elementos pasados
*					-1		no hay elementos seleccionados
*
*/
function selectCopy (origen, destino)
{
	//inicializamos un contador para contar los elementos que pasamos
	var contTransferidos = 0;
	
	//comprobamos que haya nodos seleccionados
	if(origen.selectedIndex != -1)						//comprobamos si no hay ningún fondo seleccionado
	{
		//recorremos todos los nodos buscando los seleccionados
		for(e = 0; e < origen.length; e++)
		{
			//si esta seleccionado lo pasamos al otro lado
			if (origen[e].selected)
			{
				valor = origen[e].value;
				texto = origen[e].text;
				
				//inicializamos variable encontrado para buscar el elemento en el select de destino
				var encontrado = false;
				
				//recorremos la lista de elementos del select destino para asegurarnos de que no existe ya
				for (i = 0; i < destino.length; i++)
				{
					//
					if (destino[i].value == valor)
					{
						encontrado = true;
						break;
					}
				}
				
				//si no existe el elemento en el select destino, lo añadimos
				if (! encontrado)
				{
					//seleccionamos la posicion donde se va a insertar
					pos = destino.length;

					//insertamos el nuevo option
					destino[pos] = new Option (texto, valor);
					
					//contamos que hemos pasado el elemento
					contTransferidos ++;
				}
				
			} 
			
		} //for

	}
	else
	{
		//si no hay elementos seleccionados retornamos código -1
		contTransferidos = -1;	
	}

	return contTransferidos;

} 


/*
*	nombre			selectItemsSelected
*
*	descripcion		Retorna el número elementos seleccinados en un tag <select>.
*
*	argumentos		origen		select cuyos elementos seleccionados se cuentan
*
*	retorno			(int)
*					0...n  	numero de elementos pasados
*
*/
function selectItemsSelected (origen)
{
	//contamos el numero de elementos del combo origen
	var longOrigen = origen.length;

	//inicializamos un contador a cero para contar los elementos
	var contador = 0;

	//recorremos todos los elementos del combo
	for(e = 0; e < longOrigen; e++)
	{
		//si está seleccionado el elemento...
		if (origen[e].selected)
		{
			//incrementamos el contador
			contador = contador	+ 1;
		}
	}

	//retornamos el número total de elementos seleccionados
	return contador;
	
}


/*
*	nombre			selectRemove
*
*	descripcion		Borra los elementos seleccionados en un tag de tipo <select>. Válido para select múltiples.
*
*	argumentos		origen		select del que se borran los elementos
*
*	retorno			(int)
*					0...n  	numero de elementos borrados
*
*/
function selectRemove (origen)
{
	//contamos los elementos que vamos a borrar
	var contRemoved = selectItemsSelected (origen);
	
	//recorremos todos los elementos del select buscando los seleccionados
	for(i = origen.length - 1; i >= 0 ; i--)
	{
		//si vemos que esta seleccionado...
		if (origen[i].selected)
		{
			//...lo eliminamos
			origen.remove(i);
		}
	}

	//retornamos el número de elementos borrados
	return contRemoved;
} 




function selectAllOptions (origen, condicion)
{
	//recorremos todos los elementos del combo origen
	for (i = 0; i < origen.length; i++)
	{
		//aplicamos a cada elemento la condicion
		origen[i].selected = condicion;
	}
	
}




/*
*	nombre			selectMove
*
*	descripcion		
*
*	argumentos		
*/
function selectMove (origen, destino)
{


} 

