Вот что у меня получилось, правда только для одного участника. сейчас буду доделывать для много участников
var sumparticipant=6; //количество участников
var sumrefferee=5; //количество судей
var reffereeGet = document.getElementsByName('refferee');
var refferee=new Array();
// Присваеваем все input в массив refferee[j][i]
metka1:
for (var j=0; j<sumparticipant; j++)
{
refferee[j]=new Array();
for (var i=0; i<sumrefferee; i++)
{
refferee[j][i]=reffereeGet[i].value;
if (typeof refferee[j][i] == 'undefined' || refferee[j][i] == null || refferee[j][i] == 0)
{
var arb=i+1;
alert ('Судья '+arb+' не определил место'); break metka1;
}
}
}
// сортируем масив 1,2,3,4,5 и.т.д.
function compareNumeric(a, b) {
if (a > b) return 1;
if (a < b) return -1;
}
refferee[0].sort(compareNumeric);
//считаем количество повторов
var result = {};
for (var i = 0; i < sumrefferee; ++i)
{
var a = refferee[0][i];
if (result[a] != undefined)
++result[a];
else
result[a] = 1;
}
var result1 = {};
// выводим результат в масив result1[i]
for (var key in result)
{
for (var i=1; i<sumparticipant+1; i++)
{
if (i==key)
{
result1[i]=result[key];
}
}
}
// заменяем пустые значения на 0
for (var i=1; i<sumparticipant+1; i++)
{
if (typeof result1[i] == 'undefined' && result1[i] == null)
{
result1[i]=0;
}
}
// суммируем предедущее значение с настоящим 2+1
for (var i=2; i<sumparticipant+1; i++)
{
result1[i]=result1[i-1]+result1[i];
}
//выводим результаты
for (var i=1; i<sumparticipant+1; i++)
{
document.getElementsByName('r')[i-1].value=result1[i];
}
Код конечно громоздкий, но я новичек, простите если что