{"id":6030,"date":"2022-08-25T11:43:35","date_gmt":"2022-08-25T11:43:35","guid":{"rendered":"https:\/\/library-tsul.uz\/?p=6030"},"modified":"2025-12-12T22:28:20","modified_gmt":"2025-12-12T17:28:20","slug":"davlat-va-u-u-nazariyasi-sajdullaev-sh-a-2018-2","status":"publish","type":"post","link":"https:\/\/library-tsul.uz\/ru\/davlat-va-u-u-nazariyasi-sajdullaev-sh-a-2018-2\/","title":{"rendered":"\u0414\u0430\u0432\u043b\u0430\u0442 \u0432\u0430 \u04b3\u0443\u049b\u0443\u049b \u043d\u0430\u0437\u0430\u0440\u0438\u044f\u0441\u0438. \u0421\u0430\u0439\u0434\u0443\u043b\u043b\u0430\u0435\u0432 \u0428.\u0410. 2018. \u0410\u0443\u0434\u0438\u043e\u043a\u0438\u0442\u043e\u0431."},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"6030\" class=\"elementor elementor-6030\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ca870e8 e-flex e-con-boxed e-con e-parent\" data-id=\"ca870e8\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-923c250 elementor-widget elementor-widget-html\" data-id=\"923c250\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- Minimal mobile-first YouTube \"audio\" player for Elementor\n     - Big round play\/pause button (no \"play\" text)\n     - Mobile friendly, centered, minimal UI\n     - 19 ta \"mavzu\" tugmasi (collapsible on mobile)\n     - All labels in Uzbek (Latin)\n     - Keeps playback legal via YouTube IFrame API\n-->\n<style>\n\/* Scope everything to avoid conflicts *\/\n#yt-audio-min{ box-sizing:border-box; font-family:Inter, system-ui, -apple-system, \"Segoe UI\", Roboto, Arial, sans-serif; display:flex; justify-content:center; padding:12px; }\n\n#yt-audio-min .card{\n  width:100%;\n  max-width:760px;\n  background:#ffffff;\n  border-radius:14px;\n  box-shadow:0 8px 26px rgba(11,18,32,0.06);\n  border:1px solid rgba(11,18,32,0.06);\n  padding:12px;\n  color:#071425;\n}\n\n\/* Top: thumb + title *\/\n#yt-audio-min .top{ display:flex; align-items:center; gap:12px; }\n#yt-audio-min .thumb{ width:72px; height:72px; border-radius:10px; object-fit:cover; background:#f2f6fb; flex:0 0 72px; }\n#yt-audio-min .meta{ flex:1; min-width:0; }\n#yt-audio-min .title{ margin:0; font-weight:700; font-size:15px; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#071425; }\n#yt-audio-min .sub{ margin:3px 0 0 0; color:#5b6b7a; font-size:13px; }\n\n\/* Big circular play button center *\/\n#yt-audio-min .center{\n  display:flex; justify-content:center; margin-top:14px; align-items:center;\n}\n#yt-audio-min .big-play{\n  width:88px; height:88px; border-radius:50%;\n  display:flex; align-items:center; justify-content:center;\n  background:linear-gradient(180deg,#0b84ff,#0866d6);\n  border:none; box-shadow:0 10px 30px rgba(11,132,255,0.18);\n  color:#fff; font-size:36px; cursor:pointer;\n  transition:transform .12s ease;\n}\n#yt-audio-min .big-play:active{ transform:scale(.98); }\n\n\/* Minimal controls row *\/\n#yt-audio-min .controls{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:10px; }\n#yt-audio-min .ctrl-btn{ background:transparent; border:0; color:#5b6b7a; font-size:14px; cursor:pointer; padding:6px; border-radius:8px; }\n#yt-audio-min .ctrl-btn:active{ opacity:0.8; }\n\n\/* Seek *\/\n#yt-audio-min .seek-row{ display:flex; align-items:center; gap:10px; margin-top:8px; }\n#yt-audio-min .time{ font-size:13px; color:#5b6b7a; min-width:44px; text-align:center; }\n#yt-audio-min input[type=\"range\"]{ -webkit-appearance:none; appearance:none; height:6px; background:#eef3fb; border-radius:8px; outline:none; flex:1; }\n#yt-audio-min input[type=\"range\"]::-webkit-slider-thumb{ -webkit-appearance:none; width:12px; height:12px; border-radius:50%; background:#0b84ff; box-shadow:0 2px 6px rgba(11,132,255,0.22); border:2px solid #fff; }\n\n\/* Topics: collapsible on small screens *\/\n#yt-audio-min .topics-wrap{ margin-top:10px; }\n#yt-audio-min .topics-toggle{ display:flex; justify-content:center; }\n#yt-audio-min .topics{ display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }\n#yt-audio-min .topic{ padding:6px 10px; background:#f7fbff; border-radius:8px; font-size:13px; color:#033e8c; border:1px solid rgba(11,18,32,0.04); cursor:pointer; }\n#yt-audio-min .topic.active{ background:linear-gradient(90deg,#0b84ff,#0866d6); color:#fff; border-color:transparent; }\n\n\/* Attribution small text *\/\n#yt-audio-min .note{ margin-top:10px; font-size:12px; color:#7a8793; text-align:center; }\n\n\/* Hidden iframe *\/\n#yt-audio-min .yt-iframe{ width:1px; height:1px; position:absolute; left:-9999px; top:-9999px; opacity:0; pointer-events:none; }\n\n\/* Responsive tweaks *\/\n@media (max-width:520px){\n  #yt-audio-min .top{ gap:10px; }\n  #yt-audio-min .thumb{ width:64px; height:64px; flex:0 0 64px; }\n  #yt-audio-min .big-play{ width:76px; height:76px; font-size:30px; }\n  #yt-audio-min .title{ font-size:14px; }\n  \/* collapse topics by default on very small screens *\/\n  #yt-audio-min .topics{ display:none; }\n  #yt-audio-min .topics.expanded{ display:flex; }\n}\n<\/style>\n\n<div id=\"yt-audio-min\" aria-label=\"Minimal YouTube audio pleer (o'zbekcha)\">\n  <div class=\"card\" role=\"region\" aria-label=\"Minimal audio pleer\">\n    <div class=\"top\">\n      <img data-recalc-dims=\"1\" decoding=\"async\" id=\"yt-thumb\" class=\"thumb\" alt=\"Thumbnail\" src=\"https:\/\/i0.wp.com\/i.ytimg.com\/vi\/cm7Sl9L22jA\/hqdefault.jpg?ssl=1\">\n      <div class=\"meta\">\n        <h4 id=\"yt-title\" class=\"title\">1-mavzu \u2014 yuklanmoqda\u2026<\/h4>\n        <div id=\"yt-channel\" class=\"sub\">Pleylist: PL754GzmMbBaIW3EzrmNhI7myqH3pqXKTP<\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"center\">\n      <button id=\"bigPlay\" class=\"big-play\" aria-label=\"O\u02bbynat\/To\u02bbxtat\">\u25b6<\/button>\n    <\/div>\n\n    <div class=\"controls\" aria-hidden=\"false\">\n      <button id=\"prev\" class=\"ctrl-btn\" title=\"Oldingi\">\u23ee<\/button>\n      <div style=\"flex:1\"><\/div>\n      <button id=\"shuffle\" class=\"ctrl-btn\" title=\"Aralashtirish\">\ud83d\udd00<\/button>\n      <button id=\"repeat\" class=\"ctrl-btn\" title=\"Takrorlash\">\ud83d\udd01<\/button>\n      <button id=\"next\" class=\"ctrl-btn\" title=\"Keyingi\">\u23ed<\/button>\n    <\/div>\n\n    <div class=\"seek-row\">\n      <div id=\"currentTime\" class=\"time\">0:00<\/div>\n      <input id=\"seek\" type=\"range\" min=\"0\" max=\"100\" value=\"0\" step=\"0.1\" aria-label=\"Qidiruv\">\n      <div id=\"duration\" class=\"time\">0:00<\/div>\n    <\/div>\n\n    <div class=\"topics-wrap\">\n      <div class=\"topics-toggle\" style=\"margin-top:8px;\">\n        <button id=\"toggleTopics\" class=\"ctrl-btn\" aria-expanded=\"false\">Mavzular \u25be<\/button>\n      <\/div>\n\n      <div id=\"topics\" class=\"topics\" role=\"list\" aria-label=\"Mavzular ro'yxati\">\n        <!-- 19 ta mavzu tugmasi -->\n        <button class=\"topic\" data-index=\"0\">1-mavzu<\/button>\n        <button class=\"topic\" data-index=\"1\">2-mavzu<\/button>\n        <button class=\"topic\" data-index=\"2\">3-mavzu<\/button>\n        <button class=\"topic\" data-index=\"3\">4-mavzu<\/button>\n        <button class=\"topic\" data-index=\"4\">5-mavzu<\/button>\n        <button class=\"topic\" data-index=\"5\">6-mavzu<\/button>\n        <button class=\"topic\" data-index=\"6\">7-mavzu<\/button>\n        <button class=\"topic\" data-index=\"7\">8-mavzu<\/button>\n        <button class=\"topic\" data-index=\"8\">9-mavzu<\/button>\n        <button class=\"topic\" data-index=\"9\">10-mavzu<\/button>\n        <button class=\"topic\" data-index=\"10\">11-mavzu<\/button>\n        <button class=\"topic\" data-index=\"11\">12-mavzu<\/button>\n        <button class=\"topic\" data-index=\"12\">13-mavzu<\/button>\n        <button class=\"topic\" data-index=\"13\">14-mavzu<\/button>\n        <button class=\"topic\" data-index=\"14\">15-mavzu<\/button>\n        <button class=\"topic\" data-index=\"15\">16-mavzu<\/button>\n        <button class=\"topic\" data-index=\"16\">17-mavzu<\/button>\n        <button class=\"topic\" data-index=\"17\">18-mavzu<\/button>\n        <button class=\"topic\" data-index=\"18\">19-mavzu<\/button>\n      <\/div>\n    <\/div>\n\n    <div class=\"note\">YouTube IFrame API orqali audio \u2014 hech qanday audio fayl taqdim etilmaydi<\/div>\n  <\/div>\n<\/div>\n\n<!-- Hidden YouTube iframe player -->\n<div id=\"yt-player\" class=\"yt-iframe\" aria-hidden=\"true\"><\/div>\n\n<!-- YouTube IFrame API -->\n<script src=\"https:\/\/www.youtube.com\/iframe_api\"><\/script>\n<script>\n(function(){\n  \/\/ CONFIG\n  const START_VIDEO_ID = 'cm7Sl9L22jA';\n  const PLAYLIST_ID = 'PL754GzmMbBaIW3EzrmNhI7myqH3pqXKTP';\n  const TOPIC_COUNT = 19; \/\/ we added 19 buttons, indexes 0..18\n\n  \/\/ UI refs\n  const bigPlay = document.getElementById('bigPlay');\n  const prevBtn = document.getElementById('prev');\n  const nextBtn = document.getElementById('next');\n  const shuffleBtn = document.getElementById('shuffle');\n  const repeatBtn = document.getElementById('repeat');\n  const seek = document.getElementById('seek');\n  const currentTime = document.getElementById('currentTime');\n  const duration = document.getElementById('duration');\n  const titleEl = document.getElementById('yt-title');\n  const thumbEl = document.getElementById('yt-thumb');\n  const channelEl = document.getElementById('yt-channel');\n  const topicsEl = document.getElementById('topics');\n  const toggleTopics = document.getElementById('toggleTopics');\n  const topicButtons = document.querySelectorAll('#yt-audio-min .topic');\n\n  let player = null;\n  let isPlaying = false;\n  let durationSec = 0;\n  let progressTimer = null;\n  let seeking = false;\n  let repeatMode = false;\n  let shuffleMode = false;\n\n  \/\/ Initialize YouTube player when API ready\n  window.onYouTubeIframeAPIReady = function() {\n    player = new YT.Player('yt-player', {\n      height: '1', width: '1', videoId: START_VIDEO_ID,\n      playerVars: {\n        listType: 'playlist', list: PLAYLIST_ID,\n        controls: 0, disablekb: 1, enablejsapi: 1, modestbranding: 1, rel: 0, iv_load_policy: 3, playsinline: 1\n      },\n      events: { onReady: onReady, onStateChange: onStateChange, onError: (e)=>console.error(e) }\n    });\n  };\n\n  function onReady(){\n    setVolume(100);\n    bindControls();\n    updateMeta();\n  }\n\n  function onStateChange(e){\n    const s = e.data;\n    if (s === YT.PlayerState.PLAYING) {\n      isPlaying = true;\n      bigPlay.textContent = '\u23f8';\n      startProgress();\n      updateMeta();\n    } else if (s === YT.PlayerState.PAUSED) {\n      isPlaying = false;\n      bigPlay.textContent = '\u25b6';\n      stopProgress();\n    } else if (s === YT.PlayerState.ENDED) {\n      isPlaying = false;\n      bigPlay.textContent = '\u25b6';\n      stopProgress();\n      if (repeatMode) player.playVideo();\n      else setTimeout(updateMeta, 200);\n    }\n  }\n\n  function bindControls(){\n    \/\/ big play\/pause (icon only)\n    bigPlay.addEventListener('click', () => {\n      if (!player) return;\n      const st = player.getPlayerState();\n      if (st === YT.PlayerState.PLAYING) player.pauseVideo();\n      else player.playVideo();\n    });\n\n    prevBtn.addEventListener('click', () => { if (player) { player.previousVideo(); setTimeout(updateMeta, 250); } });\n    nextBtn.addEventListener('click', () => { if (player) { player.nextVideo(); setTimeout(updateMeta, 250); } });\n\n    shuffleBtn.addEventListener('click', () => {\n      shuffleMode = !shuffleMode;\n      shuffleBtn.style.opacity = shuffleMode ? '1' : '0.6';\n      if (shuffleMode && player && player.getPlaylist) {\n        const list = player.getPlaylist();\n        if (list && list.length) {\n          const r = Math.floor(Math.random() * list.length);\n          player.playVideoAt(r); setTimeout(updateMeta, 250);\n        }\n      }\n    });\n\n    repeatBtn.addEventListener('click', () => {\n      repeatMode = !repeatMode;\n      repeatBtn.style.opacity = repeatMode ? '1' : '0.6';\n    });\n\n    \/\/ topics\n    topicButtons.forEach(btn => {\n      btn.addEventListener('click', () => {\n        const idx = parseInt(btn.getAttribute('data-index'), 10);\n        if (!isNaN(idx) && player && player.playVideoAt) {\n          player.playVideoAt(idx);\n          highlightTopic(idx);\n          setTimeout(updateMeta, 300);\n        }\n      });\n    });\n\n    toggleTopics.addEventListener('click', () => {\n      const expanded = toggleTopics.getAttribute('aria-expanded') === 'true';\n      toggleTopics.setAttribute('aria-expanded', String(!expanded));\n      topicsEl.classList.toggle('expanded');\n    });\n\n    \/\/ seek\n    seek.addEventListener('input', (e) => {\n      const pct = Number(e.target.value);\n      currentTime.textContent = formatTime((pct\/100) * durationSec || 0);\n    });\n    seek.addEventListener('change', (e) => {\n      if (!player || !durationSec) return;\n      const pct = Number(e.target.value);\n      const t = (pct\/100) * durationSec;\n      seeking = true; player.seekTo(t, true);\n      setTimeout(()=> seeking = false, 700);\n    });\n\n    \/\/ keyboard space toggles\n    window.addEventListener('keydown', function(ev){\n      if (ev.code === 'Space' && document.activeElement.tagName !== 'INPUT') {\n        ev.preventDefault(); bigPlay.click();\n      }\n    });\n  }\n\n  function highlightTopic(idx){\n    topicButtons.forEach(b => b.classList.remove('active'));\n    const el = document.querySelector('#yt-audio-min .topic[data-index=\"'+idx+'\"]');\n    if (el) el.classList.add('active');\n  }\n\n  function startProgress(){\n    if (progressTimer) return;\n    progressTimer = setInterval(() => {\n      if (!player || seeking) return;\n      const st = player.getPlayerState();\n      if (st === YT.PlayerState.PLAYING || st === YT.PlayerState.PAUSED) {\n        const cur = player.getCurrentTime ? player.getCurrentTime() : 0;\n        const d = player.getDuration ? player.getDuration() : durationSec || 0;\n        if (d && d>0) {\n          durationSec = d; duration.textContent = formatTime(d);\n          seek.value = (cur \/ d) * 100;\n        }\n        currentTime.textContent = formatTime(cur || 0);\n      }\n    }, 250);\n  }\n\n  function stopProgress(){ if (progressTimer) { clearInterval(progressTimer); progressTimer = null; } }\n\n  function setVolume(v){ if (player && player.setVolume) player.setVolume(Number(v)); }\n\n  function updateMeta(){\n    if (!player || !player.getVideoData) return;\n    const vd = player.getVideoData() || {};\n    const vid = vd.video_id || START_VIDEO_ID;\n    const title = vd.title || 'Nom berilmagan';\n    const author = vd.author || '';\n    titleEl.textContent = title;\n    channelEl.textContent = author ? 'muallif: ' + author : 'Pleylist';\n    thumbEl.src = `https:\/\/i.ytimg.com\/vi\/${vid}\/hqdefault.jpg`;\n    if (player.getPlaylistIndex) {\n      try { const idx = player.getPlaylistIndex(); highlightTopic(idx); } catch(e) {}\n    }\n  }\n\n  function formatTime(t){ t = Math.floor(t||0); const h = Math.floor(t\/3600), m = Math.floor((t%3600)\/60), s = t%60; if (h>0) return h+':'+String(m).padStart(2,'0')+':'+String(s).padStart(2,'0'); return m+':'+String(s).padStart(2,'0'); }\n\n  \/\/ API fail safe\n  setTimeout(() => {\n    if (!window.YT) {\n      titleEl.textContent = \"YouTube API yuklanmadi\";\n      channelEl.textContent = \"Tarmoqqa ulanishni tekshiring\";\n      bigPlay.disabled = true;\n    }\n  }, 3000);\n\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>1-mavzu \u2014 yuklanmoqda\u2026 Pleylist: PL754GzmMbBaIW3EzrmNhI7myqH3pqXKTP \u25b6 \u23ee \ud83d\udd00 \ud83d\udd01 \u23ed 0:00 0:00 Mavzular \u25be 1-mavzu 2-mavzu 3-mavzu 4-mavzu 5-mavzu 6-mavzu 7-mavzu 8-mavzu 9-mavzu 10-mavzu 11-mavzu 12-mavzu 13-mavzu 14-mavzu 15-mavzu 16-mavzu 17-mavzu 18-mavzu 19-mavzu YouTube IFrame API orqali audio \u2014 hech qanday audio fayl taqdim etilmaydi<\/p>","protected":false},"author":2,"featured_media":11186,"comment_status":"open","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[334],"tags":[],"class_list":["post-6030","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-yuridik-adabiyotlar"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/library-tsul.uz\/wp-content\/uploads\/2022\/08\/d0b4d0b0d0b2d0bbd0b0d182-d0b2d0b0-d2b3d183d29bd183d29b-d0bdd0b0d0b7d0b0d180d0b8d18fd181d0b8-d181d0b0d0b9d0b4d183d0bbd0bbd0b0d0b5d0b2_63076068005d1.jpeg?fit=728%2C1024&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/posts\/6030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/comments?post=6030"}],"version-history":[{"count":27,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/posts\/6030\/revisions"}],"predecessor-version":[{"id":20723,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/posts\/6030\/revisions\/20723"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/media\/11186"}],"wp:attachment":[{"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/media?parent=6030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/categories?post=6030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/library-tsul.uz\/ru\/wp-json\/wp\/v2\/tags?post=6030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}