From 4aec8bf503a4d21fcd6504e6e65569e5333d6293 Mon Sep 17 00:00:00 2001 From: Narendra_Dewasi Date: Wed, 11 Aug 2021 13:04:40 +0530 Subject: [PATCH] changed style and make background of leading score green --- index.html | 218 ++++++++++++------------- quiz.css | 133 ++++++++++----- quiz.js | 467 +++++++++++++++++++++++++++-------------------------- 3 files changed, 435 insertions(+), 383 deletions(-) diff --git a/index.html b/index.html index 631d3d2..9cb3c10 100644 --- a/index.html +++ b/index.html @@ -14,133 +14,115 @@ or in LICENSE.CC-BY-3 file. --> - + + FOSS Quiz! - - + + + +
-

FOSS Quiz!

+

FOSS Quiz!

+ +

People

+ +

What is Linus Torvalds' native language?

+

Even thought Linus Torvalds is Finnish, his native language is Swedish. +

+ +

Who according to Linus Torvalds, “really is about a thousand gnomes working in [an] under-ground caves in Swansea”?

+

It's Alan Cox.

+ +

What does M in RMS stand for?

+

RMS refers to Richard Stallman, and M stands for his middle name which is Matthew.

+ +

UFS' magic number is based on the date 1954-01-19. Who was born on that day to justify the use as a magic number for that file system?

+

Marshall Kirk McKusick was born that day.

+ +

Who is FSF Associate Member number 1?

+

Bradley M. Kuhn is the first FSF Associate Member.

+ + +

Names, logos and mascots

+ +

What was the original name Linus wanted to use for his kernel? +

+

Freax, but mirror maintainer where it has been first distributed decided that Linux is better.

+ +
+

Which operating system's mascot is a pufferfish named Puffy. +

+
Puffy
+
+

Puffy is OpenBSD's mascot.

+ +
+

Which distribution is the oldest Linux distribution still being maintained?

+
Tux smoking a pipe
+
+

The oldest still distribution still being maintained is Slackware. +

-

People

+

What are the names of two followup BSD 4.3 released which were named after popular American holiday destinations?

+

Two followup BSD 4.3 releases are Tahoe and Reno.

-

What is Linus Torvalds' native language?

-

Even thought Linus Torvalds is Finnish, his native language is - Swedish.

+
+

Who drew in 1984 BSD 4.2 mascot called Beastie and is now a chief creative officer at Pixar?

+
Beastie
+
+

Even though McKussick holds the copyright it's John Alan Lasseter who drew it.

-

Who according to Linus Torvalds, “really is about a thousand - gnomes working in [an] under-ground caves in Swansea”?

-

It's Alan Cox.

- -

What does M in RMS stand for?

-

RMS refers to Richard Stallman, and M stands for his middle - name which is Matthew.

- -

UFS' magic number is based on the date 1954-01-19. Who was - born on that day to justify the use as a magic number for that - file system?

-

Marshall Kirk McKusick was born that day.

- -

Who is FSF Associate Member number 1?

-

Bradley M. Kuhn is the first FSF Associate Member.

- - -

Names, logos and mascots

- -

What was the original name Linus wanted to use for his - kernel?

-

Freax, but mirror maintainer where it has been first - distributed decided that Linux is better.

- -
-

Which operating system's mascot is a pufferfish named - Puffy.

-
Puffy
-
-

Puffy is OpenBSD's mascot.

- -
-

Which distribution is the oldest Linux distribution still - being maintained?

-
Tux smoking a pipe
-
-

The oldest still distribution still being maintained is - Slackware.

- -

What are the names of two followup BSD 4.3 released which - were named after popular American holiday destinations?

-

Two followup BSD 4.3 releases are Tahoe and Reno.

- -
-

Who drew in 1984 BSD 4.2 mascot called Beastie and is now - a chief creative officer at Pixar?

-
Beastie
-
-

Even though McKussick holds the copyright it's John Alan - Lasseter who drew it.

- - -

Licenses

- -

Which licenses third version was released on 29 of June 2007?

-

GNU General Public License.

- -

What is the license Android kernel is released under?

-

Even though a lot of Android uses more permissive license, - the kernel is based on Linux and thus distributed under the - terms of the GNU General Public License version 2.

- -

Name license which has a politically incorrect name and is - one of the shortest free software licenses whose legal text - consists of only one sentence.

