anychart.onDocumentReady(function() {
  stage = anychart.graphics.create("container");
  subgraf = anychart.graphics.create("subgraf");

  // Globalni promenne
  allData = {};
  datatyp = "exekuce";
  defaultni_mapa = "kraje";
  tooltipchartexe = null;
  tooltipcharted = null;
  typHooveruGlobal = "exekuce";

  // Vykresli prazdnou mapu
  blankMap();

  // Nacti defaultni data
  // pocet obyvatel
  allData["obyvatele"] = obyvatele;
  // exekuce
  allData["exekuce"] = defaultni_exekuce;
  // vzdelani
  allData["vzdelani"] = defaultni_vzdelani;

  allData = vzdelani2Exekuce(allData);
  allData = obyv2Exekuce(allData);

  // Nacti defaultni mapu
  updatujMapu(allData[datatyp]);
  zmenMapu(defaultni_mapa);

  // Listener pro nacitani souboru
  document.getElementById('exekuce_xls').addEventListener('change', nactiXLSFile, false);

  // Listener pro Hoover (tooltip)
  series.listen("pointMouseOver", function(e) {
    // get the data for the current point
    var index = e.pointIndex;
    // console.log(index);
    var vybranaOblast = allData["exekuce"][index];

    // ------- Data pro exekuce --------
    if (tooltipchartexe == null) tooltipchartexe = createChart(); // Jestli graf neexistuje, vytvor ho.
    tooltipchartexe.data([{
        x: "0-15",
        value: vybranaOblast["0-15"]
      },
      {
        x: "16-20",
        value: vybranaOblast["16-20"]
      },
      {
        x: "21-40",
        value: vybranaOblast["21-40"]
      },
      {
        x: "41-64",
        value: vybranaOblast["41-64"]
      },
      {
        x: "65+",
        value: vybranaOblast["65-999"]
      }
    ]);
    tooltipchartexe.title(vybranaOblast["oblast"] + " - exekuce");

    // ------- Data pro vzdelani --------
    if (tooltipcharted == null) tooltipcharted = createChart();
    tooltipcharted.data([{
        x: "bez vzděláni",
        value: vybranaOblast["bez vzděláni"]
      },
      {
        x: "základní",
        value: vybranaOblast["základní"]
      },
      {
        x: "střední bez maturity",
        value: vybranaOblast["střední bez maturity"]
      },
      {
        x: "nástavbové studium",
        value: vybranaOblast["nástavbové studium"]
      },
      {
        x: "vyšší odborné",
        value: vybranaOblast["vyšší odborné"]
      },
      {
        x: "vysokoškolské",
        value: vybranaOblast["vysokoškolské"]
      }
    ]);
    tooltipcharted.title(vybranaOblast["oblast"] + " - vzdělání");
  });

  series.tooltip().onDomReady(function() {
    // configure the contentElement div of the tooltip
    this.contentElement.style.width = "0px";
    this.contentElement.style.height = "0px";
    this.contentElement.style.padding = "0px";

    /* assign the contentElement div
    as a container for the tooltip chart */
    /* assign the contentElement div
    as a container for the tooltip chart */
    // console.log(this);
    // initiate drawing the chart
    // tooltipchartexe.container(this.contentElement);
    tooltipchartexe.container(subgraf);
    tooltipchartexe.draw();
  });


  // Prevent the content of the contentElement div from being overridden by the default formatter
  series.tooltip().onBeforeContentChange(function() {
    console.log("typHooveruGlobal: " + typHooveruGlobal);
    if (typHooveruGlobal == "vzdelani") {
      tooltipchartexe.container(null);
      // tooltipcharted.container(this.contentElement);
      tooltipcharted.container(subgraf);
      tooltipcharted.draw();
    } else {
      tooltipcharted.container(null);
      // tooltipchartexe.container(this.contentElement);
      tooltipchartexe.container(subgraf);
      tooltipchartexe.draw();
    }
    return false;
  });
  // console.log("allData:" + JSON.stringify(allData));
});

