// buildScoreboards.js
// ===================

function buildGameAnchorCells(numGames)
{
    var mainAnchorElement;
    var anchorTable;
    var numFullRows;
    var numGamesOnPartialRow;
    var trRow;
    var tdCell;
    var tBody;
    var cc;

    // first, store currentCalendar (from HTML) in a variable, for reuse.
    if (currentCalendar == null)
        currentCalendar = document.getElementById("myGamesCalendar").cloneNode(true);
    cc = currentCalendar.cloneNode(true);

    mainAnchorElement = document.getElementById("scoreTable");
    mainAnchorElement.innerHTML = "";

    mainAnchorElement.appendChild(cc);

    if (numGames <= 0) 
    {
        //log.write("Error: buildAnchorTables() function... invalid paramater value passed");
        return;
    }

    numFullRows = getNumFullRows(numGames);
    //log.write("getNumFullRows() function returned " + numFullRows);
    
    anchorTable = document.createElement("table");
    anchorTable.setAttribute("border","0");
    anchorTable.setAttribute("cellSpacing","4");
    anchorTable.setAttribute("width","822");
    anchorTable.className = "cnnnflScore";

    tBody = document.createElement("tbody");
    
    for (var i = 0; i < numFullRows; i++)
    {
        trRow = document.createElement('tr');
    
        tdGameAnchor = document.createElement('td');
        tdGameAnchor.setAttribute("vAlign","top");
        tdGameAnchor.id = (i * 3) + 1;
        trRow.appendChild(tdGameAnchor);
        tdGameAnchor = document.createElement('td');
        tdGameAnchor.setAttribute("vAlign","top");
        tdGameAnchor.id = (i * 3) + 2;
        trRow.appendChild(tdGameAnchor);
        tdGameAnchor = document.createElement('td');
        tdGameAnchor.setAttribute("vAlign","top");
        tdGameAnchor.id = (i * 3) + 3;
        trRow.appendChild(tdGameAnchor);

        tBody.appendChild(trRow);
        
    }

    numGamesOnPartialRow = getNumGamesOnPartialRow(numGames);

    if (numGamesOnPartialRow > 0)
    {
        trRow = document.createElement('tr');

        switch(numGamesOnPartialRow)
        {
            case 1:
                tdGameAnchor = document.createElement('td');
                tdGameAnchor.setAttribute("vAlign","top");
                tdGameAnchor.id = (numFullRows * 3) + 1;
                trRow.appendChild(tdGameAnchor);
                break;
            case 2:
                tdGameAnchor = document.createElement('td');
                tdGameAnchor.setAttribute("vAlign","top");
                tdGameAnchor.id = (numFullRows * 3) + 1;
                trRow.appendChild(tdGameAnchor);
                tdGameAnchor = document.createElement('td');
                tdGameAnchor.setAttribute("vAlign","top");
                tdGameAnchor.id = (numFullRows * 3) + 2;
                trRow.appendChild(tdGameAnchor);
                break;
            case 3:
            default:
                ;
        }
        tBody.appendChild(trRow);
    }
    anchorTable.appendChild(tBody);


    if (mainAnchorElement != null)
        mainAnchorElement.appendChild(anchorTable);
    else
     {}
        //alert("Error: the 'gamesTable' DOM Id was not found on the page");
}


function buildMiniscoreboard(domIdSequence, contestO)
{
   // TODO: add validators on all data that could be missing.
    var gamePlaceholder;    
    
    var outerDiv = document.createElement("div");
    if (contestO.gameState.isHalftime == false  && contestO.isFinal == false
        && contestO.gameState.isRedZone || contestO.homeTeam.isNewScore || contestO.visitingTeam.isNewScore)
        outerDiv.className = "cnnboxcontactive";
    else
        outerDiv.className = "cnnboxcont";

    var innerDiv = document.createElement("div");
    innerDiv.className = "cnnscorebox";

    var thirdDiv = document.createElement("div");
    thirdDiv.className = "cnntopCont";
    
    // Peter King Picks
    /*
    var tempE = createPicks(contestO);
    if (tempE != null)
        thirdDiv.appendChild(tempE);
    */
    
    // Pre Game - structure is unique
    if (contestO.isPregame)
    {
        thirdDiv.appendChild(createPregameHeader(contestO));
        thirdDiv.appendChild(createPregameTable(contestO));
        innerDiv.appendChild(thirdDiv);
        innerDiv.appendChild(createTeamStats(contestO));
    }
    // Game In-progress or Final - structure is same
    else
    {
        thirdDiv.appendChild(createGameTable(contestO));
        innerDiv.appendChild(thirdDiv);
        innerDiv.appendChild(createGameLeaders(contestO));
    }
    var linksArray = createGameLinks(contestO);
    if (linksArray != null)
    {
        for (var i = 0; i < linksArray.length; i++)
        {
            innerDiv.appendChild(linksArray[i]);
        }
    } 
    outerDiv.appendChild(innerDiv);
    
    // Find game placeholder on the page and insert newly built miniscoreboard
    gamePlaceholder = document.getElementById(domIdSequence);
    if (gamePlaceholder != null)
    {
       gamePlaceholder.innerHTML = "";
       gamePlaceholder.appendChild(outerDiv);
    }
    else 
    {}
        //alert("Error: attempted to create a scoreBox table in a game placeholder[" + domIdSequence + "]");
}


