﻿// JScript File
var PlayerCategoryID = -1;
var OrderBy = 'points';
var OrderDirection = 1;
var StartDate = 'null'
var EndDate = 'null';
var SeasonID = -1;
var PlayerID = -1;

var TeamID = -1;
var Year = -1;
var Month = -1;

function GetPlayerScores()
{
    sndReq('/XML/Cricket/getPlayerSummary.aspx?PlayerID=' + PlayerID + 
                                             '&SeasonID=' + SeasonID + 
                                             '&StartDate=' + StartDate + 
                                             '&EndDate=' + EndDate);
    //SetTableLoading('tblFixtures');
}

var milSuff = ' mil';
var thouSuff = ' k';

function formatMoney(val)
{
    val = val*1;
    var ret = '£' + val.toFixed(2);
    var thous = (val/1000);
    var mils = (val/1000000);
    if (thous > 1) ret = '£' + thous.toFixed(2) + thouSuff;
    if (mils > 0.5) ret = '£' + mils.toFixed(2) + milSuff;
    return ret;
}

function getMoneyValue(txt)
{
    if (txt.substr(0,1) == '£')
        txt = txt.substr(1);
    var ret = 0;
    if (txt.substr(txt.length-milSuff.length) == milSuff)
    {
        txt = txt.substr(0, txt.length-milSuff.length);
        ret = txt*1000000;
    }
    else if (txt.substr(txt.length-thouSuff.length) == thouSuff)
    {
        txt = txt.substr(0, txt.length-thouSuff.length);
        ret = txt*1000;
    }
    else
        ret = txt*1;
    
    return ret;
}

function insertNumberOrZero(clid, attid, node)
{
    var val = node.getAttribute(attid);
    if (!val) val = '0';
    document.getElementById(clid).innerHTML = val;
}

function LoadPlayerSummary(doc)
{
    //alert(doc);
    var xml = GetXMLObject(doc).childNodes[0];
    insertNumberOrZero('clMatches', 'Matches', xml);
    insertNumberOrZero('clInnings', 'Innings', xml);
    insertNumberOrZero('clNotouts', 'NotOuts', xml);
    insertNumberOrZero('clDucks', 'Ducks', xml);
    insertNumberOrZero('clRuns', 'BattingRuns', xml);
    insertNumberOrZero('clWickets', 'Wickets', xml);
    insertNumberOrZero('clCatches', 'Catches', xml);
    insertNumberOrZero('clRunOuts', 'Runouts', xml);
    insertNumberOrZero('clStumpings', 'Stumpings', xml);
    insertNumberOrZero('clBowlingPens', 'BowlingPenalties', xml);
    insertNumberOrZero('clPoints', 'Points', xml);
    
    StartDate = xml.getAttribute('SD');
    EndDate = xml.getAttribute('ED');
    SeasonID = xml.getAttribute('SeasonID');
    
    filters = xml.childNodes;
    var cl = document.getElementById('clTimeFilters');  
    var f = '';
    if (FilterMode == 'drop')
        f = '<select onchange="ChangeFilterValue(\'summaryfilter\', this.value, \'GetPlayerScores();\');">';
        
    var filtersep = ', &nbsp; ';
    for (var i=0; i<filters.length; i++)
    {
        var sd = filters[i].getAttribute('SD');
        var ed = filters[i].getAttribute('ED');
        var sid = filters[i].getAttribute('SeasonID');
        
        //alert('sd=' + sd + '  startdate=' + StartDate);
        //alert('ed=' + ed + '  enddate=' + EndDate);
        //alert('sid=' + sid + '  seasonid=' + SeasonID);
        if ((SeasonID == sid) && (StartDate == sd) && (EndDate == ed))
        {
            if (FilterMode == 'drop')
                f += '<option value="" selected="selected">' + getInnerText(filters[i]) + '</option>'
            else
                f += getInnerText(filters[i]) + filtersep;
            //alert('selected');
        }
        else
        {
            if (FilterMode == 'drop')
                f += '<option value="' + sd + '|' + ed + '|' + sid + '" >' + getInnerText(filters[i]) + '</option>'
            else
                f += '<a href="javascript:ChangeFilterValue(\'summaryfilter\', \'' + sd + '|' + ed + '|' + sid + '\', \'GetPlayerScores();\')">' + getInnerText(filters[i]) + '</a>' + filtersep;
        }
    } 
    if (FilterMode == 'drop')
    {
        f += '</select>';
    }
    else
    {
        if (f.substr(f.length-filtersep.length) == filtersep) f = f.substr(0, f.length-filtersep.length);
    }
    cl.innerHTML = f;
}

