/******************************************************************************
 ******************************************************************************
 **
 **  File name:      pcc_ladder.js
 **  Description:    The javascript to dynamicly generate the competition from a
 **                  grade array structure.
 **
 **  Author:         Stuart Rudd
 **  Last Modified:
 **
 ******************************************************************************
 ******************************************************************************/


//
//  DATA PROCESSING FUNCTIONS
//


function add_ladders(ladders)
{

  for (var i = 0; i < ladders.length; i++)
  {
    add_ladder(ladders[i]);
  }
}


function add_ladder(gradeLadder)
{
  start_ladder(gradeLadder[0]);
  add_headings(gradeLadder[2]);

  var finals = gradeLadder[1] + 3;
  for (var i = 3; i < gradeLadder.length; i++)
  {
    if (i == finals)
    {
      write_finals_cutoff();
    }
    add_team(gradeLadder[i], get_team_class(i, (gradeLadder[i])[0]));
  }
  end_ladder();
}


function add_headings(headings)
{
  start_heading();
  add_cols(headings, "th");
  end_heading();
}


function add_team(teamStats, className)
{
  start_team(className);
  add_cols(teamStats, "td");
  end_team();
}


function add_cols(cols, type)
{
  for (var i = 0; i < cols.length; i++)
  {
    write_col(type, get_team_name_class(i), cols[i]);
  }
}


function get_team_class(rowNum, teamName)
{
  return (teamName.indexOf("Palm") == 0)
    ? "palmo" : ((rowNum % 2) == 0) ? "alt" : "";
}


function get_team_name_class(colNum)
{
  return (0 == colNum) ? "team_name" : "";
}



//
//  OUTPUT FUNCTIONS
//
var buff = "";
function out(line)
{
  document.writeln(line);
}


function write_nav(grade, useSeparator)
{
  var separator = useSeparator ? "|" : " ";
out("      " + separator +" <a href=\"#" + grade + "\">" + grade + "</a>");
}


function write_finals_cutoff()
{
out("            <tr>");
out("              <td class=\"finals\" colspan=\"100\"></td>");
out("            </tr>");
}


function write_col(colType, className, content)
{
out("              <" + colType + " class=\"" + className + "\">" + content + "</" + colType + ">");
}


function start_ladder(grade)
{
out("    <table class=\"box ladder\" width=\"%\" align=\"center\">");
out("      <tr>");
out("        <td class=\"box\">");
out("          <a name=\"" + grade + "\" />");
out("          <div class=\"box_title\">" + grade + "</div>");
out("          <table class=\"premiership\" width=\"100%\" align=\"center\">");
}

function end_ladder()
{

out("          </table>");
out("        </td>");
out("      </tr>");
out("    </table>");
out("    <div class=\"top_nav\">");
out("      <a href=\"#top\">Top</a>");
out("    </div>");
}


function start_heading()
{
out("            <tr class=\"ladder_header\">");
}

function end_heading()
{
out("            </tr>");
}


function start_team(className)
{
out("            <tr class=\"team " + className + "\">");
}

function end_team()
{
out("            </tr>");
}


