import * as funkceMapy from "./mapa.js";

export function Tabulka(Constants, typ, vybranaTopologie, poleTopologii, mapa) {

    this.kliknutaTopologie;
    this.kliknutySpoj;
    this.kliknutySoubor;
    this.radky = [];
    this.tabulka = document.createElement("table");
    this.hlavicka = this.tabulka.createTHead();
    this.volba = "skryt";
    let radek1 = this.hlavicka.insertRow();
    this.nadpis = radek1;


    let text2; let text3;
    let th; let text;
    switch (typ) {

        case "stanice":
            this.tabulka.id = "stanice";
            this.polozkyHlavicky = ["Název Stanice"];

            for (let i = 0; i < this.polozkyHlavicky.length; i++) {
                th = document.createElement("th");
                text = document.createTextNode(this.polozkyHlavicky[i]);
                th.appendChild(text);
                radek1.appendChild(th);
            }

            radek1.style.cursor = "pointer";
            text2 = document.createTextNode("Skrýt všechny stanice");
            text3 = document.createTextNode("Zobrazit všechny stanice");

            radek1.addEventListener("mouseout", (event) => {
                if (this.volba == "skryt") th.removeChild(text2);
                else th.removeChild(text3);
                th.appendChild(text);
                radek1.style.border = "";
            });

            radek1.addEventListener("mouseover", (event) => {
                th.removeChild(text);
                if (this.volba == "skryt") th.appendChild(text2);
                else th.appendChild(text3);
                radek1.style.border = "2px solid #fff";
            });

            radek1.addEventListener("click", (event) => {
                if (this.volba == "skryt") {
                    vybranaTopologie.poleStanic.forEach(stanice => {
                        if (stanice.visible) funkceMapy.skrytBod(stanice, "", stanice.radek, true, mapa);
                    })
                    th.removeChild(text2);
                    th.appendChild(text3);
                    this.volba = "zobrazit";
                } else {
                    vybranaTopologie.poleStanic.forEach(stanice => {
                        if (!stanice.visible) funkceMapy.zobrazitBod(stanice, "", stanice.radek, true, mapa);
                    })
                    this.volba = "skryt";
                    th.removeChild(text3);
                    th.appendChild(text2);
                }
            });

            this.pocetRadku = vybranaTopologie.poleStanic.length;
            for (let i = 0; i < this.pocetRadku; i++) {
                let data = [];
                data = [vybranaTopologie.poleStanic[i].poradi + ": " + vybranaTopologie.poleStanic[i].nazev];

                vybranaTopologie.poleStanic[i].radek = pridatRadek(Constants, typ, this.tabulka, data, vybranaTopologie.poleStanic[i], mapa);
            }

            break;

        case "spoje":
            this.tabulka.id = "spoje";

            this.polozkyHlavicky = ["Spoj"];

            for (let i = 0; i < this.polozkyHlavicky.length; i++) {
                th = document.createElement("th");
                text = document.createTextNode(this.polozkyHlavicky[i]);
                th.appendChild(text);
                radek1.appendChild(th);
            }

            radek1.style.cursor = "pointer";
            text2 = document.createTextNode("Skrýt všechny spoje");
            text3 = document.createTextNode("Zobrazit všechny spoje");

            radek1.addEventListener("mouseout", (event) => {
                if (this.volba == "skryt") th.removeChild(text2);
                else th.removeChild(text3);
                th.appendChild(text);
                radek1.style.border = "";
            });

            radek1.addEventListener("mouseover", (event) => {
                th.removeChild(text);
                if (this.volba == "skryt") th.appendChild(text2);
                else th.appendChild(text3);
                radek1.style.border = "2px solid #fff";

            });

            radek1.addEventListener("click", (event) => {
                if (this.volba == "skryt") {
                    vybranaTopologie.poleSpoju.forEach(spoj => {
                        if (spoj.visible) funkceMapy.skrytSpoj(spoj, "", spoj.radek, true, mapa);
                    })
                    th.removeChild(text2);
                    th.appendChild(text3);
                    this.volba = "zobrazit";
                } else {
                    vybranaTopologie.poleSpoju.forEach(spoj => {
                        if (!spoj.visible) funkceMapy.zobrazitSpoj(spoj, "", spoj.radek, true, mapa);
                    })
                    this.volba = "skryt";
                    th.removeChild(text3);
                    th.appendChild(text2);
                }
            });



            this.pocetRadku = vybranaTopologie.poleSpoju.length;
            for (let i = 0; i < this.pocetRadku; i++) {
                let data = [];
                data = [vybranaTopologie.poleSpoju[i].nazev];

                vybranaTopologie.poleSpoju[i].radek = pridatRadek(Constants, typ, this.tabulka, data, vybranaTopologie.poleSpoju[i], mapa);
            }

            break;
        case "topologie":
            this.tabulka.id = "topologie";
            this.polozkyHlavicky = ["Informace o vybrané topologii", " "];

            th = document.createElement("th");
            text = document.createTextNode(this.polozkyHlavicky[0]);
            th.setAttribute("colspan", "2");
            th.appendChild(text);
            radek1.appendChild(th);

            let nazev = vybranaTopologie.nazev;
            pridatRadek(Constants, typ, this.tabulka, ["Název: ", nazev], null, null);

            let typTopologie = vybranaTopologie.typ;
            pridatRadek(Constants, typ, this.tabulka, ["Typ topologie: ", typTopologie], null, null);

            let poznamka = vybranaTopologie.poznamka;
            pridatRadek(Constants, typ, this.tabulka, ["Poznámka: ", poznamka], null, null);

            let pocetStanic = vybranaTopologie.poleStanic.length;
            pridatRadek(Constants, typ, this.tabulka, ["Počet stanic: ", pocetStanic], null, null);

            let pocetSpoju = vybranaTopologie.poleSpoju.length;
            pridatRadek(Constants, typ, this.tabulka, ["Počet spojů: ", pocetSpoju], null, null);

            let pocetObsazenychStanic = 0;
            vybranaTopologie.poleStanic.forEach(stanice => {
                for (let i = 0; i < vybranaTopologie.poleSpoju.length; i++) {
                    if (vybranaTopologie.poleSpoju[i].A.nazev == stanice.nazev || vybranaTopologie.poleSpoju[i].B.nazev == stanice.nazev) {
                        pocetObsazenychStanic++;
                        i = vybranaTopologie.poleSpoju.length;
                    }
                }
            })

            let pocetNeobsazenychStanic = pocetStanic - pocetObsazenychStanic;
            pridatRadek(Constants, typ, this.tabulka, ["Počet nevyužitých stanic: ", pocetNeobsazenychStanic + "/" + pocetStanic], null, null);

            break;
        case "vsechnyTopologie":
            this.tabulka.id = "vsechnyTopologie";
            this.polozkyHlavicky = ["Název topologie"];

            for (let i = 0; i < this.polozkyHlavicky.length; i++) {
                th = document.createElement("th");
                text = document.createTextNode(this.polozkyHlavicky[i]);
                th.appendChild(text);
                radek1.appendChild(th);
            }

            text2 = document.createTextNode("Skrýt všechny topologie");
            text3 = document.createTextNode("Zobrazit všechny topologie");
            radek1.style.cursor = "pointer";


            radek1.addEventListener("mouseout", (event) => {
                if (this.volba == "skryt") th.removeChild(text2);
                else th.removeChild(text3);
                th.appendChild(text);
                radek1.style.border = "";
            });

            radek1.addEventListener("mouseover", (event) => {
                th.removeChild(text);
                if (this.volba == "skryt") th.appendChild(text2);
                else th.appendChild(text3);
                radek1.style.border = "2px solid #fff";

            });

            radek1.addEventListener("click", (event) => {
                if (this.volba == "skryt") {

                    funkceMapy.skrytVsechnyTopologie(poleTopologii, mapa);

                    th.removeChild(text2);
                    th.appendChild(text3);
                    this.volba = "zobrazit";
                } else {
                    funkceMapy.zobrazitVsechnyTopologie(Constants, poleTopologii, mapa);
                    th.removeChild(text3);
                    th.appendChild(text2);
                    this.volba = "skryt";
                }
            });

            this.pocetRadku = poleTopologii.length;
            for (let i = 0; i < this.pocetRadku; i++) {
                let data = [];
                data = [poleTopologii[i].nazev];

                poleTopologii[i].radek = pridatRadek(Constants, typ, this.tabulka, data, poleTopologii[i], mapa);
            }
            break;
        case "condition":
            // Zvláštní případ
            // parametr vybranaTopologie je pouze informativní, zda-li se jedná o první formulář či nikoliv
            // místo parametru poleTopologií se zde předává poleSpojů

            this.tabulka.id = "spoje";

            if (vybranaTopologie == undefined) this.polozkyHlavicky = ["Potvrdit odeslání formuláře"];
            else this.polozkyHlavicky = ["Spoj", "Koeficient"];



            for (let i = 0; i < this.polozkyHlavicky.length; i++) {
                th = document.createElement("th");
                text = document.createTextNode(this.polozkyHlavicky[i]);
                th.appendChild(text);
                radek1.appendChild(th);
                if (this.polozkyHlavicky.length > 1 && i == 0) {
                    this.nadpis = th;
                }
            }



            if (vybranaTopologie != undefined) {
                text2 = "Potvrdit odeslání formuláře";
                this.nadpis.style.cursor = "pointer";


                this.nadpis.addEventListener("mouseout", (event) => {
                    this.nadpis.innerHTML = this.polozkyHlavicky[0];
                    this.nadpis.style.border = "";
                });

                this.nadpis.addEventListener("mouseover", (event) => {
                    this.nadpis.innerHTML = text2;
                    this.nadpis.style.border = "2px solid #fff";
                });

                let poleSpoju = poleTopologii;
                this.pocetRadku = poleSpoju.length;

                // Pole Spojů je setřízeno podle koeficientu od nejmenšího po největší
                poleSpoju.sort(function (a, b) {
                    return a.koeficient - b.koeficient;
                });


                for (let i = 0; i < this.pocetRadku; i++) {
                    let data = [];
                    data = [poleSpoju[i].nazev, poleSpoju[i].koeficient];
                    poleSpoju[i].radek = pridatRadek(Constants, typ, this.tabulka, data, poleSpoju[i], mapa);
                }

            } else {
                radek1.style.cursor = "not-allowed";

                radek1.addEventListener("mouseout", (event) => {
                    radek1.style.border = "";
                });

                radek1.addEventListener("mouseover", (event) => {
                    radek1.style.border = "2px solid #fff";
                });
            }
            break;
        case "detail":
            // Zvláštní případ
            // Místo parametru vybranaTopologie se zde předává objekt koeficient
            this.tabulka.id = "detail";
            this.polozkyHlavicky = ["Parametr", "Koeficient", "%"];

            for (let i = 0; i < this.polozkyHlavicky.length; i++) {
                th = document.createElement("th");
                text = document.createTextNode(this.polozkyHlavicky[i]);
                th.appendChild(text);
                radek1.appendChild(th);
                if (this.polozkyHlavicky.length > 1 && i == 0) {
                    this.nadpis = th;
                }
            }
            let koeficient = vybranaTopologie;

            // Vzdálenost
            pridatRadek(Constants, typ, this.tabulka, ["Délka vedení: ", koeficient.vzdalenost.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_VZDALENOST.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.vzdalenost / Constants.KOEF_VZDALENOST) * 100).toFixed(0)], Constants.KOEF_VZDALENOST, null);

            // Stari kabelu
            pridatRadek(Constants, typ, this.tabulka, ["Stáří kabelu: ", koeficient.stariKabelu.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_STARI_KABELU.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.stariKabelu / Constants.KOEF_STARI_KABELU) * 100).toFixed(0)], Constants.KOEF_STARI_KABELU, null);

            // Typ kabelu
            pridatRadek(Constants, typ, this.tabulka, ["Typ kabelu: ", koeficient.typKabelu.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_TYP_KABELU.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.typKabelu / Constants.KOEF_TYP_KABELU) * 100).toFixed(0)], Constants.KOEF_TYP_KABELU, null);

            // Prurez kabelu
            pridatRadek(Constants, typ, this.tabulka, ["Průřez kabelu: ", koeficient.prurezKabelu.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_PRUREZ_KABELU.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.prurezKabelu / Constants.KOEF_PRUREZ_KABELU) * 100).toFixed(0)], Constants.KOEF_PRUREZ_KABELU, null);

            // Pocet spojek
            pridatRadek(Constants, typ, this.tabulka, ["Počet spojek: ", koeficient.pocetSpojek.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_POCET_SPOJEK.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.pocetSpojek / Constants.KOEF_POCET_SPOJEK) * 100).toFixed(0)], Constants.KOEF_POCET_SPOJEK, null);

            // Typ spojek
            pridatRadek(Constants, typ, this.tabulka, ["Typ spojek: ", koeficient.typSpojky.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_TYP_SPOJEK.toFixed(Constants.ROUNDKOEF), 100-((koeficient.typSpojky / Constants.KOEF_TYP_SPOJEK) * 100).toFixed(0)], Constants.KOEF_TYP_SPOJEK, null);

            // Staří spojek
            pridatRadek(Constants, typ, this.tabulka, ["Stáří spojek: ", koeficient.stariSpojky.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_STARI_SPOJEK.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.stariSpojky / Constants.KOEF_STARI_SPOJEK) * 100).toFixed(0)], Constants.KOEF_STARI_SPOJEK, null);

            // Zátěž
            pridatRadek(Constants, typ, this.tabulka, ["Zátěž: ", koeficient.zatez.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_ZATEZ.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.zatez / Constants.KOEF_ZATEZ) * 100).toFixed(0)], Constants.KOEF_ZATEZ, null);

            // Zemnění
            pridatRadek(Constants, typ, this.tabulka, ["Zemnění: ", koeficient.zemneni.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_ZEMNENI.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.zemneni / Constants.KOEF_ZEMNENI) * 100).toFixed(0)], Constants.KOEF_ZEMNENI, null);

            // TCP propustnost
            pridatRadek(Constants, typ, this.tabulka, ["TPC Propustnost: ", koeficient.propustnost.toFixed(Constants.ROUNDKOEF) + "/" + Constants.KOEF_PROPUSTNOST.toFixed(Constants.ROUNDKOEF), 100 - ((koeficient.propustnost / Constants.KOEF_PROPUSTNOST) * 100).toFixed(0)], Constants.KOEF_PROPUSTNOST, null);

            // Diagnoza
            pridatRadek(Constants, typ, this.tabulka, ["Doporučení: ", koeficient.doporuceni], null, null);

            break;
        case "zaloha":

            // Zvláštní případ
            // Místo parametru vybranaTopologie se zde předává pole souborů
            this.tabulka.id = "zaloha";
            this.polozkyHlavicky = ["Název souboru", "Datum vytvoření"];

            for (let i = 0; i < this.polozkyHlavicky.length; i++) {
                th = document.createElement("th");
                text = document.createTextNode(this.polozkyHlavicky[i]);
                th.appendChild(text);
                radek1.appendChild(th);
            }

            this.pocetRadku = vybranaTopologie.length;
            for (let i = 0; i < this.pocetRadku; i++) {
                let data = [];
                data = [vybranaTopologie[i].nazev, vybranaTopologie[i].datum];
                vybranaTopologie[i].radek = pridatRadek(Constants, typ, this.tabulka, data, vybranaTopologie[i], null);
            }
            break;
    }


}