function GetFixtures()
{
    sndReq('/XML/Cricket/getFixtures.aspx?TeamID=' + TeamID +  
                                        '&Year=' + Year +
                                        '&Month=' + Month);
    SetTableLoading('tblFixtures', 9);
}

function SetTableLoading(id, cols)
{
    if (!cols) cols = 3
    var tbl = document.getElementById(id);
    
    while (tbl.rows.length > 1)
        tbl.deleteRow(tbl.rows.length-1);
    var rw = tbl.insertRow(tbl.rows.length);
    var cl = rw.insertCell(0);
    cl.colSpan = cols;
    cl.style.width='100%';
    cl.innerHTML = '<img src="' + jsImagePath + 'loading.gif">';
    cl.style.textAlign = 'center';
    cl.style.paddingTop = '20px';
}

function LoadFixtures(doc)
{
    var xml = GetXMLObject(doc).childNodes[0];
    
    var filters = xml.childNodes[0].childNodes;
    var fixtures = xml.childNodes[1].childNodes;
    
    var teams = filters[0].childNodes;
    var years = filters[1].childNodes;
    var months = filters[2].childNodes;
    BuildFilter('clFilterTeams', 'team',  teams)
    BuildFilter('clFilterYears', 'year',  years)
    BuildFilter('clFilterMonths', 'month',  months)
    
    var tbl = document.getElementById('tblFixtures');
    
    while (tbl.rows.length > 1)
        tbl.deleteRow(tbl.rows.length-1);
        
    var RunMonth = '';
    
    var rw, cl;
    
    var rwstyle = 0
    var isFirst = true;
    for (var i=0; i<fixtures.length; i++)
    {
        var ID = fixtures[i].getAttribute('ID');
        var Month = fixtures[i].getAttribute('Month');
        var Date = fixtures[i].getAttribute('Date');
        var Opposition = fixtures[i].getAttribute('Opposition');
        var Time = fixtures[i].getAttribute('Time');
        var Venue = fixtures[i].getAttribute('Venue');
        var MatchType = fixtures[i].getAttribute('MatchType');
        var TeamName = fixtures[i].getAttribute('TeamName');
        var Result = fixtures[i].getAttribute('Result');
        var ThirdPartyLink = fixtures[i].getAttribute('ThirdPartyLink');
        var ReportLink = fixtures[i].getAttribute('ReportLink');
        var ReportID = fixtures[i].getAttribute('ReportID');
        
        Opposition = doReplace(Opposition, 'ampis', '&');
        
        if (Month != RunMonth)
        {
            if (!isFirst)
            {
                rw = tbl.insertRow(tbl.rows.length);
                cl = rw.insertCell(0);
                cl.colSpan = 9;
                cl.style.paddingTop = '3px';
                cl.innerHTML = '<img style="width:726px; height:1px" src="' + jsImagePath + 'Content/line.png">';
            }
            rw = tbl.insertRow(tbl.rows.length);
            cl = rw.insertCell(0);
            cl.colSpan = 9;
            cl.innerHTML = Month;
            cl.className = 'FixturesMonthCell'
            RunMonth = Month;
        }
        
        rw = tbl.insertRow(tbl.rows.length);
        if (rwstyle == 1)
        {
            rw.className = 'FixtureRowAlt';
            rwstyle = 0;
        }
        else
        {
            rw.className = 'FixtureRow';
            rwstyle = 1;
        }
        
        isFirst = false;
        if (Result == 'Abandoned') Result = 'Abnd';
        if (Result == 'Losing Draw') Result = 'LD';
        if (Result == 'Winning Draw') Result = 'WD';
        if (Result == 'Incomplete') Result = 'Inc';
        cl = rw.insertCell(0);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '42px';
        cl.innerHTML = Date;
        cl = rw.insertCell(1);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '58px';
        cl.style.textAlign = 'center';
        cl.innerHTML = Time;
        cl = rw.insertCell(2);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '126px';
        cl.innerHTML = TeamName;
        cl = rw.insertCell(3);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '137px';
        cl.innerHTML = Opposition;
        cl = rw.insertCell(4);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '84px';
        cl.innerHTML = MatchType;
        cl = rw.insertCell(5);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '78px';
        cl.innerHTML = Venue;
        cl = rw.insertCell(6);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '53px';
        cl.style.textAlign = 'center';
        cl.innerHTML = Result;
        cl = rw.insertCell(7);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '79px';
        cl.style.textAlign = 'center';
        if (ThirdPartyLink != '') cl.innerHTML = '<a target="_blank" href="' + ThirdPartyLink + '">View</a>';
        cl = rw.insertCell(8);
        cl.className = 'FixturesDataCell';
        //cl.style.width = '53px';
        cl.style.textAlign = 'center';
        if (ReportLink == 'true') cl.innerHTML = '<a href="/Cricket/Fixtures-Results/Report.aspx?ReportID=' + ReportID + '">View</a>';
        
    } 
    
    if (fixtures.length == 0)
    {
        rw = tbl.insertRow(tbl.rows.length);
        cl = rw.insertCell(0);
        cl.colSpan = 8;
        cl.innerHTML = 'No Matches Found';
    }
}

