#include "lista_ord.h"

/*
* =================================================
*    Filename:  .c
* Description:
*     Created:  dd/mm/18 hh:mm
* =================================================
*/

int imprime_op();

int main(int argc, char **argv)
{
	int elemento = 0, op = -1;
	int opcao_print, opcao_remove, opcao_insere;

	Lista *L1, *L2, *L3;
	L1 = cria_lista();
	L2 = cria_lista();
	L3 = cria_lista();

	system("clear");
	while(op != 5)
	{
		op = imprime_op();
		switch(op)
		{
			case 1:
				printf("Inserir em qual lista? (1 ou 2): ");
				scanf("%d", &opcao_insere);
				elemento = 0;
				if(opcao_insere == 1)
				{
					printf("Elemento a ser inserido: ");
					scanf("%d", &elemento);
					if(insere_ord(L1, elemento))
						printf("Elemento inserido!\n");
					else
						printf("Elemento nao inserido!\n");
				}

				else if(opcao_insere == 2)
				{
					printf("Elemento a ser inserido: ");
					scanf("%d", &elemento);
					if(insere_ord(L2, elemento))
						printf("Elemento inserido!\n");
					else
						printf("Elemento nao inserido!\n");
				}
				getchar();
				break;
			case 2:
				printf("Inserir em qual lista? (1 ou 2): ");
				scanf("%d", &opcao_remove);
				if(opcao_remove == 1)
				{
					printf("Qual elemento sera removido? ");
					scanf("%d", &elemento);
					if(remove_ord(L1, elemento))
						printf("Elemento removido\n");
					else
						printf("Elemento nao removido\n");
				}

				if(opcao_remove == 2)
				{
					printf("Qual elemento sera removido? ");
					scanf("%d", &elemento);
					if(remove_ord(L1, elemento))
						printf("Elemento removido\n");
					else
						printf("Elemento nao removido\n");
				}
				getchar();
				break;
			case 3:
				printf("Intercalando...\n");
				L3 = intercala_ord(L1,L2);
				if(L3)
					printf("Elementos intercalados\n");
			case 4:
				printf("Imprimir qual lista? ");
				scanf("%d", &opcao_print);
				system("clear");
				if(opcao_print == 1)
					print_lista(L1);

				if(opcao_print == 2)
					print_lista(L2);

				if(opcao_print == 3)
					print_lista(L3);

				getchar();
				system("clear");
				break;
		}
	}
	free_lista(&L1);
	free_lista(&L2);
    return 0;
}

int imprime_op()
{
	int op;

	do
	{
		printf("---------------- Qual a operacao? -----------------\n");
		printf("[1] - Inserir um elemeto à uma lista\n");
		printf("[2] - Remover um elemento de uma lista\n");
		printf("[3] - Intercalar numeros entre as listas\n");
		printf("[4] - Imprimir uma lista\n");
		printf("[5] - Sair do programa\n");
		printf("Operacao: "); setbuf(stdin,NULL);
		scanf("%d", &op);
	} while(op < 0 || op > 5);

	return op;
}


