﻿function getLineScores()
{
    var gg = GAMEDATES.gamedates;
    var date;
    
    date = gg[DATE_INDEX].date;
    
    getGames(date);
    return;
    
    queueRequest('../../data/GetLineScores.aspx?gamedate='+date, 'updateLineScores');
}

function getGames(date)
{
    gE('ifrGames').src = 'ScheduleGames.aspx?gamedate=' + date;
}

function getDateIndex(date)
{
    var gg = GAMEDATES.gamedates;
    var count = gg.length;
    
    for (var i=0; i<count; i++)
    {
        if (gg[i].date == date)
        {
            DATE_INDEX = i;
            break;
        }
    }
    
    positionPicker(false);
}

function getPlayoffLineScores(series)
{
    var rdm = Math.random();
    
    queueRequest('../../data/GetLineScores.aspx?series='+series+'&rdm='+rdm, 'updatePlayoffLineScores');
    //queueRequest('data/GetLineScores.aspx?series='+series, 'updatePlayoffLineScores');
}

function generateLineScores(isPlayoffs)
{
    var html = '';
    var bb = LINESCORES.linescores;
    var count = bb.length;
    var visitorArray;
    var homeArray;
    var visitorTeam;
    var homeTeam;
    var v1 = '';
    var v2 = '';
    var v3 = '';
    var v4 = '';
    var v5 = '';
    var v6 = '';
    var v7 = '';
    var v8 = '';
    var v9 = '';
    var v10 = '';
    var v11 = '';
    var v12 = '';
    var v13 = '';
    var vR = '';
    var vH = '';
    var vE = '';
    var h1 = '';
    var h2 = '';
    var h3 = '';
    var h4 = '';
    var h5 = '';
    var h6 = '';
    var h7 = '';
    var h8 = '';
    var h9 = '';
    var h10 = '';
    var h11 = '';
    var h12 = '';
    var h13 = '';
    var hR = '';
    var hH = '';
    var hE = '';
    var gameSheet = '';
    var gameOver = false;
    var isPostponed;
    var rescheduledDate;
    var rescheduledTime;
    var gameDate;
    
    var dateArray;
    var date;
    var month;
    var day;
    var monthArray = new Array(12);
    var gameYear;
    
    var dateIndex;
    
    monthArray[0]="Jan"
    monthArray[1]="Feb"
    monthArray[2]="Mar"
    monthArray[3]="Apr"
    monthArray[4]="May"
    monthArray[5]="June"
    monthArray[6]="July"
    monthArray[7]="Aug"
    monthArray[8]="Sept"
    monthArray[9]="Oct"
    monthArray[10]="Nov"
    monthArray[11]="Dec"
    
    // display the playoff series
    if (isPlayoffs)
        html += '<div class="series">Series&nbsp;-&nbsp;' + SERIES + '</div>';

    for (var i=0; i<count; i++)
    {
        gameOver = false;
        
        // postponed game data        
        isPostponed = (bb[i].ispostponed.toLowerCase() == 'true');
        rescheduledDate = bb[i].rescheduleddate;
        rescheduledTime = bb[i].rescheduledtime;

        // get linescore values
        if ((bb[i].visitorscores.length > 0 && !isPostponed) ||
             (bb[i].visitorscores.length > 0 && isPlayoffs))
        {
            gameOver = true;
            
            visitorArray = bb[i].visitorscores.split(',');
            homeArray = bb[i].homescores.split(',');
            
            v1 = visitorArray[0];
            v2 = visitorArray[1];
            v3 = visitorArray[2];
            v4 = visitorArray[3];
            v5 = visitorArray[4];
            v6 = visitorArray[5];
            v7 = visitorArray[6];
            v8 = visitorArray[7];
            v9 = visitorArray[8];
            v10 = visitorArray[9];
            v11 = visitorArray[10];
            v12 = visitorArray[11];
            v13 = visitorArray[12];
            vR = visitorArray[13];
            vH = visitorArray[14];
            vE = visitorArray[15];

            h1 = homeArray[0];
            h2 = homeArray[1];
            h3 = homeArray[2];
            h4 = homeArray[3];
            h5 = homeArray[4];
            h6 = homeArray[5];
            h7 = homeArray[6];
            h8 = homeArray[7];
            h9 = homeArray[8];
            h10 = homeArray[9];
            h11 = homeArray[10];
            h12 = homeArray[11];
            h13 = homeArray[12];
            hR = homeArray[13];
            hH = homeArray[14];
            hE = homeArray[15];
        }
        else
        {
            v1 = '';
            v2 = '';
            v3 = '';
            v4 = '';
            v5 = '';
            v6 = '';
            v7 = '';
            v8 = '';
            v9 = '';
            v10 = '';
            v11 = '';
            v12 = '';
            v13 = '';
            vR = '';
            vH = '';
            vE = '';
            h1 = '';
            h2 = '';
            h3 = '';
            h4 = '';
            h5 = '';
            h6 = '';
            h7 = '';
            h8 = '';
            h9 = '';
            h10 = '';
            h11 = '';
            h12 = '';
            h13 = '';
            hR = '';
            hH = '';
            hE = '';
        }
        
        // display game number
        gameNumber = bb[i].gamenumber;
        
        // game date
        gameDate = bb[i].gamedate;
        
        // display game time
        gameTime = bb[i].gametime;

        // game year
        gameYear = gameDate.substring(gameDate.length - 4);
        
        // get team names
        visitorTeam = getTeamLink(bb[i].visitorteam);
        homeTeam = getTeamLink(bb[i].hometeam);
        
        // get game sheet
        gameSheet = bb[i].gamesheet;
        
        // game number
        html += '<div class="bs_gamenumber left tal">Game #' + gameNumber + '</div>';
        
        if (isPostponed)
            html += '<div class="bs_postponed left tal">&nbsp;POSTPONED</div>';
        else if (gameTime.indexOf(':') > 0)
        {
            html += '<div class="bs_gametime left tal">';
            
            if (isPlayoffs)
            {
                dateArray = gameDate.split('/');
                date = new Date(rescheduledDate);
                month = monthArray[dateArray[0]-1];
                day = dateArray[1];

                html += "&nbsp;" + month + "&nbsp;" + day;
            }

            html += '&nbsp;-&nbsp;' + gameTime + 'pm';
            
            if (gameOver)
                html += ' (Final)';
            
            html += '</div>';
        }
        html += '<div class="cL"></div>';

        // open the container
        html += '<div class="bs_container left">';
        
        // build the header
        html += '<div class="bs_spacer left"></div>';
        html += '<div class="bs_header left tac">1</div>';
        html += '<div class="bs_header left tac">2</div>';
        html += '<div class="bs_header left tac">3</div>';
        html += '<div class="bs_header left tac">4</div>';
        html += '<div class="bs_header left tac">5</div>';
        html += '<div class="bs_header left tac">6</div>';
        html += '<div class="bs_header left tac">7</div>';
        html += '<div class="bs_header left tac">8</div>';
        html += '<div class="bs_header left tac">9</div>';
        html += '<div class="bs_header left tac">10</div>';
        html += '<div class="bs_header left tac">11</div>';
        html += '<div class="bs_header left tac">12</div>';
        html += '<div class="bs_header left tac">13</div>';
        html += '<div class="bs_header left tac">R</div>';
        html += '<div class="bs_header left tac">H</div>';
        html += '<div class="bs_header left tac">E</div>';
        html += '<div class="cL"></div>';
        
        // divider
        html += '<div class="bs_divider_dark"></div>';
        
        // build visitor
        html += '<div class="bs_team left tal">' + visitorTeam + '</div>';
        html += '<div class="bs_inning left tac">' + v1 + '</div>';
        html += '<div class="bs_inning left tac">' + v2 + '</div>';
        html += '<div class="bs_inning left tac">' + v3 + '</div>';
        html += '<div class="bs_inning left tac">' + v4 + '</div>';
        html += '<div class="bs_inning left tac">' + v5 + '</div>';
        html += '<div class="bs_inning left tac">' + v6 + '</div>';
        html += '<div class="bs_inning left tac">' + v7 + '</div>';
        html += '<div class="bs_inning left tac">' + v8 + '</div>';
        html += '<div class="bs_inning left tac">' + v9 + '</div>';
        html += '<div class="bs_inning left tac">' + v10 + '</div>';
        html += '<div class="bs_inning left tac">' + v11 + '</div>';
        html += '<div class="bs_inning left tac">' + v12 + '</div>';
        html += '<div class="bs_inning left tac">' + v13 + '</div>';
        html += '<div class="bs_runs left tac">' + vR + '</div>';
        html += '<div class="bs_hits left tac">' + vH + '</div>';
        html += '<div class="bs_errors left tac">' + vE + '</div>';
        html += '<div class="cL"></div>';
        
        // divider
        html += '<div class="bs_divider_light"></div>';

        // build home
        html += '<div class="bs_team left tal">' + homeTeam + '</div>';
        html += '<div class="bs_inning left tac">' + h1 + '</div>';
        html += '<div class="bs_inning left tac">' + h2 + '</div>';
        html += '<div class="bs_inning left tac">' + h3 + '</div>';
        html += '<div class="bs_inning left tac">' + h4 + '</div>';
        html += '<div class="bs_inning left tac">' + h5 + '</div>';
        html += '<div class="bs_inning left tac">' + h6 + '</div>';
        html += '<div class="bs_inning left tac">' + h7 + '</div>';
        html += '<div class="bs_inning left tac">' + h8 + '</div>';
        html += '<div class="bs_inning left tac">' + h9 + '</div>';
        html += '<div class="bs_inning left tac">' + h10 + '</div>';
        html += '<div class="bs_inning left tac">' + h11 + '</div>';
        html += '<div class="bs_inning left tac">' + h12 + '</div>';
        html += '<div class="bs_inning left tac">' + h13 + '</div>';
        html += '<div class="bs_runs left tac">' + hR + '</div>';
        html += '<div class="bs_hits left tac">' + hH + '</div>';
        html += '<div class="bs_errors left tac">' + hE + '</div>';
        html += '<div class="cL"></div>';
        
        // divider
        html += '<div class="bs_divider_dark"></div>';

        // footer
        html += '<div class="bs_footer">';
        
        if (isPostponed)
        {
            if (rescheduledDate.length == 0)
            {
                html += '<div class="bs_rescheduleddate left tal">';
                html += 'Rescheduled to:&nbsp;TBA';
                html += '</div>';
            }
            else
            {
                if (isPlayoffs)
                {
                    // open div
                    html += '<div class="bs_rescheduleddate left tal">';
                    
                    html += 'Rescheduled to:&nbsp;';

                    dateArray = rescheduledDate.split('/');
                    date = new Date(rescheduledDate);
                    month = monthArray[dateArray[0]-1];
                    day = dateArray[1];

                    html += month + "&nbsp;" + day;
                    html += '&nbsp;';
                    html += rescheduledTime;
                    html += 'pm';
                    
                    // close div
                    html += '</div>';
                }
                else
                {
                    var gg = GAMEDATES.gamedates;
                    
                    for (var j=0; j<gg.length; j++)
                    {
                        if (rescheduledDate == gg[j].date)
                        {
                            dateIndex = j;
                            break;
                        }
                    }
                    
                    html += '<a class="bs_rescheduleddate left tal" ';
                    html += 'href="javascript:DATE_INDEX='+dateIndex+';positionPicker(true);">'
                    html += 'Rescheduled to:&nbsp;';

                    dateArray = rescheduledDate.split('/');
                    date = new Date(rescheduledDate);
                    month = monthArray[dateArray[0]-1];
                    day = dateArray[1];

                    html += month + "&nbsp;" + day;
                    html += '&nbsp;';
                    html += rescheduledTime;
                    html += 'pm';
                    html += '</a>';
                }
            }
        }
        
        // display Rescheduled Date link (regular season)
        if (gameDate.length > 0 && !isPlayoffs)
        {
            dateArray = gameDate.split('/');
            date = new Date(gameDate);
            month = monthArray[dateArray[0]-1];
            day = dateArray[1];

            html += '<div class="bs_rescheduleddate left tal">';
            html += 'Rescheduled from:&nbsp;' + month + "&nbsp;" + day;
            html += '</div>';
        }
        
//        // display Rescheduled Date (post season)
//        if (rescheduledDate.length > 0 && isPlayoffs)
//        {
//            dateArray = gameDate.split('/');
//            date = new Date(gameDate);
//            month = monthArray[dateArray[0]-1];
//            day = dateArray[1];

//            html += '<div class="bs_rescheduleddate left tal">';
//            html += 'Rescheduled from:&nbsp;' + month + "&nbsp;" + day;
//            html += '</div>';
//        }

        // enable Game Sheet link if available
        if (gameSheet.length > 0)
        {
            html += '<a href="http://www.theibl.ca/gamesheets/' + gameYear + '/' + gameSheet + '" target="_blank">';
            html += '<img src="../../images/pdf-game_36.gif" border="0" class="right">';
            html += '</a>';
        }
        else
            html += '<img src="../../images/pdf-nogame_36.gif" border="0" class="right">';

        html += '<img class="right" src="../../images/game_sheet.gif">';
        html += '</div>';
        
        // close container
        html += '</div>';
        html += '<div class="cL"></div>';
    }    
    
    wH('lineScores', html);
    
    setIframeHeight();
}