function blankMap() {
  map = anychart.map();
  map.geoData(anychart.maps[defaultni_mapa]);
  map.crs("mercator");
  //map.colorRange(true);
  //map.geoData(anychart.maps['cr-simple']);

  series = map.choropleth();
  map.container(stage);
  map.draw();
  nastavTitle("Načtěte data");

  // Set hoover parameters
  series.tooltip().useHtml(true);
  series.tooltip().separator(false);
  series.tooltip().title(false);

}

function debugPrintAlldata() {
  console.log("Ahoj");
  for (var i = 0; i < allData["exekuce"].length; i++) { // Projdi vsechny kraje z optimalizovane tabulky
    console.log("Oblast " + allData["exekuce"][i]["oblast"] + ":\n")
    console.log(allData["exekuce"][i]);
  }
}

function vzdelani2Exekuce(allData) {
  for (var i = 0; i < allData["vzdelani"].length; i++) {
    for (var j = 0; j < allData["exekuce"].length; j++) {
      if ((allData["vzdelani"][i]["typ"] == allData["exekuce"][j]["typ"]) && (allData["vzdelani"][i]["oblast"] == allData["exekuce"][j]["oblast"])) {
        for (var property in allData["vzdelani"][i]) {
          if (!allData["exekuce"][j].hasOwnProperty(property)) {
            allData["exekuce"][j][property] = allData["vzdelani"][i][property];
          }
        }
      }
    }
  }
  return allData;
}

function obyv2Exekuce(allData) {
  for (var i = 0; i < allData["obyvatele"].length; i++) {
    for (var j = 0; j < allData["exekuce"].length; j++) {
      if ((allData["obyvatele"][i]["typ"] == allData["exekuce"][j]["typ"]) && (allData["obyvatele"][i]["oblast"] == allData["exekuce"][j]["oblast"])) {
        for (var property in allData["obyvatele"][i]) {
          if (!allData["exekuce"][j].hasOwnProperty(property)) {
            allData["exekuce"][j][property] = allData["obyvatele"][i][property];
          }
        }
      }
    }
  }
  return allData;
}

function nastavTitle(title) {
  if (!title) {
    title = "<span style=\"font-size:14px;\">Mapa exekucí - grafy exekucí</span>";
  }
  map.title().useHtml(true).align('left');
  map.title(title);

}

// create a tooltip chart
function createChart() {
  // create a bar chart
  var chart = anychart.pie();

  // configure axes and labels
  // chart.xAxis().stroke(null).ticks(false);
  // chart.xAxis().labels().fontSize(10);
  // chart.yAxis().labels().fontSize(10);
  // chart.xAxis().labels().enabled();
  // chart.yAxis().labels().enabled();

  // set padding
  chart.padding([0, 12, 0, 0]);

  // set the radius
  chart.radius("100%")

  // set the position of labels
  chart.labels().position("outside");

  // Set critical angle.
  //chart.outsideLabelsCriticalAngle(0);

  // configure the chart title
  chart.title().fontSize(12);

  // legend settings
  var legend = chart.legend();
  // enables legend
  legend.enabled(true);
  // set legend height
  // legend.height(200);
  // set legend width
  // legend.width("100%");
  // set legend position
  legend.position("bottom");
  // set legend align
  // legend.align("top");
  // set padding 10px
  legend.padding(5);
  // legend items layout
  legend.itemsLayout("horizontalExpandable");
  // paginator settings

  return chart;
}

function zmenMapu(druh_mapy) {
  series.data([]); // Zapomen predchozi data.
  map.geoData(anychart.maps[druh_mapy]);
  if (druh_mapy == "okresy") {
    series.geoIdField('Nazev');
  } else {
    series.geoIdField('id');
  }

  // series.data(allData[datatyp]);
  // console.log("Datatyp: " + datatyp);

  updatujMapu(allData[datatyp]);

  //map.crs("mercator");
}