function createGameTable(contestO)
{
    var table = document.createElement("table");
    table.className = "cnn2pxTmar";

    var tr, td, tbody, div, b, span, telem;
 
    tbody = document.createElement("tbody");
    tr = document.createElement("tr");
    tr.className = "cnntoprow";

    td = document.createElement("td");
    td.setAttribute("colSpan", "3");
    td.className = "noltbor";
    div = document.createElement("div");
    div.className = "cnn2pxBmar";
    var idiv = document.createElement("div");
    idiv.className = "cnntabtop"; 
    b = document.createElement("b");
    var text; 
    var clock = ""; 
    var situation = "";
    if (contestO.statusInd == "FINA")
    {
       b.appendChild(document.createTextNode("Final"));
       if (contestO.gameState.period == "5" || contestO.gameState.period == "6")
           b.appendChild(document.createTextNode(" - OT"));

       idiv.appendChild(b);
    }
    else if (contestO.statusInd == "DELA")
    {
       b.appendChild(document.createTextNode("Delayed"));
       idiv.appendChild(b);
    }
    else if (contestO.statusInd == "POST")
    {
       b.appendChild(document.createTextNode("Postponed"));
       idiv.appendChild(b);
    }
    else if (contestO.statusInd == "CANC")
    {
       b.appendChild(document.createTextNode("Cancelled"));
       idiv.appendChild(b);
    }
    else if (contestO.statusInd == "SUSP")
    {
       b.appendChild(document.createTextNode("Suspended"));
       idiv.appendChild(b);
    }
    else if (contestO.gameState.isHalftime)
    {
       b.appendChild(document.createTextNode("Halftime"));
       idiv.appendChild(b);
    }
    else
    {
        if (contestO.gameState.period == "1")
             b.appendChild(document.createTextNode("1st"));
        else if (contestO.gameState.period == "2")
             b.appendChild(document.createTextNode("2nd"));
        else if (contestO.gameState.period == "3")
             b.appendChild(document.createTextNode("3rd"));
        else if (contestO.gameState.period == "4")
             b.appendChild(document.createTextNode("4th"));
        else if (contestO.gameState.period == "5" || contestO.gameState.period == "6")
             b.appendChild(document.createTextNode("OT"));
  
        clock = contestO.gameState.clock;
        var downSt = "";

        if (contestO.gameState.down == "1")
            downSt = "1st";
        else if (contestO.gameState.down == "2")
            downSt = "2nd";
        else if (contestO.gameState.down == "3")
            downSt = "3rd";
        else if (contestO.gameState.down == "4")
            downSt = "4th";

        var distance = contestO.gameState.distance;
        //log.write("Down and distance: " + downSt + ", " + contestO.gameState.distance);
        if (! (downSt == "" || distance == "" || distance == "0"))
            situation = downSt + " & " + distance;

        //log.write("Situation:" + situation);

        idiv.appendChild(b);

        if (clock != "")
        {
            span = document.createElement("span");
            span.className = "line";
            span.appendChild(document.createTextNode(" | "));
            idiv.appendChild(span);
            idiv.appendChild(document.createTextNode(clock));
        }
        if (situation != "")
        {
            span = document.createElement("span");
            span.className = "line";
            span.appendChild(document.createTextNode(" | "));
            idiv.appendChild(span);
         
            if (contestO.gameState.isRedZone)
            {
                var red = document.createElement("span");
                red.className = "cnnredscore";
                red.appendChild(document.createTextNode(situation));
                idiv.appendChild(red);
                idiv.appendChild(document.createTextNode(" "));
                idiv.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/redzone_17x11.gif","11","17","0","",null,"cnnrzimg"));
            }
            else
            {
                idiv.appendChild(document.createTextNode(situation));
            }
        }
    }
    div.appendChild(idiv);
    td.appendChild(div);
    tr.appendChild(td);

    td = document.createElement("td");
    td.appendChild(document.createTextNode("1"));
    tr.appendChild(td);

    td = document.createElement("td");
    td.appendChild(document.createTextNode("2"));
    tr.appendChild(td);

    td = document.createElement("td");
    td.appendChild(document.createTextNode("3"));
    tr.appendChild(td);

    td = document.createElement("td");
    td.appendChild(document.createTextNode("4"));
    tr.appendChild(td);

    if (contestO.gameState.period > 4)
    {
        td = document.createElement("td");
        td.appendChild(document.createTextNode("OT"));
        tr.appendChild(td);
    }
    td = document.createElement("td");
    td.appendChild(document.createTextNode("T"));
    tr.appendChild(td);

    tbody.appendChild(tr);

    tbody.appendChild(createTeamLinescore(contestO.visitingTeam,false,contestO.gameState.possInd, contestO.isFinal,contestO.gameState.isRedZone));
    tbody.appendChild(createTeamLinescore(contestO.homeTeam,true,contestO.gameState.possInd, contestO.isFinal,contestO.gameState.isRedZone));

    table.appendChild(tbody);
    tbody = null;
    tr = null;
    td = null;
    div = null;
    span = null;

    return table; 
}

