function trocar_opcao(origem,destino,input){
	flag=true;
	while(flag==true){

		var objOrigem=document.getElementById(origem);
		var objDestino=document.getElementById(destino);
		var total=objOrigem.options.length;

		flag=false;
		for(var i=0;i<total;i++){

			if(objOrigem[i].selected==true && flag==false){
				flag=true;
				var novoElemento=objOrigem.options[i];
				objDestino.appendChild(novoElemento);
				break;
			}
		}
	}
}

function adicionar_opcao(){
	//Verifica primeiro quais as opçoes escolhidas do lado esquerdo
	var opcoes=document.getElementById('opcoes_disponiveis').options;
	for(i=0;i<opcoes.length;i++){
		//passa por todas as opçoes e verifica quais é que sao as escolhidas
		if(opcoes[i].selected==true){
			//Verifica se na coluna direita já existe algum grupo igual
			var opcoes_escolhidas=document.getElementById('opcoes_escolhidas').childNodes;
			var encontrado=false;
			var posicao_encontrado=null;
			for(e=0;e<opcoes_escolhidas.length;e++){
				if(opcoes_escolhidas[e].label==opcoes[i].parentNode.label){
					encontrado=true;
					posicao_encontrado=e;
				}
			}
			if(encontrado==true){
				//Se o grupo já existir entao adiciona o elemento escolhido a esse grupo case se verifique que o elemento ainda nao existe
				elementos=document.getElementById('opcoes_escolhidas').childNodes[posicao_encontrado].childNodes;
				var encontrado_elemento=false;
				for(c=0;c<elementos.length;c++){
					if(elementos[c].value==opcoes[i].value){
						encontrado_elemento=true;
					}
				}

				if(encontrado_elemento!=true){
					novo_elemento=document.createElement("option");
					novo_elemento.text=opcoes[i].text;
					novo_elemento.value=opcoes[i].value;
					document.getElementById('opcoes_escolhidas').childNodes[posicao_encontrado].appendChild(novo_elemento);
				}

			} else {
				//Senao cria um grupo novo na coluna direita e adiciona a seguir o elemento
				var novo_grupo=document.createElement("optgroup");
				novo_grupo.label=opcoes[i].parentNode.label;
				document.getElementById('opcoes_escolhidas').appendChild(novo_grupo);

				novo_elemento=document.createElement("option");
				novo_elemento.text=opcoes[i].text;
				novo_elemento.value=opcoes[i].value;
				document.getElementById('opcoes_escolhidas').lastChild.appendChild(novo_elemento);
			}
		}
	}

	actualizar_grupos();
}

function remover_opcao(){
	//Passar por todos os elementos de forma a detectar quais estao seleccionados
	var opcoes=document.getElementById('opcoes_escolhidas').options;
	for(var i=0;i<opcoes.length;i++){
		//detecta se este elemento está seleccionado
		if(opcoes[i].selected==true){
			//Marca este elemento para remover
			/*var elementos=opcoes[i].parentNode.childNodes;
			for(var e=0;e<elementos.length;e++){
				if(elementos[e].value==opcoes[i].value){
					//elementos[e].removeChild(elementos[e].childNodes[e]);
					opcoes[i].removeOption
				}
			}*/

			document.getElementById('opcoes_escolhidas').remove(i);
		}
	}

	actualizar_grupos();
}

function actualizar_select_duplo(input,valores){
	document.getElementById(input).value="";
	var elementos = document.getElementById(valores).options;
	for(i=0;i<elementos.length;i++){
		document.getElementById(input).value+=elementos[i].value;
		if(i<(elementos.length-1)){
			document.getElementById(input).value+="|";
		}
	}
}
