var player = new Array();
var tableOfPlayers;
var entry = new Array();

function playerList(tableId) {
         tableOfPlayers = document.getElementById(tableId);
         player = tableOfPlayers.rows
         numberOfPlayers = player.length;
         for (i=0; i<numberOfPlayers; i++) {
             entry[i] = new Array();
             entry[i] = player[i].cells;
             }
             enterScore();
         }

var score = new Array();
var colour = new Array();
var opponent = new Array();
var undefined;
score[0] = [0,0,1,1,1]; colour[0] = ["B","W","B","W","B"]; opponent[0] = [5,8,7,6,2];
score[1] = [1,1,1,1,0]; colour[1] = ["W","B","W","B","W"]; opponent[1] = [6,5,3,4,1];
score[2] = [1,1,0,1,1]; colour[2] = ["B","W","B","W","B"]; opponent[2] = [7,4,2,5,8];
score[3] = [1,0,1,0,1]; colour[3] = ["W","B","W","W","B"]; opponent[3] = [8,3,6,2,7];
score[4] = [1,0,1,0,0]; colour[4] = ["W","W","B","B","B"]; opponent[4] = [1,2,8,3,6];
score[5] = [0,1,0,0,1]; colour[5] = ["B","W","B","B","W"]; opponent[5] = [2,7,4,1,5];
score[6] = [0,0,0,1,0]; colour[6] = ["W","B","W","B","W"]; opponent[6] = [3,6,1,8,4];
score[7] = [0,1,0,0,0]; colour[7] = ["B","B","W","W","W"]; opponent[7] = [4,1,5,7,3];

function enterScore() {
         for (i=0; i<numberOfPlayers; i++) {
             if (score[i] == undefined) {
                for (j=0; j<5; j++) {
                    addCell("-");
                    }
                addCell("-----");
                }
             else {
                  finalScore = 0; progScore = 0;
                  for (j=0; j<5; j++) {
                      finalScore = finalScore + score[i][j]; progScore = progScore + finalScore;
                      addCell(score[i][j].toString(10));
                      }
                  addCell(finalScore.toString(10)+"  ("+progScore.toString(10)+")");
                 }
             }
         }
         
function addCell(textEntry) {
         newCell = document.createElement("td");
         newCell.appendChild(document.createTextNode(textEntry));
         player[i].appendChild(newCell);
         }

function displayColour() {
         for (i=0; i<numberOfPlayers; i++) {
             for (j=4; j<9; j++) {
                 if (colour[i] == undefined) {entry[i][j].lastChild.nodeValue = "-";}
                    else {entry[i][j].lastChild.nodeValue = colour[i][j-4];}
                 }
             }
         }

function displayOpponent() {
         for (i=0; i<numberOfPlayers; i++) {
             for (j=4; j<9; j++) {
                 if (opponent[i] == undefined) {entry[i][j].lastChild.nodeValue = "-";}
                    else {entry[i][j].lastChild.nodeValue = opponent[i][j-4].toString(10);}
                 }
             }
         }

function displayScore() {
         for (i=0; i<numberOfPlayers; i++) {
             for (j=4; j<9; j++) {
                 if (score[i] == undefined) {entry[i][j].lastChild.nodeValue = "-";}
                    else {entry[i][j].lastChild.nodeValue = score[i][j-4].toString(10);}
                 }
             }
         }

function sortByName() {
         var swap = true;
         var max = numberOfPlayers-1;
         while (swap) {
               swap = false;
               for (i=0; i<max; i++) {
                   if (surname(player[i].firstChild.nextSibling.lastChild.nodeValue) > surname(player[i+1].firstChild.nextSibling.lastChild.nodeValue)) {
                      swap = true;
                      tableOfPlayers.insertBefore(player[i+1],player[i]);
                      }
                   }
                   max--;
               }
         }

function surname(wholeName) {
         var space = wholeName.lastIndexOf(" ");
         return wholeName.slice(space+1);
         }
         
function sortByGrade() {
         var swap = true;
         var max = numberOfPlayers-1;
         while (swap) {
               swap = false;
               for (i=0; i<max; i++) {
                   if (Number(player[i].firstChild.nextSibling.nextSibling.nextSibling.lastChild.nodeValue) < Number(player[i+1].firstChild.nextSibling.nextSibling.nextSibling.lastChild.nodeValue)) {
                      swap = true;
                      tableOfPlayers.insertBefore(player[i+1],player[i]);
                      }
                   }
                   max--;
               }
         }

function sortByScore() {
         var swap = true;
         var max = numberOfPlayers-1;
         while (swap) {
               swap = false;
               for (i=0; i<max; i++) {
                   if (compScore(player[i].lastChild.lastChild.nodeValue) < compScore(player[i+1].lastChild.lastChild.nodeValue)) {
                      swap = true;
                      tableOfPlayers.insertBefore(player[i+1],player[i]);
                      }
                   }
                   max--;
               }
         }

function compScore(value) {
         if (value == "-----") {
            return Number(-1);
            }
         else {
              firstSpace = value.indexOf(" ");
              openBracket = value.indexOf("(");
              closeBracket = value.indexOf(")");
              return Number(value.slice(0,firstSpace))+Number(value.slice(openBracket+1,closeBracket))/100;
              }
         }