function createTeamLinescore(teamO, isHomeTeam, isInPos, isFinal, isRedZone)
{
    var tr = document.createElement("tr");

    // first or second row
    var htStyle = "cnnscorerow";
    if (isHomeTeam)
        htStyle  = htStyle + "2";
    
    tr.className = htStyle;

    //log.write("Style: " + htStyle);
    var td,div,span;

    // team logo cell
    td = document.createElement("td");
    td.className = "nflhelmet";
    td.setAttribute("width", "42");
    td.appendChild(createLinkElement(createImageElement(IMG_SERVER+TRACKER_IMAGES+teamO.urlName+"_r_40.jpg","40","40","0", teamO.name + " " + teamO.nickname,null,"cnnhlmt"),"/football/nfl/teams/" + teamO.urlName + "/",null,true));
    tr.appendChild(td);
   
    // team name and record cell
    td = document.createElement("td");
    td.className = "lefttalign";
    td.setAttribute ("width","95");
    div = document.createElement("div");
    div.appendChild(createLinkElement((String)(teamO.nickname).toUpperCase(),"/football/nfl/teams/" + teamO.urlName + "/",null,false)); 
    div.appendChild(document.createElement("br"));
    span = document.createElement("span");
    span.appendChild(document.createTextNode(createTeamRecord(teamO.wins,teamO.losses,teamO.ties,true)));

    // add next game if game is final and next game is available
    if (isFinal && teamO.nextGame != null && teamO.nextGame.dateStr != "")
    {
        span.appendChild(document.createElement("br"));
        if (teamO.nextGame.homeAwayInd == "H")
            span.appendChild(document.createTextNode("vs. "));
        else if (teamO.nextGame.homeAwayInd == "V")
            span.appendChild(document.createTextNode("at "));
           
        span.appendChild(createLinkElement((String)(teamO.nextGame.oppAbrv).toUpperCase(),"/football/nfl/teams/"+teamO.nextGame.oppUrlName+"/",null,false));
        span.appendChild(document.createTextNode(" "+teamO.nextGame.dateStr));
    }
   
    div.appendChild(span);
    td.appendChild(div);
    tr.appendChild(td);

    // add possession indicator
    td = document.createElement("td");
    td.setAttribute("width","20");

    if ((isInPos == "H" && isHomeTeam) || (isInPos == "V" && ! isHomeTeam))
    {
        //log.write ("Got possession team: " + isInPos);
        td.appendChild(createImageElement(IMG_SERVER+IMG_PATH+"/scoreboards/football_16x11.gif","11","16","0","",null, null));
    }

    tr.appendChild(td);

    // print scores by period
    if (teamO.linescore != null)
    {
        for (var i=0; i < teamO.linescore.length; i++)
        {
            td = document.createElement("td");
            td.setAttribute("width","21");
            td.appendChild(document.createTextNode(teamO.linescore[i]));
            tr.appendChild(td);
        } 
    }
    // total score here
    td = document.createElement("td");
    td.setAttribute("width","23");
    td.className = "cnnfinalscore";
    span = document.createElement("span");
    if (teamO.isNewScore)
    {
        var redspan = document.createElement("span");
        redspan.className="cnnredscore";
        redspan.appendChild(document.createTextNode(teamO.totalScore));
        span.appendChild(redspan);
    }

///** No red scores for possession team in RED ZONE, per Adam 8-2-07
    //else if (isRedZone && (isInPos == "H" && isHomeTeam))
    //{
        //var redspan = document.createElement("span");
        //redspan.className="cnnredscore";
        //redspan.appendChild(document.createTextNode(teamO.totalScore));
        //span.appendChild(redspan);
    //}
    //else if (isRedZone && (isInPos == "V" && ! isHomeTeam))
    //{
        //var redspan = document.createElement("span");
        //redspan.className="cnnredscore";
        //redspan.appendChild(document.createTextNode(teamO.totalScore));
        //span.appendChild(redspan);
    //}
//*/
    else
    {
        span.appendChild(document.createTextNode(teamO.totalScore));
    }
    td.appendChild(span);
    tr.appendChild(td);
    
    td = null;
    div = null;
    span = null;

    return tr;
}
/**
function createGameLeaders(contestO)
{
    var div = document.createElement("div");
    div.className = "playerstats";
    var table, tbody, tr, td;

    table = document.createElement("table");
    tbody = document.createElement("tbody");

    tr = createTeamLeaderRow(contestO.visitingTeam);
    if (tr != null)
        tbody.appendChild(tr);
    tr = createTeamLeaderRow(contestO.homeTeam);
    if (tr != null)
        tbody.appendChild(tr);

    table.appendChild(tbody);
    div.appendChild(table);

    return div;
}

function createTeamLeaderRow(teamO)
{
   if (teamO.rushingLeader != null ||
       teamO.passingLeader != null ||
       teamO.receivingLeader != null)
    {
        var tr = document.createElement("tr");
        tr.setAttribute("vAlign", "top");

        var td = document.createElement("td");
        var b = document.createElement("b");

        b.appendChild(document.createTextNode((String)(teamO.abrv).toUpperCase() + ":"));
        td.appendChild(b);
        tr.appendChild(td);

        td = document.createElement("td");
        if (teamO.passingLeader != null)
        {
            if (teamO.passingLeader.linkable == "T" && teamO.passingLeader != "0")
               td.appendChild(createLinkElement(teamO.passingLeader.name,"/football/nfl/players/" + teamO.passingLeader.id + "/", null, false));
            else
               td.appendChild(document.createTextNode(teamO.passingLeader.name));
            if (teamO.passingLeader.position != null && teamO.passingLeader.position != "")
                td.appendChild(document.createTextNode(" (" + teamO.passingLeader.position + ")")); 
            td.appendChild(document.createTextNode(" " + teamO.passingLeader.made + "-" + teamO.passingLeader.attempted));
            if (teamO.passingLeader.yards != "")
                td.appendChild(document.createTextNode(", " + teamO.passingLeader.yards));
            if (teamO.passingLeader.touchdowns != "" && teamO.passingLeader.touchdowns != "0")
            {
                if (teamO.passingLeader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + teamO.passingLeader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }
        if (teamO.rushingLeader != null)
        {
            if (teamO.rushingLeader.linkable == "T" && teamO.rushingLeader != "0")
               td.appendChild(createLinkElement(teamO.rushingLeader.name,"/football/nfl/players/" + teamO.rushingLeader.id + "/", null, false));
            else
               td.appendChild(document.createTextNode(teamO.rushingLeader.name));
            if (teamO.rushingLeader.position != null && teamO.rushingLeader.position != "")
                td.appendChild(document.createTextNode(" (" + teamO.rushingLeader.position + ")")); 
            td.appendChild(document.createTextNode(" " + teamO.rushingLeader.rushes + "-" + teamO.rushingLeader.yards));
            if (teamO.rushingLeader.touchdowns != "" && teamO.rushingLeader.touchdowns != "0")
            {
                if (teamO.rushingLeader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + teamO.rushingLeader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }
        if (teamO.receivingLeader != null)
        {
            if (teamO.receivingLeader.linkable == "T" && teamO.receivingLeader != "0")
               td.appendChild(createLinkElement(teamO.receivingLeader.name,"/football/nfl/players/" + teamO.receivingLeader.id + "/", null, false));
            else
                td.appendChild(document.createTextNode(teamO.receivingLeader.name));
           
            if (teamO.receivingLeader.position != null && teamO.receivingLeader.position != "")
                   td.appendChild(document.createTextNode(" (" + teamO.receivingLeader.position + ")")); 
            td.appendChild(document.createTextNode(" " + teamO.receivingLeader.receptions + "-" + teamO.receivingLeader.yards));
            if (teamO.receivingLeader.touchdowns != "" && teamO.receivingLeader.touchdowns != "0")
            {
                if (teamO.receivingLeader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + teamO.receivingLeader.touchdowns + " TD"));
            }
        }
        tr.appendChild(td);
        return tr;
    }
    else
    {
        return null;
    }
}
*/

