// utils.js

// default value is false, because it's for scoreboard. Viecast page will override it
var isViewcast = false;
/////////////////////////////////
// MAP
/////////////////////////////////
var METADATA = true;
var DEBUG = false;
var INTERVAL = 10000;
var VIEWCAST_PATH = null;

var VIEWCAST_ACTIVE = true;

// keep cookie for ~8-1/2 months of season.
var COOKIE_LIFE = 1000 * 60 * 60 * 24 * 250;

var TIMESTAMP = 0;
var SETINTERVAL = 1;
var DATA_INDEX = 1;

var FEED_ROW_DELIMITER = "\n";
var TOP_LEVEL_DELIMITER = "|";
var SECOND_LEVEL_DELIMITER = ";";
var THIRD_LEVEL_DELIMITER = "#";
var FOURTH_LEVEL_DELIMITER = "$";

var IMG_SERVER = "http://i.cdn.turner.com/si";
var IMG_PATH = "/.e1d/img/3.0/sect/hockey/nhl";
var LOGO_PATH = "/.e1d/img/3.0/sect/hockey/nhl/logos/";

var GAMES_IN_ROW = 2;

// top-level game fields
var CONTEST_ID = 0;
var STATSINC_CONTEST_ID = 1;
var SEASON_YEAR = 2;
var STAGE_ID = 3;
var SUBSTAGE_ID = 4;
var STATUS = 5;
var DATE_URL = 6;
var DATE_STR = 7;
var GAMESTATE = 8;
var VENUE = 9;
var LINKS = 10;
var HOME_TEAM = 11;
var VSTR_TEAM = 12;

// 2nd-level status
var GAME_ORDER = 0;
var CLOCK = 1;
var PERIOD = 2;
var ACTIVE = 3;

// 2nd-level venue
var STADIUM = 0;
var CITY = 1;
var STATE = 2;

// 2nd-level links
var PREVIEW = 0;
var BOXSCORE = 1;
var RECAP = 2;

// 2nd-level team info
var TEAM_ID = 0;
var VENDOR_ID = 1;
var TEAM_NAME = 2;
var TEAM_NICKNAME = 3;
var TEAM_ABRV = 4;
var TEAM_URL = 5;
var TOTAL_SCORE = 6;
var WINS = 7;
var LOSSES = 8;
var TIES = 9;
var PTSLDR = 10;
var GOALSLDR = 11;
var ASSTLDR = 12;
var GAALDR = 13;
var SCORING_SUMMARY = 14;

// 3rd-level leader info
var LDR_ID = 0;
var LDR_NM = 1;
var LDR_LINK = 2;
var LDR_POS = 3;
var LDR_STAT = 4;

// 3rd/4th level scoring summary
var SCORE_PERIOD = 0;
var SCORE_PLAYER_ID = 1;
var SCORE_PLAYER_LASTNAME = 2;
var SCORE_PLAYER_LINKABLE = 3;
var SCORE_PLAYER_GOALS = 4;

/*    Debug Log Class
 *         Started with the example at this URL:  http://ajaxcookbook.org/javascript-debug-log/
 *         But this example needed many enhancements to get it to work properly.  I ended 
 *         up encapsulating the log in its own class.
*/
function logClass() {

    this.logWindow = null;
    
    this.create = function() {
        if (DEBUG) {
            this.logWindow = window.open("", null, "width=400,height=400," +
                                      "scrollbars=yes,resizable=yes,status=no," +
                                      "location=no,menubar=no,toolbar=no");
            if (!this.logWindow)
                return;
            
            this.logWindow.document.write("<html><head><title>Debug Log</title></head><body></body></html>");
            this.logWindow.document.close();
        }
        else
            return;
    }
    
    this.write = function(text) {
        
        var newDiv;
        var newTextLine;
    
        if (DEBUG) {
            if (this.logWindow != null && !this.logWindow.closed) {
                newDiv = this.logWindow.document.createElement("div");
                newTextLine = this.logWindow.document.createTextNode(text);
                newDiv.appendChild(newTextLine);
            
                this.logWindow.document.body.appendChild(newDiv);
            }
        }
        else
            return;
    }      
}


function trimString(str) {

    if (str != null && str.length > 0) {
        str = str.replace( /^\s+/g, "" );            // strip leading
        return str.replace( /\s+$/g, "" );            // strip trailing
    }
    
    return new String("");
}


function isNumber(strData) {
    var dataAsNumber;
    
    if (strData.length == 0)
        return false;
    
    // fastest way to convert to a number type
    dataAsNumber = (+strData);

    if ((isNaN(dataAsNumber) == false) && dataAsNumber >= 0 ) {
        return true;
    }
    return false;
}

function createImageElement(src,height,width,border,alt,alignment,myClass) {
    var iElem = document.createElement("img");
    iElem.setAttribute("src", src);
    iElem.setAttribute("height", height);
    iElem.setAttribute("witdh", width);
    iElem.setAttribute("border", border);
    if (alignment != null && ! alignment == "")
        iElem.setAttribute("align", alignment);
    iElem.alt = alt;
    if (myClass != null && ! myClass == "")
        iElem.className = myClass;
    
    return iElem;
}

function setMyAttribute(myName, myValue) {
    var tempA = document.createAttribute(myName);
    tempA.value = myValue;
    return tempA;
}

function createTeamRecord(wins,losses,ties,isInParenthesis,stageId) {
        var w = parseInt(wins), l = parseInt(losses), t = parseInt(ties), stage = parseInt(stageId);
        var record;
    if (stage == 2) {
      l=l+t;
      record = (w >= 0 ? w : 0) + "-" + (l >= 0 ? l : 0);
    }
    else {
      record = (w >= 0 ? w : 0) + "-" + (l >= 0 ? l : 0) + "-" + (t >= 0 ? t : 0);
    }
    
        if (isInParenthesis)
                record = "(" + record + ")";
    return record;
}
function createLinkElement(linkWhat, linkWhere, target, isImage, className) {
    var linkElem = null;

    if (linkWhere == null || linkWhere == "") {
       if (isImage)
    return linkWhat;
       else
        return document.createTextNode(linkWhat);
    }
    else {
        linkElem = document.createElement("a");
        linkElem.href = linkWhere;
        if (target != null && !target == "")
            linkElem.target = target;
        if (isImage)
            linkElem.appendChild(linkWhat);
        else
            linkElem.appendChild(document.createTextNode(linkWhat));

        if (className != null)
            linkElem.className = className;
            
        return linkElem;
    }
}

function ordinalize(number) {
    var i = parseInt(number);
    if (i) {
        var o = i;
        switch (i % 10) {
            case 1:
                o += "st";
                break;
            case 2:
                o += "nd";
                break;
            case 3:
                o += "rd";
                break;
            default:
                o += "th";
        }
        return o;
    } else {
        return number;
    }
}

