fetch('https://rakipov.ru/web/plan-urman/document/information_about_objects.txt') .then((response) => response.arrayBuffer()) .then((data) => { data = new TextDecoder('windows-1251').decode(data); const rows = data.split("id_"); rows.shift(); const rowsO = rows.reduce((a, v) => ({ ...a, [v.slice(0, 4)]: Object.fromEntries(v.trimStart().slice(4).trim().split(/\n{2,}/im).map(str => str.split(/\n(.*)/s)))}), {}); document.querySelectorAll('#layout_x5F_master_x5F_plan g[id].region').forEach((item, index) => { let idNum = rowsO[item.id]; if (idNum) { let idCat = parseInt(idNum["- Статус:"]); if (idCat) { if (idCat == "1") { item.classList.add('category_1'); } else if (idCat == "2") { item.classList.add('category_2'); } else if (idCat == "3") { item.classList.add('category_3'); } else if (idCat == "4") { item.classList.add('category_4'); } } else { if (idNum["- Статус:"].slice(0, 1) == "З") { item.classList.add('region_booked'); } else if (idNum["- Статус:"].slice(0, 1) == "П") { item.classList.add('region_sale'); } } let idOn = idNum["- На участке"].slice(0, 1); if (idOn) { if (idOn == "Л") { item.classList.add('i_wood'); } else if (idOn == "С") { item.classList.add('i_building'); } else if (idOn == "П") { item.classList.add('i_home'); } } } }); });