function createGameLeaders(contestO)
{
    var div = document.createElement("div");
    div.className = "playerstats";
    var table, tbody, tr, td;

    table = document.createElement("table");
    tbody = document.createElement("tbody");

   if (contestO.visitingTeam.passingLeader != null ||
       contestO.homeTeam.passingLeader != null)
   {
        var tr = document.createElement("tr");
        tr.setAttribute("vAlign", "top");

        var td = document.createElement("td");
        td.className = "statsCag";
        var b = document.createElement("b");

        b.appendChild(document.createTextNode("PASS:"));
        td.appendChild(b);
        tr.appendChild(td);

        td = document.createElement("td");
        if (contestO.visitingTeam.passingLeader != null)
        {
            var leader = contestO.visitingTeam.passingLeader;
            var b = document.createElement("b");
            b.appendChild(document.createTextNode(leader.name));
            if (leader.linkable == "T" && leader.id != "0")
            {
               var link = createLinkElement("","/football/nfl/players/" + leader.id + "/", null, false);
               link.appendChild(b);
               td.appendChild(link);
            }
            else
                td.appendChild(b);
            //if (leader.position != null && leader.position != "")
                //td.appendChild(document.createTextNode(" (" + leader.position + ")")); 
            td.appendChild(document.createTextNode(" (" + contestO.visitingTeam.abrv.toUpperCase() + "):")); 
            td.appendChild(document.createTextNode(" " + leader.made + "-" + leader.attempted));
            if (leader.yards != "")
                td.appendChild(document.createTextNode(", " + leader.yards));
            if (leader.touchdowns != "" && leader.touchdowns != "0")
            {
                if (leader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + leader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }

        if (contestO.homeTeam.passingLeader != null)
        {
            var leader = contestO.homeTeam.passingLeader;
            var b = document.createElement("b");
            b.appendChild(document.createTextNode(leader.name));
            if (leader.linkable == "T" && leader.id != "0")
            {
               var link = createLinkElement("","/football/nfl/players/" + leader.id + "/", null, false);
               link.appendChild(b);
               td.appendChild(link);
            }
            else
                td.appendChild(b);
            //if (leader.position != null && leader.position != "")
                //td.appendChild(document.createTextNode(" (" + leader.position + ")")); 
            td.appendChild(document.createTextNode(" (" + contestO.homeTeam.abrv.toUpperCase() + "):")); 
            td.appendChild(document.createTextNode(" " + leader.made + "-" + leader.attempted));
            if (leader.yards != "")
                td.appendChild(document.createTextNode(", " + leader.yards));
            if (leader.touchdowns != "" && leader.touchdowns != "0")
            {
                if (leader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + leader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }

        tr.appendChild(td);
        tbody.appendChild(tr);
    }
    else
    {
        tr = document.createElement("tr");
        td = document.createElement("td");
        td.setAttribute("colSpan","2");
        td.appendChild(document.createElement("br"));
        td.appendChild(document.createElement("br"));
        tr.appendChild(td);
        tbody.appendChild(tr);
    }

    if (contestO.visitingTeam.rushingLeader != null ||
        contestO.homeTeam.rushingLeader != null)
    {
        var tr = document.createElement("tr");
        tr.setAttribute("vAlign", "top");

        var td = document.createElement("td");
        td.className = "statsCag";
        var b = document.createElement("b");

        b.appendChild(document.createTextNode("RUSH:"));
        td.appendChild(b);
        tr.appendChild(td);

        td = document.createElement("td");
        if (contestO.visitingTeam.rushingLeader != null)
        {
            var leader = contestO.visitingTeam.rushingLeader;
            var b = document.createElement("b");
            b.appendChild(document.createTextNode(leader.name));
            if (leader.linkable == "T" && leader.id != "0")
            {
               var link = createLinkElement("","/football/nfl/players/" + leader.id + "/", null, false);
               link.appendChild(b);
               td.appendChild(link);
            }
            else
                td.appendChild(b);
            //if (leader.position != null && leader.position != "")
                //td.appendChild(document.createTextNode(" (" + leader.position + ")")); 
            td.appendChild(document.createTextNode(" (" + contestO.visitingTeam.abrv.toUpperCase() + "):")); 
            td.appendChild(document.createTextNode(" " + leader.rushes + "-" + leader.yards));
            if (leader.touchdowns != "" && leader.touchdowns != "0")
            {
                if (leader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + leader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }
        if (contestO.homeTeam.rushingLeader != null)
        {
            var leader = contestO.homeTeam.rushingLeader;
            var b = document.createElement("b");
            b.appendChild(document.createTextNode(leader.name));
            if (leader.linkable == "T" && leader.id != "0")
            {
               var link = createLinkElement("","/football/nfl/players/" + leader.id + "/", null, false);
               link.appendChild(b);
               td.appendChild(link);
            }
            else
                td.appendChild(b);
            //if (leader.position != null && leader.position != "")
                //td.appendChild(document.createTextNode(" (" + leader.position + ")")); 
            td.appendChild(document.createTextNode(" (" + contestO.homeTeam.abrv.toUpperCase() + "):")); 
            td.appendChild(document.createTextNode(" " + leader.rushes + "-" + leader.yards));
            if (leader.touchdowns != "" && leader.touchdowns != "0")
            {
                if (leader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + leader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }

        tr.appendChild(td);
        tbody.appendChild(tr);
    }
    else
    {
        tr = document.createElement("tr");
        td = document.createElement("td");
        td.setAttribute("colSpan","2");
        td.appendChild(document.createElement("br"));
        td.appendChild(document.createElement("br"));
        tr.appendChild(td);
        tbody.appendChild(tr);
    }

    if (contestO.visitingTeam.receivingLeader != null ||
        contestO.homeTeam.receivingLeader != null)
    {
        var tr = document.createElement("tr");
        tr.setAttribute("vAlign", "top");

        var td = document.createElement("td");
        td.className = "statsCag";
        var b = document.createElement("b");

        b.appendChild(document.createTextNode("REC:"));
        td.appendChild(b);
        tr.appendChild(td);

        td = document.createElement("td");
        if (contestO.visitingTeam.receivingLeader != null)
        {
            var leader = contestO.visitingTeam.receivingLeader;
            var b = document.createElement("b");
            b.appendChild(document.createTextNode(leader.name));
            if (leader.linkable == "T" && leader.id != "0")
            {
               var link = createLinkElement("","/football/nfl/players/" + leader.id + "/", null, false);
               link.appendChild(b);
               td.appendChild(link);
            }
            else
                td.appendChild(b);
           
            //if (leader.position != null && leader.position != "")
                //td.appendChild(document.createTextNode(" (" + leader.position + ")")); 
            td.appendChild(document.createTextNode(" (" + contestO.visitingTeam.abrv.toUpperCase() + "):")); 
            td.appendChild(document.createTextNode(" " + leader.receptions + "-" + leader.yards));
            if (leader.touchdowns != "" && leader.touchdowns != "0")
            {
                if (leader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + leader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }
        if (contestO.homeTeam.receivingLeader != null)
        {
            var leader = contestO.homeTeam.receivingLeader;
            var b = document.createElement("b");
            b.appendChild(document.createTextNode(leader.name));
            if (leader.linkable == "T" && leader.id != "0")
            {
               var link = createLinkElement("","/football/nfl/players/" + leader.id + "/", null, false);
               link.appendChild(b);
               td.appendChild(link);
            }
            else
                td.appendChild(b);
           
            //if (leader.position != null && leader.position != "")
                //td.appendChild(document.createTextNode(" (" + leader.position + ")")); 
            td.appendChild(document.createTextNode(" (" + contestO.homeTeam.abrv.toUpperCase() + "):")); 
            td.appendChild(document.createTextNode(" " + leader.receptions + "-" + leader.yards));
            if (leader.touchdowns != "" && leader.touchdowns != "0")
            {
                if (leader.touchdowns == "1")
                    td.appendChild(document.createTextNode(", TD"));
                else
                    td.appendChild(document.createTextNode(", " + leader.touchdowns + " TD"));
            }
            td.appendChild(document.createElement("br"));
        }

        tr.appendChild(td);
        tbody.appendChild(tr);
    }
    else
    {
        tr = document.createElement("tr");
        td = document.createElement("td");
        td.setAttribute("colSpan","2");
        td.appendChild(document.createElement("br"));
        td.appendChild(document.createElement("br"));
        tr.appendChild(td);
        tbody.appendChild(tr);
    }

    table.appendChild(tbody);
    div.appendChild(table);

    return div;
}

function createGameLinks(contestO)
{
    if (contestO.links == null)
        return null;
    var divArray = new Array();
    var div = document.createElement("div");
    div.className = "cnngreylnks";

    if (contestO.links.recapInd == "T" && contestO.isFinal)
    {
        if (VIEWCAST_ACTIVE && contestO.stageID != '0')
        {
            var a = document.createElement("a");
            a.href = "/football/nfl/scoreboards/" + contestO.gameDateUrl + "/" + contestO.contestID + "_viewcast_recap.html";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" RECAP"));
            div.appendChild(a);
        }
        else
        {
            var a = document.createElement("a");
            a.href = "/football/nfl/recaps/" + contestO.gameDateUrl + "/" + contestO.contestID + "_recap.html";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" RECAP"));
            div.appendChild(a);
        }
    }
    //if (contestO.links.boxscoreInd == "T" && contestO.isPregame == false)
    if (contestO.isPregame == false)
    {
        if (contestO.isFinal)
        {
            if (VIEWCAST_ACTIVE)
            {
                var a = document.createElement("a");
                a.href = "/football/nfl/scoreboards/" + contestO.gameDateUrl + "/" + contestO.contestID + "_viewcast.html";
                a.className = "viewcast";
                a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"greyarrow"));
                a.appendChild(document.createTextNode(" BOX SCORE"));
                div.appendChild(a);
            }
            else
            {
                var a = document.createElement("a");
                a.href = "/football/nfl/boxscores/" + contestO.gameDateUrl + "/" + contestO.contestID + "_boxscore.html";
                a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
                a.appendChild(document.createTextNode(" BOX SCORE"));
                div.appendChild(a);
            }
        }
        else
        {
            if (VIEWCAST_ACTIVE)
            {
                var a = document.createElement("a");
                a.href = "/football/nfl/scoreboards/" + contestO.gameDateUrl + "/" + contestO.contestID + "_viewcast.html";
                a.className = "viewcast";
                a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"greyarrow"));
                a.appendChild(document.createTextNode(" VIEWCAST BOX SCORE"));
                div.appendChild(a);
            }
            else
            {
                var a = document.createElement("a");
                a.href = "/football/nfl/boxscores/" + contestO.gameDateUrl + "/" + contestO.contestID + "_boxscore.html";
                a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
                a.appendChild(document.createTextNode(" BOX SCORE"));
                div.appendChild(a);
            }
        }
    }
    if (contestO.isFinal || contestO.isInprogress)
    {
        if (VIEWCAST_ACTIVE  && contestO.stageID != '0')
        {
            var a = document.createElement("a");
            a.href = "/football/nfl/viewcast/photo_html/" + contestO.vendorContestID + "/" + contestO.vendorContestID + "_gamephoto.html";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" PHOTOS"));
            div.appendChild(a);
        }
    }
    else
    {
        if (VIEWCAST_ACTIVE)
        {
            var a = document.createElement("a");
            a.href = "/football/nfl/scoreboards/" + contestO.gameDateUrl + "/" + contestO.contestID + "_viewcast_preview.html";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" PREVIEW"));
            div.appendChild(a);
        }
        else
        {
            if (contestO.links.previewInd == "T")
            {
                var a = document.createElement("a");
                a.href = "/football/nfl/previews/" + contestO.gameDateUrl + "/" + contestO.contestID + "_preview.html";
                a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
                a.appendChild(document.createTextNode(" PREVIEW"));
                div.appendChild(a);

            }
        }
        if (VIEWCAST_ACTIVE && contestO.stageID == '1')
        {
            var a = document.createElement("a");
            a.href = "http://fannation.com/fantasy/projections?period=" + 
                     contestO.weekNum + "&projection=" + contestO.visitingTeam.nickname.toLowerCase() + "." + 
                     contestO.homeTeam.nickname.toLowerCase() + "&season=" + contestO.seasonYear;
            a.target = "_new";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" PROJECTIONS"));
            div.appendChild(a);
        }
    }
    divArray[0] = div;

    div = document.createElement("div");        
    div.className = "cnngreylnks";

    if (contestO.isPregame)
    {
        var a = document.createElement("a");
        a.href = "/football/nfl/teams/" + contestO.visitingTeam.urlName + "/";
        a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
        a.appendChild(document.createTextNode(" MORE " + (contestO.visitingTeam.nickname).toUpperCase()));
        div.appendChild(a);

        a = document.createElement("a");
        a.href = "/football/nfl/teams/" + contestO.homeTeam.urlName + "/";
        a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
        a.appendChild(document.createTextNode(" MORE " + (contestO.homeTeam.nickname).toUpperCase()));
        div.appendChild(a);
    }
    else
    {
        if (VIEWCAST_ACTIVE)
        {
            var a = document.createElement("a");
            a.href = "/football/nfl/scoreboards/" + contestO.gameDateUrl + "/" + contestO.contestID + "_gameblog.html";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" GAME BLOG"));
            div.appendChild(a);
         }
         if (VIEWCAST_ACTIVE)
         {
            var a = document.createElement("a");
            a.href = "/football/nfl/scoreboards/" + contestO.gameDateUrl + "/" + contestO.contestID + "_fancomment.html";
            a.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/arrow_transp.gif","7","6","0","",null,"whitearrow"));
            a.appendChild(document.createTextNode(" FAN COMMENTS"));
            div.appendChild(a);
        }
    }
    divArray[1] = div;
    
    return divArray;
}