function getDayOfWeek(day,month,year) {
    var a = Math.floor((14 - month)/12);
    var y = year - a;
    var m = month + 12*a - 2;
    var d = (day + y + Math.floor(y/4) - Math.floor(y/100) +
             Math.floor(y/400) + Math.floor((31*m)/12)) % 7;
    return d;
}

function updateDatePicker()
{
    var html = '';
    var gg = GAMEDATES.gamedates;
    var count = gg.length;
    var dateArray;
    var dayOfWeek, month, day;
    var monthArray = new Array(12);
    var width = 64*count;
    var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
    var currentDate;

    monthArray[0]="Jan"
    monthArray[1]="Feb"
    monthArray[2]="Mar"
    monthArray[3]="Apr"
    monthArray[4]="May"
    monthArray[5]="June"
    monthArray[6]="July"
    monthArray[7]="Aug"
    monthArray[8]="Sept"
    monthArray[9]="Oct"
    monthArray[10]="Nov"
    monthArray[11]="Dec"
    
    html += '<table width="'+width+'" cellpadding="0" cellspacing="0" id="bs_datepicker_container" class="rel">';
    html += '<tr>';
    html += '<td><div class="bs_datepicker_cell tac">&nbsp;</div></td>';
    html += '<td><div class="bs_datepicker_cell tac">&nbsp;</div></td>';
    
    for (var i=0; i<count; i++)
    {
//        if (gg[i].date != currentDate)
//        {
            currentDate = gg[i].date;
            dateArray = currentDate.split('/');
            date = new Date(currentDate);
            dayOfWeek = days[date.getDay()];
            //dayOfWeek = days[getDayOfWeek(dateArray[1],dateArray[0],dateArray[2])];
            month = monthArray[dateArray[0]-1];
            day = dateArray[1];
            
            html += '<td>';
            html += '<div class="bs_datepicker_cell tac" ';
    //        html += 'onmouseover="dC(true);" '
    //        html += 'onmouseout="dC(false);" '
    //        html += 'onclick="updateDateIndex('+i+');"';
            html += '>';
            html += '<div class="dayofweek">';
            html += dayOfWeek;
            html += '</div>';
    //        html += '<br>';
            html += month;
    //        html += '<br>';
            html += ' ';
            html += day;
            html += '</div>';
            html += '</td>';
//        }
    }
    
    html += '<td><div class="bs_datepicker_cell tac">&nbsp;</div></td>';
    html += '<td><div class="bs_datepicker_cell tac">&nbsp;</div></td>';
    html += '</tr>';
    html += '</table>';
    
    wH('bs_dates', html);
    positionPicker(true);
}

