﻿if (!MKW) {
    MKW = {};
}

MKW.Standing = {
    HOME_COLOR: "#d9e9bf",
    AWAY_COLOR: "#e8b9b9",
    HIGH_COLOR: "#e7e77f",
    //    STATUSCOLORS : ['#000066', '#0000aa', '#0066ff', '#ffff00', '#44ff44','#ff4444', '#000066', '#0000aa', '#0000', '#0000aa', '#0000aa', '#0000aa', '#0000aa'],
    aTeams: { names: {}, flags: {}, countries: {}, positions: {} },
    oMatchStatus: { 2: 'İY', 4: 'MS', 6: 'U', 8: 'PEN', 9: 'ERT', 10: 'Hük', 11: 'YrdK' },
    oStatus: null,
    isExchange: false,
    getStanding: function(id) {
        var url = APP_ROOT + '/AjaxHandlers/StandingHandler.ashx?op=standingData&id=' + id;
        var callback = new AjaxCallback(function(response) { MKW.Standing.getStandingCompleted(response) });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    getStandingCompleted: function(response) {
        data = eval("(" + response.responseText + ")");
        var standing = data.s;
        if (standing[0] && standing[0].length > 2) {
            this.writeStanding(standing);
        }
        if (data.d && data.d.length > 0) {
            this.oStatus = data.d;
            this.writeStatus(this.oStatus);
        }
    },
    initByLeague: function(id) {
        this.aStandingDivs = document.getElementById("dvNationalBody").getElementsByTagName("div");
        this.oSeason.initByLeague(id);
        var url = APP_ROOT + '/AjaxHandlers/StandingHandler.ashx?op=pageData&league=' + id;
        var callback = new AjaxCallback(function(response) { MKW.Standing.initCompleted(response) });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    init: function(id, a) {
        this.aStandingDivs = document.getElementById("dvNationalBody").getElementsByTagName("div");
        this.oSeason = new MKW.Season('seasonCombo');

        if (!a) {
            var oStanding = this;
            this.oSeason.init(id, function() { oStanding.getSeasonData(this.value) });
        }

        var url = APP_ROOT + '/AjaxHandlers/StandingHandler.ashx?op=pageData&id=' + id + '&tz=' + MKW.TimeZone.selectedTZ;
        var callback = new AjaxCallback(function(response) { MKW.Standing.initCompleted(response) });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    getSeasonData: function(seasonId) {
        this.oSeason.iSeasonId = seasonId;
        var url = APP_ROOT + '/AjaxHandlers/StandingHandler.ashx?op=pageData&id=' + seasonId;
        var callback = new AjaxCallback(function(response) { MKW.Standing.initCompleted(response) });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    initCompleted: function(response) {
        data = eval("(" + response.responseText + ")");
        this.getTeams(data.s);
        //SEASON_ID = data.id;

        if (data.s[0] && data.s[0].length > 2) {
            this.writeStanding(data.s);
        }
        if (data.d && data.d.length > 0) {
            this.oStatus = data.d;
            this.writeStatus(this.oStatus);
        }
        if (data.f && data.f.length > 0) {
            this.writeFixture(data.f);
        } else {
            document.getElementById('dvFixture').innerHTML = '';
        }
        if (data.r && data.r.length > 0) {
            this.writeResults(data.r);
        } else {
            document.getElementById('dvResult').innerHTML = '';
        }
        if (data.i && data.i.length > 0) {
            this.writeRules(data.i);
        }
        if (data.d && data.d.length > 0) {
            this.writeLegend(data.d);
        }
    },
    getTeams: function(data) {
        for (var i = 0; i < data.length; i++) {
            this.aTeams.names[data[i][0]] = data[i][1];
            this.aTeams.positions[data[i][0]] = i + 1;
            if (data[i][18] && data[i][18] != '') {
                this.aTeams.flags[data[i][0]] = data[i][18];
            }
            if (data[i][19]) {
                this.aTeams.countries[data[i][0]] = data[i][19];
            }
        }
    },
    writeRules: function(data) {
        document.getElementById("tdRules").innerHTML = data;
    },
    writeLegend: function(data) {
        var header = '<table width="394" border="0" align="center" cellpadding="0" cellspacing="0">'
        var rowFormat = '<tr><td width="46" class="status{1}" style="border:1px solid #888888">&nbsp;</td><td width="384" class="Content_tahoma">&nbsp;{0}</td></tr>';
        var footer = '</table>';

        var sbStanding = new StringBuilder();

        sbStanding.append(header);
        for (var i = 0; i < data.length; i++) {
            sbStanding.appendFormat(rowFormat, data[i][1], data[i][0]);
        }
        sbStanding.append(footer);
        document.getElementById("tdLegend").innerHTML = sbStanding;
    },
    writeStanding: function(data) {
        var header = '<table width="100%" cellpadding=1 cellspacing=0 border=0 style="border:1px solid #cccccc;" id="tblStanding">';
        var firstRow = '<tr class="puan_header"><td colspan=2 rowspan=2 style="padding-left:10px"><b>{0}</b></td><td colspan=9 align=center>{1}</td><td rowspan=40 bgcolor="#DAE4E5" style="background-image:none;"> </td><td colspan=8 align=center>{2}</td><td rowspan=40 bgcolor="#DAE4E5" style="background-image:none;"> </td><td colspan=8 align=center>{3}</td></tr><tr align=center class="puan_header bg2"><td width="19" height="17">{4}</td><td width="19">{5}</td><td width="19">{6}</td><td width="19">{7}</td><td width="19">{8}</td><td width="19">{9}</td><td width="44">{10}</td><td>&nbsp;</td><td width="32">{11}</td><td width="19">{4}</td><td width="19">{5}</td><td width="12">{6}</td><td width="16">{7}</td><td width="19">{8}</td><td width="19">{9}</td><td width="44">{10}</td><td width="32">{11}</td><td width="19">{4}</td><td width="18">{5}</td><td width="21">{6}</td><td width="17">{7}</td><td width="21">{8}</td><td width="25">{9}</td><td width="40">{10}</td><td width="30">{11}</td></tr>';
        var rowFormat = '<tr class="alt{27} puan_row" align=right><td width="34">{0}</td><td width="150" align=left nowrap><a href="javascript:popTeam({1});" class="style3">{29} {2}</a></td><td>{3}</td><td>{4}</td><td>{5}</td><td>{6}</td><td>{7}</td><td>{8}</td><td><b>{9}</b></td><td style="color:red" nowrap>{28}</td><td>{10}</td><td>{11}</td><td>{12}</td><td>{13}</td><td>{14}</td><td>{15}</td><td>{16}</td><td><b>{17}</b></td><td>{18}</td><td>{19}</td><td>{20}</td><td>{21}</td><td>{22}</td><td>{23}</td><td>{24}</td><td><b>{25}</b></td><td>{26}</td></tr>';

        var sbStanding = new StringBuilder();
        sbStanding.append(header);

        sbStanding.appendFormat(firstRow, standingMessages["Team"].toUpperCase(), standingMessages["Standing.Overall"], standingMessages["Standing.Home"], standingMessages["Standing.Away"], standingMessages["Standing.P"], standingMessages["Standing.W"], standingMessages["Standing.D"], standingMessages["Standing.L"], standingMessages["Standing.GF"], standingMessages["Standing.GA"], standingMessages["Standing.Pts"], standingMessages["Standing.Diff"]);
        var region = 1;
        var rownum = 0;

        for (var i = 0; i < data.length; i++) {
            var team = data[i];
            var flag = '';

            if (team[16]) {
                if (team[16] != region) {
                    sbStanding.append('<tr style="background-color:#dae4e5"><td colspan=30>&nbsp;</td></tr>')
                    rownum = 0;
                    region = team[16];
                }
            }
            var average = team[10] + team[11] - team[12] - team[13];
            var homeAverage = team[10] - team[12];
            var awayAverage = team[11] - team[13];
            if (average > 0) average = "+" + average;
            if (homeAverage > 0) homeAverage = "+" + homeAverage;
            if (awayAverage > 0) awayAverage = "+" + awayAverage;
            if (team[18] && team[18] != '') {
                flag = "<img src='" + IMG_PATH + "/flags/" + team[18] + ".gif' title='" + team[19] + "'>";
            }
            rownum++;
            sbStanding.appendFormat(rowFormat, rownum, team[0], team[1],
                team[2] + team[3], team[4] + team[5], team[6] + team[7], team[8] + team[9], team[10] + team[11], team[12] + team[13], team[14] + team[15] + team[17], average,
                team[2], team[4], team[6], team[8], team[10], team[12], team[14], homeAverage,
                team[3], team[5], team[7], team[9], team[11], team[13], team[15], awayAverage, i % 2 + 1, team[17] == 0 ? '&nbsp;' : team[17], flag);
        }

        sbStanding.append('</table>');

        var standingDiv = document.getElementById('dvStanding')
        if (standingDiv) {
            standingDiv.innerHTML = sbStanding;
            var rows = standingDiv.firstChild.rows;

            for (var i = 0, j = 2; i < data.length; i++, j++) {
                if (rows[j].cells.length == 1) {
                    i--;
                    continue;
                }
                rows[j].team = data[i][0];
                YAHOO.util.Event.addListener(rows[j], "mouseover", standingOver);
                YAHOO.util.Event.addListener(rows[j], "mouseout", standingOut);
            }
        }
    },
    writeFixture: function(data) {
        var header = '<table width="100%" cellspacing=0 cellpadding=1 border=1 style="border-collapse:collapse;border-color:#cccccc;" id="tblFixture">';
        var headerRow = '<tr class="data_header" height=18 align=center><td colspan=6>{0}</td></tr>';
        var columns = '<colgroup><col width=20 /><col width=20 /><col width=120 /><col width=20 /><col width=120 /><col width=15 /></colgroup>';
        var rowFormat = '<tr class="alt{0}"><td>{1}</td><td>{2}</td><td align=right nowrap><a href="javascript:popTeam({3})">{5}</a></td><td align=center><a href="javascript:popMatch({7})"><b>v</b></a></td><td align=left nowrap><a href="javascript:popTeam({4})">{6}</a></td><td align=right><a href="javascript:popComparison({7});"><img src="' + ICON_PATH + 'compare.gif" /></a></td></tr>';

        var sbFixture = new StringBuilder();
        sbFixture.append(header);
        sbFixture.append(columns);
        sbFixture.appendFormat(headerRow, MKW.Message.messages["Fixture"].toUpperCase());
        for (var i = 0; i < data.length; i++) {
            var fixture = data[i];
            sbFixture.appendFormat(rowFormat, i % 2 + 1, fixture[1], fixture[2], fixture[3], fixture[4],
                this.aTeams.names[fixture[3]], this.aTeams.names[fixture[4]], fixture[0]);
        }
        sbFixture.append('</table>');
        document.getElementById('dvFixture').innerHTML = sbFixture;
        var rows = document.getElementById('dvFixture').firstChild.rows;
        for (var i = 0; i < data.length; i++) {
            var fixture = data[i];
            rows[i + 1].team1 = fixture[3];
            rows[i + 1].team2 = fixture[4];
            YAHOO.util.Event.addListener(rows[i + 1], "mouseover", fixtureOver);
            YAHOO.util.Event.addListener(rows[i + 1], "mouseout", fixtureOut);
        }
    },
    writeResults: function(data) {
        var header = '<table width="100%" cellspacing=0 cellpadding=1 border=1 style="border-collapse:collapse;border-color:#cccccc;" id="tblResult">';
        var headerRow = '<tr class="data_header" height=18 align=center><td colspan=7>{0}</td><td>{1}</td></tr>';
        var columns = '<colgroup><col width=25 /><col width=10 /><col width=120 /><col width=8 /><col width=40 /><col width=8 /><col width=120 /><col width=40 /></colgroup>';
        var rowFormat = '<tr class="alt{14}"><td>{0}</td><td>{18}</td><td align=right><a href="javascript:popTeam({16});">{1}</a></td><td>{19}</td><td align=center><b><a href="javascript:popMatch({15});">{3}</a></b></td><td align=right>{20}</td><td><a href="javascript:popTeam({17});">{4}</a></td><td align=center>{2}</td></tr>';

        var sbResult = new StringBuilder();
        sbResult.append(header);
        sbResult.append(columns);
        sbResult.appendFormat(headerRow, MKW.Message.messages["Results"].toUpperCase(), MKW.Message.messages["HT"]);
        for (var i = 0; i < data.length; i++) {
            var result = data[i];
            var matchScore;
            var matchStatus = result[2];
            var fHScore = result[7];
            var isFinished = false;

            if (result[8] == 4 || result[8] == 6 || result[8] == 8 || result[8] == 10) {
                isFinished = true;
            }
            if (result[8] == 0) {
                matchScore = "v";
            } else if (result[8] == 9) {
                matchScore = "P - P";
                fHScore = "P - P";
            } else if (isFinished) {
                matchScore = result[5] + " - " + result[6];
            } else {
                matchScore = "<span style='display:block;color:#dd0000'>" + result[5] + " - " + result[6] + "</span>";
                matchStatus = "<span style='display:block;color:#dd0000'>" + result[2] + "'</span>";
            }

            if (result[8] == 0 || result[8] == 1) {
                fHScore = " - ";
            }
            var redCard1 = "&nbsp;"
            if (result[9] && result[9] > 0) {
                redCard1 = '<img src="' + ICON_PATH + 'kk-' + result[9] + '.gif">';
            }
            var redCard2 = "&nbsp;"
            if (result[10] && result[10] > 0) {
                redCard2 = '<img src="' + ICON_PATH + 'kk-' + result[10] + '.gif">';
            }
            var rowFormat = '<tr class="alt{5}"><td>{0}</td><td>{9}</td><td align=right><a href="javascript:popTeam({7});">{1}</a></td><td>{10}</td><td align=center><b><a href="javascript:popMatch({6});">{3}</a></b></td><td align=right>{11}</td><td><a href="javascript:popTeam({8});">{4}</a></td><td align=center>{2}</td></tr>';

            //18
            sbResult.appendFormat(rowFormat, result[1], this.aTeams.names[result[3]], result[7], matchScore,
            this.aTeams.names[result[4]], i % 2 + 1, result[0], result[3], result[4], matchStatus, redCard1, redCard2);
        }
        sbResult.append('</table>');
        document.getElementById('dvResult').innerHTML = sbResult;

        var rows = document.getElementById('dvResult').firstChild.rows;

        for (var i = 0; i < data.length; i++) {
            var odds = data[i];

            rows[i + 1].team1 = odds[3];
            rows[i + 1].team2 = odds[4];
            YAHOO.util.Event.addListener(rows[i + 1], "mouseover", resultOver);
            YAHOO.util.Event.addListener(rows[i + 1], "mouseout", resultOut);
        }
    },
    writeStatus: function(data) {
        if (document.getElementById('dvStanding')) {
            var rows = document.getElementById('dvStanding').firstChild.rows;

            if (rows) {
                for (var i = 0; i < data.length; i++) {
                    for (var j = 0; j < data[i][3]; j++) {
                        var cell = rows[j + data[i][2] + 1].cells[0];
                        cell.title = data[i][1];
                        //cell.style.backgroundColor = STATUSCOLORS[data[i][0]-1];
                        cell.className = "status" + data[i][0];
                    }
                }
            }
        }
    },
    checkLiveMatches: function(seasonId) {
        var url = APP_ROOT + '/AjaxHandlers/StandingHandler.ashx?op=checkLive&id=' + seasonId;
        var callback = new AjaxCallback(function(response) { MKW.Standing.checkLiveMatchesCompleted(response) });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    checkLiveMatchesCompleted: function(response) {
        eval(response.responseText)
    },
    onTimeZoneChanged: function(type, args, me) {
        document.location.reload();
    }
};

function standingOver(e) {
    this.style.backgroundColor = MKW.Standing.HIGH_COLOR;
    selectFixture(this.team);
    selectResult(this.team);
}

function standingOut(e) {
    this.style.backgroundColor = "";
    deSelectFixture(this.team);
    deSelectResult(this.team);
}

function fixtureOver(e) {
    this.style.backgroundColor = MKW.Standing.HIGH_COLOR;
    selectTableRows(this.team1, this.team2, MKW.Standing.aStandingDivs[iActiveTabOrder]);
    selectResult(this.team1, MKW.Standing.HOME_COLOR);
    selectResult(this.team2, MKW.Standing.AWAY_COLOR);
}

function fixtureOut(e) {
    this.style.backgroundColor = "";
    deSelectTableRows(this.team1, this.team2, MKW.Standing.aStandingDivs[iActiveTabOrder]);
    deSelectResult(this.team1);
    deSelectResult(this.team2);
}
function resultOver(e) {
    this.style.backgroundColor = MKW.Standing.HIGH_COLOR;
    selectTableRows(this.team1, this.team2, MKW.Standing.aStandingDivs[iActiveTabOrder]);
    selectFixture(this.team1, MKW.Standing.HOME_COLOR);
    selectFixture(this.team2, MKW.Standing.AWAY_COLOR);
}

function highlight(obj) {
    if (obj.style.backgroundColor == "") {
        obj.style.backgroundColor = MKW.Standing.HIGH_COLOR;
    } else {
        obj.style.backgroundColor = "";
    }
}
function resultOut(e) {
    this.style.backgroundColor = "";
    deSelectTableRows(this.team1, this.team2, MKW.Standing.aStandingDivs[iActiveTabOrder]);
    deSelectFixture(this.team1);
    deSelectFixture(this.team2);
}

function selectTableRows(team1, team2, element) {
    if (!element) {
        return;
    }
    var tblFirstChild = element.getElementsByTagName("table")[0];
    var rows = tblFirstChild.rows;
    for (var i = 2; i < rows.length; i++) {
        if (rows[i].team == team1) {
            selectRow(rows[i], MKW.Standing.HOME_COLOR);
        }
        if (rows[i].team == team2) {
            selectRow(rows[i], MKW.Standing.AWAY_COLOR);
        }
    }
}
function deSelectTableRows(team1, team2, element) {
    if (!element) {
        return;
    }
    var tblFirstChild = element.getElementsByTagName("table")[0];
    var rows = tblFirstChild.rows;
    for (var i = 2; i < rows.length; i++) {
        if (rows[i].team == team1 || rows[i].team == team2) {
            deSelectRow(rows[i]);
        }
    }
}

function selectFixture(team, color) {
    if (document.getElementById('tblFixture')) {
        var rows = document.getElementById('tblFixture').rows;
        if (!color) color = MKW.Standing.HOME_COLOR;
        for (var i = 1; i < rows.length; i++) {
            if (rows[i].team1 == team || rows[i].team2 == team) {
                selectRow(rows[i], color);
                break;
            }
        }
    }
}

function selectResult(team, color) {
    if (document.getElementById('tblResult')) {
        var rows = document.getElementById('tblResult').rows;
        if (!color) color = MKW.Standing.AWAY_COLOR;
        for (var i = 1; i < rows.length; i++) {
            if (rows[i].team1 == team || rows[i].team2 == team) {
                selectRow(rows[i], color);
                break;
            }
        }
    }
}

function deSelectFixture(team) {
    if (document.getElementById('tblFixture')) {
        var rows = document.getElementById('tblFixture').rows;
        for (var i = 1; i < rows.length; i++) {
            if (rows[i].team1 == team || rows[i].team2 == team) {
                deSelectRow(rows[i]);
                break;
            }
        }
    }
}

function deSelectResult(team) {
    if (document.getElementById('tblResult')) {
        var rows = document.getElementById('tblResult').rows;
        for (var i = 1; i < rows.length; i++) {
            if (rows[i].team1 == team || rows[i].team2 == team) {
                deSelectRow(rows[i]);
                break;
            }
        }
    }
}

function selectRow(row, color) {
    row.style.backgroundColor = color;
}
function deSelectRow(row) {
    row.style.backgroundColor = '';
}