function createTeamCell(teamO)
{
    var tTd = document.createElement("td");
    tTd.className = "lefttalign";
    
    var linkTo = "/football/nfl/teams/" + teamO.urlName ;
    var teamLogo = createImageElement(IMG_SERVER + TRACKER_IMAGES +
        teamO.urlName + "_r_40.jpg", "40", "40", "0", teamO.name + " " + teamO.nickname, "left","cnnhlmt");
    tTd.appendChild(createLinkElement(teamLogo, linkTo, null, true));
    
    var tempE = document.createElement("div");
    tempE.className = "cnnteamftr";
    tempE.appendChild(createLinkElement((String)(teamO.nickname).toUpperCase(), linkTo,null,false));
    tTd.appendChild(tempE);
    tempE.appendChild(document.createElement("br"));
    var tempS = document.createElement("span");
    tempS.appendChild(document.createTextNode(createTeamRecord(teamO.wins, teamO.losses,teamO.ties, true)));
    tempE.appendChild(tempS);
    tTd.appendChild(tempE);
    
    return tTd;
}

function createPregameTable(contestO)
{
    var tElem = document.createElement("table");
    tElem.setAttribute("width","258");
    var tbody = document.createElement("tbody");
    var tRow = document.createElement("tr");
    
    // visiting team
    tRow.appendChild(createTeamCell(contestO.visitingTeam));
    
    // venue
    tTd = document.createElement("td");
    tTd.className = "rightalign";
    if (contestO.venue != null)
    {
        tTd.appendChild(document.createTextNode(contestO.venue.stadium));
        if (contestO.venue.city != "" && contestO.venue.state != "")
        {
            tTd.appendChild(document.createElement("br"));
            tTd.appendChild(document.createTextNode(contestO.venue.city + ", " + contestO.venue.state));
        }
    }
    tRow.appendChild(tTd);
    
    tbody.appendChild(tRow);
    
    tRow = document.createElement("tr");
    
    // home team
    tRow.appendChild(createTeamCell(contestO.homeTeam));
    
    // weather
    tTd = document.createElement("td");
    tTd.setAttribute("align","right");
    //tTd.setAttribute("width","105");
    
    if (contestO.weather != null)
    {
        tempE = document.createElement("div");
        tempE.className = "weather";
        iD = document.createElement("div");
        iD.className = "forecast";

        iD.appendChild(createLinkElement(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/kickoff_95x13.gif", "13","95","0","Get detailed forecast for this city",null,null), "http://weather.cnn.com/weather/forecast.jsp?zipCode="+contestO.weather.zipCode,"_new",true));
        //iD.appendChild(createLinkElement(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/kickoff_forcast_133x13.gif", "13","133","0","Get detailed forecast for this city",null,null), "http://weather.cnn.com/weather/forecast.jsp?zipCode="+contestO.weather.zipCode,"_new",true));
        
        tempE.appendChild(iD);
    
        iD = document.createElement("div");
    
        var img = createImageElement(WEATHER_IMAGES + contestO.weather.weatherCode + ".gif", "17", "21", "0", "", null,"cnnweathicn");
        img.setAttribute("vAlign", "middle");
        iD.appendChild(createLinkElement(img, "http://weather.cnn.com/weather/forecast.jsp?zipCode="+contestO.weather.zipCode,"_new",true));
    
        iD.appendChild(document.createTextNode(contestO.weather.forecast + " "  + contestO.weather.temperature + "°"));
        tempE.appendChild(iD);
        tTd.appendChild(tempE);
    }

    tRow.appendChild(tTd);
    tbody.appendChild(tRow);

    tElem.appendChild(tbody); 
    tRow = null;
    tempE = null;
    tTd = null;
    
    return tElem;
}

function createTeamStats (contestO)
{
    var pElem = document.createElement("div");
    pElem.className = "teamstats";

    if (contestO.homeTeam.hasStats || contestO.visitingTeam.hasStats)
    {
        var tempT = document.createElement("table");
        var tempB = document.createElement("tbody");
        var tempR, tempTd;

        tempR = document.createElement("tr");
        tempR.className = "tablehead";
        tempTd = document.createElement("td");
        tempR.appendChild(tempTd);

        tempTd = document.createElement("td");
        var b = document.createElement("b");
        b.appendChild(document.createTextNode("Scored/Game"));
        tempTd.appendChild(b);
        tempR.appendChild(tempTd);

        tempTd = document.createElement("td");
        b = document.createElement("b");
        b.appendChild(document.createTextNode("Allowed/Game"));
        tempTd.appendChild(b);
        tempR.appendChild(tempTd);

        tempB.appendChild(tempR);

        tempTd =  null;
        tempR = null;
        b = null;

        if (contestO.visitingTeam.hasStats)
            tempB.appendChild(createTeamStatsRow(contestO.visitingTeam));

        if (contestO.homeTeam.hasStats)
            tempB.appendChild(createTeamStatsRow(contestO.homeTeam));

        tempT.appendChild(tempB);
        tempB = null;

        pElem.appendChild(tempT);
        pElem.appendChild(document.createElement("br"));
        tempT = null;
     }

     if (contestO.lastGame != null)
     {
        var b = document.createElement("b");
        b.appendChild(document.createTextNode("Last Meeting: "));

        pElem.appendChild(b);

        pElem.appendChild(document.createTextNode(contestO.lastGame.dateStr));
        pElem.appendChild(document.createElement("br"));
        var tempD = document.createElement("div");
        tempD.className = "cnnindent";
        if (parseInt(contestO.lastGame.homeScore) > parseInt(contestO.lastGame.visitorScore))
            tempD.appendChild(document.createTextNode(contestO.lastGame.homeName + " " + contestO.lastGame.homeScore +
                          ", " + contestO.lastGame.visitorName + " " + contestO.lastGame.visitorScore));
        else
            tempD.appendChild(document.createTextNode(contestO.lastGame.visitorName + " " + contestO.lastGame.visitorScore +
                          ", " + contestO.lastGame.homeName + " " + contestO.lastGame.homeScore));
        pElem.appendChild(tempD);
         
    } 
    else
    {
        pElem.appendChild(document.createElement("br"));
        pElem.appendChild(document.createElement("br"));
    }

    if (contestO.homeTeam.hasStats == false)
        pElem.appendChild(document.createElement("br"));
        pElem.appendChild(document.createElement("br"));
    if (contestO.visitingTeam.hasStats == false)
        pElem.appendChild(document.createElement("br"));
        pElem.appendChild(document.createElement("br"));
        
    return pElem;
}

function createTeamStatsRow(teamO)
{
    var tempR = document.createElement("tr");
    var tempTd = document.createElement("td");

    tempTd.className = "cnnteamname";
    tempB = document.createElement("b");

    tempB.appendChild(document.createTextNode((String)(teamO.abrv).toUpperCase()));
    tempTd.appendChild(tempB);

    tempR.appendChild(tempTd);

    tempTd = document.createElement("td");
    tempTd.className = "cnncntr";
    tempTd.appendChild(document.createTextNode(teamO.ptsPerGame));
    tempR.appendChild(tempTd);

    tempTd = document.createElement("td");
    tempTd.className = "cnncntr";
    tempTd.appendChild(document.createTextNode(teamO.ptsAllowedPerGame));
    tempR.appendChild(tempTd);

    tempTd = null;
    tempB = null;

    return tempR;
}
    

function createPregameHeader(contestO)
{
    var pElem = document.createElement("div");
    pElem.className =  "gamedate";

    var iD = document.createElement("div");
       
    var t = document.createElement("table");

    t.setAttribute("cellpadding","0");
    t.setAttribute("cellspacing","0");
    t.setAttribute("border","0");

    var tB = document.createElement("tbody");
    var r = document.createElement("tr");
    var td = document.createElement("td");

    td.className = "lefttalign";
    var bT = document.createElement("b");
    bT.appendChild(document.createTextNode(contestO.gameDateStr));
    if (contestO.gameDateStr.indexOf("TBD") == -1)
        bT.appendChild(document.createTextNode(" ET"));
    td.appendChild(bT);
    bT = null;
    r.appendChild(td);
 
    td = document.createElement("td");
    td.className = "rightalign";

    var searchString = contestO.homeTeam.name.toLowerCase() + "-" + contestO.homeTeam.nickname.toLowerCase();
    searchString = searchString.replace(/ /g,"-");
    searchString = searchString.replace(/\./g,"");

    var ticketLink = createLinkElement(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/buytickets_99x14.gif", "14","99","0","StubHub: Buy Tickets Now", null,null),
    "http://www.stubhub.com/" + searchString + "-tickets/","_new",true);
    ticketLink.setAttribute("onclick","this.href=this.href+'?gcid=C12289x400'");
    
    td.appendChild(ticketLink);
    r.appendChild(td);

    ticketLink = null;
    td = null;

    tB.appendChild(r);
    r = null;
    t.appendChild(tB);
    tB = null;

    iD.appendChild(t);
    t = null;

    pElem.appendChild(iD);

    return pElem;
}


function createPicks(contestO)
{
    var pElem = null;
    var tempElem;
    var outerDiv;
    var innerDiv;
    var tempT, tempR, tempTd, tempB;
    
    if (contestO.picks != null)
    {
        pElem = document.createElement("div");
        pElem.className = "cnnbluebox";
        pElem.id = "cnnNoBtn";
        
        outerDiv = document.createElement("div");
        outerDiv.className = "left";        
        outerDiv.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/left_bg_nobtn.gif", "50","8","0","",null,null));
        pElem.appendChild(outerDiv);
        outerDiv = null;
        
        outerDiv = document.createElement("div");
        outerDiv.className = "inside";
        
        // peter king's pick row
        innerDiv = document.createElement("div");
        innerDiv.className = "cnnkingpick";
        
        tempT = document.createElement("table");
        tempT.setAttribute("align","center");
        tempB = document.createElement("tbody");
        tempR = document.createElement("tr");
        tempTd = document.createElement("td");
        
        tempTd.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/pk's_pick_116x15.gif", "15","116","0","",null,null));
        tempR.appendChild(tempTd);
        
        tempTd = null;
    
        tempTd = document.createElement("td");
         
         var teamLink = null;
         var teamName = null;
         if (contestO.picks.pickInd == "H")
         {
             teamLink = contestO.homeTeam.urlName;
             teamName = contestO.homeTeam.nickname.toUpperCase();
         }
         else 
         {
             teamLink = contestO.visitingTeam.urlName;
             teamName = contestO.visitingTeam.nickname.toUpperCase();
         }
             
         if (teamLink != null)
         {
             tempTd.appendChild(
             createLinkElement(teamName,"/football/nfl/teams/" + teamLink + "/",
             null,false));
         }
         else
         {    
             tempTd.createTextNode(teamName);
         }
         tempR.appendChild(tempTd);
         tempElem = null;
         tempTd = null;
         tempB.appendChild(tempR);
         tempT.appendChild(tempB);
         innerDiv.appendChild(tempT);
         tempR = null;
         tempB = null;
         tempT = null;
         outerDiv.appendChild(innerDiv);
         innerDiv = null;
         
         // consensus row
        innerDiv = document.createElement("div");
        innerDiv.className = "cnnconsensus";
        
        tempT = document.createElement("table");
        tempB = document.createElement("tbody");

        tempT.setAttribute("align","center");
        tempR = document.createElement("tr");
        tempTd = document.createElement("td");
        
        tempTd.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/consensus_76x15.gif", "15","76","0","",null,null));
        tempR.appendChild(tempTd);
       
        tempElem = null;
        tempTd = null;
   
        tempTd = document.createElement("td");
        
        teamLink = null;
        teamName = null;
        if (contestO.picks.consensusInd == "H")
        {
            teamLink = contestO.homeTeam.urlName;
            teamName = contestO.homeTeam.nickname.toUpperCase();
        }
        else 
        {
            teamLink = contestO.visitingTeam.urlName;
            teamName = contestO.visitingTeam.nickname.toUpperCase();
        }
            
        if (teamLink != null)
        {
            tempTd.appendChild(createLinkElement(teamName,"/football/nfl/teams/" + teamLink + "/",
            null,false));
            tempTd.appendChild(document.createTextNode(" (" + contestO.picks.percentage + "%)"));
        }
        else
        {    
            tempTd.appendChild(document.createTextNode(teamName + " (" + contestO.picks.percentage + "%)"));
        }
        tempR.appendChild(tempTd);
        tempElem = null;
        tempTd = null;
        tempB.appendChild(tempR);
        tempT.appendChild(tempB);
        innerDiv.appendChild(tempT);
        tempR = null;
        tempB = null;
        tempT = null;
        outerDiv.appendChild(innerDiv);
        innerDiv = null;
         
        pElem.appendChild(outerDiv);
        outerDiv = null;
         
        outerDiv = document.createElement("div");
        outerDiv.className = "right";
        outerDiv.appendChild(createImageElement(IMG_SERVER + IMG_PATH + "/scoreboards/right_bg_nobtn.gif", "50","8","0","",null,null));
        tempElem = null;
        pElem.appendChild(outerDiv);
        outerDiv = null;        
    }
    return pElem;
}


function getNumFullRows(numGames)
{    
    // this value is a UI design constant, and will not change often
    var gamesPerRow = GAMES_IN_ROW;
    var numFullRows;

    // The simple division will return a floating point value (ex: 3.1, if there are 10 games).
    // We have to use the floor() function to pull out the integer part of that number.  The 
    // round() function will not give us what we want - we always want to round down.
    //
    numFullRows = Math.floor(numGames / gamesPerRow);
    return numFullRows;
}

function getNumGamesOnPartialRow(numGames)
{
    // this value is a UI design constant, and will not change often
        var gamesPerRow = GAMES_IN_ROW;
    
        return (numGames % gamesPerRow);
}    
    
function buildViewCastGameAnchorCells(numGames)
{
    var mainAnchorElement;
    var mainDiv;
    var containerDiv;
    
	mainAnchorElement = document.getElementById("topGames");
	mainAnchorElement.innerHTML = "";

	mainDiv = document.createElement("div");
	mainDiv.id = "cnnGamesScoresContent";
	mainDiv.className = "cnnGameScores";
	
	containerDiv = document.createElement("div");
	containerDiv.id = "cnnGameHolder";

	mainDiv.appendChild(containerDiv);
	var maxGames = 16;

	if (numGames <= 0)
	{
		////log.write("Error: buildAnchorTables() function... invalid paramater value passed");
		return;
	} 
	
	var ul = document.createElement("ul");
	ul.id = "cnnGameScoresNFL";
	var li = null;
	containerDiv.appendChild(ul);

	for (var count = 0; count < maxGames; count++)
	{
		li = document.createElement("li");
		li.id = count+1;
		li.className = "cnnEmptyGame";
		ul.appendChild(li);

		containerDiv.appendChild(ul);
	   // wrap up the row
		if (mainAnchorElement != null)
		{
			mainAnchorElement.appendChild(mainDiv);
		}
		else
		{
			alert("Can't find a place for my topScores!");
		}
	}
}

function buildViewCastMiniscoreboard(domIdSequence,contestO)
{
    var gamePlaceholder;

    gamePlaceholder = document.getElementById(domIdSequence);
    if (gamePlaceholder != null)
    {
        gamePlaceholder.innerHTML = "";
        gamePlaceholder = paintViewCastBox(contestO,gamePlaceholder);
    }
    else
    {
        //alert("Error: attempted to create a scoreBox table in a game placeholder[" + domIdSequence + "]");
    }
}



function paintViewCastBox(contestO, elem)
{
    var html = "";
    var linkViewcast = "";
    if (contestO.links.recapInd == "T" && contestO.isFinal)
        linkViewcast = "/football/nfl/gameflash/" + contestO.gameDateUrl + "/" + contestO.contestID + "_recap.html";
    //else if (contestO.links.boxscoreInd == "T")
    else if (contestO.isPregame == false)
        linkViewcast = "/football/nfl/gameflash/" + contestO.gameDateUrl + "/" + contestO.contestID + "_boxscore.html";
    else
        linkViewcast = "/football/nfl/gameflash/" + contestO.gameDateUrl + "/" + contestO.contestID + "_preview.html";

    html = html + "<a href=\"" + linkViewcast + "\">";
    
    html = html +  "<div>";

	//visitor
	var teamO = contestO.visitingTeam;
	html = html +  "<strong>";
	if (contestO.isPregame)
	html = html +  "<strong> </strong>";
	else
	html = html +  "<strong>" + teamO.totalScore + "</strong>";
	html += "<span>" + teamO.abrv.toUpperCase() + "</span>";
	html = html +  "</strong>";
	
	//home
	var teamO = contestO.homeTeam;
	html = html +  "<strong>";
	if (contestO.isPregame)
	html = html +  "<strong> </strong>";
	else
	html = html +  "<strong>" + teamO.totalScore + "</strong>";
	html += "<span>" + teamO.abrv.toUpperCase() + "</span>";
	html = html +  "</strong>";

	html += "<div>";
	if (contestO.isPregame || contestO.gameState.isHalftime || contestO.isFinal)
	{
		
		var status;
		if (contestO.statusInd == "FINA")
		{
		   status = "FINAL";
		   if (contestO.gameState.period == "5" || contestO.gameState.period == "6")
			   status = status + "-OT";
		}
		else if (contestO.statusInd == "DELA")
		   status = "DELAYED";
		else if (contestO.statusInd == "POST")
		   status = "POSTPONED";
		else if (contestO.statusInd == "CANC")
		   status = "CANCELLED";
		else if (contestO.statusInd == "SUSP")
		   status = "SUSPENDED";
		else if (contestO.gameState.isHalftime)
		   status = "HALFTIME";
		else
		{
		   //status = contestO.gameDateStr;
		   // Chopping off the long weekday Thursday->Thu.
		   var splitDate = contestO.gameDateStr.split(",");
		   var shortWeekDay = splitDate[0].substring(0,3);
		   var gameTime = splitDate[1].split(" ")[1];
		   status = shortWeekDay + " " + gameTime;

		}
		html = html +  status;
	}
    else
    {
        
        var period;
        if (contestO.gameState.period == "1")
             period = "1st";
        else if (contestO.gameState.period == "2")
             period = "2nd";
        else if (contestO.gameState.period == "3")
             period = "3rd";
        else if (contestO.gameState.period == "4")
             period = "4th";
        else if (contestO.gameState.period == "5" || contestO.gameState.period == "6")
             period = "OT";
        html = html +  period;
        if (contestO.gameState.clock != "")
        {
            html += " | " + contestO.gameState.clock;
        }
    }
    html = html +  "</div></div></a>";
    elem.className = "cnnGameScoresNFL";
    elem.innerHTML = html;
    return elem;
}