function zmenHoover(typHooveru) {

  typHooveruGlobal = typHooveru;
  console.log("Menim typ hooveru na: " + typHooveruGlobal);

  // if (!color) { // Obarveni mapy pod mysi
  //   series.hovered().fill('#addd8e');
  // } else {
  //   series.hovered().fill(color);
  // }
}

function showData(datatyp) {
  updatujMapu(allData[datatyp]);
}

function updatujMapu(content) {
  series.data(content);
  // series.geoIdField('id');
  // Mozno nahradit pro procentualni pomery: https://playground.anychart.com/docs/v8/samples/Maps_Scales_03
  series.colorScale(anychart.scales.linearColor('#1111ff', '#dd1100'));
  series.labels(false);

  nastavTitle();
}


var ExcelToJSON = function() {
  this.parseExcel = function(file) {
    var reader = new FileReader();
    reader.onload = function(e) {
      var data = e.target.result;
      var workbook = XLSX.read(data, {
        type: 'binary'
      });
      workbook.SheetNames.forEach(function(sheetName) {
        // Here is your object
        var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
        allData.exekuce = optimalize_json(XL_row_object);
        //allData = vzdelani2Exekuce(allData);
        allData = obyv2Exekuce(allData);
        for (var i = 0; i < allData["exekuce"].length; i++) {
          allData["exekuce"][i]["value"] = Math.floor(100 / (allData["exekuce"][i]["PO"] / allData["exekuce"][i]["pocet_dluzniku"]));
        }
        console.log(allData);
        updatujMapu(allData[datatyp]);
        console.log("Raw data:\n" + JSON.stringify(allData["exekuce"]));
        //var json_object = JSON.stringify(XL_row_object);
        console.log("Data z XLS nactena.");
        //jQuery( '#xlx_json' ).val( json_object );
      })
    };
    reader.onerror = function(ex) {
      console.log(ex);
    };
    reader.readAsBinaryString(file);
  };
};

