value); // получаем кол-во сотрудников
let v_d = parseFloat(document.getElementById('activity').value); // вид деятельности
let s_d = parseFloat(document.getElementById('agreement').value); // сложный вид договора
// Измеряем сотрудников
if (k_s <= 2) {
k_s = 0;
} else {
k_s = k_s - 2;
};
// Cчитаем значение
let itogcalc = (p_l + 1500 * k_s);
// Обновляем детализацию цены
document.getElementById('base-price').textContent = p_l.toLocaleString('ru-RU') + ' руб.';
document.getElementById('employees-price').textContent = (1500 * k_s).toLocaleString('ru-RU') + ' руб.';
document.getElementById('complexity-price').textContent = (v_d * s_d).toFixed(1);
// Анимация числа
animateValue('summ', parseInt(document.getElementById('summ').textContent.replace(/\s+/g, '').replace('руб.', '')), itogcalc, 700);
};
// Функция анимации чисел
function animateValue(id, start, end, duration) {
let obj = document.getElementById(id);
let startTimestamp = null;
const step = (timestamp) => {
if (!startTimestamp) startTimestamp = timestamp;
const progress = Math.min((timestamp - startTimestamp) / duration, 1);
const value = Math.floor(progress * (end - start) + start);
obj.textContent = value.toLocaleString('ru-RU') + ' руб.';
if (progress < 1) {
window.requestAnimationFrame(step);
}
};
window.requestAnimationFrame(step);
}
// При клике на нашу кнопку
document.querySelector('.btn').addEventListener('click', function(e) {
e.preventDefault();
alert('Заявка отправлена! Стоимость: ' + document.getElementById('summ').textContent);
});
// Обработчики событий
let calcElements = document.querySelectorAll('.calc');
for (let i = 0; i < calcElements.length; i++) {
calcElements[i].addEventListener('input', function() {
updateRangeValues();
setTimeout(function() { getsumm(); }, 200);
});
}
// Инициализация расчета
getsumm();
});