romanmysin, может так?
var summ=0,//сумма
data={//айдишники полей
options:[1,8,7],//опции
radio:[9,10]//радио
input:[]//инпуты
},
selectors={
options:'#id_%id% option:selected',
radio:'input[type="radio"][name=radio_%id%]:checked',
input:'#id_%id% input'
};
percent=15,//надбавка в процентах
min_percent_value=2500;//минимальная надбавка
if($('#id_16 input').prop('checked'))
data.input.push(16);
for(var i in data){
if(!data.hasOwnProperty(i))
continue;
for(var j=0;j<data[i].length;j++){
summ+=parseFloat($(selectors[i].replace('%id%',data[i][j])).val());
};
};
var plus=summ*(percent/100);//Получаю значение надбавки
plus=plus>=min_percent_value?plus:min_percent_value;//Если надбавка меньше минимальной надбавки, то надбавка равна минимальной...
result_proc=summ+plus;
Upd. Псевдо класс «radio» разве существует?