(function() {
  let group = []
  d3.xml("/img/mapa_kv.svg").then(function(svg) {
    Array.prototype.forEach.call(svg.getElementsByTagName("path"), function(path) {
      let data = {'1100': {  district: 'Praha',  percent: '43,91 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=1100&xstat=0',  state: 'ukončeno'},'2101': {  district: 'Benešov',  percent: '51,12 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2101&xstat=0',  state: 'ukončeno'},'2102': {  district: 'Beroun',  percent: '48,46 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2102&xstat=0',  state: 'ukončeno'},'2103': {  district: 'Kladno',  percent: '42,09 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2103&xstat=0',  state: 'ukončeno'},'2104': {  district: 'Kolín',  percent: '46,78 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2104&xstat=0',  state: 'ukončeno'},'2105': {  district: 'Kutná Hora',  percent: '49,80 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2105&xstat=0',  state: 'ukončeno'},'2106': {  district: 'Mělník',  percent: '43,97 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2106&xstat=0',  state: 'ukončeno'},'2107': {  district: 'Mladá Boleslav',  percent: '45,00 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2107&xstat=0',  state: 'ukončeno'},'2108': {  district: 'Nymburk',  percent: '50,41 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2108&xstat=0',  state: 'ukončeno'},'2109': {  district: 'Praha-východ',  percent: '49,87 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2109&xstat=0',  state: 'ukončeno'},'2110': {  district: 'Praha-západ',  percent: '50,94 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2110&xstat=0',  state: 'ukončeno'},'2111': {  district: 'Příbram',  percent: '48,17 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2111&xstat=0',  state: 'ukončeno'},'2112': {  district: 'Rakovník',  percent: '47,60 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=2112&xstat=0',  state: 'ukončeno'},'3101': {  district: 'České Budějovice',  percent: '46,43 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3101&xstat=0',  state: 'ukončeno'},'3102': {  district: 'Český Krumlov',  percent: '50,62 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3102&xstat=0',  state: 'ukončeno'},'3103': {  district: 'Jindřichův Hradec',  percent: '50,31 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3103&xstat=0',  state: 'ukončeno'},'3104': {  district: 'Písek',  percent: '48,91 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3104&xstat=0',  state: 'ukončeno'},'3105': {  district: 'Prachatice',  percent: '50,08 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3105&xstat=0',  state: 'ukončeno'},'3106': {  district: 'Strakonice',  percent: '49,63 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3106&xstat=0',  state: 'ukončeno'},'3107': {  district: 'Tábor',  percent: '49,00 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3107&xstat=0',  state: 'ukončeno'},'3201': {  district: 'Domažlice',  percent: '51,03 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3201&xstat=0',  state: 'ukončeno'},'3202': {  district: 'Klatovy',  percent: '48,60 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3202&xstat=0',  state: 'ukončeno'},'3203': {  district: 'Plzeň-město',  percent: '40,70 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3203&xstat=0',  state: 'ukončeno'},'3204': {  district: 'Plzeň-jih',  percent: '50,69 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3204&xstat=0',  state: 'ukončeno'},'3205': {  district: 'Plzeň-sever',  percent: '47,81 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3205&xstat=0',  state: 'ukončeno'},'3206': {  district: 'Rokycany',  percent: '49,76 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3206&xstat=0',  state: 'ukončeno'},'3207': {  district: 'Tachov',  percent: '46,09 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=3207&xstat=0',  state: 'ukončeno'},'4101': {  district: 'Cheb',  percent: '40,59 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4101&xstat=0',  state: 'ukončeno'},'4102': {  district: 'Karlovy Vary',  percent: '43,66 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4102&xstat=0',  state: 'ukončeno'},'4103': {  district: 'Sokolov',  percent: '37,56 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4103&xstat=0',  state: 'ukončeno'},'4201': {  district: 'Děčín',  percent: '40,20 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4201&xstat=0',  state: 'ukončeno'},'4202': {  district: 'Chomutov',  percent: '36,72 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4202&xstat=0',  state: 'ukončeno'},'4203': {  district: 'Litoměřice',  percent: '48,21 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4203&xstat=0',  state: 'ukončeno'},'4204': {  district: 'Louny',  percent: '46,40 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4204&xstat=0',  state: 'ukončeno'},'4205': {  district: 'Most',  percent: '36,53 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4205&xstat=0',  state: 'ukončeno'},'4206': {  district: 'Teplice',  percent: '39,25 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4206&xstat=0',  state: 'ukončeno'},'4207': {  district: 'Ústí nad Labem',  percent: '38,39 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=4207&xstat=0',  state: 'ukončeno'},'5101': {  district: 'Česká Lípa',  percent: '41,46 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5101&xstat=0',  state: 'ukončeno'},'5102': {  district: 'Jablonec nad Nisou',  percent: '43,49 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5102&xstat=0',  state: 'ukončeno'},'5103': {  district: 'Liberec',  percent: '42,88 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5103&xstat=0',  state: 'ukončeno'},'5104': {  district: 'Semily',  percent: '50,06 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5104&xstat=0',  state: 'ukončeno'},'5201': {  district: 'Hradec Králové',  percent: '45,40 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5201&xstat=0',  state: 'ukončeno'},'5202': {  district: 'Jičín',  percent: '51,93 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5202&xstat=0',  state: 'ukončeno'},'5203': {  district: 'Náchod',  percent: '46,76 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5203&xstat=0',  state: 'ukončeno'},'5204': {  district: 'Rychnov nad Kněžnou',  percent: '47,88 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5204&xstat=0',  state: 'ukončeno'},'5205': {  district: 'Trutnov',  percent: '45,94 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5205&xstat=0',  state: 'ukončeno'},'5301': {  district: 'Chrudim',  percent: '50,81 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5301&xstat=0',  state: 'ukončeno'},'5302': {  district: 'Pardubice',  percent: '46,14 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5302&xstat=0',  state: 'ukončeno'},'5303': {  district: 'Svitavy',  percent: '48,95 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5303&xstat=0',  state: 'ukončeno'},'5304': {  district: 'Ústí nad Orlicí',  percent: '49,64 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=5304&xstat=0',  state: 'ukončeno'},'6101': {  district: 'Havlíčkův Brod',  percent: '50,97 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6101&xstat=0',  state: 'ukončeno'},'6102': {  district: 'Jihlava',  percent: '51,99 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6102&xstat=0',  state: 'ukončeno'},'6103': {  district: 'Pelhřimov',  percent: '52,98 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6103&xstat=0',  state: 'ukončeno'},'6104': {  district: 'Třebíč',  percent: '53,64 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6104&xstat=0',  state: 'ukončeno'},'6105': {  district: 'Žďár nad Sázavou',  percent: '53,89 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6105&xstat=0',  state: 'ukončeno'},'6201': {  district: 'Blansko',  percent: '53,09 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6201&xstat=0',  state: 'ukončeno'},'6202': {  district: 'Brno-město',  percent: '41,90 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6202&xstat=0',  state: 'ukončeno'},'6203': {  district: 'Brno-venkov',  percent: '53,66 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6203&xstat=0',  state: 'ukončeno'},'6204': {  district: 'Břeclav',  percent: '48,51 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6204&xstat=0',  state: 'ukončeno'},'6205': {  district: 'Hodonín',  percent: '49,92 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6205&xstat=0',  state: 'ukončeno'},'6206': {  district: 'Vyškov',  percent: '50,30 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6206&xstat=0',  state: 'ukončeno'},'6207': {  district: 'Znojmo',  percent: '51,01 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=6207&xstat=0',  state: 'ukončeno'},'7101': {  district: 'Jeseník',  percent: '46,67 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7101&xstat=0',  state: 'ukončeno'},'7102': {  district: 'Olomouc',  percent: '44,91 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7102&xstat=0',  state: 'ukončeno'},'7103': {  district: 'Prostějov',  percent: '48,09 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7103&xstat=0',  state: 'ukončeno'},'7104': {  district: 'Přerov',  percent: '46,17 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7104&xstat=0',  state: 'ukončeno'},'7105': {  district: 'Šumperk',  percent: '46,29 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7105&xstat=0',  state: 'ukončeno'},'7201': {  district: 'Kroměříž',  percent: '51,90 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7201&xstat=0',  state: 'ukončeno'},'7202': {  district: 'Uherské Hradiště',  percent: '51,71 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7202&xstat=0',  state: 'ukončeno'},'7203': {  district: 'Vsetín',  percent: '48,46 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7203&xstat=0',  state: 'ukončeno'},'7204': {  district: 'Zlín',  percent: '48,63 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=7204&xstat=0',  state: 'ukončeno'},'8101': {  district: 'Bruntál',  percent: '46,27 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=8101&xstat=0',  state: 'ukončeno'},'8102': {  district: 'Frýdek-Místek',  percent: '45,57 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=8102&xstat=0',  state: 'ukončeno'},'8103': {  district: 'Karviná',  percent: '37,07 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=8103&xstat=0',  state: 'ukončeno'},'8104': {  district: 'Nový Jičín',  percent: '46,66 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=8104&xstat=0',  state: 'ukončeno'},'8105': {  district: 'Opava',  percent: '47,88 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=8105&xstat=0',  state: 'ukončeno'},'8106': {  district: 'Ostrava-město',  percent: '37,03 %',  link: 'kv111?xjazyk=CZ&xid=1&xnumnuts=8106&xstat=0',  state: 'ukončeno'}},
          id = path.id
      if (data[path.id]) {
        group.push({
          district: data[id].district,
          percent: data[id].percent,
          showTooltip: !!data[id].district,
          link: data[id].link,
          state: data[id].state,
          id: id,
          d: path.attributes.d.value
        })
      } else {
        group.push({
          showTooltip: false,
          id: id,
          d: path.attributes.d.value
        })
      }
    })
    draw(group)
  })
  function tooltipHtml(d) {
    return (
      "<p class=\"okres\"> " + d.district + " </p>" +
      "<p class=\"ucast\"> " + d.percent + "</p>" +
      "<p class=\"stav\"> " + d.state + " </p>"
    )
  }
  function draw(group) {
    d3.select("#region-svg")
      .selectAll(".state")
      .data(group)
      .enter()
      .append("g")
      .attr("class", "state-g")
      .attr("stroke", "#000000")
      .attr("stroke-width", function(d) {return (d.id === "0") ? "1" : "0.5"})
      .append("a")
      .attr("class", "state-a")
      .attr("target", "_self")
      .attr("xlink:href", function(d) {return (d.name === "") ? "#" : d.link})
      .append("path")
      .attr("class", "state-path")
      .attr("d", function(d) {return d.d})
      .attr("id", function(d) {return d.id})
      .attr("transform", "scale(0.8)")
      .style("fill", function(d) {
        if (!!d.percent) {
          return d3.interpolate("#e5e5ff", "#0000e5")(d.percent.replace(/,/g, ".").replace(/\%?/g, "") / 100)
        } else {
          return "#686868"
        }
      })
      .on("mouseover", mouseOver).on("mouseout", mouseOut)
    function mouseOver(event, d) {
      if (d.showTooltip) {
        d3.select("#tooltip").transition().duration(200).style("opacity", 1)
        d3.select("#tooltip").html(tooltipHtml(d))
        .style("left", (event.clientX) + "px")
        .style("top", (event.clientY) + "px")
      }
    }
    function mouseOut(event, d) {
      if (d.showTooltip) {
        d3.select("#tooltip").transition().duration(500).style("opacity", 0)
      }
    }
  }
})()