function optimalize_json(vstupniArray) {
  function pridej_do_res(obj, oblast, typ) { // Predpokladame, ze result teto oblasti uz existuje.
    oblast["pocet_exekuci"] = oblast["pocet_exekuci"] + Number(obj["sum_executions"]);
    oblast["pocet_dluzniku"] = oblast["pocet_dluzniku"] + 1;
    var age = Number(obj["age"]);
    if (!isNaN(age)) {
      switch (true) {
        case ((age > 0) && (age < 16)):
          oblast["0-15"] = oblast["0-15"] + 1;
          break;
        case ((age > 15) && (age < 21)):
          oblast["16-20"] = oblast["16-20"] + 1;
          break;
        case ((age > 20) && (age < 41)):
          oblast["21-40"] = oblast["21-40"] + 1;
          break;
        case ((age > 40) && (age < 65)):
          oblast["41-64"] = oblast["41-64"] + 1;
          break;
        case ((age > 64)):
          oblast["65-999"] = oblast["65-999"] + 1;
          break;
        default:
      }
    }
    return oblast;
  } // End of pridej_do_res()

  function novaOblast(obj, result, typ_oblasti) {
    // console.log("Nova oblast " + typ_oblasti + ": " + obj[typ_oblasti]);
    var typ = typ_oblasti;
    if (typ_oblasti == "city_county") {
      typ = "okres";
    }
    var novy_kraj = {}; // Vytvor novy kraj s nulovymi hodnotami
    novy_kraj["oblast"] = obj[typ_oblasti];
    novy_kraj["typ"] = typ;
    novy_kraj["pocet_exekuci"] = 0;
    novy_kraj["pocet_dluzniku"] = 0;
    novy_kraj["0-15"] = 0;
    novy_kraj["16-20"] = 0;
    novy_kraj["21-40"] = 0;
    novy_kraj["41-64"] = 0;
    novy_kraj["65-999"] = 0;
    result.push(novy_kraj); // Vloz novy kraj do vysledku (optimalizovane tabulky)
    result[result.length - 1] = pridej_do_res(obj, result[result.length - 1]); // Pridej radek do vysledku
    return;
  }

  var result = []; // Vysledek - optimalizovana tabulka

  for (var i = 0; i < vstupniArray.length; i++) {
    var obj = {};
    obj = vstupniArray[i];
    var kraj_nalezen = false; // Vychozi hodnota, predpokladej, ze kraj nebyl nalezen
    var okres_nalezen = false; // Vychozi hodnota, predpokladej, ze kraj nebyl nalezen
    for (var k = 0; k < result.length; k++) { // Projdi vsechny kraje z optimalizovane tabulky
      if (obj.hasOwnProperty("kraj")) { // Jestlize radek obsahuje informaci o kraji
        if (result[k].hasOwnProperty("oblast") && (result[k]["typ"] == "kraj") && (result[k]["oblast"] == obj["kraj"])) { // Jestlize kraj radku uz existuje ve vysledku (optimalizovane tabulce)
          result[k] = pridej_do_res(obj, result[k], "kraj"); // Pridej radek do existujiciho kraje ve vysledku
          kraj_nalezen = true; // Zapamatuj si, ze jsi kraj uz nalezl.
        }
      }
      if (obj.hasOwnProperty("city_county")) { // Jestlize radek obsahuje informaci o kraji
        if (result[k].hasOwnProperty("oblast") && (result[k]["typ"] == "okres") && (result[k]["oblast"] == obj["city_county"])) { // Jestlize kraj radku uz existuje ve vysledku (optimalizovane tabulce)
          result[k] = pridej_do_res(obj, result[k], "okres"); // Pridej radek do existujiciho kraje ve vysledku
          okres_nalezen = true; // Zapamatuj si, ze jsi kraj uz nalezl.
        }
      }
      if (kraj_nalezen && okres_nalezen) {
        break; // Ukonci prochazeni vysledne tabulky. Optimalizace.
      }
    }

    if (!kraj_nalezen) {
      novaOblast(obj, result, "kraj");
    }
    if (!okres_nalezen) {
      novaOblast(obj, result, "city_county");
    }
    // if (!kraj_nalezen || !okres_nalezen) { // Pokud kraj nebyl ve vysledku nalezen, musime ho pridat.
    //   var novy_kraj = {}; // Vytvor novy kraj s nulovymi hodnotami
    //   novy_kraj["oblast"] = obj["kraj"];
    //   novy_kraj["oblast"] = obj["city_county"];
    //   novy_kraj["pocet_exekuci"] = 0;
    //   novy_kraj["pocet_dluzniku"] = 0;
    //   novy_kraj["0-15"] = 0;
    //   novy_kraj["16-20"] = 0;
    //   novy_kraj["21-40"] = 0;
    //   novy_kraj["41-64"] = 0;
    //   novy_kraj["65-999"] = 0;
    //   result.push(novy_kraj); // Vloz novy kraj do vysledku (optimalizovane tabulky)
    //   result[result.length - 1] = pridej_do_res(obj, result[result.length - 1]); // Pridej radek do vysledku
    // }
  }

  // Tabulka pro preklad vstupnich nazvu kraju na nazvy kraju pouzite v mape
  var id_mapper = {
    "Kraj Vysočina": "CZ.JK",
    "Hlavní město Praha": "CZ.SK",
    "Jihomoravský kraj": "CZ.6305",
    "Jihočeský kraj": "CZ.CK",
    "Karlovarský kraj": "CZ.KK",
    "Královéhradecký kraj": "CZ.HK",
    "Liberecký kraj": "CZ.LK",
    "Moravskoslezský kraj": "CZ.VK",
    "Olomoucký kraj": "CZ.6307",
    "Pardubický kraj": "CZ.6308",
    "Plzeňský kraj": "CZ.6304",
    "Středočeský kraj": "CZ.2294",
    "Zlínský kraj": "CZ.6306",
    "Ústecký kraj": "CZ.6303"
  };
  var nejnizsi_value = -1;
  // Cyklus na prelozeni nazvu oblasti ze vstupu na nazvy oblasti pro mapovy podklad a vypocet obarveni kraje (klic "value")
  for (var l = 0; l < result.length; l++) { // Projdi optimalizovanou tabulku (result)
    if (id_mapper.hasOwnProperty(result[l]["oblast"]) && (result[l]["typ"] == "kraj")) {
      result[l]["id"] = id_mapper[result[l]["oblast"]]; // Do optimalizovane tabulky pridame klic "id" a dame mu mapovy nazev kraje
    } else {
      result[l]["id"] = result[l]["oblast"];
    }
    result[l]["value"] = Math.floor((result[l]["pocet_exekuci"] / result[l]["pocet_dluzniku"])); // Hodnota pro barveni
    if ((nejnizsi_value < 0) || (result[l]["value"] < nejnizsi_value)) {
      nejnizsi_value = result[l]["value"];
    }
  }
  //(result[l]["pocet_exekuci"] / result[l]["pocet_dluzniku"]
  // Hratky kvuli obarveni
  for (var l = 0; l < result.length; l++) { // Projdi optimalizovanou tabulku (result)
    result[l]["value"] = result[l]["value"] - nejnizsi_value;
  }

  return result; // array of JSONs
} // End of optimalize_json()
// function csv2json(csv) {
//   function pridej_do_res(obj, kraj) { // Predpokladame, ze result tohoto kraje uz existuje.
//     kraj["pocet_exekuci"] = kraj["pocet_exekuci"] + Number(obj["sum_executions"]);
//     kraj["pocet_dluzniku"] = kraj["pocet_dluzniku"] + 1;
//     var age = Number(obj["age"]);
//     if (!isNaN(age)) {
//       switch (true) {
//         case ((age > 0) && (age < 16)):
//           kraj["0-15"] = kraj["0-15"] + 1;
//           break;
//         case ((age > 15) && (age < 21)):
//           kraj["16-20"] = kraj["16-20"] + 1;
//           break;
//         case ((age > 20) && (age < 41)):
//           kraj["21-40"] = kraj["21-40"] + 1;
//           break;
//         case ((age > 40) && (age < 65)):
//           kraj["41-64"] = kraj["41-64"] + 1;
//           break;
//         case ((age > 64)):
//           kraj["65-999"] = kraj["65-999"] + 1;
//           break;
//         default:
//       }
//     }
//     return kraj;
//   } // End of pridej_do_res()
//
//   csv = csv.replace(/[\r]+/gm, ""); // Odstran windowsove konce radku (\r\n) a nech jen \n
//   var lines = csv.split("\n");
//   var result = []; // Vysledek - optimalizovana tabulka
//
//   var headers = lines[0].split(","); // Nacti zahlavi do pole headers
//
//   for (var i = 1; i < lines.length; i++) {
//     var obj = {};
//     var current_line_arr = lines[i].split(",");
//     for (var j = 0; j < headers.length; j++) { // Array na objekt, takze se pak muze volat pomoci klice (obj["kraj"] misto current_line_arr[1])
//       obj[headers[j]] = current_line_arr[j]; // n-ty element z radku prirad klic n-teho elementu z headers
//     }
//
//     var kraj_nalezen = false; // Vychozi hodnota, predpokladej, ze kraj nebyl nalezen
//     for (var k = 0; k < result.length; k++) { // Projdi vsechny kraje z optimalizovane tabulky
//       if (obj.hasOwnProperty("kraj")) { // Jestlize radek obsahuje informaci o kraji
//         if (result[k].hasOwnProperty("kraj") && (result[k]["kraj"] == obj["kraj"])) { // Jestlize kraj radku uz existuje ve vysledku (optimalizovane tabulce)
//           result[k] = pridej_do_res(obj, result[k]); // Pridej radek do existujiciho kraje ve vysledku
//           kraj_nalezen = true; // Zapamatuj si, ze jsi kraj uz nalezl.
//           break; // Neni treba prochazet dalsi kraje z result, protoze jsme kraj uz nalezli.
//         }
//       }
//     }
//     if (!kraj_nalezen) { // Pokud kraj nebyl ve vysledku nalezen, musime ho pridat.
//       var novy_kraj = {}; // Vytvor novy kraj s nulovymi hodnotami
//       novy_kraj["kraj"] = obj["kraj"];
//       novy_kraj["pocet_exekuci"] = 0;
//       novy_kraj["pocet_dluzniku"] = 0;
//       novy_kraj["0-15"] = 0;
//       novy_kraj["16-20"] = 0;
//       novy_kraj["21-40"] = 0;
//       novy_kraj["41-64"] = 0;
//       novy_kraj["65-999"] = 0;
//       result.push(novy_kraj); // Vloz novy kraj do vysledku (optimalizovane tabulky)
//       result[result.length - 1] = pridej_do_res(obj, result[result.length - 1]); // Pridej radek do vysledku
//     }
//   }
//
//   // Tabulka pro preklad vstupnich nazvu kraju na nazvy kraju pouzite v mape
//   var id_mapper = {
//     "Kraj Vysočina": "CZ.JK",
//     "Hlavní město Praha": "CZ.SK",
//     "Jihomoravský kraj": "CZ.6305",
//     "Jihočeský kraj": "CZ.CK",
//     "Karlovarský kraj": "CZ.KK",
//     "Královéhradecký kraj": "CZ.HK",
//     "Liberecký kraj": "CZ.LK",
//     "Moravskoslezský kraj": "CZ.VK",
//     "Olomoucký kraj": "CZ.6307",
//     "Pardubický kraj": "CZ.6308",
//     "Plzeňský kraj": "CZ.6304",
//     "Středočeský kraj": "CZ.2294",
//     "Zlínský kraj": "CZ.6306",
//     "Ústecký kraj": "CZ.6303",
//     "Hlavní město Praha": "01",
//     "Benešov": "02",
//     "Beroun": "03",
//     "Kladno": "04",
//     "Kolín": "05",
//     "Kutná Hora": "06",
//     "Mělník": "07",
//     "Mladá Boleslav": "08",
//     "Nymburk": "09",
//     "Praha-východ": "10",
//     "Praha-západ": "11",
//     "Příbram": "12",
//     "Rakovník": "13",
//     "České Budějovice": "14",
//     "Český Krumlov": "15",
//     "Jindřichův Hradec": "16",
//     "Pelhřimov": "17",
//     "Písek": "18",
//     "Prachatice": "19",
//     "Strakonice": "20",
//     "Tábor": "21",
//     "Domžlice": "22",
//     "Cheb": "23",
//     "Karlovy Vary": "24",
//     "Klatovy": "25",
//     "Plzeň-město": "26",
//     "Plzeň-jih": "27",
//     "Plzeň-sever": "28",
//     "Rokycany": "29",
//     "Sokolov": "30",
//     "Tachov": "31",
//     "Česká Lípa": "32",
//     "Děčín": "33",
//     "Chomutov": "34",
//     "Jablonec nad Nisou": "35",
//     "Liberec": "36",
//     "Litoměřice": "37",
//     "Louny": "38",
//     "Most": "39",
//     "Teplice": "40",
//     "Ústí nad Labem": "41",
//     "Havlíčkův Brod": "42",
//     "Hradec Králové": "43",
//     "Chrudim": "44",
//     "Jičín": "45",
//     "Náchod": "46",
//     "Pardubice": "47",
//     "Rychnov nad Kněžnou": "48",
//     "Semily": "49",
//     "Svitavy": "50",
//     "Trutnov": "51",
//     "Ústí nad Orlicí": "52",
//     "Blansko": "53",
//     "Brno-město": "54",
//     "Brno-venkov": "55",
//     "Břeclav": "56",
//     "Zlín": "57",
//     "Hodonín": "58",
//     "Jihlava": "59",
//     "Kroměříž": "60",
//     "Prostějov": "61",
//     "Třebíč": "62",
//     "Uherské Hradiště": "63",
//     "Vyškov": "64",
//     "Znojmo": "65",
//     "Žďár nad Sázavou": "66",
//     "Bruntál": "67",
//     "Frýdek-Místek": "68",
//     "Karviná": "69",
//     "Nový Jičín": "70",
//     "Olomouc": "71",
//     "Opava": "72",
//     "Ostrava-město": "73",
//     "Přerov": "74",
//     "Šumperk": "75",
//     "Vsetín": "76",
//     "Jeseník": "77"
//   };
//   var nejnizsi_value = -1;
//   // Cyklus na prelozeni nazvu kraju ze vstupu na nazvy kraju pro mapovy podklad a vypocet obarveni kraje (klic "value")
//   for (var l = 0; l < result.length; l++) { // Projdi optimalizovanou tabulku (result)
//     if (id_mapper.hasOwnProperty(result[l]["kraj"])) {
//       result[l]["id"] = id_mapper[result[l]["kraj"]]; // Do optimalizovane tabulky pridame klic "id" a dame mu mapovy nazev kraje
//     }
//     result[l]["value"] = Math.floor((result[l]["pocet_exekuci"] / result[l]["pocet_dluzniku"]) * 10000); // Hodnota pro barveni
//     if ((nejnizsi_value < 0) || (result[l]["value"] < nejnizsi_value)) {
//       nejnizsi_value = result[l]["value"];
//     }
//   }
//
//   // Hratky kvuli obarveni
//   for (var l = 0; l < result.length; l++) { // Projdi optimalizovanou tabulku (result)
//     result[l]["value"] = result[l]["value"] - nejnizsi_value;
//   }
//
//   return result; // array of JSONs
// } // End of csvJSON()