export function pridatRadek(Constants, typ, tabulka, data, objekt, mapa) {
    let bunka;
    let radek = tabulka.insertRow();

    switch (typ) {
        case "stanice":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);
                //if (y>0)cell.style.textAlign = "center";
            }

            //vybranaTopologie.poleStanic[i].bunka = bunka;

            if (!objekt.visible) radek.style.backgroundColor = "LightCoral";

            radek.addEventListener("click", function (event) {
                if (event.ctrlKey) {
                    mapa.setView([objekt.lat, objekt.long], 16);
                    objekt.marker.openPopup();
                } else {
                    if (objekt.visible) {
                        let zabarvitBunku = true;
                        funkceMapy.skrytBod(objekt, bunka, radek, zabarvitBunku, mapa);

                    } else {
                        let zabarvitBunku = true;
                        funkceMapy.zobrazitBod(objekt, bunka, radek, zabarvitBunku, mapa);

                    }
                }
            });


            break;
        case "spoje":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);
                //if (y>0)cell.style.textAlign = "center";
            }

            //vybranaTopologie.poleStanic[i].bunka = bunka;

            if (!objekt.visible) radek.style.backgroundColor = "LightCoral";

            radek.addEventListener("click", function (event) {
                if (event.ctrlKey) {
                    let lat = parseFloat(objekt.A.lat) + parseFloat(objekt.B.lat);
                    let long = parseFloat(objekt.A.long) + parseFloat(objekt.B.long);
                    mapa.setView([lat/2, long/2], 15);
                    objekt.polyline.openPopup();
                } else {
                    if (objekt.visible) {
                        let zabarvitBunku = true;
                        funkceMapy.skrytSpoj(objekt, bunka, radek, zabarvitBunku, mapa);

                    } else {
                        let zabarvitBunku = true;
                        funkceMapy.zobrazitSpoj(objekt, bunka, radek, zabarvitBunku, mapa);

                    }
                }
            });
            break;
        case "topologie":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);
            }
            break;
        case "vsechnyTopologie":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);
            }

            if (!objekt.visible) radek.style.backgroundColor = "LightCoral";

            radek.addEventListener("click", function (event) {
                if (event.ctrlKey) {
                    // Pokud byla vybrána nějaká topologie
                    if (tabulka.kliknutaTopologie != undefined) {
                        // Font řádku nastaven na default
                        tabulka.kliknutaTopologie.radek.style.fontWeight = "";

                        // Pokud uživatel klikl na vybranou topologii, jeho výběr je tímto zrušen
                        if (tabulka.kliknutaTopologie.radek == radek) tabulka.kliknutaTopologie = undefined;
                        else {
                            // Pokud klikl na jinou topologii, font bude tučný a tato topologie je uložena
                            radek.style.fontWeight = "bold";
                            tabulka.kliknutaTopologie = objekt;
                            // Pokud topologie obsahuje n stanic, mapa se vycentruje na stanici s n/2
                            if (tabulka.kliknutaTopologie.poleStanic.length > 0) mapa.setView([tabulka.kliknutaTopologie.poleStanic[(tabulka.kliknutaTopologie.poleStanic.length / 2).toFixed(0)].lat, tabulka.kliknutaTopologie.poleStanic[(tabulka.kliknutaTopologie.poleStanic.length / 2).toFixed(0)].long], 13);
                        }
                        // Pokud nebyla vybrána žádná topologie, font bude tučný a tato topologie je uložena
                    } else {
                        radek.style.fontWeight = "bold";
                        tabulka.kliknutaTopologie = objekt;
                        // Pokud topologie obsahuje n stanic, mapa se vycentruje na stanici s n/2
                        if (tabulka.kliknutaTopologie.poleStanic.length > 0) mapa.setView([tabulka.kliknutaTopologie.poleStanic[(tabulka.kliknutaTopologie.poleStanic.length / 2).toFixed(0)].lat, tabulka.kliknutaTopologie.poleStanic[(tabulka.kliknutaTopologie.poleStanic.length / 2).toFixed(0)].long], 13);

                    }


                } else {
                    if (objekt.visible) {
                        funkceMapy.skrytTopologii(objekt, true, mapa);
                        /*let zabarvitBunku = true;
                        funkceMapy.skrytSpoj(objekt, bunka, radek, zabarvitBunku, mapa);*/

                    } else {
                        funkceMapy.zobrazitTopologii(Constants, objekt, true, mapa);
                        /*let zabarvitBunku = true;
                        funkceMapy.zobrazitSpoj(objekt, bunka, radek, zabarvitBunku, mapa);
                        */
                    }
                }
            });
            break;
        case "condition":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);
            }


            if (!objekt.visible) radek.style.backgroundColor = "LightCoral";

            radek.addEventListener("click", function (event) {
                // Pokud byl vybrán nějaký spoj
                if (tabulka.kliknutySpoj != undefined) {
                    // Font řádku nastaven na default
                    tabulka.kliknutySpoj.radek.style.fontWeight = "";

                    // Pokud uživatel klikl na vybraný spoj, jeho výběr je tímto zrušen
                    if (tabulka.kliknutySpoj.radek == radek) {
                        tabulka.kliknutySpoj.polyline.closePopup();
                        tabulka.kliknutySpoj = undefined;
                    }
                    else {
                        // Pokud klikl na jiný spoj, font bude tučný a tento spoj je uložena
                        radek.style.fontWeight = "bold";
                        tabulka.kliknutySpoj = objekt;
                    }

                    // Pokud nebyl vybrán žádný spoj, font bude tučný a tento spoj je uložena
                } else {
                    radek.style.fontWeight = "bold";
                    tabulka.kliknutySpoj = objekt;
                }
            });
            break;
        case "detail":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);

                // Pokud se jedná o řádek, ve kterém budou vypisovány problémy, budou spojeny 2 buňky
                if (data[0] == "Doporučení: ") {
                    if (y == 0) bunka.style.fontWeight = "bold";
                    if (y == 1) {
                        bunka.setAttribute("colspan", "2");
                        bunka.style.fontWeight = "normal";
                    }
                } else {
                    // Jedná-li se o poslední buňku řádku:
                    // Je-li nenulová, bude červenou barvou
                    // Je-li nulová, bude zelenou barvou
                    if (y == data.length - 1) {
                        // Ochrana
                        if (data[y] < 0) data[y] = 0;
                        // Barva
                        let minimum = 0;
                        let koeficientBarvy = 255 / (100 - minimum);

                        // Barva
                        let red;
                        let green;
                        if (data[y] < minimum) {
                            red = 255;
                            green = 0;
                        } else {
                            red = 255 - (data[y] - minimum) * koeficientBarvy;
                            green = (data[y] - minimum) * koeficientBarvy;
                        }
                        if (green > 230) green = 230;

                        red = red.toFixed(0);
                        green = green.toFixed(0);
                        let barva = 'rgb(' + red.toString() + ',' + green.toString() + ',0)';
                        bunka.style.color = barva;
                    }
                }


            }
            break;
        case "zaloha":
            for (let y = 0; y < data.length; y++) {
                bunka = radek.insertCell();
                let text = document.createTextNode(data[y]);
                bunka.appendChild(text);
            }

            radek.addEventListener("click", function (event) {
                // Pokud byl vybrán nějaký soubor
                if (tabulka.kliknutySoubor != undefined) {
                    // Font řádku nastaven na default
                    tabulka.kliknutySoubor.radek.style.fontWeight = "";

                    // Pokud uživatel klikl na vybraný soubor, jeho výběr je tímto zrušen
                    if (tabulka.kliknutySoubor.radek == radek) {
                        tabulka.kliknutySoubor = undefined;
                    }
                    else {
                        // Pokud klikl na jiný soubor, font bude tučný a tento soubor je uložen
                        radek.style.fontWeight = "bold";
                        tabulka.kliknutySoubor = objekt;
                    }

                    // Pokud nebyl vybrán žádný soubor, font bude tučný a tento soubor je uložen
                } else {
                    radek.style.fontWeight = "bold";
                    tabulka.kliknutySoubor = objekt;
                }
            });
            break;
    }
    return radek;
}