function BuildFilter(cl, field, nodes)
{
    var filtersep = ', &nbsp; ';
    var txt = '';
    if (FilterMode == 'drop')
        txt = '<select onchange="ChangeFilterValue(\'' + field + '\', this.value, \'GetFixtures();\');">';
    for (var i=0; i<nodes.length; i++)
    {
        if (nodes[i].getAttribute('selected') == 'true')
        {
            if (FilterMode == 'drop')
                txt += '<option selected="selected" value="' + nodes[i].getAttribute('id') + '">' + getInnerText(nodes[i]) + '</option>';
            else
                txt += getInnerText(nodes[i]) + filtersep;
        }
        else
        {
            if (FilterMode == 'drop')
                txt += '<option value="' + nodes[i].getAttribute('id') + '">' + getInnerText(nodes[i]) + '</option>';
            else
                txt += '<a href="javascript:ChangeFilterValue(\'' + field + '\', \'' + nodes[i].getAttribute('id') + '\', \'GetFixtures();\')">' + getInnerText(nodes[i]) + '</a>' + filtersep;
        }
    }
    if (FilterMode == 'drop')
        txt += '</select>';
    else
    {
        if (txt.substr(txt.length-filtersep.length) == filtersep) txt = txt.substr(0, txt.length-filtersep.length);
    }
    document.getElementById(cl).innerHTML = txt;
}

function ChangeFilterValue(fieldname, newvalue, runafter)
{
    if (fieldname == 'team')
        TeamID = newvalue;
    if (fieldname == 'year')
        Year = newvalue;
    if (fieldname == 'month')
        Month = newvalue;
    if (fieldname == 'summaryfilter')
    {
        var sp = newvalue.split('|');
        StartDate = sp[0];
        EndDate = sp[1];
        SeasonID = sp[2];
    }
        
    eval(runafter);
}

function ChangePlayerFilterValue(item, value)
{
    if (item == 'cat')
        PlayerCategoryID = value;
    if (item == 'dates')
    {
        var vals = value.split('|');
        StartDate = vals[0];
        EndDate = vals[1];
    }
    GetPlayersTable();
}

function ChangeLeagueTableFilterValue(item, value)
{
    if (item == 'dates')
    {
        var vs = value.split('|');
        StartDate = vs[0];
        EndDate = vs[1];
    }
    GetLeagueTable();
}

function ChangePlayerOrderBy(ord)
{
    if (OrderBy == ord)
        OrderDirection = -OrderDirection;
    else
    {
        OrderBy = ord;
        OrderDirection = 1;
    }
    GetPlayersTable();
}

function GetLeagueTable()
{
    sndReq('/XML/Cricket/getLeagueTable.aspx?StartDate=' + StartDate + 
                                    '&EndDate=' + EndDate);
    SetTableLoading('tblLeague', 4);

}

function GetPlayersTable()
{
    sndReq('/XML/Cricket/getPlayersList.aspx?PlayerCategoryID=' + PlayerCategoryID +
                                    '&StartDate=' + StartDate + 
                                    '&EndDate=' + EndDate +
                                    '&OrderBy=' + OrderBy +
                                    '&OrderDirection=' + OrderDirection);
    SetTableLoading('tblPlayers', 5);
                                    
}

function clearplayersortimage(id)
{
    document.getElementById(id).src = '';
    document.getElementById(id).style.display = 'none';
}