-

Do What The Fuck you want to Public License.

- -

Which international organisation, whose primary focus is - advance in physics, has released a license used by most projects - in the Open Hardware Repository?

-

CERN.

- -

What are the differences between plain GNU General Public - License and Affero General Public License?

-

AGPL includes a clause requiring source code distribution of - software run as a service (eg. web applications).

- - -

Misc

- -

When did the initial release of Linux happen? Give month and - year.

-

The initial Linux release happened on September 1991.

- -

Which year Linus Torvalds was born.

-

Linus Torvalds was born on the year of Moon landing, - 1969.

- -

What is the name of a 16-bit microcomputer which was the - first architecture BSD system run on.

-

PDP-11.

- -
-

What's the Linux-based machine which competed in 2011 on - Jeopardy against Brad Rutter and Ken Jennings winning the - first prize of $1 million.

-
Watson's avatar
-
-

It's IBM's Watson.

- -

Lack of access to the source code of the software controlling - which printer convinced Richard Stallman of importance of - people's freedom to study, modify and use software?

-

Xerox 9700.

+ +

Licenses

+ +

Which licenses third version was released on 29 of June 2007?

+

GNU General Public License.

+ +

What is the license Android kernel is released under?

+

Even though a lot of Android uses more permissive license, the kernel is based on Linux and thus distributed under the terms of the GNU General Public License version 2.

+ +

Name license which has a politically incorrect name and is one of the shortest free software licenses whose legal text consists of only one sentence.

+

Do What The Fuck you want to Public License.

+ +

Which international organisation, whose primary focus is advance in physics, has released a license used by most projects in the Open Hardware Repository?

+

CERN.

+ +

What are the differences between plain GNU General Public License and Affero General Public License?

+

AGPL includes a clause requiring source code distribution of software run as a service (eg. web applications).

+ + +

Misc

+ +

When did the initial release of Linux happen? Give month and year. +

+

The initial Linux release happened on September 1991.

+ +

Which year Linus Torvalds was born.

+

Linus Torvalds was born on the year of Moon landing, 1969. +

+ +

What is the name of a 16-bit microcomputer which was the first architecture BSD system run on.

+

PDP-11.

+ +
+

What's the Linux-based machine which competed in 2011 on Jeopardy against Brad Rutter and Ken Jennings winning the first prize of $1 million.

+
Watson's avatar
+
+

It's IBM's Watson.

+ +

Lack of access to the source code of the software controlling which printer convinced Richard Stallman of importance of people's freedom to study, modify and use software?

+

Xerox 9700.

