У меня сейчас нету желания разбираться что для чего нужно.
Давайте я вам лучше расскажу, что для чего нужно, а вы решите, куда что вставлять. Заодно и попрактикуетесь.
for(i=1;i<=30;i++){
}
Это цикл, который перебирает числа от 1-го до 30-ти.
'chs'+i
- id элементов
chs1, chs2, ..., chs30
.
document.getElementById('chs'+i).value
- это значение i-того инпута chs
если мы делаем так:
document.getElementById('chs'+i).value = 100500;
то инпуту с id = 'chs'+i присваиваивается значение 100500 (внутрь него вставляется 100500).
если делаем так:
var xxx = document.getElementById('chs'+i).value;
то переменной ххх присваиваивается значение из инпута с id = 'chs'+i (берется то, что у него внутри).
parseFloat - это преобразование текстовых данных из инпута в десятичное число.
Соответственно:
document.getElementById('chs'+i).value=parseFloat(document.getElementById('hvl'+i).value) * parseFloat(document.getElementById('chs'+i).value) / 100;
в инпут с id = 'chs'+i вставляется то, что есть в этом же инпуте, помноженное на то что в инпуте с id = 'hvl'+i и деленное на 100.
не нужна там ф-ция задержки:
var timerId = setInterval(function() {
} , 1000);
там нужно все затолкать в какую-то ф-цию и вызывать ее по клику, например.
Что бы работала сумма, замените вот это:
chas.value = sum;
вместо chas нужно поставить document.getElementById("тут ид блока в который нужно вставить сумму"):
document.getElementById("...").value = sum;
Дальше, я думаю, поймете, что делать. ))