339 lines
38 KiB
HTML
339 lines
38 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>Нарушения законодательства РК — справочник</title>
|
||
<style>
|
||
:root {
|
||
--ink: #0F1218;
|
||
--cyan: #00E5FF;
|
||
--cyan-50: #E8FCFF;
|
||
--white: #fff;
|
||
--gray-500: #5B6573;
|
||
--gray-100: #F2F4F7;
|
||
--red: #E53935;
|
||
--red-light: #FFEBEE;
|
||
--orange: #F57C00;
|
||
--orange-light: #FFF3E0;
|
||
--green: #2E7D32;
|
||
--green-light: #E8F5E9;
|
||
}
|
||
* { box-sizing: border-box; margin: 0; padding: 0; }
|
||
body {
|
||
font: 17px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
|
||
color: var(--ink);
|
||
background: var(--white);
|
||
}
|
||
.container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
|
||
|
||
.hero {
|
||
background: var(--ink);
|
||
color: var(--white);
|
||
padding: 100px 0 80px;
|
||
}
|
||
.hero h1 {
|
||
font-size: 48px; font-weight: 800; line-height: 1.1;
|
||
margin-bottom: 16px;
|
||
}
|
||
.hero p {
|
||
font-size: 20px; color: #9aa3b2;
|
||
max-width: 600px; margin-bottom: 40px;
|
||
}
|
||
.search-box {
|
||
display: flex; gap: 12px; max-width: 700px;
|
||
background: rgba(255,255,255,0.08);
|
||
border: 2px solid rgba(255,255,255,0.15);
|
||
border-radius: 12px; padding: 8px;
|
||
}
|
||
.search-box input {
|
||
flex: 1; background: none; border: none;
|
||
color: var(--white); font-size: 17px; padding: 12px 16px;
|
||
outline: none;
|
||
}
|
||
.search-box input::placeholder { color: rgba(255,255,255,0.4); }
|
||
.search-box button {
|
||
background: var(--cyan); color: var(--ink);
|
||
border: none; padding: 12px 28px; border-radius: 8px;
|
||
font-size: 16px; font-weight: 700; cursor: pointer;
|
||
}
|
||
.search-box button:hover { background: #1be5ff; }
|
||
|
||
.results-section { padding: 64px 0 80px; }
|
||
.stats-bar {
|
||
display: flex; align-items: center; justify-content: space-between;
|
||
margin-bottom: 32px; flex-wrap: wrap; gap: 16px;
|
||
}
|
||
.stats-bar .count { font-size: 15px; color: var(--gray-500); }
|
||
.filters {
|
||
display: flex; gap: 8px; flex-wrap: wrap;
|
||
}
|
||
.filter-btn {
|
||
padding: 6px 16px; border-radius: 20px; border: 1.5px solid var(--gray-100);
|
||
background: var(--white); font-size: 14px; cursor: pointer;
|
||
transition: all 0.15s; color: var(--gray-500);
|
||
}
|
||
.filter-btn:hover { border-color: var(--cyan); color: var(--ink); }
|
||
.filter-btn.active {
|
||
background: var(--ink); color: var(--white); border-color: var(--ink);
|
||
}
|
||
.filter-btn.code-koap.active { background: #1565C0; border-color: #1565C0; }
|
||
.filter-btn.code-uk.active { background: var(--red); border-color: var(--red); }
|
||
.filter-btn.code-tk.active { background: var(--orange); border-color: var(--orange); }
|
||
.filter-btn.code-nk.active { background: var(--green); border-color: var(--green); }
|
||
|
||
.results-grid {
|
||
display: grid; gap: 16px;
|
||
}
|
||
.violation-card {
|
||
border: 1px solid var(--gray-100); border-radius: 12px;
|
||
padding: 28px 32px; display: grid;
|
||
grid-template-columns: 1fr auto;
|
||
gap: 16px 24px; align-items: start;
|
||
transition: box-shadow 0.15s, transform 0.15s;
|
||
}
|
||
.violation-card:hover {
|
||
box-shadow: 0 4px 24px rgba(0,0,0,0.06);
|
||
transform: translateY(-1px);
|
||
}
|
||
.violation-card .info { min-width: 0; }
|
||
.violation-card .info h3 {
|
||
font-size: 18px; font-weight: 700; margin-bottom: 6px;
|
||
}
|
||
.violation-card .info .desc {
|
||
font-size: 15px; color: var(--gray-500); line-height: 1.55;
|
||
}
|
||
.violation-card .article {
|
||
display: flex; align-items: center; gap: 8px;
|
||
padding: 10px 18px; border-radius: 8px;
|
||
font-weight: 700; font-size: 14px; white-space: nowrap;
|
||
text-align: center; flex-shrink: 0;
|
||
}
|
||
.article.koap { background: #E3F2FD; color: #1565C0; }
|
||
.article.uk { background: var(--red-light); color: var(--red); }
|
||
.article.tk { background: var(--orange-light); color: var(--orange); }
|
||
.article.nk { background: var(--green-light); color: var(--green); }
|
||
.article .code-label { font-size: 11px; font-weight: 600; }
|
||
|
||
.violation-card .penalty {
|
||
grid-column: 1 / -1; font-size: 14px; color: var(--gray-500);
|
||
padding-top: 12px; border-top: 1px solid var(--gray-100);
|
||
display: flex; gap: 6px; align-items: baseline;
|
||
}
|
||
.penalty-label {
|
||
font-weight: 600; color: var(--ink); white-space: nowrap;
|
||
}
|
||
|
||
.empty-state {
|
||
text-align: center; padding: 80px 20px; color: var(--gray-500);
|
||
}
|
||
.empty-state .emoji { font-size: 48px; margin-bottom: 16px; }
|
||
.empty-state h3 { font-size: 20px; color: var(--ink); margin-bottom: 8px; }
|
||
|
||
footer {
|
||
text-align: center; padding: 40px 24px;
|
||
color: var(--gray-500); font-size: 14px;
|
||
border-top: 1px solid var(--gray-100);
|
||
}
|
||
footer a { color: var(--cyan); text-decoration: none; }
|
||
|
||
@media (max-width: 640px) {
|
||
.hero { padding: 64px 0 48px; }
|
||
.hero h1 { font-size: 30px; }
|
||
.hero p { font-size: 17px; }
|
||
.search-box { flex-direction: column; gap: 8px; }
|
||
.search-box button { width: 100%; }
|
||
.violation-card { grid-template-columns: 1fr; padding: 20px; }
|
||
.violation-card .article { justify-self: start; }
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<section class="hero">
|
||
<div class="container">
|
||
<h1>📜 Нарушения законодательства РК</h1>
|
||
<p>Опишите ситуацию или введите ключевые слова — найдём соответствующие статьи КоАП, УК, ТК и НК РК.</p>
|
||
<div class="search-box">
|
||
<input type="text" id="search" placeholder="Например: драка, шум ночью, кража, без прав за рулём..." autofocus>
|
||
<button onclick="search()">Найти</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="results-section">
|
||
<div class="container">
|
||
<div class="stats-bar">
|
||
<span class="count" id="stats">Всего: 50 нарушений</span>
|
||
<div class="filters" id="filters">
|
||
<button class="filter-btn active" data-code="all" onclick="setFilter('all',this)">Все</button>
|
||
<button class="filter-btn code-koap" data-code="koap" onclick="setFilter('koap',this)">КоАП</button>
|
||
<button class="filter-btn code-uk" data-code="uk" onclick="setFilter('uk',this)">УК</button>
|
||
<button class="filter-btn code-tk" data-code="tk" onclick="setFilter('tk',this)">ТК</button>
|
||
<button class="filter-btn code-nk" data-code="nk" onclick="setFilter('nk',this)">НК</button>
|
||
</div>
|
||
</div>
|
||
<div class="results-grid" id="results"></div>
|
||
<div class="empty-state" id="empty" style="display:none">
|
||
<div class="emoji">🔍</div>
|
||
<h3>Ничего не найдено</h3>
|
||
<p>Попробуйте другие ключевые слова или измените фильтр.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<footer>
|
||
<div class="container">
|
||
Справочник носит ознакомительный характер. Точные формулировки — см. официальные тексты кодексов на <a href="https://adilet.zan.kz" target="_blank">adilet.zan.kz</a>
|
||
</div>
|
||
</footer>
|
||
|
||
<script>
|
||
const VIOLATIONS = [
|
||
{ id:1, keywords:["мелкое хулиганство","хулиган","ругался матом","нецензурная брань","приставал","оскорблял прохожих","нарушал общественный порядок","сквернословие"], desc:"Мелкое хулиганство — нецензурная брань в общественных местах, оскорбительное приставание к гражданам, нарушение общественного порядка", code:"koap", article:"ст. 434", penalty:"Штраф 20 МРП, либо административный арест до 15 суток" },
|
||
{ id:2, keywords:["тишина","шум","ночью","ночной шум","громкая музыка","ремонт ночью","крики","нарушение тишины","соседи шумят","шумят соседи"], desc:"Нарушение тишины и покоя граждан в ночное время (с 23:00 до 06:00), в выходные и праздничные дни", code:"koap", article:"ст. 437", penalty:"Штраф 10 МРП, при повторном — 20 МРП" },
|
||
{ id:3, keywords:["распитие","алкоголь","пьёт","пьют","пьяный","пьяные","общественное место","пиво на улице","водка","нетрезвый вид","пьянство","выпивка"], desc:"Распитие алкогольных напитков в общественных местах или появление в общественных местах в пьяном виде, оскорбляющем человеческое достоинство", code:"koap", article:"ст. 440", penalty:"Штраф 5 МРП, при повторном — 10 МРП, либо административный арест до 5 суток" },
|
||
{ id:4, keywords:["курение","курил","курит","сигарета","кальян","вейп","неположенное место","табак"], desc:"Курение табачных изделий, кальяна, вейпов в неположенных местах (подъезды, остановки, детские площадки, транспорт, учреждения)", code:"koap", article:"ст. 441", penalty:"Штраф 3 МРП" },
|
||
{ id:5, keywords:["скорость","превышение","гонка","быстрая езда","лихач","превысил скорость"], desc:"Превышение установленной скорости движения транспортного средства", code:"koap", article:"ст. 592", penalty:"Штраф от 10 до 40 МРП, в зависимости от величины превышения" },
|
||
{ id:6, keywords:["красный свет","проезд на красный","светофор","проехал на запрещающий","на красный"], desc:"Проезд на запрещающий сигнал светофора или жест регулировщика", code:"koap", article:"ст. 599", penalty:"Штраф 10 МРП" },
|
||
{ id:7, keywords:["без прав","нет прав","права","лишён прав","не имел права управления","водитель без прав","управление без прав"], desc:"Управление транспортным средством лицом, не имеющим права управления, или лишённым такого права", code:"koap", article:"ст. 612", penalty:"Штраф 30 МРП, при повторном — 70 МРП, либо административный арест до 15 суток" },
|
||
{ id:8, keywords:["пьяный за рулём","нетрезвый водитель","алкоголь за рулём","выпил и сел за руль","управление в нетрезвом","алкогольное опьянение за рулём","пьяная езда"], desc:"Управление транспортным средством в состоянии алкогольного, наркотического или токсикоманического опьянения", code:"koap", article:"ст. 608", penalty:"Лишение прав на 3 года, административный арест до 15 суток. При повторном — уголовная ответственность по ст. 346 УК" },
|
||
{ id:9, keywords:["неповиновение","полиция","полицейский","не подчинился","сопротивление полиции","не выполнил требование","законное требование"], desc:"Неповиновение законному требованию сотрудника правоохранительного органа", code:"koap", article:"ст. 667", penalty:"Штраф 10 МРП, либо административный арест до 10 суток" },
|
||
{ id:10, keywords:["мелкое хищение","украл","воровство","магазин","супермаркет","шоплифтинг","кража в магазине","стянул","мелкая кража","хищение"], desc:"Мелкое хищение чужого имущества на сумму до 10 МРП", code:"koap", article:"ст. 187", penalty:"Штраф до 25 МРП, либо административный арест до 15 суток. Свыше 10 МРП — уголовная ответственность по ст. 188 УК" },
|
||
{ id:11, keywords:["без билета","заяц","безбилетный проезд","не оплатил проезд","проезд без билета","автобус без билета","контролёр"], desc:"Безбилетный проезд в общественном транспорте", code:"koap", article:"ст. 622", penalty:"Штраф 0,5 МРП" },
|
||
{ id:12, keywords:["благоустройство","мусор","грязь","урна","выбросил мусор","мусорил","загрязнение","загрязнил","не убрал"], desc:"Нарушение правил благоустройства, загрязнение общественных мест, выброс мусора вне установленных мест", code:"koap", article:"ст. 505", penalty:"Штраф 10 МРП" },
|
||
{ id:13, keywords:["пожарная безопасность","пожар","не потушил костёр","костёр","развёл огонь","поджёг траву","сжигание мусора"], desc:"Нарушение правил пожарной безопасности, разведение костров в неположенных местах", code:"koap", article:"ст. 410", penalty:"Штраф 5-10 МРП" },
|
||
{ id:14, keywords:["санитарные нормы","антисанитария","грязь в заведении","кафе грязное","ресторан нарушение","санпин","санитария","пищевое отравление"], desc:"Нарушение санитарно-эпидемиологических норм и правил гигиены", code:"koap", article:"ст. 425", penalty:"Штраф до 200 МРП для юрлиц, до 30 МРП для физлиц" },
|
||
{ id:15, keywords:["незаконная торговля","торговля без регистрации","стихийная торговля","без лицензии","без патента","уличная торговля","базар без разрешения"], desc:"Незаконная предпринимательская деятельность, торговля без регистрации и разрешительных документов", code:"koap", article:"ст. 463", penalty:"Штраф 15-50 МРП" },
|
||
{ id:16, keywords:["обман потребителя","обвес","обсчёт","недолив","недовес","обманули в магазине","завысили цену","чек не тот","обсчитали"], desc:"Обман потребителей — обвес, обсчёт, введение в заблуждение о потребительских свойствах товара", code:"koap", article:"ст. 190", penalty:"Штраф 10-50 МРП" },
|
||
{ id:17, keywords:["оскорбление","оскорбил","унижение чести","ущемил достоинство","обозвал","обзывался","хамство","личное оскорбление"], desc:"Оскорбление — унижение чести и достоинства другого лица, выраженное в неприличной форме", code:"koap", article:"ст. 131", penalty:"Штраф 20 МРП" },
|
||
{ id:18, keywords:["клевета","клевещет","распускает слухи","ложные сведения","порочащие сведения","очернил","ложь","напраслина","поклёп"], desc:"Клевета — распространение заведомо ложных сведений, порочащих честь и достоинство другого лица", code:"uk", article:"ст. 130", penalty:"Штраф до 500 МРП, исправительные работы, либо ограничение свободы до 1 года" },
|
||
{ id:19, keywords:["побои","избил","ударил","драка","избиение","пощёчина","телесные повреждения","синяки","рукоприкладство","нападение"], desc:"Побои — нанесение побоев, не повлёкших причинения лёгкого вреда здоровью, или совершение иных насильственных действий, причинивших физическую боль", code:"koap", article:"ст. 73-1", penalty:"Штраф 10 МРП, либо административный арест до 10 суток" },
|
||
{ id:20, keywords:["жилище","квартирный вопрос","соседи","затопил","затопили","шум в квартире","проживание без регистрации","незаконная перепланировка","жилищные споры"], desc:"Нарушение правил пользования жилыми помещениями, самовольная перепланировка, нарушение прав соседей", code:"koap", article:"ст. 506", penalty:"Штраф 10-50 МРП" },
|
||
{ id:21, keywords:["кража","украл","вор","воровство","похитил","обокрал","грабёж","разбой","хищение","тайное хищение","карманник"], desc:"Кража — тайное хищение чужого имущества", code:"uk", article:"ст. 188", penalty:"Штраф до 2000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 12 лет (в зависимости от размера и обстоятельств)" },
|
||
{ id:22, keywords:["грабёж","грабитель","ограбление","отобрал","отнял","вырвал сумку","сорвал цепочку","открытое хищение","уличное ограбление"], desc:"Грабёж — открытое хищение чужого имущества", code:"uk", article:"ст. 191", penalty:"Штраф до 3000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 12 лет" },
|
||
{ id:23, keywords:["разбой","нападение","напал","ограбление с насилием","разбойное нападение","угрожал ножом","вооружённое нападение"], desc:"Разбой — нападение с целью хищения чужого имущества, сопряжённое с насилием либо угрозой применения насилия", code:"uk", article:"ст. 192", penalty:"Лишение свободы от 3 до 15 лет с конфискацией имущества" },
|
||
{ id:24, keywords:["мошенничество","мошенник","обманул","обман","афера","аферист","лохотрон","развод","финансовая пирамида","выманил деньги","кинул"], desc:"Мошенничество — хищение чужого имущества или приобретение права на чужое имущество путём обмана или злоупотребления доверием", code:"uk", article:"ст. 190", penalty:"Штраф до 4000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 10 лет" },
|
||
{ id:25, keywords:["уголовное хулиганство","хулиган","особо дерзкое","групповое хулиганство","хулиганство с оружием","злостное хулиганство"], desc:"Хулиганство — особо дерзкое нарушение общественного порядка, сопровождающееся применением насилия, угрозой его применения, уничтожением или повреждением имущества", code:"uk", article:"ст. 293", penalty:"Штраф до 2000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 7 лет" },
|
||
{ id:26, keywords:["убийство","убил","умертвил","лишил жизни","смерть","убийца","смертельный исход"], desc:"Убийство — противоправное умышленное причинение смерти другому человеку", code:"uk", article:"ст. 99", penalty:"Лишение свободы от 6 до 20 лет, либо пожизненное лишение свободы" },
|
||
{ id:27, keywords:["вред здоровью","тяжкий вред","избил до больницы","покалечил","сломал руку","сломал ногу","перелом","инвалидность","тяжкие телесные"], desc:"Умышленное причинение тяжкого вреда здоровью — опасного для жизни, или повлёкшего потерю зрения, речи, слуха, органа, или заболевание наркоманией/токсикоманией", code:"uk", article:"ст. 106", penalty:"Ограничение свободы, либо лишение свободы от 3 до 12 лет" },
|
||
{ id:28, keywords:["изнасилование","насилие","сексуальное насилие","надругательство","насильственные действия сексуального характера"], desc:"Изнасилование — половое сношение с применением насилия, угрозы или с использованием беспомощного состояния потерпевшего", code:"uk", article:"ст. 120", penalty:"Лишение свободы от 5 до 20 лет, либо пожизненно" },
|
||
{ id:29, keywords:["вымогательство","вымогает","шантаж","рэкет","требует деньги","угрожает","крыша","дань"], desc:"Вымогательство — требование передачи чужого имущества или права на имущество под угрозой применения насилия, уничтожения имущества или распространения позорящих сведений", code:"uk", article:"ст. 194", penalty:"Ограничение свободы, либо лишение свободы до 15 лет с конфискацией" },
|
||
{ id:30, keywords:["присвоение","растрата","присвоил","растратил","казнокрадство","растрата бюджета","хищение на работе","бухгалтер украл","менеджер присвоил"], desc:"Присвоение или растрата — хищение чужого имущества, вверенного виновному", code:"uk", article:"ст. 189", penalty:"Штраф до 3000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 12 лет" },
|
||
{ id:31, keywords:["взятка","взяткодатель","дал взятку","подкуп","коррупция","дал на лапу","откат","благодарность должностному лицу"], desc:"Дача взятки — незаконная передача должностному лицу денег, ценных бумаг, имущества, оказание услуг за действия/бездействие в пользу взяткодателя", code:"uk", article:"ст. 367", penalty:"Штраф до 60-кратной суммы взятки, исправительные работы, либо лишение свободы до 15 лет с конфискацией" },
|
||
{ id:32, keywords:["взятка","получение взятки","взяточник","чиновник взял","коррупционер","получил взятку","мздоимство","продажный чиновник"], desc:"Получение взятки — незаконное получение должностным лицом денег, ценных бумаг, имущества, услуг за действия/бездействие в пользу взяткодателя", code:"uk", article:"ст. 366", penalty:"Штраф до 80-кратной суммы взятки, либо лишение свободы до 15 лет с конфискацией и пожизненным лишением права занимать должности" },
|
||
{ id:33, keywords:["должностные полномочия","превышение полномочий","злоупотребил","чиновник нарушил","власть","административный ресурс","превысил полномочия"], desc:"Злоупотребление должностными полномочиями — использование должностным лицом своих полномочий вопреки интересам службы", code:"uk", article:"ст. 361", penalty:"Штраф до 5000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 8 лет" },
|
||
{ id:34, keywords:["угон","угнал","автоугон","машину угнали","угнали авто","угнал машину","неправомерное завладение авто"], desc:"Неправомерное завладение автомобилем или иным транспортным средством без цели хищения (угон)", code:"uk", article:"ст. 200", penalty:"Штраф до 500 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 12 лет" },
|
||
{ id:35, keywords:["наркотики","наркота","хранение","марихуана","трава","героин","мефедрон","синтетика","закладка","наркоман","запрещённые вещества","психотропы"], desc:"Незаконное приобретение, хранение, перевозка, изготовление, переработка наркотических средств без цели сбыта", code:"uk", article:"ст. 296", penalty:"Штраф до 5000 МРП, исправительные работы, ограничение свободы, либо лишение свободы до 15 лет" },
|
||
{ id:36, keywords:["наркотики","сбыт","продажа наркотиков","закладчик","дилер","распространение","торговля наркотиками","наркоторговля","наркоторговец"], desc:"Незаконный сбыт, пересылка наркотических средств и психотропных веществ", code:"uk", article:"ст. 297", penalty:"Лишение свободы от 5 до 20 лет, либо пожизненно с конфискацией" },
|
||
{ id:37, keywords:["трудовой договор","без договора","не оформлен","нелегальный работник","теневая занятость","трудоустройство без договора","без трудовой","работает без оформления"], desc:"Допуск работника к работе без заключения трудового договора", code:"tk", article:"ст. 90 КоАП", penalty:"Штраф 30-100 МРП" },
|
||
{ id:38, keywords:["зарплата","не платит зарплату","задержка зарплаты","не выплатил","долг по зарплате","недоплатил","чёрная зарплата","зарплата в конверте"], desc:"Невыплата заработной платы в полном объёме и в установленные сроки", code:"tk", article:"ст. 113 ТК РК", penalty:"Штраф до 200 МРП для работодателя, пеня за каждый день просрочки" },
|
||
{ id:39, keywords:["увольнение","незаконно уволили","сократили","уволен без причины","восстановление на работе","трудовой спор","нарушение при увольнении"], desc:"Незаконное увольнение работника или нарушение процедуры расторжения трудового договора", code:"tk", article:"ст. 52, 56 ТК РК", penalty:"Восстановление на работе, компенсация за вынужденный прогул, возмещение морального вреда" },
|
||
{ id:40, keywords:["отпуск","не дали отпуск","без отпуска","отказ в отпуске","не оплачен отпуск","отпускные","отгул","работа без отпуска"], desc:"Непредоставление ежегодного оплачиваемого трудового отпуска в течение двух лет подряд", code:"tk", article:"ст. 87, 92 ТК РК", penalty:"Штраф до 100 МРП для работодателя" },
|
||
{ id:41, keywords:["сверхурочные","переработка","работа сверх нормы","ненормированный график","без доплаты за сверхурочные","переработки без оплаты"], desc:"Привлечение к сверхурочной работе без согласия работника либо без соответствующей оплаты", code:"tk", article:"ст. 77, 78 ТК РК", penalty:"Штраф до 100 МРП, предписание устранить нарушение с доплатой" },
|
||
{ id:42, keywords:["налоги","не платит налоги","уклонение от налогов","сокрытие доходов","налоговая","не сдал декларацию","налоговая проверка","недоимка"], desc:"Уклонение от уплаты налогов и других обязательных платежей в бюджет", code:"nk", article:"ст. 275 КоАП", penalty:"Штраф от 20% до 50% от неуплаченной суммы налога" },
|
||
{ id:43, keywords:["налоговая декларация","не подал декларацию","просрочил декларацию","всеобщее декларирование","декларация о доходах","фно 270","не сдал отчёт"], desc:"Непредставление налоговой отчётности в установленный срок", code:"nk", article:"ст. 272 КоАП", penalty:"Штраф 30-70 МРП, при повторном — до 110 МРП" },
|
||
{ id:44, keywords:["чек","не выбил чек","касса","контрольно-кассовая машина","ккм","без чека","онлайн-ккм","не применил ккм"], desc:"Неприменение контрольно-кассовой машины (ККМ) при осуществлении денежных расчётов", code:"nk", article:"ст. 284 КоАП", penalty:"Штраф 25-50 МРП, при повторном — до 100 МРП" },
|
||
{ id:45, keywords:["семья","домашнее насилие","бытовое насилие","избил жену","избил мужа","семейный скандал","агрессор","побои в семье","бьёт жену","домашний тиран"], desc:"Противоправные действия в сфере семейно-бытовых отношений — насилие, жестокое обращение в семье", code:"koap", article:"ст. 73, 73-1, 73-2", penalty:"Штраф, административный арест до 30 суток, защитное предписание. При систематичности — уголовная ответственность" },
|
||
{ id:46, keywords:["ребёнок","несовершеннолетний","детский труд","незаконная работа ребёнка","эксплуатация детей","детский сад без лицензии","оставил ребёнка без присмотра"], desc:"Нарушение прав и законных интересов несовершеннолетних, вовлечение в совершение административных правонарушений", code:"koap", article:"ст. 127, 442", penalty:"Штраф до 200 МРП, лишение родительских прав" },
|
||
{ id:47, keywords:["тоналды көлік","авто без номеров","скрытые номера","тонировка","затемнённые стёкла","тонировка не по госту"], desc:"Управление транспортным средством со стёклами, не соответствующими нормам светопропускания (незаконная тонировка)", code:"koap", article:"ст. 590 ч.5", penalty:"Штраф 10 МРП, предписание устранить в течение суток" },
|
||
{ id:48, keywords:["ремни безопасности","не пристёгнут","езда без ремня","не пристегнулся","пассажир без ремня","без ремня"], desc:"Управление транспортным средством либо перевозка пассажиров без использования ремней безопасности", code:"koap", article:"ст. 593 ч.1", penalty:"Штраф 3 МРП" },
|
||
{ id:49, keywords:["телефон за рулём","мобильный","разговор по телефону","смс за рулём","телефон без гарнитуры","писал за рулём"], desc:"Использование телефона во время управления транспортным средством без устройства hands-free", code:"koap", article:"ст. 591", penalty:"Штраф 5 МРП" },
|
||
{ id:50, keywords:["лес","незаконная вырубка","вырубил дерево","ёлка","сосна","браконьерство","незаконная охота","рыболовство без лицензии","незаконная рыбалка"], desc:"Незаконная порубка деревьев и кустарников, незаконная охота, рыболовство без разрешения", code:"koap", article:"ст. 381, 382, 383", penalty:"Штраф до 500 МРП с конфискацией орудий, возмещение ущерба" }
|
||
];
|
||
|
||
let currentQuery = "";
|
||
let currentCode = "all";
|
||
|
||
function codeLabel(c) {
|
||
const map = { koap: "КоАП", uk: "УК", tk: "ТК", nk: "НК" };
|
||
return map[c] || c.toUpperCase();
|
||
}
|
||
|
||
function highlight(text, query) {
|
||
if (!query) return text;
|
||
const words = query.toLowerCase().split(/\s+/).filter(w => w.length > 1);
|
||
let result = text;
|
||
words.forEach(w => {
|
||
const re = new RegExp(`(${w.replace(/[.*+?^${}()|[\]\\]/g,'\\$&')})`, 'gi');
|
||
result = result.replace(re, '<mark>$1</mark>');
|
||
});
|
||
return result;
|
||
}
|
||
|
||
function matchesQuery(v, query) {
|
||
if (!query.trim()) return true;
|
||
const q = query.toLowerCase();
|
||
const words = q.split(/\s+/).filter(w => w.length > 0);
|
||
return words.some(w =>
|
||
v.keywords.some(k => k.includes(w)) ||
|
||
v.desc.toLowerCase().includes(w) ||
|
||
v.article.toLowerCase().includes(w)
|
||
);
|
||
}
|
||
|
||
function render(results, query) {
|
||
const grid = document.getElementById("results");
|
||
const empty = document.getElementById("empty");
|
||
const stats = document.getElementById("stats");
|
||
|
||
stats.textContent = results.length === VIOLATIONS.length
|
||
? `Всего: ${VIOLATIONS.length} нарушений`
|
||
: `Найдено: ${results.length} из ${VIOLATIONS.length}`;
|
||
|
||
if (results.length === 0) {
|
||
grid.innerHTML = "";
|
||
empty.style.display = "";
|
||
return;
|
||
}
|
||
empty.style.display = "none";
|
||
grid.innerHTML = results.map(v => `
|
||
<div class="violation-card">
|
||
<div class="info">
|
||
<h3>${highlight(v.desc, query)}</h3>
|
||
</div>
|
||
<div class="article ${v.code}">
|
||
<span class="code-label">${codeLabel(v.code)}</span> ${v.article}
|
||
</div>
|
||
<div class="penalty">
|
||
<span class="penalty-label">Наказание:</span>
|
||
<span>${v.penalty}</span>
|
||
</div>
|
||
</div>
|
||
`).join("");
|
||
}
|
||
|
||
function filterAndSearch() {
|
||
let results = VIOLATIONS;
|
||
if (currentCode !== "all") {
|
||
results = results.filter(v => v.code === currentCode);
|
||
}
|
||
if (currentQuery.trim()) {
|
||
results = results.filter(v => matchesQuery(v, currentQuery));
|
||
}
|
||
render(results, currentQuery);
|
||
}
|
||
|
||
function search() {
|
||
currentQuery = document.getElementById("search").value;
|
||
filterAndSearch();
|
||
}
|
||
|
||
function setFilter(code, btn) {
|
||
currentCode = code;
|
||
document.querySelectorAll(".filter-btn").forEach(b => b.classList.remove("active"));
|
||
btn.classList.add("active");
|
||
filterAndSearch();
|
||
}
|
||
|
||
document.getElementById("search").addEventListener("input", search);
|
||
document.getElementById("search").addEventListener("keydown", function(e) {
|
||
if (e.key === "Enter") search();
|
||
});
|
||
|
||
filterAndSearch();
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|