{"id":2150,"date":"2021-08-11T10:04:53","date_gmt":"2021-08-11T10:04:53","guid":{"rendered":"https:\/\/fringe.ee\/kava\/"},"modified":"2025-08-08T13:10:23","modified_gmt":"2025-08-08T13:10:23","slug":"kava","status":"publish","type":"page","link":"https:\/\/fringe.ee\/et\/kava\/","title":{"rendered":"Kava"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2150\" class=\"elementor elementor-2150 elementor-2016\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d3b07ff elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d3b07ff\" data-element_type=\"section\" data-e-type=\"section\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e0771f2\" data-id=\"e0771f2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7620bd4 elementor-widget elementor-widget-heading\" data-id=\"7620bd4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Kava<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-64b19b8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"64b19b8\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5b9c17a\" data-id=\"5b9c17a\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-319624d elementor-widget elementor-widget-html\" data-id=\"319624d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script src=\"https:\/\/code.jquery.com\/jquery-3.6.4.min.js\"><\/script>\n<script>\n    window.fientaSettings = {\n        background: 'rgba(232, 244, 225, 0.5)',\n        descriptionEnabled: 'true',\n        step: 'description',\n        imageEnabled: 'true',\n        border_radius: '15px',\n    };\n<\/script>\n<script src=\"https:\/\/fienta.com\/embed.js\"><\/script>\n<script>\n    const today = new Date();\n    const festival_start = new Date(\"2024\/08\/18\");\n    const start_date = today > festival_start ? today.toISOString().substring(0, 10) : festival_start.toISOString().substring(0, 10);\n    const end_date = new Date(\"2024\/09\/19\");\n    const data_url = \"https:\/\/fringe.ee\/wp-content\/uploads\/2024\/04\/config.json\"\n    \n    \/\/ Regex copied over from 2024\n    const performer_regex = \/.*Esinejad?:[^\\s]+\\s(?<res>[0-9A-z\u00f5\u00dc\u00fc\u00c4\u00f6\u00d6\u00e4\u017d\u017e\u0161\u0160\\u00C0-\\u024F\\u1E00-\\u1EFF \\-\\.\\*]+)\/m;\n    const genre_regex = \/(?:(?:Genre|\u017danr)):[^\\s]+\\s(?<res>[0-9A-z\u00f5\u00dc\u00fc\u00c4\u00f6\u00d6\u00e4\u017d\u017e\u0161\u0160 ,-]+)\/m;\n    const language_regex = \/Keel:[^\\s]+\\s(?<res>[0-9A-z\u00f5\u00dc\u00fc\u00c4\u00f6\u00d6\u00e4\u017d\u017e\u0161\u0160 \\-\\,]+)\/m;\n    const tickets_regex = \/Piletid:[^\\s]+\\s(?<res>[0-9A-z\u00f5\u00dc\u00fc\u00c4\u00f6\u00d6\u00e4\u017d\u017e\u0161\u0160\u20ac$ \\.]+)\/m;\n    const age_regex = \/(?:(?:Vanusepiirang|Age suitability|Vanusesoovitus)):[^\\s]+\\s(?<res>[0-9A-z\u00f5\u00dc\u00fc\u00c4\u00f6\u00d6\u00e4\u017d\u017e\u0161\u0160\u20ac$ \\+\\.]+)\/m;\n    const lang = jQuery('html')[0].lang; \/\/ our website's language\n    \n    \/\/ 2025 regex, not working properly\n    \/\/const genre_regex = \/Genre:[^s]+s(?<res>[0-9A-z ,-]+)\/m;\n    \/\/const performer_regex = \/Performers?:[^s]+s(?<res>[0-9A-zu00C0-u024Fu1E00-u1EFF -.*]+)\/m;\n    \/\/const language_regex = \/Languages?:[^s]+s(?<res>[0-9A-z -,]+)\/m;\n    \/\/const tickets_regex = \/Tickets:[^s]+s(?<res>[0-9A-z\u20ac$ .]+)\/m;\n    \n    jQuery(document).ready(function () {\n        jQuery.getJSON(data_url, function(data) {\n            var _organizers = data.organizers;\n            var _skipped_events = data.skipped_events;\n            var _events = jQuery(\"#events\");\n            var _rows = \"\";\n\n            jQuery.getJSON(`https:\/\/fienta.com\/api\/v1\/public\/events?search=tallinnfringe2025&locale=${lang.split('-')[0]}&country=ee`, function (data) {\n                data.events.forEach(function (event) {\n                    \/\/if (_skipped_events.includes(event.id)) {\n                    \/\/    return;\n                    \/\/}\n\n                    date = new Date(event.starts_at);\n                    \/\/if (date >= end_date) {\n                    \/\/    return;\n                    \/\/}\n\n                    local_date = date.toLocaleDateString(\"en\", {\n                        day: \"numeric\",\n                        month: \"long\"\n                    });\n                    var _genre = event.description.match(genre_regex);\n                    var _performer = event.description.match(performer_regex);\n                    var _language = event.description.match(language_regex);\n                    var _tickets = event.description.match(tickets_regex);\n                    var _age = event.description.match(age_regex);\n                    var genre = _genre === null ? \"\" : _genre.groups.res;\n                    var performer = _performer === null ? \"\" : _performer.groups.res;\n                    var language = _language === null ? \"\" : _language.groups.res;\n                    var tickets = _tickets === null ? \"\" : _tickets.groups.res;\n                    var age = _age === null ? \"\" : _age.groups.res;\n                    \n                    var _row = `\n                    <tr class=\"shown\">\n                        <td><a href=${event.url}>${event.title}<\/a><\/td>\n                        <td>${event.venue}<\/td>\n                        <td>${genre}<\/td>\n                        <td>${performer}<\/td>\n                        <td>${language}<\/td>\n                        <td>${local_date}<\/td>\n                        <td>${event.starts_at.split(\" \")[1].slice(0, -3)}<\/td>\n                        <td>${age}<\/td>\n                        <td><a href=${event.url}>${tickets}<\/a><\/td>\n                    <\/tr>\n                    `;\n                    _rows += _row;\n                });\n                _events.append(_rows);\n            });\n        });\n\n        function filter() {\n            let search_value = document.getElementById(\"searchInput\").value.toUpperCase();\n            let events = document.getElementById(\"events\");\n            let rows = events.getElementsByTagName(\"tr\");\n\n            for (i = 0; i < rows.length; i++) {\n                let columns = rows[i].getElementsByTagName(\"td\");\n                let _found = false;\n                for (j = 0; j < columns.length; j++) {\n                    let _value = columns[j].textContent;\n                    if (_value.toUpperCase().indexOf(search_value) > -1) {\n                        _found = true;\n                        break;\n                    }\n                }\n                rows[i].style.display = _found ? \"\" : \"none\";\n                rows[i].className = _found ? \"shown\" : \"hidden\";\n            }\n        }\n\n        document.getElementById(\"searchInput\").addEventListener(\"keyup\", filter);\n    });\n\n    document.onreadystatechange = function () {\n        if (document.readyState !== \"complete\") {\n            document.getElementById(\"events\").style.visibility = \"hidden\";\n            document.getElementById(\"load-spinner\").style.visibility = \"visible\";\n         } else {\n            document.getElementById(\"events\").style.visibility = \"visible\";\n            document.getElementById(\"load-spinner\").style.display = \"none\";\n        }\n    };\n<\/script>\n\n\n<div class=\"program\">\n    <input type=\"text\" id=\"searchInput\" placeholder=\"kom\u00f6\u00f6dia, teater...\">\n    <table>\n        <thead>\n            <tr>\n                <th>Etendus<\/th>\n                <th>Asukoht<\/th>\n                <th>\u017danr<\/th>\n                <th>Esineja<\/th>\n                <th>Keel<\/th>\n                <th>Kuup\u00e4ev<\/th>\n                <th>Aeg<\/th>\n                <th>M\u00e4rkused<\/th>\n                <th>Hind<\/th>\n            <\/tr>\n        <\/thead>\n        <tbody id=\"events\"><\/tbody>\n    <\/table>\n    <div id=load-spinner><\/div>\n<\/div>\n\n<style>\n    #searchInput {\n        box-sizing: border-box;\n        border-radius: 25px;\n        margin-bottom: 20px;\n    }\n\n    #searchInput:focus {\n        border-color: #65ab3f;\n        outline: 0;\n        box-shadow: 0 5px 7px #e8f4e1;\n    }\n\n    input:placeholder-shown {\n        font-style: italic;\n    }\n\n    #load-spinner {\n        border: 12px solid #e8f4e1;\n        border-radius: 50%;\n        border-top: 12px solid #9ad384;\n        width: 70px;\n        height: 70px;\n        animation: spin 1s linear infinite;\n        top: 0;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        margin: auto;\n    }\n\n    @keyframes spin {\n        100% {\n            transform: rotate(360deg);\n        }\n    }\n\n    table {\n        border-collapse: collapse;\n        width: 100%;\n        border: none;\n    }\n\n    table th {\n        border: none;\n    }\n\n    th {\n        padding: 1rem 3rem;\n        text-transform: uppercase;\n        letter-spacing: 1px;\n        text-align: left;\n        background-color: #9ad384;\n    }\n\n    th:first-child {\n        border-radius: 25px 0px 0px 25px;\n    }\n\n    th:last-child {\n        border-radius: 0px 25px 25px 0px;\n    }\n\n    table td {\n        border: none;\n    }\n\n    td {\n        padding: 0.5rem 3rem;\n        font-size: 1rem;\n        border: none;\n    }\n\n    td:first-child {\n        border-radius: 25px 0px 0px 25px;\n    }\n\n    td:last-child {\n        border-radius: 0px 25px 25px 0px;\n    }\n\n    :nth-child(odd of tr.shown) > td {\n        background-color: #ffffff;\n    }\n\n    :nth-child(odd of tr.shown):hover > td {\n        background-color: #f6fbf4;\n    }\n\n    :nth-child(even of tr.shown) > td {\n        background-color: #e8f4e1;\n    }\n\n    :nth-child(even of tr.shown):hover > td {\n        background-color: #daedce;\n    }\n\n    table thead:first-child tr:first-child th {\n        border-block-start: 0px;\n    }\n\n    td a {\n        color: #427b2c !important;\n    }\n\n    tr:hover a {\n        border-bottom: 1px solid;\n    }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Kava Etendus Asukoht \u017danr Esineja Keel Kuup\u00e4ev Aeg M\u00e4rkused Hind<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-2150","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/pages\/2150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/comments?post=2150"}],"version-history":[{"count":5,"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/pages\/2150\/revisions"}],"predecessor-version":[{"id":7960,"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/pages\/2150\/revisions\/7960"}],"wp:attachment":[{"href":"https:\/\/fringe.ee\/et\/wp-json\/wp\/v2\/media?parent=2150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}