/**
Funções utilitárias para manipulação de objetos <table>.

Funções:
	- selectValueSelecionado(idSelect): Retorna o innerHTML do objeto <option> selecionado 
										de um objeto <select> não multivalor.

	- selectSelecionarChave(idSelect, chave): Seleciona a chave de um <select>.

	- selectAdicionarOption(idSelect, valor, chave): Adiciona um <option> em um <select>.

	- selectAdicionarOptionPosicao(idSelect, valor, chave, posicao): Adiciona um <option> em um <select> em uma posição.

	- selectAdicionaOpcaoEmTodosSelects(idDiv, valor, chave): Adiciona uma opção a todos os <select> filhos de um mesmo pai.
															  <div id="divSelects">
															  	<select id="slcA"></select>
																<select id="slcB"></select>
																<select id="slcC"></select>
															  </div>
															  <script>
																  selectAdicionaOpcaoEmTodosSelects('', 'Selecione...', '-1');
															  </script>

	- selectValoresSelecionados(idSelect): Retorna um array dos <option> selecionado de um <select>.

	- selectRemoverOpcaoEmTodosSelects(idDiv, chave): remove um item a todos os selectBox filhos de um mesmo elemento <div>
	- selectRemoverChave(idSelect, chave): Remove a um <option> de um <select>
	
	
Dependêcnias:
	- prototype.js

@author Diego C. Amaral
*/


//Retorna o innerHTML da option de um select 
//Diego C. Amaral
function selectValueSelecionado(idSelect){
	var _select = $(idSelect);
	try{
	return _select.options[_select.selectedIndex].innerHTML;
	}catch(e){}
	return '';
}

// Seleciona no select a opção passada como parâmetro
//Diego C. Amaral - 30/10/2007
function selectSelecionarChave(idSelect, chave){
	var _select = $(idSelect);
	for(var i=0; i< _select.options.length; i++){
		if(_select.options[i].value == chave)
			_select.options[i].selected = true;
		else
			_select.options[i].selected = false;
		
	}
}

//Adiciona um option ao select
// Diego C. Amaral - 12/11/2007
function selectAdicionarOption(idSelect, valor, chave){
	if(typeof idSelect == 'string')
		oSelect = $(idSelect);
	else
		oSelect = idSelect;

	if(!oSelect) return;
	selectAdicionarOptionPosicao(idSelect, valor, chave, oSelect.options.length)
}

//Adiciona um option em uma determinada posição
//Diego C. Amaral - 13/12/2007
function selectAdicionarOptionPosicao(idSelect, valor, chave, posicao){
	$(idSelect).options[posicao] = new Option(valor,chave);
	$(idSelect).options[posicao].selected = true;
}

// Adiciona um item a todos os selectBox filhos de um mesmo elemento <div>
// Ex.: 
// selectAdicionaOpcaoEmTodosSelects('divConteudo', '0', 'Todos');
// Diego C. Amaral - 13/12/2007
function selectAdicionaOpcaoEmTodosSelects(idDiv, valor, chave){
	var _oS = $(idDiv).getElementsByTagName('select');
	for(var i=0; i<_oS.length; i++){
		_oS[i].options[_oS[i].options.length] = (new Option(valor,chave));
		_oS[i].options[_oS[i].options.length-1].selected = true;
		
	}
}


// remove um item a todos os selectBox filhos de um mesmo elemento <div>
// Ex.: 
// selectAdicionaOpcaoEmTodosSelects('divConteudo', '0', 'Todos');
// Diego C. Amaral - 13/12/2007
function selectRemoverOpcaoEmTodosSelects(idDiv, chave){	
	var _oS = $(idDiv).getElementsByTagName('select');
	for(var i=0; i<_oS.length; i++){
		selectRemoverChave(_oS[i], chave);
	}
}

// Retorna o array de objetos selecionados da combo
// Diego C. Amaral - 13/12/2007
function selectValoresSelecionados(idSelect){
	var selecionados = new Array();
	var oSelect = $(idSelect);
	var oOptions = oSelect.options;

	for(var i=0; i<oOptions.length; i++){
		if(oOptions[i].selected)
			selecionados.push(oOptions[i]);
	}
	return selecionados;
}

// Limpar os valores do combo
// Diego C. Amaral - 18/03/2008
function selectLimparCombo(idSelect){
	
	$(idSelect).innerHTML = '';

}

// Remover chave do select
// Diego C. Amaral - 13/12/2007
function selectRemoverChave(idSelect, chave){

	var oSelect;
	if(typeof idSelect == 'string')
		oSelect = $(idSelect);
	else
		oSelect = idSelect;
	if(!oSelect) return;
	for (var i = 0; i < oSelect.options.length; i++) {
		try{
			if (oSelect.options[i].value == chave)
				oSelect.options[i] = null;
		}catch(e){}
	}
}
