<!-- Original:  Tom McComb (mrtuba@tampabay.rr.com) -->
<!-- Web Site:  http://home.tampabay.rr.com/mrtuba -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

image_directory = "http://pruebas.malamente.net/padelpwt/web/cuadro/"; // include last '/'

function GeneratePlayoffs(TeamCountString) {
  var TeamSet = new Array();
  var GameSet = new Array();
  var MaxLevel = 1;
  var TeamCount = parseInt(TeamCountString)
  var OldTeam;
  var nextGame = 1;
  var Parent = new Array(4);
  var ParentNum;
  TeamSet[1] = 1;

  if (TeamCount < 2) 
  {
    alert("No se pueden generar un torneo con menos de 2 equipos.");
    return false;
  }

  MaxLevel++;
  var HalfCount = 3;
  for (var ThisTeam = 2; ThisTeam <= TeamCount; ThisTeam++) 
  {
    window.status = "Creando cuadro del torneo - " + ThisTeam;
    if (ThisTeam == HalfCount) 
    {
      HalfCount = (2 * HalfCount) - 1;
      MaxLevel++;
    }
    OldTeam = HalfCount - ThisTeam;
    if (ThisTeam == 2) {
      TeamSet[2] = 1;
      GameSet[1] = newGame(0, 1, 2, true, true);
    }
    else 
    {
      ParentNum = TeamSet[OldTeam];
      Parent = GameSet[ParentNum];
      if (Parent[1] == OldTeam)
        GameSet[ParentNum] = newGame(Parent[0], nextGame, Parent[2], false, Parent[4]);
      else
        GameSet[ParentNum] = newGame(Parent[0], Parent[1], nextGame, Parent[3], false);
      GameSet[nextGame] = newGame(ParentNum, OldTeam, ThisTeam, true, true);
    }
    TeamSet[ThisTeam] = nextGame;
    TeamSet[OldTeam] = nextGame;
    nextGame++;
  }

  var ThisLevel = MaxLevel + 1;
  var LevelStatus = new Array(ThisLevel);

  //Empezamos a crear
  var cuadro = document.getElementById('cuadro');
  var tabla = document.createElement('table');
  tabla.setAttribute('id', 'tabla_cuadro');
  tabla.setAttribute('cellspacing', '0');
  tabla.setAttribute('cellpadding', '0');
  cuadro.appendChild(tabla); 

  var tr = document.createElement('tr');
  tabla.appendChild(tr); 
  var td = document.createElement('td');
  tr.appendChild(td); 
  td.innerHTML = '#';

  
  for (var x = 0; x <= MaxLevel; x++) 
  {
    LevelStatus[x] = 0;
    if (x > 0)
    {
      td = document.createElement('td');
      td.setAttribute('align','center');
      td.innerHTML = 'RND '+x;
      tr.appendChild(td); 
    }
  }
  var Bit = "";
  var GameCount = 0;
  GameCount = sendGame(GameSet, LevelStatus, MaxLevel - 1, 1, TeamCount, GameCount, tabla);
}

function sendGame(GameSet, LevelStatus, ThisLevel, OneGame, total, howfar, tabla) {
  var GameNum = OneGame;
  var Game = new Array(4);
  Game = GameSet[GameNum];
  if (Game[3])
    howfar = sendTeam(Game[1], LevelStatus, GameNum, ThisLevel - 1, total, howfar, tabla);
  else
    howfar = sendGame(GameSet, LevelStatus, ThisLevel - 1, Game[1], total, howfar, tabla);
  howfar = sendTeam(0, LevelStatus, GameNum, ThisLevel, total, howfar, tabla);
  if (Game[4])
    howfar = sendTeam(Game[2], LevelStatus, GameNum, ThisLevel - 1, total, howfar, tabla);
  else
    howfar = sendGame(GameSet, LevelStatus, ThisLevel - 1, Game[2], total, howfar, tabla);

  return howfar;
}
function newGame(Parent, First, Second, FirstIsTeam, SecondIsTeam) {
  var Game = new Array(4);
  Game[0] = Parent;
  Game[1] = First;
  Game[2] = Second;
  Game[3] = FirstIsTeam;
  Game[4] = SecondIsTeam;
  return Game;
}
function increment(GameStatus) {
  GameStatus++;
  if (GameStatus == 4)
  GameStatus = 0;
  return GameStatus;
}
function sendTeam(TeamNumber, LevelStatus, GameNum, ThisLevel, total, howfar, tabla) 
{
  tr = document.createElement('tr');
  tabla.appendChild(tr); 

  var Entries = new Array(4);
  Entries[0] = '';
  Entries[1] = image_directory + 'top.png';
  Entries[2] = image_directory + 'mid.png';
  Entries[3] = image_directory + 'low.png';
  Entries[4] = image_directory + 'non.png';
  LevelStatus[ThisLevel] = increment(LevelStatus[ThisLevel]);

  if (TeamNumber == 0) 
  {
      td = document.createElement('td');
      tr.appendChild(td); 
  }
  else {
    howfar++;
    td = document.createElement('td');
    tr.appendChild(td); 
    td.setAttribute('align','ceter');
    td.innerHTML = TeamNumber;
  }

  for (var x = 0; x < LevelStatus.length - 2; x++) 
  {
    if (x == 0 && TeamNumber != 0&&LevelStatus[x] == 0)
    {
      td = document.createElement('td');
      tr.appendChild(td); 
      img = document.createElement('img');
      td.appendChild(img); 
      imagen.setAttribute('src',Entries[4]);
    }
    else
    {
      td = document.createElement('td');
      tr.appendChild(td); 
      img = document.createElement('img');
      td.appendChild(img); 
      img.setAttribute('src',Entries[LevelStatus[x]]);

    }
  }

  if (GameNum == 1 && TeamNumber == 0)
  {
      td = document.createElement('td');
      tr.appendChild(td); 
      img = document.createElement('img');
      td.appendChild(img); 
      img.setAttribute('src',Entries[4]);
  }

  LevelStatus[ThisLevel] = increment(LevelStatus[ThisLevel]);
  return howfar;
}