function positionPicker(doLineScores)
{
    sL(gE('bs_datepicker_container'), 0-(DATE_INDEX*64));
    
    if (doLineScores)
        getLineScores();
}

function selectDate(inc)
{
    updateDateIndex(DATE_INDEX+inc);
}

function updateDateIndex(index)
{
    var diff;
    
    if (index < DATE_INDEX)
    {
        diff = DATE_INDEX-index;
        moveRight(diff);
    }
    else if (index > DATE_INDEX)
    {
        diff = index-DATE_INDEX;
        moveLeft(diff);
    }
    else
        return;
}

function moveLeft(inc)
{
    var left = gL(gE('bs_datepicker_container'));
    var gg = GAMEDATES.gamedates;
    var count = inc*8+1;
    
    if (DATE_INDEX == gg.length-1)
        return;
    
    DATE_INDEX += inc;
    
    for (var i=1; i<count; i++)
    {
        setTimeout('sL(gE("bs_datepicker_container"), '+(left-(i*8))+')', 50*i);
    }
    
    setTimeout('getLineScores()', i*50);
}

function moveRight(inc)
{
    var left = gL(gE('bs_datepicker_container'));
    var count = inc*8+1;
    
    if (DATE_INDEX == 0)
        return;

    DATE_INDEX -= inc;
    
    for (var i=1; i<count; i++)
    {
        setTimeout('sL(gE("bs_datepicker_container"), '+(left+(i*8))+')', 50*i);
    }
    
    setTimeout('getLineScores()', i*50);
}

function getTeamLink(team)
{
    var html = '';
    var link;
    
    switch(team.toLowerCase())
    {
        case 'barrie':
            link = 'http://www.barriebaycats.com/';
            break;
        case 'brantford':
            link = 'http://www.brantfordredsox.ca/';
            break;
        case 'guelph':
            link = 'http://www.guelphroyals.com/';
            break;
        case 'hamilton':
            link = 'http://www.hamiltonthunderbirds.org/';
            break;
        case 'kitchener':
            link = 'http://www.panthersbaseball.com/';
            break;
        case 'london':
            link = 'http://www.londonmajors.com/';
            break;
        case 'oshawa':
            link = 'http://www.oshawadodgers.net';
            break;
        case 'stratford':
            link = 'http://www.stratfordnationals.com';
            break;
        case 'toronto':
            link = 'http://www.leafsbaseball.com';
            break;
    }
    
    html += '<a href="';
    html += link;
    html += '" ';
    html += ' target="_blank">';
    html += '<img src="../../images/';
    html += team;
    html += '.gif" border="0">';
    html += '</a>';

    return html;    
}