function SetPlayerOrderBy()
{
    clearplayersortimage('imgsrtsurname');
    clearplayersortimage('imgsrtpoints');
    clearplayersortimage('imgsrtvalue');
    
    var tmpOB = OrderBy;
    if (tmpOB == 'surname, firstname') tmpOB = 'surname';
    var img = jsImagePath + 'Content/arrow_down.jpg'
    if (OrderDirection < 0) img = jsImagePath + 'Content/arrow_up.jpg'
    document.getElementById('imgsrt' + tmpOB).src=img;
    document.getElementById('imgsrt' + tmpOB).style.display = 'inline';
    document.getElementById('imgsrt' + tmpOB).style.border = '0';
}

function LoadLeagueTable(doc)
{
    var xml = GetXMLObject(doc).childNodes[0];
    StartDate = xml.getAttribute('StartDate')
    EndDate = xml.getAttribute('EndDate')
    var datesfilter = xml.childNodes[0].childNodes[0].childNodes;
    var filtersep = ', &nbsp; ';
    var cs = '';
    if (FilterMode == 'drop')
        cs = '<select onchange="ChangeLeagueTableFilterValue(\'dates\', this.value)">';
    for (var i=0; i<datesfilter.length; i++)
    {
        var val = datesfilter[i].getAttribute('start')
        var val1 = datesfilter[i].getAttribute('end')
        var sel = datesfilter[i].getAttribute('selected')
        var nme = datesfilter[i].getAttribute('name')
        if (sel == 'true')
        {
            if (FilterMode == 'drop')
                cs += '<option value="' + val + '|' + val1 + '" selected="selected">' + nme + '</option>';
            else
                cs += nme;
        }
        else
        {
            if (FilterMode == 'drop')
                cs += '<option value="' + val + '|' + val1 + '">' + nme + '</option>';
            else
                cs += '<a href="javascript:ChangeLeagueTableFilterValue(\'dates\', \'' + val + '|' + val1 + '\')">' + nme + '</a>';
        }
        cs += filtersep;
    }
    if (FilterMode == 'drop')
        cs += '</select>';
    else
        cs = cs.substr(0, cs.length-filtersep.length);
    document.getElementById('clFilterDates').innerHTML = cs;
    var tbl = document.getElementById('tblLeague');
    
    while (tbl.rows.length > 1)
        tbl.deleteRow(tbl.rows.length-1);
        
    var cnt = 1;
    var rwstyle = 0
    for (var i=0; i<xml.childNodes[1].childNodes.length; i++)
    {
        var manager = xml.childNodes[1].childNodes[i].getAttribute('manager');
        var team = getInnerText(xml.childNodes[1].childNodes[i]);
        var points = xml.childNodes[1].childNodes[i].getAttribute('points');
        var paid = (xml.childNodes[1].childNodes[i].getAttribute('paid') == 'true');
        var id = xml.childNodes[1].childNodes[i].getAttribute('id');
        var rw = tbl.insertRow(tbl.rows.length);
        
        if (rwstyle == 1)
        {
            rw.className = 'FixtureRowAlt';
            rwstyle = 0;
        }
        else
        {
            rw.className = 'FixtureRow';
            rwstyle = 1;
        }
        
        team = '<a href="/Fantasy-Cricket/View-Team.aspx?FantasyTeamID=' + id + '">' + team + '</a>'
        if (!paid) team += '*';
        var cl = rw.insertCell(0);
        cl.className = 'FixturesDataCell';
        cl.innerHTML = '<b>' + cnt + '.</b>';
        cl = rw.insertCell(1);
        cl.className = 'FixturesDataCell';
        cl.innerHTML = team;
        cl = rw.insertCell(2);
        cl.className = 'FixturesDataCell';
        cl.innerHTML = manager;
        cl = rw.insertCell(3);
        cl.className = 'FixturesDataCell';
        cl.innerHTML = points;
        cnt++;
    }
}

