function diplom_menu(vyber)
%% Hlavní skript
%
% vstup vyber
% výběr v menu
%



    if nargin==0                 %test na vstupní parametr
   
%% hlavní okno
      
    Monitor = get(0,'ScreenSize');

    MaWin=figure('Units', 'Pixels', 'Name', 'Hlavní okno', ...
        'Position', [0.2*Monitor(3) 0.3*Monitor(4) 0.4*Monitor(3) 0.6*Monitor(4)], ...
        'Tag', 'Figure', 'NumberTitle', 'off', 'MenuBar', 'None');

    tlac1 = uicontrol('Style', 'pushbutton', 'string', 'Nová databáze', ...
        'units', 'normalized', 'Position', [0 0.9 0.2 0.1], ...
        'TooltipString','Založení nové databáze', ...
        'callback', 'diplom_menu nova');
    
    tlac2 = uicontrol('Style', 'pushbutton', 'string', 'Seznam databází', ...
        'units', 'normalized', 'Position', [0.2 0.9 0.2 0.1], ...
        'TooltipString','Výpis natrénovaných slov', ...
        'callback', 'diplom_menu databaze');

    tlac3 = uicontrol('Style', 'pushbutton', 'string', 'Vyhledání slova', ...
        'units', 'normalized', 'Position', [0.4 0.9 0.2 0.1], ...
        'TooltipString','Vyhledá slovo v databázích', ...
        'callback', 'diplom_menu vyhledavani');
    
    tlac4 = uicontrol('Style', 'pushbutton', 'string', 'Změna parametrů', ...
        'units', 'normalized', 'Position', [0.6 0.9 0.2 0.1], ...
        'TooltipString','Změna proměnných parametrů', ...
        'callback', 'diplom_menu parametry');
    
    tlac5 = uicontrol('Style', 'pushbutton', 'string', 'Konec', ...
        'units', 'normalized', 'Position', [0.8 0.9 0.2 0.1], ...
        'TooltipString','Ukončení programu', ...
        'callback', 'diplom_menu zavri');
    
     if exist('parametr.mat') ~= 2
        
        dataParam = struct('dataVzorek', 320, 'dataAlfa', 0.98, ...
         'dataUsek', 80, 'dataUroven', 0.0001, 'dataTolerance', 0.2,...
         'dataTol_matic', 0.1);
  
          
       save('parametr.mat','dataParam');
  
    end
    
    
  else
    
%% výběr položek v menu > jednotlivé funkce

    if (strcmp(vyber,'konec') ~= 1)

    
        switch (vyber)
            case 'nova'             %vytvoření nové databáze
                close all;
                diplom_menu();
                nova_databaze();
                
            case 'databaze'         %zobrazí seznam databází
                close all;
                diplom_menu();
                seznam(); 
                
           case 'vyhledavani'       %hledání slova 
                close all;
                diplom_menu();
                nalezeni();
                
            case 'parametry'        %změna parametrů
                close all;
                diplom_menu();
                fun_parametr(vyber);
                
            case 'zavri'            %konec programu
                close all;
                
            case 'dataBez'          %zavření menu změn parametrů
                funBez();
                
            case 'dataUloz'         %uložení v menu změn parametrů
                funUloz();
                
            case 'dataReset'        %původní honoty parametrů
                funReset();
                
        end
    end
  end
end


%% funkce pro změnu parametrů

function funReset()   %původní hodnoty parametrů
  
     dataParam = struct('dataVzorek', 320, 'dataAlfa', 0.98, ...
         'dataUsek', 80, 'dataUroven', 0.0001, 'dataTolerance', 0.2, ...
         'dataTol_matic', 0.1);
  
          
  save('parametr.mat','dataParam');
  
  mazaniPomocnych();

  diplom_menu('parametry');
  
end

function funUloz()    %uložení aktuálních hodnot parametrů

load('parametr.mat');

if exist('vzorek.mat')==2
    load('vzorek.mat');
else
    vzorek = dataParam.dataVzorek;
end

if exist('alfa.mat')==2
    load('alfa.mat');
else
    alfa = dataParam.dataAlfa;
end

if exist('usek.mat')==2
    load('usek.mat');
else
    usek = dataParam.dataUsek;
end

if exist('uroven.mat')==2
    load('uroven.mat');
else
    uroven = dataParam.dataUroven;
end

if exist('tolerance.mat')==2
    load('tolerance.mat');
else
    tolerance = dataParam.dataTolerance;
end

if exist('tol_matic.mat')==2
    load('tol_matic.mat');
else
    tol_matic = dataParam.dataTol_matic;
end

  dataParam = struct('dataVzorek', vzorek, 'dataAlfa', alfa, ...
         'dataUsek', usek, 'dataUroven', uroven, 'dataTolerance', tolerance, ...
         'dataTol_matic', tol_matic);
 
     
  save('parametr.mat','dataParam');

  mazaniPomocnych();

end
 
function funBez()         %zavření menu změn parametrů

mazaniPomocnych();
close();

diplom_menu();

end

function mazaniPomocnych()    %smazání pomocných proměnných

  if exist('vzorek.mat')==2
    delete('vzorek.mat');
  end

  if exist('alfa.mat')==2
     delete('alfa.mat');
  end

  if exist('usek.mat')==2
    delete('usek.mat');
  end

  if exist('uroven.mat')==2
    delete('uroven.mat');
  end

  if exist('tolerance.mat')==2
    delete('tolerance.mat');
  end

  if exist('tol_matic.mat')==2
    delete('tol_matic.mat');
  end

end

