PageSourceSearch

https://www.hazenavm.cz/wp-content/plugins/aci-calendar//js/script.js?ver=6.9.7

js hazenavm.cz collected 2026-10-01 23:53:08 UTC 10,534 bytes, 285 lines download raw bytes

1function c(x, y = "all") {
2  z = x.match(/^#/) ? document.getElementById(x.replace(/^#/, "")) : x.match(/^\./) ? document.getElementsByClassName(x.replace(/^\./, "")) : document.getElementsByTagName(x);
3  z = x.match(/^#/) ? z : y != "all" ? z[parseInt(y)] : z;
4  return z;
5}
6
7function le(x, y = "", i = "all", z = "data-id") {
8  //linked element
9  var el = c(x, i); //element_list
10  var ei; //element item
11  var id;
12  for (var i = 0; i < el.length; i++) {
13    if (el[i].getAttribute(z) == y) {
14      ei = el[i];
15      id = i;
16    }
17  }
18  var e = {
19    ei: ei,
20    id: id,
21  };
22  return e;
23}
24
25function la(x) {
26  //legend active
27  if (x) {
28    li = x.getElementsByClassName("legend-item");
29    a = [];
30    for (var i = 0; i < li.length; i++) {
31      if (li[i].getAttribute("data-value") == 1) {
32        a.push(li[i].getAttribute("data-group"));
33      }
34    }
35    return a;
36  } else {
37    return false;
38  }
39}
40
41function ia(x, y) {
42  if (!Array.isArray(y)) {
43    return true;
44  } else {
45    if (Array.isArray(x)) {
46      for (var i in y) {
47        for (var j in x) {
48          if (x[j] == y[i]) {
49            return true;
50          }
51        }
52      }
53    } else {
54      for (var i in y) {
55        if (x == y[i]) {
56          return true;
57        }
58      }
59    }
60  }
61  return false;
62}
63
64document.addEventListener("DOMContentLoaded", function () {
65  var calendars = document.getElementsByClassName("calendar"); /////var
66  var calendar = [];
67  //console.log(events_json);
68  for (ci = 0; ci < calendars.length; ci++) {
69    calendar[ci] = new FullCalendar.Calendar(calendars[ci], {
70      plugins: ["interaction", "dayGrid", "timeGrid", "list", "rrule"],
71      locale: "cs",
72      header: {
73        left: "prev,next today",
74        center: "title",
75        right: "dayGridMonth,timeGridWeek,listWeek",
76      },
77      allDayText: "celý den",
78      defaultView: "dayGridMonth", //////var
79      views: {
80        dayGridMonth: { buttonText: "měsíc" },
81        timeGridWeek: { buttonText: "týden" },
82        listWeek: { buttonText: "program týden" },
83      },
84      buttonText: { today: "dnes" },
85      eventTimeFormat: {
86        // Změna formátu času pro události
87        hour: "2-digit", // Dvě cifry pro hodinu
88        minute: "2-digit", // Dvě cifry pro minuty
89        meridiem: false, // Skrytí AM/PM (formát 24 hodin)
90      },
91      validRange: {
92        start: calendarData.startDate, // Dynamický začátek z PHP
93        end: calendarData.endDate, // Dynamický konec z PHP
94      },
95
96      height: "auto",
97      //defaultDate: "2019-08-12",
98      navLinks: true,
99      //(is_user_logged_in()?'editable: true,':'').  /////////var
100      eventLimit: false,
101      allDaySlot: false,
102      firstDay: 1,
103      minTime: "07:00:00",
104      maxTime: "22:00:00",
105      events: events_json[ci],
106      eventRender: function (e) {
107        var tooltip = new Tooltip(e.el, {
108          title: e.event.title,
109          template:
110            '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div><div class="aci-tooltip">' +
111            e.event.extendedProps.tooltip +
112            "</div></div>",
113          html: true,
114          placement: "bottom",
115          trigger: "hover",
116          closeOnClickOutside: true,
117          container: "body",
118        });
119        /*if(e.el.getElementsByClassName("fc-title")[0]){
120		        	e.el.getElementsByClassName("fc-title")[0].innerHTML = e.el.getElementsByClassName("fc-title")[0].innerHTML+'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'+e.event.extendedProps.description;
121		        }
122		        if(e.el.getElementsByClassName("fc-list-item-title")[0]){
123		        	e.el.getElementsByClassName("fc-list-item-title")[0].parentElement.innerHTML = e.event.extendedProps.description_list;
124		        }*/
125
126        // Přidání místa (venue) k události
127
128        var venue = e.event.extendedProps.venue ? "<div>" + e.event.extendedProps.venue + "</div>" : "";
129        if (e.el.getElementsByClassName("fc-title")[0]) {
130          e.el.getElementsByClassName("fc-title")[0].innerHTML += venue;
131        }
132        if (e.el.getElementsByClassName("fc-list-item-title")[0]) {
133          e.el.getElementsByClassName("fc-list-item-title")[0].innerHTML += venue;
134        }
135
136        var group_keys = e.event.extendedProps.group_keys;
137        var cat_keys = e.event.extendedProps.cat_keys;
138        var group_check = false;
139        var cat_check = false;
140
141        var legend_g = le(".legend-group", this.el.getAttribute("data-id")).ei
142          ? le(".legend-group", this.el.getAttribute("data-id")).ei.getElementsByClassName("legend-item-group")
143          : "";
144        var legend_c = le(".legend-cat", this.el.getAttribute("data-id")).ei ? le(".legend-cat", this.el.getAttribute("data-id")).ei.getElementsByClassName("legend-item-cat") : "";
145
146        for (i = 0; i < group_keys.length; i++) {
147          for (j = 0; j < legend_g.length; j++) {
148            if (group_keys[i] == legend_g[j].getAttribute("data-group") && legend_g[j].getAttribute("data-value") == 1) {
149              group_check = true;
150            }
151          }
152        }
153        for (i = 0; i < cat_keys.length; i++) {
154          for (j = 0; j < legend_c.length; j++) {
155            if (cat_keys[i] == legend_c[j].getAttribute("data-group") && legend_c[j].getAttribute("data-value") == 1) {
156              cat_check = true;
157            }
158          }
159        }
160        if (legend_g == "") {
161          group_check = true;
162        }
163        if (legend_c == "") {
164          cat_check = true;
165        }
166        if (!group_check || !cat_check) {
167          e.el.style.display = "none";
168        }
169      },
170    });
171    calendar[ci].render();
172  }
173
174  if (document.getElementsByClassName("legend")[0]) {
175    var legends = document.getElementsByClassName("legend");
176    for (i = 0; i < legends.length; i++) {
177      var legend = legends[i].getElementsByClassName("legend-item");
178      for (j = 0; j < legend.length; j++) {
179        legend[j].onclick = function () {
180          var lis = this.parentElement.getElementsByClassName("legend-item");
181          var cid = this.parentElement.getAttribute("data-id"); //current id
182          if (this.parentElement.getElementsByClassName("aci-group-filter")[0].value == "all") {
183            for (k = 0; k < lis.length; k++) {
184              lis[k].style.opacity = "0.3";
185              lis[k].setAttribute("data-value", "0");
186            }
187          }
188          if (this.getAttribute("data-value") == "0") {
189            this.style.opacity = "1";
190            this.setAttribute("data-value", "1");
191          } else {
192            this.style.opacity = "0.3";
193            this.setAttribute("data-value", "0");
194          }
195          this.parentElement.getElementsByClassName("aci-group-filter")[0].value = "";
196          var id = le(".calendar", cid).id;
197          calendar[id].render("eventRender");
198        };
199      }
200      legends[i].getElementsByClassName("aci-group-filter")[0].onchange = function () {
201        var legend = this.parentElement.getElementsByClassName("legend-item");
202        var cid = this.parentElement.getAttribute("data-id"); //current id
203        for (i = 0; i < legend.length; i++) {
204          if (this.value == "all" || legend[i].getAttribute("data-group") == this.value) {
205            legend[i].style.opacity = "1";
206            legend[i].setAttribute("data-value", "1");
207          } else {
208            legend[i].style.opacity = "0.3";
209            legend[i].setAttribute("data-value", "0");
210          }
211        }
212        var id = le(".calendar", cid).id;
213        calendar[id].render("eventRender");
214      };
215    }
216  }
217
218  var blobObject = null;
219
220  function createDownloadLink(anchorSelector, str, fileName) {
221    if (window.navigator.msSaveOrOpenBlob) {
222      var fileData = [str];
223      blobObject = new Blob(fileData);
224      anchorSelector.onclick = function () {
225        window.navigator.msSaveOrOpenBlob(blobObject, fileName);
226      };
227    } else {
228      var url = "data:text/plain;charset=utf-8," + encodeURIComponent(str);
229      anchorSelector.setAttribute("href", url);
230      anchorSelector.setAttribute("download", fileName);
231    }
232  }
233
234  eb = c(".export-button");
235  for (i = 0; i < eb.length; i++) {
236    eb[i].onclick = function () {
237      var cid = this.getAttribute("data-id"); //current id
238      var id = le(".calendar", cid).id;
239      var legend_g = la(le(".legend-group", cid).ei) ? la(le(".legend-group", cid).ei) : "";
240      var legend_c = la(le(".legend-cat", cid).ei) ? la(le(".legend-cat", cid).ei) : "";
241      var str = "";
242      str += "BEGIN:VCALENDAR\n";
243      str += "VERSION:2.0\n";
244      str += "PRODID:Kalendář událostí\n";
245      str += "CALSCALE:GREGORIAN\n";
246      str += "METHOD:PUBLISH\n";
247      str += "\n";
248      str += "BEGIN:VTIMEZONE\n";
249      str += "TZID:Europe/Prague\n";
250      str += "BEGIN:STANDARD\n";
251      str += "DTSTART:19691231T230000\n";
252      str += "TZOFFSETTO:+0100\n";
253      str += "TZOFFSETFROM:+0100\n";
254      str += "END:STANDARD\n";
255      str += "END:VTIMEZONE\n";
256      str += "\n";
257
258      for (j = 0; j < events_json[id].length; j++) {
259        //console.log(ia(events_json[id][j].group_keys,legend_g),ia(events_json[id][j].cat_keys,legend_c));
260        //console.log(events_json[id][j].group_keys,legend_g,events_json[id][j].cat_keys,legend_c);
261        if (ia(events_json[id][j].group_keys, legend_g) && ia(events_json[id][j].cat_keys, legend_c)) {
262          //console.log(events_json[id][j]);
263          str += "BEGIN:VEVENT\n";
264          str += "UID:" + events_json[id][j].uid + "\n";
265          str += "DTSTART:" + events_json[id][j].start.replace(/-|:/g, "") + "Z\n";
266          str += "DTEND:" + events_json[id][j].end.replace(/-|:/g, "") + "Z\n";
267          str += "DTSTAMP:" + events_json[id][j].created.replace(/-|:/g, "") + "Z\n";
268          str += "SUMMARY:" + events_json[id][j].title + "\n";
269          str += "DESCRIPTION:Sportovní událost\n";
270          str += "STATUS:CONFIRMED\n";
271          if (events_json[id][j].rrule) {
272            str +=
273              events_json[id][j]
274                .rrule; /*'RRULE:FREQ='+events_json[id][j].rrule.freq.toUpperCase()+';INTERVAL='+events_json[id][j].rrule.interval+';UNTIL='+events_json[id][j].until.replace(/-|:/g, '')+'Z;BYDAY='+events_json[id][j].rrule.byweekday.join(',').toUpperCase()+'\n';*/
275          }
276          str += "END:VEVENT\n";
277          str += "\n";
278        }
279      }
280
281      str += "END:VCALENDAR\n";
282      createDownloadLink(this, str, "export-event-calendar.ics");
283    };
284  }
285});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.