Чт сен 26, 2013 16:45:44
javascript:(function()
{
function compare(a,b)
{
if (a.mark < b.mark)
return 1;
if (a.mark > b.mark)
return -1;
return 0;
}
function article(row)
{
this.row = row;
var votes = row.lastElementChild.innerText;
var re = new RegExp('[0-9]+.?[0-9]?', 'g');
var total = re.exec(votes);
var totalVotes = re.exec(votes);
this.mark = total/totalVotes
};
function category(row)
{
this.row=row;
this.articles = new Array();
this.AddArticle = function(row)
{
this.articles[this.articles.length] = new article(row);
};
}
function categories()
{
this.categories = new Array();
this.AddCategory = function(row)
{
this.categories[this.categories.length] = new category(row);
};
this.AddArticleToLastCategory = function(row)
{
this.categories[this.categories.length - 1].AddArticle(row);
};
}
if(window.location.href !== 'http://radiokot.ru/konkurs/')
{
alert('Вы не на странице конкурса!');
return;
}
var div = document.getElementById("hypercontext");
var table = div.firstElementChild.children[3];
var cats = new categories();
for (var i = 0, row; row = table.rows[i]; i++)
{
if(row.firstElementChild.colSpan == 2)
{
cats.AddCategory(row);
}
else
{
cats.AddArticleToLastCategory(row);
}
}
var newTable = document.createElement("table");
newTable.className = "Tbl";
newTable.width = "65%";
newTable.border = "1";
newTable.align = "center";
var newTableBody = document.createElement("tbody");
newTable.appendChild(newTableBody);
for (var i = 0, cat; cat = cats.categories[i]; i++)
{
var newCatRow = cat.row.cloneNode(true);
newCatRow.firstElementChild.colSpan = 3;
newTableBody.appendChild(newCatRow);
cat.articles.sort(compare);
var counter = document.createElement("td");
var first = cat.articles[0].row.cloneNode(true);
counter.innerText = 1;
first.insertBefore(counter.cloneNode(true),first.firstElementChild);
newTableBody.appendChild(first);
var second = cat.articles[1].row.cloneNode(true);
counter.innerText = 2;
second.insertBefore(counter.cloneNode(true),second.firstElementChild);
newTableBody.appendChild(second);
var third = cat.articles[2].row.cloneNode(true);
counter.innerText = 3;
third.insertBefore(counter.cloneNode(true),third.firstElementChild);
newTableBody.appendChild(third);
}
var par = document.createElement("p");
par.align = "center";
var txt = document.createElement("strong");
txt.innerText = "Таблица лидеров";
txt.style.fontSize = "20";
par.appendChild(txt);
div.appendChild(par);
div.appendChild(newTable);
})();
javascript:(function()
{
function compare(a,b)
{
if (a.mark < b.mark)
return 1;
if (a.mark > b.mark)
return -1;
return 0;
}
function article(row)
{
this.row = row;
var votes = row.lastElementChild.innerText;
var re = new RegExp('[0-9]+.?[0-9]?', 'g');
var total = re.exec(votes);
var totalVotes = re.exec(votes);
this.mark = total/totalVotes
};
function category(row)
{
this.row=row;
this.articles = new Array();
this.AddArticle = function(row)
{
this.articles[this.articles.length] = new article(row);
};
}
function categories()
{
this.categories = new Array();
this.AddCategory = function(row)
{
this.categories[this.categories.length] = new category(row);
};
this.AddArticleToLastCategory = function(row)
{
this.categories[this.categories.length - 1].AddArticle(row);
};
}
if(window.location.href !== 'http://radiokot.ru/konkurs/')
{
alert('Вы не на странице конкурса!');
return;
}
var div = document.getElementById("hypercontext");
var table = div.firstElementChild.children[3];
var cats = new categories();
for (var i = 0, row; row = table.rows[i]; i++)
{
if(row.firstElementChild.colSpan == 2)
{
row.firstElementChild.colSpan = 3;
cats.AddCategory(row);
}
else
{
cats.AddArticleToLastCategory(row);
}
}
var newTable = document.createElement("table");
newTable.className = "Tbl";
newTable.width = "65%";
newTable.border = "1";
newTable.align = "center";
var newTableBody = document.createElement("tbody");
newTable.appendChild(newTableBody);
for (var i = 0, cat; cat = cats.categories[i]; i++)
{
newTableBody.appendChild(cat.row.cloneNode(true));
cat.articles.sort(compare);
for(var j = 0, art; art = cat.articles[j]; j++)
{
var counter = document.createElement("td");
counter.innerText = j + 1;
/*Do it without copy to show main table with places*/
art.row.insertBefore(counter,art.row.firstElementChild);
newTableBody.appendChild(art.row.cloneNode(true));
}
}
var par = document.createElement("p");
par.align = "center";
var txt = document.createElement("strong");
txt.innerText = "Таблица лидеров";
txt.style.fontSize = "20";
par.appendChild(txt);
div.appendChild(par);
div.appendChild(newTable);
})();
Пт сен 27, 2013 21:38:50
Сб сен 28, 2013 12:26:37