/*******************************************************************************************
ADICIONA UM ELEMENTO A UM SELECT
*******************************************************************************************/

function adicionaElementoSelect(texto,valor,objeto) 
{

	// select
	var selectsObj = document.getElementById(objeto);
	
	// pega a quantidade de opções do select
	var tam = selectsObj.length;
	
	// adiciona a opção
	selectsObj.options[tam] = new Option(texto);
	selectsObj.options[tam].value = valor;

}

/*******************************************************************************************
LIMPA OS ELEMENTO DE UM SELECT
*******************************************************************************************/

function limpaElementoSelect(objeto) 
{

	// select
	var selectsObj = document.getElementById(objeto);
	
	// pega a quantidade de opções do select
	var tam = selectsObj.length;
	
	while(tam > 0)  // enquanto houver elementos
	{ 
		
		// remove o elemento
		selectsObj.options[tam-1] = null;
		
		// decrementa o tamanho
		tam--;
		
	}

}

function limpaElementosSelecionados(objeto)
{
	
	// select
	var selectsObj = document.getElementById(objeto);
	
	// pega a quantidade de opções do select
	var tam = selectsObj.length - 1;
	
	while(tam >= 0) {  // enquanto houver elementos
		
		// remove o elemento
		if (selectsObj.options[tam].selected)
			selectsObj.options[tam] = null;
		
		// decrementa o tamanho
		tam--;
		
	}
	
}

function limpaElementoSelectEnter(idObjeto,event)
{
	
	var Tecla = event.which;
		
	if(Tecla == null)
		Tecla = event.keyCode;
		
	if (Tecla == 13)
	{
		limpaElementosSelecionados(idObjeto);
		event.returnValue = false;
	}
	else
	{
		event.returnValue = true;
	}
	
	return false;
	
}

/**********************************************************************************
CRIA A LISTA DE OPÇÕES DE UM SELECT
**********************************************************************************/

function carregaOpcoesSelect(texto,objDestino) 
{
	
	// quebra o texto em linhas
	var lista = texto.split("\n");
	
	// Limpa o select atual
	limpaElementoSelect(objDestino);
	
	// percorre cada linha do texto
	for (i=0; i<lista.length; i++) 
	{
		
		// pega os dados da cidade
		var dados = lista[i].split("%");
		
		// Adiciona o elemento
		if (dados[1] != "")
			adicionaElementoSelect(dados[1],dados[0],objDestino);
		
	}
	
}

/**********************************************************************************
MARCA TODOS OS ELEMENTOS DO SELECT MULTIPLE
**********************************************************************************/

function marcaTodos(idObjeto)
{
	
	var objeto = document.getElementById(idObjeto);
		
	for (i=0; i<objeto.length; i++)
		objeto.options[i].selected = true;
	
}

/**********************************************************************************
DESMARCAR TODOS OS ELEMENTOS DO SELECT MULTIPLE
**********************************************************************************/

function desmarcaTodos(idObjeto)
{
	
	var objeto = document.getElementById(idObjeto);
		
	for (i=0; i<objeto.length; i++)
		objeto.options[i].selected = false;
	
}

/**********************************************************************************
MARCA UMA OPCAO DO SELECT
**********************************************************************************/

function marcaOpcao(idObjeto,valor)
{
	
	var objeto = document.getElementById(idObjeto);
	
	for (i=0; i<objeto.length; i++)
	{
		
		if (objeto.options[i].value == valor)
			objeto.options[i].selected = true;
		else
			objeto.options[i].selected = false;
			
	}
	
}

function mudaCorOpcao(idObjeto,valor,cor)
{
	
	var objeto = document.getElementById(idObjeto);
	
	for (i=0; i<objeto.length; i++)
	{
		
		if (objeto.options[i].value == valor)
		{
			objeto.options[i].style.color = cor;
		}
			
	}
	
}

/**********************************************************************************

**********************************************************************************/

function selectValoresToString(selectOrigem)
{
	
	/**
	 * inicializa as variáveis
	 */
	var objeto = document.getElementById(selectOrigem);
	var lista = new Array();
	
	/**
	 * Insere os valores na lista
	 */
	for (var i=0; i<objeto.length; i++)		
		lista[i] = objeto.options[i].value;
	
	/**
	 * retorna a string
	 */
	return lista.join(",");
	
}

/**********************************************************************************
VERIFICA SE EXISTE UMA OPÇÃO COM O VALOR NO SELECT
**********************************************************************************/

function inSelect(valor,idObjeto)
{
	
	var objeto = document.getElementById(idObjeto);
		
	for (var i=0; i<objeto.length; i++)
	{
		
		if (objeto.options[i].value == valor)
			return true;
		
	}
	
	return false;		
	
}

/**********************************************************************************
COPIA OS ELEMENTOS SELECIONADOS DE UM SELECT PARA OUTRO
**********************************************************************************/

function copiaTodosElementos(idObjetoOrigem,idObjetoDestino)
{
	
	var objetoOrigem = document.getElementById(idObjetoOrigem);
	var objetoDestino = document.getElementById(idObjetoDestino);
	
	for (var i=0; i<objetoOrigem.length; i++)
	{
		
		if (!inSelect(objetoOrigem.options[i].value,idObjetoDestino))
			adicionaElementoSelect(objetoOrigem.options[i].text,objetoOrigem.options[i].value,idObjetoDestino);
		
	}
	
}

function copiaElemento(idObjetoOrigem,idObjetoDestino)
{
	
	var objetoOrigem = document.getElementById(idObjetoOrigem);
	var objetoDestino = document.getElementById(idObjetoDestino);
	
	for (var i=0; i<objetoOrigem.length; i++)
	{
		
		if (objetoOrigem.options[i].selected == true && !inSelect(objetoOrigem.options[i].value,idObjetoDestino))
			adicionaElementoSelect(objetoOrigem.options[i].text,objetoOrigem.options[i].value,idObjetoDestino);
		
	}
	
}

function copiaElementoEnter(idObjetoOrigem,idObjetoDestino,event)
{
	
	var Tecla = event.which;
		
	if(Tecla == null)
		Tecla = event.keyCode;
	
	if (Tecla == 13)
	{
		copiaElemento(idObjetoOrigem,idObjetoDestino);
		event.returnValue = false;
	}
	else
	{
		event.returnValue = true;
	}	
	
	return false;
	
}

function copiaElementoPrefixo(idObjetoOrigem,idObjetoDestino,prefixo)
{

	var objetoOrigem = document.getElementById(idObjetoOrigem);
	var objetoDestino = document.getElementById(idObjetoDestino);
	var textoCampo;
	
	if (objetoOrigem.value > 0) 
	{
	
		for (var i=0; i<objetoOrigem.length; i++)
		{
			
			if (objetoOrigem.options[i].selected == true && !inSelect(prefixo + objetoOrigem.options[i].value,idObjetoDestino))
			{
				
				if (prefixo == "G")
					textoCampo = '{ ' + objetoOrigem.options[i].text + ' }';
				else
					textoCampo = objetoOrigem.options[i].text;
				
				adicionaElementoSelect(textoCampo,prefixo + objetoOrigem.options[i].value,idObjetoDestino);
				
			}
			
		}
	
	}

}