{"id":21621,"date":"2026-08-27T18:18:15","date_gmt":"2026-08-27T18:18:15","guid":{"rendered":"https:\/\/irinagiuglea.com\/live\/"},"modified":"2026-09-16T20:43:20","modified_gmt":"2026-09-16T20:43:20","slug":"live","status":"publish","type":"page","link":"https:\/\/irinagiuglea.com\/ro\/live\/","title":{"rendered":"LIVE"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\">\n        <style>\n        \/* Container *\/\n        .mstv-live {\n            --mstv-orange: #ff5000;\n            --mstv-blue: #17346a;\n            width: 100%;\n            min-width: 0;\n            color: var(--mstv-blue);\n            font-family: inherit;\n        }\n\n        .mstv-live,\n        .mstv-live * {\n            box-sizing: border-box;\n        }\n\n        \/* Zona video *\/\n        .mstv-live .mstv-screen {\n            position: relative;\n            width: 100%;\n            aspect-ratio: 2.08 \/ 1;\n            overflow: hidden;\n            border-radius: 14px;\n            isolation: isolate;\n            background:\n                radial-gradient(\n                    ellipse at 78% 35%,\n                    #f4c796 0%,\n                    #7963a1 22%,\n                    #163575 55%,\n                    #071f50 90%\n                );\n        }\n\n        .mstv-live .mstv-video {\n            display: block;\n            width: 100%;\n            height: 100%;\n            margin: 0;\n            object-fit: contain;\n            background: #000;\n        }\n\n        .mstv-live:not(.mstv-started) .mstv-video {\n            opacity: 0;\n        }\n\n        .mstv-live .mstv-cover {\n            position: absolute;\n            inset: 0;\n            display: block;\n            width: 100%;\n            height: 100%;\n            max-width: none;\n            object-fit: cover;\n            pointer-events: none;\n        }\n\n        .mstv-live.mstv-started:not(.mstv-radio) .mstv-cover {\n            display: none;\n        }\n\n        \/* P\u0103streaz\u0103 accesul la controale \u00een modul Radio *\/\n        .mstv-live.mstv-started.mstv-radio .mstv-cover {\n            height: calc(100% - 64px);\n        }\n\n        \/* Buton Play central *\/\n        .mstv-live .mstv-play {\n            appearance: none;\n            position: absolute;\n            top: 50%;\n            left: 50%;\n            z-index: 2;\n            display: grid;\n            place-items: center;\n            width: clamp(68px, 10vw, 140px);\n            height: clamp(68px, 10vw, 140px);\n            margin: 0;\n            padding: 0;\n            border: 4px solid #fff;\n            border-radius: 50%;\n            background: transparent;\n            color: #fff;\n            transform: translate(-50%, -50%);\n            cursor: pointer;\n        }\n\n        .mstv-live .mstv-play:hover {\n            background: rgba(255, 255, 255, .12);\n        }\n\n        .mstv-live .mstv-play svg {\n            width: 49%;\n            height: 49%;\n            margin-left: 7%;\n            fill: currentColor;\n        }\n\n        .mstv-live .mstv-play[hidden] {\n            display: none !important;\n        }\n\n        \/* Bara de sub player *\/\n        .mstv-live .mstv-toolbar {\n            display: flex;\n            align-items: center;\n            justify-content: space-between;\n            flex-wrap: wrap;\n            gap: 14px 20px;\n            width: 100%;\n            margin-top: 16px;\n        }\n\n        \/* Butoane compacte la st\u00e2nga *\/\n        .mstv-live .mstv-options {\n            display: flex;\n            flex: 0 1 auto;\n            flex-wrap: wrap;\n            align-items: center;\n            justify-content: flex-start;\n            gap: 7px;\n            width: auto;\n            min-width: 0;\n            max-width: 100%;\n        }\n\n        .mstv-live .mstv-option {\n            appearance: none;\n            display: inline-flex;\n            flex: 0 0 auto;\n            align-items: center;\n            justify-content: center;\n            gap: 6px;\n            width: auto;\n            min-width: 0;\n            min-height: 36px;\n            margin: 0;\n            padding: 6px 16px;\n            border: 2px solid transparent;\n            border-radius: 22px;\n            background: var(--mstv-orange);\n            color: #fff;\n            box-shadow: none;\n            font-family: inherit;\n            font-size: 14px;\n            font-weight: 600;\n            line-height: 1.2;\n            text-transform: none;\n            letter-spacing: normal;\n            white-space: nowrap;\n            cursor: pointer;\n            transition: background-color .15s, border-color .15s;\n        }\n\n        .mstv-live .mstv-option:hover {\n            background: #df4600;\n        }\n\n        \/* Calitatea selectat\u0103 *\/\n        .mstv-live .mstv-option[aria-pressed=\"true\"],\n        .mstv-live .mstv-option[aria-pressed=\"true\"]:hover {\n            border-color: var(--mstv-blue);\n            background: var(--mstv-blue);\n            color: #fff;\n            box-shadow: none;\n        }\n\n        .mstv-live .mstv-option:disabled {\n            opacity: .4;\n            cursor: not-allowed;\n        }\n\n        \/* Reconnect *\/\n        .mstv-live .mstv-reconnect {\n            border-color: var(--mstv-blue);\n            background: #fff;\n            color: var(--mstv-blue);\n        }\n\n        .mstv-live .mstv-reconnect:hover {\n            background: #edf2fa;\n        }\n\n        .mstv-live .mstv-reconnect-symbol {\n            font-size: 18px;\n            line-height: 1;\n        }\n\n        \/* Steaguri la dreapta *\/\n        .mstv-live .mstv-flags {\n            display: flex;\n            flex: 0 0 auto;\n            flex-wrap: wrap;\n            align-items: center;\n            justify-content: flex-end;\n            gap: 9px;\n            width: auto;\n            max-width: 100%;\n            margin-left: auto;\n        }\n\n        .mstv-live .mstv-flag {\n            appearance: none;\n            position: relative;\n            display: block;\n            flex: 0 0 32px;\n            width: 32px;\n            height: 32px;\n            min-width: 0;\n            min-height: 0;\n            margin: 0;\n            padding: 0;\n            overflow: hidden;\n            border: 1px solid rgba(20, 37, 62, .35);\n            border-radius: 50%;\n            background: #fff;\n            box-shadow: 0 2px 3px rgba(20, 37, 62, .18);\n            line-height: 0;\n            cursor: pointer;\n        }\n\n        .mstv-live .mstv-flag img {\n            display: block;\n            width: 100%;\n            height: 100%;\n            max-width: none;\n            margin: 0;\n            padding: 0;\n            border: 0;\n            border-radius: inherit;\n            object-fit: fill;\n        }\n\n        \/* Luciu discret *\/\n        .mstv-live .mstv-flag::after {\n            content: \"\";\n            position: absolute;\n            inset: 0;\n            border-radius: inherit;\n            pointer-events: none;\n            background:\n                linear-gradient(\n                    180deg,\n                    rgba(255, 255, 255, .65) 0%,\n                    rgba(255, 255, 255, .12) 32%,\n                    transparent 49%,\n                    rgba(0, 0, 0, .18) 100%\n                );\n            box-shadow: inset 0 0 3px rgba(0, 0, 0, .4);\n        }\n\n        .mstv-live .mstv-flag[aria-pressed=\"true\"] {\n            outline: 2px solid var(--mstv-blue);\n            outline-offset: 3px;\n        }\n\n        .mstv-live .mstv-flag:disabled {\n            opacity: 1;\n            filter: none;\n            cursor: not-allowed;\n        }\n\n        .mstv-live button:focus-visible {\n            outline: 3px solid #709de8;\n            outline-offset: 4px;\n        }\n\n        \/* Mesaje de conectare sau eroare *\/\n        .mstv-live .mstv-status {\n            margin: 10px 0 0;\n            padding: 0;\n            font-size: 14px;\n            line-height: 1.5;\n        }\n\n        .mstv-live .mstv-status:empty {\n            display: none;\n        }\n\n        \/* Mobil *\/\n        @media (max-width: 540px) {\n            .mstv-live .mstv-screen {\n                aspect-ratio: 16 \/ 9;\n                border-radius: 10px;\n            }\n\n            .mstv-live .mstv-toolbar {\n                margin-top: 14px;\n            }\n\n            .mstv-live .mstv-options {\n                gap: 6px;\n            }\n\n            .mstv-live .mstv-option {\n                min-height: 34px;\n                padding: 6px 12px;\n                font-size: 13px;\n            }\n\n            .mstv-live .mstv-flags {\n                gap: 8px;\n            }\n\n            .mstv-live .mstv-flag {\n                flex-basis: 30px;\n                width: 30px;\n                height: 30px;\n            }\n        }\n        <\/style>\n\n        \n    <div\n        class=\"mstv-live\"\n        id=\"misatv-live-1\"\n    >\n        <div class=\"mstv-screen\">\n\n            <video\n                class=\"mstv-video\"\n                playsinline\n                controls\n                preload=\"none\"\n                aria-label=\"MISA TV \u00een direct\"\n            ><\/video>\n\n            \n            <button\n                type=\"button\"\n                class=\"mstv-play\"\n                aria-label=\"Porne\u0219te transmisia\"\n            >\n                <svg viewBox=\"0 0 40 48\" aria-hidden=\"true\">\n                    <path d=\"M2 2L38 24 2 46Z\"\/>\n                <\/svg>\n            <\/button>\n\n        <\/div>\n\n        <div class=\"mstv-toolbar\">\n\n            <div\n                class=\"mstv-options\"\n                role=\"group\"\n                aria-label=\"Calitatea transmisiei\"\n            >\n                                    <button\n                        type=\"button\"\n                        class=\"mstv-option\"\n                        data-quality=\"hdplus\"\n                        aria-pressed=\"true\"\n                    >\n                        Video HD+                    <\/button>\n                                    <button\n                        type=\"button\"\n                        class=\"mstv-option\"\n                        data-quality=\"sd\"\n                        aria-pressed=\"false\"\n                    >\n                        Video SD                    <\/button>\n                                    <button\n                        type=\"button\"\n                        class=\"mstv-option\"\n                        data-quality=\"hd\"\n                        aria-pressed=\"false\"\n                    >\n                        Video HD                    <\/button>\n                                    <button\n                        type=\"button\"\n                        class=\"mstv-option\"\n                        data-quality=\"radio\"\n                        aria-pressed=\"false\"\n                    >\n                        Radio                    <\/button>\n                \n                <button\n                    type=\"button\"\n                    class=\"mstv-option mstv-reconnect\"\n                >\n                    <span\n                        class=\"mstv-reconnect-symbol\"\n                        aria-hidden=\"true\"\n                    >\u2726<\/span>\n                    Reconnect\n                <\/button>\n            <\/div>\n\n                            <div\n                    class=\"mstv-flags\"\n                    role=\"group\"\n                    aria-label=\"Limba transmisiei\"\n                >\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"ro\"\n                            aria-label=\"Rom\u00e2n\u0103\"\n                            title=\"Rom\u00e2n\u0103\"\n                            aria-pressed=\"true\"\n                                                    >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/ro.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"en\"\n                            aria-label=\"English\"\n                            title=\"English \u2014 flux neconfigurat\"\n                            aria-pressed=\"false\"\n                             disabled='disabled'                        >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/gb.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"fr\"\n                            aria-label=\"Fran\u00e7ais\"\n                            title=\"Fran\u00e7ais \u2014 flux neconfigurat\"\n                            aria-pressed=\"false\"\n                             disabled='disabled'                        >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/fr.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"es\"\n                            aria-label=\"Espa\u00f1ol\"\n                            title=\"Espa\u00f1ol \u2014 flux neconfigurat\"\n                            aria-pressed=\"false\"\n                             disabled='disabled'                        >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/es.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"it\"\n                            aria-label=\"Italiano\"\n                            title=\"Italiano \u2014 flux neconfigurat\"\n                            aria-pressed=\"false\"\n                             disabled='disabled'                        >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/it.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"pt\"\n                            aria-label=\"Portugu\u00eas\"\n                            title=\"Portugu\u00eas \u2014 flux neconfigurat\"\n                            aria-pressed=\"false\"\n                             disabled='disabled'                        >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/br.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                            <button\n                            type=\"button\"\n                            class=\"mstv-flag\"\n                            data-language=\"ru\"\n                            aria-label=\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\"\n                            title=\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439 \u2014 flux neconfigurat\"\n                            aria-pressed=\"false\"\n                             disabled='disabled'                        >\n                            <img loading=\"lazy\"\n                                src=\"https:\/\/flagcdn.com\/w80\/ru.png\"\n                                alt=\"\"\n                                width=\"32\"\n                                height=\"32\"\n                                decoding=\"async\"\n                            >\n                        <\/button>\n                                    <\/div>\n            \n        <\/div>\n\n        <p\n            class=\"mstv-status\"\n            role=\"status\"\n            aria-live=\"polite\"\n        ><\/p>\n\n        <noscript>\n            Activeaz\u0103 JavaScript pentru a folosi playerul.\n        <\/noscript>\n    <\/div>\n\n    <script>\n    (function () {\n        'use strict';\n\n        const root = document.getElementById(\n            \"misatv-live-1\"        );\n\n        if (!root || root.dataset.ready) {\n            return;\n        }\n\n        root.dataset.ready = '1';\n\n        const config = {\"streams\":{\"ro\":{\"hdplus\":\"https:\\\/\\\/vidh.youniverse.name:5050\\\/MSTV\\\/romanian_720p\\\/playlist.m3u8\",\"hd\":\"https:\\\/\\\/vidl.youniverse.name:5050\\\/MSTV\\\/romanian_720p_baseline\\\/playlist.m3u8\",\"sd\":\"https:\\\/\\\/vidl.youniverse.name:5050\\\/MSTV\\\/romanian_360p\\\/playlist.m3u8\",\"radio\":\"https:\\\/\\\/vidh.youniverse.name:5050\\\/MSTV\\\/romanian_ao\\\/playlist.m3u8\"},\"en\":[],\"fr\":[],\"es\":[],\"it\":[],\"pt\":[],\"ru\":[]},\"quality\":\"hdplus\"};\n\n        const video = root.querySelector('.mstv-video');\n        const play = root.querySelector('.mstv-play');\n        const status = root.querySelector('.mstv-status');\n        const reconnect = root.querySelector('.mstv-reconnect');\n\n        let language = 'ro';\n        let quality = config.quality;\n        let hls = null;\n        let generation = 0;\n        let timeout = null;\n        let started = false;\n        let failed = false;\n\n        function message(text) {\n            status.textContent = text;\n        }\n\n        function updateButtons() {\n            const sources = config.streams[language];\n\n            root.querySelectorAll('[data-quality]').forEach(function (button) {\n                const key = button.dataset.quality;\n\n                button.disabled = !sources[key];\n\n                button.setAttribute(\n                    'aria-pressed',\n                    String(key === quality)\n                );\n            });\n\n            root.querySelectorAll('[data-language]').forEach(function (button) {\n                button.setAttribute(\n                    'aria-pressed',\n                    String(button.dataset.language === language)\n                );\n            });\n        }\n\n        function loadLibrary() {\n            if (window.Hls) {\n                return Promise.resolve(window.Hls);\n            }\n\n            if (!window.mstvHlsLoader) {\n                window.mstvHlsLoader = new Promise(function (resolve, reject) {\n                    const script = document.createElement('script');\n\n                    script.src =\n                        'https:\/\/cdn.jsdelivr.net\/npm\/hls.js@1.6.13\/dist\/hls.min.js';\n\n                    script.onload = function () {\n                        if (window.Hls) {\n                            resolve(window.Hls);\n                        } else {\n                            reject(new Error('HLS indisponibil'));\n                        }\n                    };\n\n                    script.onerror = function () {\n                        script.remove();\n                        reject(new Error('HLS indisponibil'));\n                    };\n\n                    document.head.appendChild(script);\n                }).catch(function (error) {\n                    window.mstvHlsLoader = null;\n                    throw error;\n                });\n            }\n\n            return window.mstvHlsLoader;\n        }\n\n        function failure(text) {\n            clearTimeout(timeout);\n            failed = true;\n            play.hidden = false;\n            message(text);\n        }\n\n        function attemptPlay(token) {\n            if (token !== generation) {\n                return;\n            }\n\n            const result = video.play();\n\n            if (!result) {\n                return;\n            }\n\n            result.catch(function (error) {\n                if (\n                    token !== generation ||\n                    error.name === 'AbortError'\n                ) {\n                    return;\n                }\n\n                clearTimeout(timeout);\n                play.hidden = false;\n\n                if (error.name === 'NotAllowedError') {\n                    message('Apas\u0103 Play pentru a porni transmisia.');\n                } else {\n                    failure(\n                        'Redarea nu a pornit. \u00cencearc\u0103 Reconnect sau Video SD.'\n                    );\n                }\n            });\n        }\n\n        async function connect() {\n            const token = ++generation;\n\n            clearTimeout(timeout);\n\n            if (hls) {\n                hls.destroy();\n                hls = null;\n            }\n\n            video.pause();\n            video.removeAttribute('src');\n            video.load();\n\n            started = true;\n            failed = false;\n\n            root.classList.add('mstv-started');\n            root.classList.toggle('mstv-radio', quality === 'radio');\n\n            play.hidden = true;\n\n            updateButtons();\n            message('Se conecteaz\u0103\u2026');\n\n            const url = config.streams[language][quality];\n\n            if (!url) {\n                failure('Aceast\u0103 transmisie nu este configurat\u0103.');\n                return;\n            }\n\n            timeout = setTimeout(function () {\n                if (token === generation) {\n                    failure(\n                        'Conectarea dureaz\u0103 prea mult. \u00cencearc\u0103 Reconnect sau Video SD.'\n                    );\n                }\n            }, 25000);\n\n            \/* Safari \u0219i alte browsere cu suport HLS nativ *\/\n            if (video.canPlayType('application\/vnd.apple.mpegurl')) {\n                video.src = url;\n                attemptPlay(token);\n                return;\n            }\n\n            \/* Redare prin HLS.js *\/\n            try {\n                const Hls = await loadLibrary();\n\n                if (token !== generation) {\n                    return;\n                }\n\n                if (!Hls.isSupported()) {\n                    failure(\n                        'Browserul nu poate reda aceast\u0103 transmisie. \u00cencearc\u0103 un browser actualizat.'\n                    );\n                    return;\n                }\n\n                const instance = new Hls({\n                    backBufferLength: 30\n                });\n\n                hls = instance;\n\n                instance.on(Hls.Events.MANIFEST_PARSED, function () {\n                    attemptPlay(token);\n                });\n\n                instance.on(Hls.Events.ERROR, function (event, data) {\n                    if (\n                        token !== generation ||\n                        !data.fatal\n                    ) {\n                        return;\n                    }\n\n                    instance.destroy();\n\n                    if (hls === instance) {\n                        hls = null;\n                    }\n\n                    failure(\n                        'Transmisia nu este disponibil\u0103 sau conexiunea s-a \u00eentrerupt. Apas\u0103 Reconnect ori alege Video SD.'\n                    );\n                });\n\n                instance.loadSource(url);\n                instance.attachMedia(video);\n\n            } catch (error) {\n                if (token === generation) {\n                    failure(\n                        'Componenta video nu s-a \u00eenc\u0103rcat. Verific\u0103 conexiunea \u0219i apas\u0103 Reconnect.'\n                    );\n                }\n            }\n        }\n\n        \/* Play central *\/\n        play.addEventListener('click', function () {\n            if (\n                started &&\n                !failed &&\n                !video.error &&\n                video.readyState >= 2\n            ) {\n                play.hidden = true;\n                attemptPlay(generation);\n            } else {\n                connect();\n            }\n        });\n\n        \/* Reconectare la fluxul selectat *\/\n        reconnect.addEventListener('click', connect);\n\n        \/* Schimbarea calit\u0103\u021bii sau trecerea pe Radio *\/\n        root.querySelectorAll('[data-quality]').forEach(function (button) {\n            button.addEventListener('click', function () {\n                quality = button.dataset.quality;\n                connect();\n            });\n        });\n\n        \/* Schimbarea limbii *\/\n        root.querySelectorAll('[data-language]').forEach(function (button) {\n            button.addEventListener('click', function () {\n                const nextLanguage = button.dataset.language;\n                const sources = config.streams[nextLanguage];\n\n                const availableQualities = [\n                    'hdplus',\n                    'hd',\n                    'sd',\n                    'radio'\n                ].filter(function (key) {\n                    return Boolean(sources && sources[key]);\n                });\n\n                if (!availableQualities.length) {\n                    return;\n                }\n\n                language = nextLanguage;\n\n                if (!sources[quality]) {\n                    quality = availableQualities[0];\n                }\n\n                connect();\n            });\n        });\n\n        video.addEventListener('playing', function () {\n            clearTimeout(timeout);\n            failed = false;\n            play.hidden = true;\n            message('');\n        });\n\n        video.addEventListener('waiting', function () {\n            if (started && !failed) {\n                message('Se \u00eencarc\u0103 transmisia\u2026');\n            }\n        });\n\n        video.addEventListener('error', function () {\n            if (started && video.error) {\n                failure(\n                    'Fluxul nu poate fi redat. \u00cencearc\u0103 Reconnect sau alt\u0103 calitate.'\n                );\n            }\n        });\n\n        const cover = root.querySelector('.mstv-cover');\n\n        if (cover) {\n            cover.addEventListener('error', function () {\n                cover.remove();\n            });\n        }\n\n        \/* Opre\u0219te transmisia c\u00e2nd p\u0103r\u0103se\u0219ti pagina *\/\n        window.addEventListener('pagehide', function () {\n            generation++;\n            clearTimeout(timeout);\n\n            if (hls) {\n                hls.destroy();\n                hls = null;\n            }\n\n            video.pause();\n            video.removeAttribute('src');\n            video.load();\n\n            started = false;\n            failed = false;\n            play.hidden = false;\n\n            root.classList.remove('mstv-started', 'mstv-radio');\n            message('');\n        });\n\n        updateButtons();\n    })();\n    <\/script>\n\n    \n<\/div><\/div>\n\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_1 et_pb_code et_pb_module\"><\/div>\n\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\">\n    <section id=\"mtv-daily-2\" class=\"mtv-daily\">\n        <nav class=\"mtv-daily-nav\" aria-label=\"Alege ziua programului\">\n            <button type=\"button\" class=\"mtv-daily-prev\" disabled>\n                <span\n                    class=\"mtv-chevron mtv-chevron-left\"\n                    aria-hidden=\"true\"\n                ><\/span>\n                <span>Ziua precedent\u0103<\/span>\n            <\/button>\n\n            <div class=\"mtv-daily-center\">\n                <h3 class=\"mtv-daily-date-heading\">\n                    <button\n                        type=\"button\"\n                        class=\"mtv-daily-today\"\n                        title=\"Data zilei de emisie din Rom\u00e2nia. Apas\u0103 pentru a reveni la programul \u00een curs.\"\n                        aria-label=\"Revino la programul zilei \u00een curs\"\n                    >\n                        <span class=\"mtv-daily-date\" aria-live=\"polite\">\n                            Se \u00eencarc\u0103\u2026\n                        <\/span>\n                    <\/button>\n                <\/h3>\n\n                <p class=\"mtv-daily-zone\">Ora Rom\u00e2niei<\/p>\n            <\/div>\n\n            <button type=\"button\" class=\"mtv-daily-next\" disabled>\n                <span>Ziua urm\u0103toare<\/span>\n                <span\n                    class=\"mtv-chevron mtv-chevron-right\"\n                    aria-hidden=\"true\"\n                ><\/span>\n            <\/button>\n        <\/nav>\n\n        <div class=\"mtv-daily-content\" aria-busy=\"true\">\n            <p class=\"mtv-daily-message\" role=\"status\">\n                Se \u00eencarc\u0103 programul\u2026\n            <\/p>\n        <\/div>\n\n        <p class=\"mtv-jump-status\" role=\"status\" aria-live=\"polite\"><\/p>\n\n        <noscript>\n            Activeaz\u0103 JavaScript pentru a vedea programul actualizat automat.\n        <\/noscript>\n    <\/section>\n\n    <style>\n    .mtv-daily {\n        --mtv-navy: #071c50;\n        --mtv-line: #8392b0;\n        width: 100%;\n        max-width: none;\n        margin: 0 auto;\n        padding: 0;\n        min-width: 0;\n        color: #242424;\n        font-family: inherit;\n        background: #fff;\n    }\n\n    .mtv-daily * {\n        box-sizing: border-box;\n    }\n\n    .mtv-daily .mtv-daily-nav {\n        display: grid;\n        grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);\n        align-items: start;\n        gap: 20px;\n        padding: 0 0 15px;\n        border-bottom: 1px solid var(--mtv-line);\n        margin-bottom: 32px;\n    }\n\n    .mtv-daily .mtv-daily-nav button {\n        font-family: inherit;\n        cursor: pointer;\n        text-transform: none;\n        letter-spacing: normal;\n        box-shadow: none;\n        margin: 0;\n        border: 0;\n        transition: opacity .2s;\n    }\n\n    .mtv-daily .mtv-daily-nav button:hover {\n        opacity: .75;\n    }\n\n    .mtv-daily .mtv-daily-nav button:focus-visible {\n        outline: 2px solid var(--mtv-navy);\n        outline-offset: 5px;\n    }\n\n    .mtv-daily .mtv-daily-nav button:disabled {\n        opacity: .4;\n        cursor: wait;\n    }\n\n    .mtv-daily .mtv-daily-prev,\n    .mtv-daily .mtv-daily-next {\n        display: flex;\n        align-items: center;\n        gap: 10px;\n        padding: 10px 0;\n        background: transparent;\n        color: var(--mtv-navy);\n        font-size: clamp(16px,1.7vw,22px);\n        font-weight: 600;\n        line-height: 1.4;\n    }\n\n    .mtv-daily .mtv-daily-prev {\n        justify-self: start;\n        text-align: left;\n    }\n\n    .mtv-daily .mtv-daily-next {\n        justify-self: end;\n        text-align: right;\n    }\n\n    .mtv-daily .mtv-daily-center {\n        text-align: center;\n    }\n\n    .mtv-daily .mtv-daily-date-heading {\n        margin: 0 !important;\n        padding: 0 !important;\n        font: inherit;\n        line-height: 1.4;\n    }\n\n    .mtv-daily .mtv-daily-today {\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        gap: 12px;\n        padding: 8px 20px;\n        background: var(--mtv-navy);\n        color: #fff;\n        border-radius: 999px !important;\n        font-size: clamp(18px,1.8vw,24px);\n        font-weight: 600;\n        line-height: 1.4;\n    }\n\n    .mtv-daily .mtv-chevron {\n        display: inline-block;\n        width: 11px;\n        height: 11px;\n        border-top: 3px solid currentColor;\n        border-right: 3px solid currentColor;\n        flex: 0 0 11px;\n    }\n\n    .mtv-daily .mtv-chevron-left {\n        transform: rotate(-135deg);\n        margin-left: 4px;\n    }\n\n    .mtv-daily .mtv-chevron-right {\n        transform: rotate(45deg);\n        margin-right: 4px;\n    }\n\n    .mtv-daily .mtv-daily-zone {\n        font-size: 13px;\n        color: #707786;\n        line-height: 1.4;\n        padding: 0 !important;\n        margin: 7px 0 0 !important;\n    }\n\n    .mtv-daily .mtv-daily-scroll {\n        overflow-x: auto;\n        width: 100%;\n        background: transparent;\n        border: 0;\n    }\n\n    .mtv-daily .mtv-daily-table {\n        width: 100%;\n        min-width: 650px;\n        table-layout: fixed;\n        border-collapse: separate;\n        border-spacing: 0 7px;\n        border: 0 !important;\n        margin: 0 !important;\n        background: transparent;\n        text-align: left;\n    }\n\n    .mtv-daily .mtv-col-time {\n        width: 175px;\n    }\n\n    .mtv-daily .mtv-col-type {\n        width: 23%;\n    }\n\n    .mtv-daily .mtv-daily-table tbody,\n    .mtv-daily .mtv-daily-table tr {\n        background: transparent !important;\n        border: 0 !important;\n    }\n\n    .mtv-daily .mtv-daily-table td {\n        padding: 8px 18px !important;\n        border: 0 !important;\n        background: transparent !important;\n        vertical-align: top;\n        font-size: 16px;\n        line-height: 1.85;\n        font-weight: 400;\n        color: #242424;\n        overflow-wrap: anywhere;\n    }\n\n    .mtv-daily .mtv-daily-table td:first-child {\n        padding-left: 28px !important;\n        white-space: nowrap;\n        font-variant-numeric: tabular-nums;\n    }\n\n    .mtv-daily .mtv-daily-table td:last-child {\n        padding-right: 28px !important;\n    }\n\n    .mtv-daily .mtv-daily-message {\n        padding: 20px 0 !important;\n        text-align: center;\n        color: #666;\n    }\n\n    \/* \u00centregul r\u00e2nd: fundal subtil, f\u0103r\u0103 contur sau rotunjire. *\/\n    .mtv-daily .mtv-daily-table tr.mtv-spiritual td {\n        padding-top: 15px !important;\n        padding-bottom: 15px !important;\n        border: 0 !important;\n        border-radius: 0 !important;\n        background: #f0f3f9 !important;\n    }\n\n    .mtv-daily .mtv-daily-table tr.mtv-spiritual td:first-child {\n        border: 0 !important;\n        border-radius: 0 !important;\n        padding-left: 28px !important;\n    }\n\n    .mtv-daily .mtv-daily-table tr.mtv-spiritual td:last-child {\n        border: 0 !important;\n        border-radius: 0 !important;\n        padding-right: 28px !important;\n    }\n\n    .mtv-daily .mtv-daily-table tr.mtv-spiritual td:nth-child(2) {\n        color: var(--mtv-navy);\n        font-weight: 600;\n    }\n\n    .mtv-daily .mtv-daily-table tr {\n        scroll-margin-top: 140px;\n    }\n\n    .mtv-daily .mtv-daily-table tr.mtv-jump-target td {\n        background: #eaf0fb !important;\n    }\n\n    .mtv-daily .mtv-jump-status {\n        font-size: 14px;\n        color: var(--mtv-navy);\n        text-align: center;\n        padding: 0;\n        margin: 12px 0;\n    }\n\n    .mtv-daily .mtv-jump-status:empty {\n        display: none;\n    }\n\n    .mtv-daily-jump {\n        position: fixed;\n        right: 18px;\n        top: 50%;\n        max-width: 145px;\n        text-align: center;\n        white-space: normal;\n        transform: translateY(-50%);\n        z-index: 9999;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        gap: 8px;\n        padding: 15px 13px;\n        border: 1px solid #233965;\n        border-radius: 16px;\n        background: #071c50;\n        color: #fff;\n        font-family: inherit;\n        font-size: 13px;\n        font-weight: 600;\n        line-height: 1.35;\n        cursor: pointer;\n        box-shadow: 0 5px 20px #071c5020;\n        transition: background .2s;\n    }\n\n    .mtv-daily-jump[hidden] {\n        display: none !important;\n    }\n\n    .mtv-daily-jump:hover {\n        background: #183366;\n    }\n\n    .mtv-daily-jump:focus-visible {\n        outline: 2px solid #8392b0;\n        outline-offset: 4px;\n    }\n\n    .mtv-daily-jump:disabled {\n        opacity: .6;\n        cursor: wait;\n    }\n\n    .mtv-daily-jump svg {\n        width: 21px;\n        height: 21px;\n    }\n\n    @media (max-width:1199px) {\n        .mtv-daily-jump {\n            top: auto;\n            bottom: calc(22px + env(safe-area-inset-bottom,0px));\n            right: 16px;\n            transform: none;\n            flex-direction: row;\n            padding: 12px 16px;\n            border-radius: 999px;\n        }\n\n        .mtv-daily {\n            padding-bottom: 70px;\n        }\n    }\n\n    @media (max-width:767px) {\n        .mtv-daily {\n            padding-left: 0;\n            padding-right: 0;\n        }\n\n        .mtv-daily .mtv-daily-table td:first-child,\n        .mtv-daily .mtv-daily-table tr.mtv-spiritual td:first-child {\n            padding-left: 18px !important;\n        }\n\n        .mtv-daily .mtv-daily-table td:last-child,\n        .mtv-daily .mtv-daily-table tr.mtv-spiritual td:last-child {\n            padding-right: 18px !important;\n        }\n\n        .mtv-daily .mtv-daily-nav {\n            grid-template-columns: 1fr 1fr;\n            gap: 12px 8px;\n            margin-bottom: 22px;\n        }\n\n        .mtv-daily .mtv-daily-center {\n            grid-column: 1\/-1;\n            grid-row: 1;\n        }\n\n        .mtv-daily .mtv-daily-prev,\n        .mtv-daily .mtv-daily-next {\n            grid-row: 2;\n            font-size: 14px;\n            gap: 6px;\n            padding: 8px 0;\n        }\n\n        .mtv-daily .mtv-daily-today {\n            font-size: 20px;\n            padding: 8px 17px;\n        }\n\n        .mtv-daily .mtv-daily-table td {\n            font-size: 14px;\n            padding: 6px 12px !important;\n            line-height: 1.8;\n        }\n\n        .mtv-daily .mtv-col-time {\n            width: 155px;\n        }\n    }\n    <\/style>\n\n    <script>\n    (function() {\n        var root = document.getElementById(\n            \"mtv-daily-2\"        );\n\n        if (!root || root.dataset.ready) return;\n\n        root.dataset.ready = '1';\n\n        var content = root.querySelector('.mtv-daily-content');\n        var prev = root.querySelector('.mtv-daily-prev');\n        var next = root.querySelector('.mtv-daily-next');\n        var today = root.querySelector('.mtv-daily-today');\n        var label = root.querySelector('.mtv-daily-date');\n        var status = root.querySelector('.mtv-jump-status');\n        var zoneLabel = root.querySelector('.mtv-daily-zone');\n\n        var jump = document.createElement('button');\n\n        jump.type = 'button';\n        jump.className = 'mtv-daily-jump';\n        jump.hidden = true;\n\n        jump.setAttribute(\n            'aria-label',\n            'Salt la ora curent\u0103, \u00een programul zilei \u00een curs'\n        );\n\n        jump.innerHTML =\n            '<svg viewBox=\"0 0 24 24\" fill=\"none\" '\n            + 'stroke=\"currentColor\" stroke-width=\"1.7\" aria-hidden=\"true\">'\n            + '<circle cx=\"12\" cy=\"12\" r=\"9\"><\/circle>'\n            + '<path d=\"M12 6v6l4 2\"><\/path>'\n            + '<\/svg>'\n            + '<span>Salt la ora curent\u0103<\/span>';\n\n        document.body.appendChild(jump);\n\n        jump.style.fontFamily = getComputedStyle(root).fontFamily;\n\n        if ('IntersectionObserver' in window) {\n            var observer = new IntersectionObserver(function(entries) {\n                jump.hidden = !entries[0].isIntersecting;\n\n                if (!root.isConnected) {\n                    jump.remove();\n                    observer.disconnect();\n                }\n            });\n\n            observer.observe(root);\n        } else {\n            jump.hidden = false;\n        }\n\n        var pendingJump = false;\n\n        function chooseTarget(rows, now) {\n            return rows.find(function(row) {\n                return Number(row.dataset.start) <= now\n                    && now < Number(row.dataset.end);\n            }) || rows.find(function(row) {\n                return Number(row.dataset.start) > now;\n            }) || null;\n        }\n\n        function jumpToTime(now) {\n            var rows = Array.from(\n                content.querySelectorAll('tr[data-start]')\n            );\n\n            var target = chooseTarget(rows, now);\n\n            if (!target) {\n                status.textContent = rows.length\n                    ? 'Programul acestei zile s-a \u00eencheiat.'\n                    : 'Nu exist\u0103 un program disponibil pentru ora curent\u0103.';\n\n                status.scrollIntoView({\n                    block: 'center',\n                    behavior: 'smooth'\n                });\n\n                return;\n            }\n\n            \/\/ Salt f\u0103r\u0103 mesaj de confirmare.\n            status.textContent = '';\n\n            content.querySelectorAll('.mtv-jump-target').forEach(function(row) {\n                row.classList.remove('mtv-jump-target');\n            });\n\n            target.classList.add('mtv-jump-target');\n\n            var scroller = content.querySelector('.mtv-daily-scroll');\n\n            if (scroller) {\n                scroller.scrollLeft = 0;\n            }\n\n            target.focus({preventScroll: true});\n\n            target.scrollIntoView({\n                block: 'center',\n                behavior: window.matchMedia(\n                    '(prefers-reduced-motion: reduce)'\n                ).matches ? 'auto' : 'smooth'\n            });\n\n            setTimeout(function() {\n                target.classList.remove('mtv-jump-target');\n            }, 5000);\n        }\n\n        var endpoint = \"https:\\\/\\\/irinagiuglea.com\\\/wp-admin\\\/admin-ajax.php\";\n\n        var selected = '';\n        var previous = '';\n        var following = '';\n        var timer;\n        var sequence = 0;\n        var controller = null;\n        var lastHTML = '';\n\n        async function update() {\n            if (!root.isConnected) return;\n\n            clearTimeout(timer);\n\n            var request = ++sequence;\n\n            if (controller) {\n                controller.abort();\n            }\n\n            controller = new AbortController();\n\n            var activeController = controller;\n\n            var timeout = setTimeout(function() {\n                activeController.abort();\n            }, 25000);\n\n            var delay = 60000;\n\n            content.setAttribute('aria-busy', 'true');\n            prev.disabled = true;\n            next.disabled = true;\n\n            try {\n                var url = new URL(endpoint, window.location.href);\n\n                url.searchParams.set(\n                    'action',\n                    'misatv_daily_program'\n                );\n\n                if (selected) {\n                    url.searchParams.set('date', selected);\n                }\n\n                url.searchParams.set('_', Date.now());\n\n                var response = await fetch(url.toString(), {\n                    cache: 'no-store',\n                    credentials: 'same-origin',\n                    signal: activeController.signal\n                });\n\n                if (!response.ok) {\n                    throw new Error('HTTP');\n                }\n\n                var result = await response.json();\n\n                if (request !== sequence) return;\n\n                if (\n                    !result.success\n                    || typeof result.data.html !== 'string'\n                ) {\n                    throw new Error('Data');\n                }\n\n                var data = result.data;\n\n                if (data.html !== lastHTML) {\n                    var oldScroll = content.querySelector(\n                        '.mtv-daily-scroll'\n                    );\n\n                    var left = oldScroll ? oldScroll.scrollLeft : 0;\n\n                    content.innerHTML = data.html;\n\n                    var newScroll = content.querySelector(\n                        '.mtv-daily-scroll'\n                    );\n\n                    if (newScroll) {\n                        newScroll.scrollLeft = left;\n                    }\n\n                    lastHTML = data.html;\n                }\n\n                zoneLabel.textContent = 'Ora Rom\u00e2niei';\n                zoneLabel.title =\n                    'Toate orele programului sunt afi\u0219ate \u00een fusul orar al Rom\u00e2niei.';\n\n                label.textContent = data.label;\n                previous = data.previous;\n                following = data.next;\n\n                if (data.date === data.current) {\n                    selected = '';\n                }\n\n                prev.disabled = false;\n                next.disabled = false;\n\n                if (pendingJump) {\n                    pendingJump = false;\n\n                    \/\/ Folose\u0219te timpul serverului, nu ora dispozitivului.\n                    jumpToTime(Number(data.now));\n                }\n\n                delay = Math.max(\n                    1000,\n                    Math.min(\n                        60000,\n                        Number(data.refresh) * 1000 || 60000\n                    )\n                );\n\n            } catch(error) {\n                if (request !== sequence) return;\n\n                content.innerHTML =\n                    '<p class=\"mtv-daily-message\" role=\"status\">'\n                    + 'Programul nu poate fi \u00eenc\u0103rcat momentan. '\n                    + 'Re\u00eencerc\u0103m automat.<\/p>';\n\n                label.textContent = 'Program indisponibil';\n                lastHTML = '';\n                pendingJump = false;\n                delay = 20000;\n\n            } finally {\n                clearTimeout(timeout);\n\n                if (request === sequence) {\n                    content.setAttribute('aria-busy', 'false');\n                    jump.disabled = false;\n\n                    if (root.isConnected) {\n                        timer = setTimeout(update, delay);\n                    }\n                }\n            }\n        }\n\n        function navigate(date, shouldJump) {\n            pendingJump = !!shouldJump;\n            status.textContent = '';\n            selected = date;\n            label.textContent = 'Se \u00eencarc\u0103\u2026';\n\n            content.innerHTML =\n                '<p class=\"mtv-daily-message\" role=\"status\">'\n                + 'Se \u00eencarc\u0103 programul\u2026<\/p>';\n\n            lastHTML = '';\n\n            update();\n        }\n\n        prev.addEventListener('click', function() {\n            if (previous) {\n                navigate(previous);\n            }\n        });\n\n        next.addEventListener('click', function() {\n            if (following) {\n                navigate(following);\n            }\n        });\n\n        today.addEventListener('click', function() {\n            navigate('');\n        });\n\n        jump.addEventListener('click', function() {\n            jump.disabled = true;\n            navigate('', true);\n        });\n\n        document.addEventListener('visibilitychange', function() {\n            if (!document.hidden) {\n                update();\n            }\n        });\n\n        window.addEventListener('online', update);\n\n        update();\n    })();\n    <\/script>\n\n    \n<\/div><\/div>\n\n<div class=\"et_pb_code_2 et_pb_code et_pb_module\"><\/div>\n\n<div class=\"et_pb_code_3 et_pb_code et_pb_module\"><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","footnotes":""},"class_list":["post-21621","page","type-page","status-publish","hentry"],"aioseo_notices":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"trp-custom-language-flag":false,"et-pb-post-main-image":false,"et-pb-post-main-image-fullwidth":false,"et-pb-portfolio-image":false,"et-pb-portfolio-module-image":false,"et-pb-portfolio-image-single":false,"et-pb-gallery-module-image-portrait":false,"et-pb-post-main-image-fullwidth-large":false,"et-pb-image--responsive--desktop":false,"et-pb-image--responsive--tablet":false,"et-pb-image--responsive--phone":false},"uagb_author_info":{"display_name":"irina.giuglea@gmail.com","author_link":"https:\/\/irinagiuglea.com\/ro\/author\/irina-giugleagmail-com\/"},"uagb_comment_info":0,"uagb_excerpt":null,"_links":{"self":[{"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/pages\/21621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/comments?post=21621"}],"version-history":[{"count":8,"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/pages\/21621\/revisions"}],"predecessor-version":[{"id":990555,"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/pages\/21621\/revisions\/990555"}],"wp:attachment":[{"href":"https:\/\/irinagiuglea.com\/ro\/wp-json\/wp\/v2\/media?parent=21621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}