// function nactiData(datatyp, xls) {
//   fileLoad(allData, datatyp, true);
//   //TODO zmenit hoover podle datatypu
// }


// async function nactiOnlineExekuce() {
//   console.log("zahajeno");
//   let response = await fetch('https://statistiky.ekcr.cz/docs/stats.xlsx');
//   console.log("stazeno");
//   let blob = await response.blob();
//   console.log("stazeno2");
//   var xl2json = new ExcelToJSON();
//   console.log("pred prevodem");
//   xl2json.parseExcel(blob);
//   console.log("prevedeno");
// }

function nactiXLSFile(evt) {
  // console.log("Typ evt: " + typeof evt + "\nObsah evt: " + evt);
  var files = evt.target.files; // Seznam souboru
  var xl2json = new ExcelToJSON();
  xl2json.parseExcel(files[0]);
}

// function fileLoad(allData, datatyp, obnovmapu) {
//   function clickElem(elem) {
//     var eventMouse = document.createEvent("MouseEvents")
//     eventMouse.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null)
//     elem.dispatchEvent(eventMouse)
//   }
//
//   readFile = function(e) {
//     var file = e.target.files[0];
//     if (!file) {
//       return;
//     }
//     var reader = new FileReader();
//     reader.onload = function(e) {
//       var contents = e.target.result;
//       var csv = contents;
//       allData[datatyp] = csv2json(csv);
//       if (obnovmapu) {
//         updatujMapu(allData[datatyp]);
//         console.log("Data z csv nactena.");
//       }
//     }
//     reader.readAsText(file);
//   }
//   var fileInput = document.createElement("input");
//   fileInput.type = 'file';
//   fileInput.style.display = 'none';
//   fileInput.onchange = readFile;
//   clickElem(fileInput);
// }