function LoadPlayersTable(doc)
{
    var xml = GetXMLObject(doc).childNodes[0];
    
    OrderBy = xml.getAttribute('OrderBy');
    PlayerCategoryID = xml.getAttribute('PlayerCategoryID');
    OrderDirection = xml.getAttribute('OrderDirection')
    StartDate = xml.getAttribute('StartDate')
    EndDate = xml.getAttribute('EndDate')
    
    SetPlayerOrderBy();
    
    var catsfilter = xml.childNodes[0].childNodes[0].childNodes;
    var datesfilter = xml.childNodes[0].childNodes[1].childNodes;
    
    var filtersep = ', &nbsp; ';
    var cs = '';
    if (FilterMode == 'drop')
        cs += '<select onchange="ChangePlayerFilterValue(\'cat\', this.value);">';
    for (var i=0; i<catsfilter.length; i++)
    {
        var val = catsfilter[i].getAttribute('value')
        var sel = catsfilter[i].getAttribute('selected')
        var nme = catsfilter[i].getAttribute('name')
        if (sel == 'true')
        {
            if (FilterMode == 'drop')
                cs += '<option value=\"' + val + '\" selected=\"selected\">' + nme + '</option>';
            else
                cs += nme + filtersep;
        }
        else
        {
            if (FilterMode == 'drop')
                cs += '<option value=\"' + val + '\">' + nme + '</option>';
            else
                cs += '<a href="javascript:ChangePlayerFilterValue(\'cat\', \'' + val + '\')">' + nme + '</a>' + filtersep;
        }
    }
    if (FilterMode == 'drop')
        cs += '</select>';
    else
    {
        cs = cs.substr(0, cs.length-filtersep.length);
    }
    document.getElementById('clFilterPlayerType').innerHTML = cs;
    
    cs = '';
    if (FilterMode == 'drop')
        cs += '<select onchange="ChangePlayerFilterValue(\'dates\', this.value);">';

    for (var i=0; i<datesfilter.length; i++)
    {
        var val = datesfilter[i].getAttribute('start')
        var val1 = datesfilter[i].getAttribute('end')
        var sel = datesfilter[i].getAttribute('selected')
        var nme = datesfilter[i].getAttribute('name')
        if (sel == 'true')
        {
            if (FilterMode == 'drop')
                cs += '<option value=\"' +  val + '|' + val1 + '\" selected=\"selected\">' + nme + '</option>';
            else
                cs += nme + filtersep;
        }
        else
        {
            if (FilterMode == 'drop')
                cs += '<option value=\"' +  val + '|' + val1 + '\">' + nme + '</option>';
            else
                cs += '<a href="javascript:ChangePlayerFilterValue(\'dates\', \'' + val + '|' + val1 + '\')">' + nme + '</a>' + filtersep;
        }  
    }
    if (FilterMode == 'drop')
        cs += '</select>';
    else
        cs = cs.substr(0, cs.length-filtersep.length);

    document.getElementById('clFilterDates').innerHTML = cs;
    
    var tbl = document.getElementById('tblPlayers');
    
    while (tbl.rows.length > 1)
        tbl.deleteRow(tbl.rows.length-1);
        
    var cnt = 1;
    var rwstyle = 0
    for (var i=0; i<xml.childNodes[1].childNodes.length; i++)
    {
        var fname = xml.childNodes[1].childNodes[i].getAttribute('Firstname');
        var sname = xml.childNodes[1].childNodes[i].getAttribute('Surname');
        var points = xml.childNodes[1].childNodes[i].getAttribute('Points');
        var cat = xml.childNodes[1].childNodes[i].getAttribute('CategoryName');
        var value = xml.childNodes[1].childNodes[i].getAttribute('Value');
        var lnk = xml.childNodes[1].childNodes[i].getAttribute('URL'); 
        var id = xml.childNodes[1].childNodes[i].getAttribute('id');
        var rw = tbl.insertRow(tbl.rows.length);
        if (rwstyle == 1)
        {
            rw.className = 'FixtureRowAlt';
            rwstyle = 0;
        }
        else
        {
            rw.className = 'FixtureRow';
            rwstyle = 1;
        }
        var cl = rw.insertCell(0);
        cl.className = 'FixturesDataCell'
        cl.innerHTML = '<b>' + cnt + '.</b>';
        cl = rw.insertCell(1);
        cl.className = 'FixturesDataCell'
        var nme = sname + ', ' + fname;
        if ((lnk != null) && (lnk != ''))
        nme = '<a href="' + lnk + '.aspx">' + nme + '</a>';
        cl.innerHTML = nme;
        cl = rw.insertCell(2);
        cl.className = 'FixturesDataCell'
        cl.style.textAlign;
        cl.innerHTML = cat;
        cl = rw.insertCell(3);
        cl.className = 'FixturesDataCell'
        cl.style.textAlign = 'center';
        cl.innerHTML = formatMoney(value);
        cl = rw.insertCell(4);
        cl.className = 'FixturesDataCell'
        cl.style.textAlign = 'center';
        cl.innerHTML = points;
        cnt++;
    }
}