- - + + + \ No newline at end of file diff --git a/quiz.css b/quiz.css index f8daedf..f62b7f4 100644 --- a/quiz.css +++ b/quiz.css @@ -13,28 +13,37 @@ * or in LICENSE.CC-BY-3 file. */ + +/* importing google fonts */ + +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@300&family=Quicksand:wght@300&display=swap'); * { padding: 0; margin: 0; } body { - font-family: Helvetica, sans; + font-family: 'Noto Sans TC', sans-serif; font-size: 14pt; background: #999; } table { position: absolute; - top: 0; bottom: 0; - left: 0; right: 0; + top: 0; + bottom: 0; + left: 0; + right: 0; width: 100%; height: 100%; table-layout: fixed; padding: 1em; } -table, tr, td, th { +table, +tr, +td, +th { vertical-align: middle; text-align: center; font-size: 1em; @@ -43,9 +52,13 @@ table, tr, td, th { border-spacing: 0.2em; } + +/* channging style for header of table */ + thead tr.title { height: 3em; } + thead tr.categories { height: 5em; } @@ -55,10 +68,12 @@ h1 { } .categories th { - border: 0.2em solid #000; - background: #3F51B5; - color: #FF0; + /* border: 0.2em solid #000; */ + background: #999; + color: rgba(24, 24, 19, 0.733); font-weight: bold; + /* border-radius: 3px; */ + box-shadow: inset 4px 4px 10px rgb(179, 174, 174), inset -2px -2px 10px rgb(119, 115, 115); } .btn_select { @@ -71,6 +86,7 @@ h1 { font-size: 14px; padding: 10px 20px 10px 20px; text-decoration: none; + cursor: pointer; } .btn_select:hover { @@ -90,58 +106,75 @@ h1 { } tbody td { - border: 0.2em solid #888; - background: #889; - color: #999; + background: #999; + color: rgba(43, 40, 40, 0.37); font-weight: bold; + box-shadow: inset 2px 2px 15px rgb(51, 47, 47), inset -2px -2px 10px rgb(153, 151, 151); + border-radius: 3px; } + tbody td.active { - border-color: #000; + border: 0.2em solid #888; + border-color: rgb(59, 53, 53); background: #69F; - color: #FF0; + color: rgb(255, 255, 255); cursor: pointer; + box-shadow: none; + border-radius: 0; } + tbody td.active:hover { color: #000; background: #4dd2ff; + transform: scale(1.1); + transition: all 0.1s; } -div.q > p { +div.q>p { text-align: center; } -div.a > p { + +div.a>p { text-align: center; } tfoot { height: 2em; } -tfoot div + div { + +tfoot div+div { font-weight: bold; + font-size: 2em; } - #m { display: none; } + #m.show { display: table; position: absolute; - top: 0; bottom: 0; - left: 0; right: 0; + top: 0; + bottom: 0; + left: 0; + right: 0; width: 100%; height: 100%; background: rgba(128, 128, 128, 0.75); vertical-align: middle; } -#m > div { + +#m>div { display: table-cell; vertical-align: middle; padding: 2em; } -#m > div > div { + +#m>div>div { background: #FFF; - border: 0.1em solid #000; + border: 0.1em solid #3c95ef; + border-radius: 5px; + box-shadow: 0 0 10px #3cb0fd; } #m ul { @@ -149,7 +182,8 @@ tfoot div + div { list-style: none; text-align: center; } -#m ul + ul { + +#m ul+ul { display: none; } @@ -157,51 +191,75 @@ tfoot div + div { display: inline-block; margin: 1em 2em; } -#m a, #m a:visited { + +#m a, +#m a:visited { text-align: center; text-decoration: none; color: #009; - cursor: default; + cursor: pointer; } -#m a:active, #m a:focus, #m a:hover { + +#m a:active, +#m a:focus, +#m a:hover { color: #00F; } #x { float: right; - font-size: 0.5em; + font-size: 1em; font-weight: bold; padding: 0.1em 0.5em; border-bottom: 0.1em solid #000; border-left: 0.1em solid #000; } -#x:hover, #x:focus { + +#x:hover, +#x:focus { background: #F00; } #m div { overflow: auto; } + #m p { margin: 1em 2em; line-height: 1.5em; } + .q div { text-align: center; } + .q img { height: 5em } + p { text-align: justify; } -#m .a { visibility: hidden; } -#m.showAnswer .a { visibility: visible; } -#m.showAnswer ul { display: none; } -#m.showAnswer ul + ul { display: block; } -#m.showAnswer #x { visibility: hidden; } +#m .a { + visibility: hidden; +} +#m.showAnswer .a { + visibility: visible; +} + +#m.showAnswer ul { + display: none; +} + +#m.showAnswer ul+ul { + display: block; +} + +#m.showAnswer #x { + visibility: hidden; +} @media print { body { @@ -212,7 +270,6 @@ p { #questions { display: block !important; } - h2 { page-break-before: always; } @@ -222,7 +279,7 @@ p { padding-top: 0.5em; margin-top: 2em; } - h2 + .q { + h2+.q { margin-top: 1em; } .a { @@ -232,8 +289,10 @@ p { margin-bottom: 2em; font-style: italic; } - - table, #m, h1, img { + table, + #m, + h1, + img { display: none; } -} +} \ No newline at end of file diff --git a/quiz.js b/quiz.js index b3d5b6b..f1e4503 100644 --- a/quiz.js +++ b/quiz.js @@ -19,260 +19,271 @@ */ document.addEventListener('DOMContentLoaded', function() { - /* Must be two. */ - var teams = ['Team 1', 'Team 2']; - - var strTie = 'Tie'; - var strClose = 'Close'; - - /***********************************************/ - /* No need to configure anything further down. */ - /***********************************************/ - - var NS = 'http://www.w3.org/1999/xhtml'; - var D = document; - - /* Get categories and questions from DOM. */ - var categories = (function() { - var ret = [], questions = null, question = null; - var el = D.getElementById('questions').firstChild; - for (; el !== null; el = el.nextSibling) { - if (el.nodeType !== 1) { - continue; - } - - if (el.nodeName.toLowerCase() === 'h2') { - questions = []; - question = null; - ret.push({ - title: el.textContent, - questions: questions, - }); - continue; - } - - if (questions === null) { - continue; - } - - if (el.nodeName.toLowerCase() === 'p') { - var e = D.createElementNS(NS, 'div'); - el.parentNode.replaceChild(e, el); - e.appendChild(el); - el = e; - } else if (el.nodeName.toLowerCase() !== 'div') { - continue; - } - - if (question === null) { - el.className = 'q'; - question = el; - } else { - el.className = 'a'; - questions.push([question, el]); - question = null; - } - } - return ret; - })(); + /* Must be two. */ + var teams = ['Team 1', 'Team 2']; + + var strTie = 'Tie'; + var strClose = 'Close'; + + /***********************************************/ + /* No need to configure anything further down. */ + /***********************************************/ + + var NS = 'http://www.w3.org/1999/xhtml'; + var D = document; + + /* Get categories and questions from DOM. */ + var categories = (function() { + var ret = [], + questions = null, + question = null; + var el = D.getElementById('questions').firstChild; + for (; el !== null; el = el.nextSibling) { + if (el.nodeType !== 1) { + continue; + } + + if (el.nodeName.toLowerCase() === 'h2') { + questions = []; + question = null; + ret.push({ + title: el.textContent, + questions: questions, + }); + continue; + } + + if (questions === null) { + continue; + } + + if (el.nodeName.toLowerCase() === 'p') { + var e = D.createElementNS(NS, 'div'); + el.parentNode.replaceChild(e, el); + e.appendChild(el); + el = e; + } else if (el.nodeName.toLowerCase() !== 'div') { + continue; + } + + if (question === null) { + el.className = 'q'; + question = el; + } else { + el.className = 'a'; + questions.push([question, el]); + question = null; + } + } + return ret; + })(); - /* Scores will be saved here. */ - var scores = []; + /* Scores will be saved here. */ + var scores = []; - /* Helper functions */ + /* Helper functions */ - var nukeChildren = function(el) { - while (el.firstChild) { - el.removeChild(el.firstChild); - } - }; + var nukeChildren = function(el) { + while (el.firstChild) { + el.removeChild(el.firstChild); + } + }; + + var addText = function(el, text) { + el.appendChild(D.createTextNode(text)); + }; - var addText = function(el, text) { - el.appendChild(D.createTextNode(text)); - }; + var addNewElement = function(parent, el, opt_text) { + var el = D.createElementNS(NS, el); + parent.appendChild(el); + if (opt_text) { + addText(el, opt_text); + } + return el; + }; - var addNewElement = function(parent, el, opt_text) { - var el = D.createElementNS(NS, el); - parent.appendChild(el); - if (opt_text) { - addText(el, opt_text); + var addNewClass = function(el, class_name) { + el.className += " " + class_name; } - return el; - }; - var addNewClass = function(el, class_name){ - el.className += " " + class_name; - } + /* Create the question board. */ - /* Create the question board. */ + var mDiv, linksList, xLink, tieLink, team0Link, team1link, closeLink; - var mDiv, linksList, xLink, tieLink, team0Link, team1link, closeLink; + (function() { + mDiv = addNewElement(D.getElementsByTagName('body')[0], 'div'); + mDiv.id = 'm'; + + var div = addNewElement(addNewElement(mDiv, 'div'), 'div'); + + xLink = addNewElement(div, 'a', 'x'); + xLink.id = 'x'; + + linksList = addNewElement(div, 'ul'); + linksList.id = 'links'; + team0Link = addNewElement(addNewElement(linksList, 'li'), 'button', teams[0]); + tieLink = addNewElement(addNewElement(linksList, 'li'), 'button', strTie); + team1Link = addNewElement(addNewElement(linksList, 'li'), 'button', teams[1]); + addNewClass(team0Link, 'btn_select'); + addNewClass(tieLink, 'btn_select btn_blue_light'); + addNewClass(team1Link, 'btn_select'); + + var el = addNewElement(div, 'ul'); + closeLink = addNewElement(addNewElement(el, 'li'), 'button', strClose); + addNewClass(closeLink, 'btn_select btn_blue_light'); + })(); - (function() { - mDiv = addNewElement(D.getElementsByTagName('body')[0], 'div'); - mDiv.id = 'm'; - var div = addNewElement(addNewElement(mDiv, 'div'), 'div'); + /* Build table with quesitons. */ - xLink = addNewElement(div, 'a', 'x'); - xLink.id = 'x'; + var makeClickHandler = (function() { + var questionShown = false; + var question, points, td; - linksList = addNewElement(div, 'ul'); - linksList.id = 'links'; - team0Link = addNewElement(addNewElement(linksList, 'li'), 'button', teams[0]); - tieLink = addNewElement(addNewElement(linksList, 'li'), 'button', strTie); - team1Link = addNewElement(addNewElement(linksList, 'li'), 'button', teams[1]); - addNewClass(team0Link, 'btn_select'); - addNewClass(tieLink, 'btn_select btn_blue_light'); - addNewClass(team1Link, 'btn_select'); + var close = function() { + mDiv.className = ''; + questionShown = false; + question[0].parentNode.removeChild(question[0]); + question[1].parentNode.removeChild(question[1]); + return false; + }; - var el = addNewElement(div, 'ul'); - closeLink = addNewElement(addNewElement(el, 'li'), 'button', strClose); - addNewClass(closeLink, 'btn_select btn_blue_light'); - })(); + xLink.onclick = close; + tieLink.onclick = function() { + m.className += ' showAnswer'; + return false; + }; + (function() { + var makeTeamClickHandler = function(team) { + return function() { + if (team !== -1) { + scores[team][0] += points; + // highlight scores green of wining team + if (team == 0 && scores[team][0] > scores[1][0]) { + scores[team][1].style.background = "green" + scores[1][1].style.background = "none" + } + if (team == 1 && scores[team][0] > scores[0][0]) { + scores[team][1].style.background = "green" + scores[0][1].style.background = "none" + } + nukeChildren(scores[team][1]); + addText(scores[team][1], '' + scores[team][0]); + } + td.className = ''; + td.onclick = null; + close(); + return false; + }; + }; + + team0Link.onclick = makeTeamClickHandler(0); + team1Link.onclick = makeTeamClickHandler(1); + closeLink.onclick = makeTeamClickHandler(-1); + })(); + + return function(_question, _points) { + return function() { + if (!questionShown) { + question = _question; + points = _points; + td = this; + + question[0] = question[0].cloneNode(true); + question[1] = question[1].cloneNode(true); + linksList.parentNode.insertBefore(question[0], linksList); + linksList.parentNode.insertBefore(question[1], linksList); + m.className = 'show'; + } + return false; + }; + }; + })(); - /* Build table with quesitons. */ + var makeScoreHandler = function(team) { + return function() { + var score = window.prompt('Enter new score:', scores[team][0]); + if (score) { + score = parseInt(score); + scores[team][0] = score + nukeChildren(scores[team][1]); + addText(scores[team][1], '' + score); + return false; + } + } + }; - var makeClickHandler = (function() { - var questionShown = false; - var question, points, td; + (function() { + var table, rowset, row, cell; - var close = function() { - mDiv.className = ''; - questionShown = false; - question[0].parentNode.removeChild(question[0]); - question[1].parentNode.removeChild(question[1]); - return false; - }; + table = D.createElementNS(NS, 'table'); + mDiv.parentNode.insertBefore(table, mDiv); + rowset = addNewElement(table, 'thead'); + row = addNewElement(rowset, 'tr'); + row.className = 'title'; - xLink.onclick = close; - tieLink.onclick = function() { - m.className += ' showAnswer'; - return false; - }; + cell = addNewElement(row, 'th'); + cell.setAttribute('colspan', '' + categories.length); - (function() { - var makeTeamClickHandler = function(team) { - return function() { - if (team !== -1) { - scores[team][0] += points; - nukeChildren(scores[team][1]); - addText(scores[team][1], '' + scores[team][0]); - } - td.className = ''; - td.onclick = null; - close(); - return false; - }; - }; + var title = D.getElementsByTagNameNS(NS, 'title')[0]; + addNewElement(cell, 'h1', title.textContent); - team0Link.onclick = makeTeamClickHandler(0); - team1Link.onclick = makeTeamClickHandler(1); - closeLink.onclick = makeTeamClickHandler(-1); - })(); + row = addNewElement(rowset, 'tr'); + row.className = 'categories'; - return function(_question, _points) { - return function() { - if (!questionShown) { - question = _question; - points = _points; - td = this; - - question[0] = question[0].cloneNode(true); - question[1] = question[1].cloneNode(true); - linksList.parentNode.insertBefore(question[0], linksList); - linksList.parentNode.insertBefore(question[1], linksList); - m.className = 'show'; - } - return false; - }; - }; - })(); - - var makeScoreHandler = function(team) { - return function() { - var score = window.prompt('Enter new score:', scores[team][0]); - if (score) { - score = parseInt(score); - scores[team][0] = score - nukeChildren(scores[team][1]); - addText(scores[team][1], '' + score); - return false; - } - } - }; - - (function() { - var table, rowset, row, cell; - - table = D.createElementNS(NS, 'table'); - mDiv.parentNode.insertBefore(table, mDiv); - rowset = addNewElement(table, 'thead'); - row = addNewElement(rowset, 'tr'); - row.className = 'title'; - - cell = addNewElement(row, 'th'); - cell.setAttribute('colspan', '' + categories.length); - - var title = D.getElementsByTagNameNS(NS, 'title')[0]; - addNewElement(cell, 'h1', title.textContent); - - row = addNewElement(rowset, 'tr'); - row.className = 'categories'; - - categories.forEach(function(cat) { - cell = addNewElement(row, 'th', cat.title); - }); - - rowset = addNewElement(table, 'tbody'); - - var max = 0; - categories.forEach(function(cat) { - if (cat.questions.length > max) { - max = cat.questions.length; - } - }); - - for (var i = 1; i <= max; ++i) { - row = addNewElement(rowset, 'tr'); - - categories.forEach(function(cat) { - cell = addNewElement(row, 'td'); - if (i <= cat.questions.length) { - addText(cell, '' + (i * 100)); - cell.className = 'active'; - cell.onclick = makeClickHandler(cat.questions[i - 1], i * 100); - } else { - addText(cell, '\u00A0'); + categories.forEach(function(cat) { + cell = addNewElement(row, 'th', cat.title); + }); + + rowset = addNewElement(table, 'tbody'); + + var max = 0; + categories.forEach(function(cat) { + if (cat.questions.length > max) { + max = cat.questions.length; + } + }); + + for (var i = 1; i <= max; ++i) { + row = addNewElement(rowset, 'tr'); + + categories.forEach(function(cat) { + cell = addNewElement(row, 'td'); + if (i <= cat.questions.length) { + addText(cell, '' + (i * 100)); + cell.className = 'active'; + cell.onclick = makeClickHandler(cat.questions[i - 1], i * 100); + } else { + addText(cell, '\u00A0'); + } + }); } - }); - } - rowset = addNewElement(table, 'tfoot'); - row = addNewElement(rowset, 'tr'); + rowset = addNewElement(table, 'tfoot'); + row = addNewElement(rowset, 'tr'); - var addScoreCell = function(team) { - cell = addNewElement(row, 'td'); + var addScoreCell = function(team) { + cell = addNewElement(row, 'td'); - var div = D.createElementNS(NS, 'div'); - cell.appendChild(div); - div.appendChild(D.createTextNode(teams[team])); + var div = D.createElementNS(NS, 'div'); + cell.appendChild(div); + div.appendChild(D.createTextNode(teams[team])); - div = D.createElementNS(NS, 'div'); - cell.appendChild(div); - div.appendChild(D.createTextNode('0')); - div.onclick = makeScoreHandler(team); - return div; - }; + div = D.createElementNS(NS, 'div'); + cell.appendChild(div); + div.appendChild(D.createTextNode('0')); + div.onclick = makeScoreHandler(team); + return div; + }; - scores.push([0, addScoreCell(0)]); - if (categories.length > 2) { - cell = D.createElementNS(NS, 'td'); - cell.setAttribute('colspan', '' + categories.length - 2); - row.appendChild(cell); - } - scores.push([0, addScoreCell(1)]); - })(); -}); + scores.push([0, addScoreCell(0)]); + if (categories.length > 2) { + cell = D.createElementNS(NS, 'td'); + cell.setAttribute('colspan', '' + categories.length - 2); + row.appendChild(cell); + } + scores.push([0, addScoreCell(1)]); + })(); +}); \ No newline at end of file