﻿if (!MKW) {
    MKW = {};
}

MKW.Statistics = {
    SEASONID: 0,
    matchStats: [
        { type: 'FT', header: 'Maç Sonucu Oranları', column: 'maç', data: null },
        { type: 'HTFT', header: 'İlk Yarı / Maç Sonucu Dağılımı', column: 'maç', data: null },
        { type: 'Score', header: 'Maç Skoru Dağılımı', column: 'maç', data: null },
        { type: 'AU', header: 'Alt / Üst Oranları', column: 'maç', data: null },
        { type: 'Int', header: 'Gollerin Zaman Aralıklarına Dağılımı', column: 'gol', data: null }
    ],
    playerStats: [
        { type: 'Goal', header: 'Gol Krallığı', column: 'gol', data: null },
        { type: 'Red', header: 'Kırmızı Kartlar', column: 'kart', data: null },
        { type: 'Yellow', header: 'Sarı Kartlar', column: 'kart', data: null },
        { type: 'App', header: 'En çok Oynayanlar', column: 'dk', data: null }
    ],
    teamStats: [
        { type: 'GoalsScored', header: 'En Çok Gol Atan Takımlar', column: 'gol', data: null },
        { type: 'GoalsConceded', header: 'En Çok Gol Yiyen Takımlar', column: 'gol', data: null },
        { type: 'Yellow', header: 'Sarı Kartlar', column: 'kart', data: null },
        { type: 'Red', header: 'Kırmızı Kartlar', column: 'kart', data: null }
    ],
    refereeStats: [
        { type: 'Match', header: 'En Çok Maç Yönetenler', column: 'maç', data: null },
        { type: 'Yellow', header: 'Sarı Kartlar', column: 'kart', data: null },
        { type: 'Red', header: 'Kırmızı Kartlar', column: 'kart', data: null }
    ],
    init: function(form) {
        YAHOO.util.Connect.setForm(form);
        //fadeOut(document.getElementById('tblStats'));

        var transaction = YAHOO.util.Connect.asyncRequest('POST', APP_ROOT + '/AjaxHandlers/StatsData.ashx?command=list', new AjaxCallback(function(response) { MKW.Statistics.initCompleted(response, form) }));
    },
    initCompleted: function(response, form) {
        function removeAllChildNodes(node) {
            if (node && node.hasChildNodes && node.removeChild) {
                while (node.hasChildNodes()) {
                    node.removeChild(node.firstChild);
                }
            }
        }
        var statsArray = eval(response.responseText);
        var rowFormat = "<tr class='row{9} rowData'><td><div><a target='_blank' href='" + APP_ROOT + "/National/Default.aspx?sId={0}&tab=3'>{1}</a></div></td><td align=right>{2}</td><td align=right>{3}</td><td align=right>{4}</td><td align=right>{5}</td><td align=right>{6}</td><td align=right>{7}</td><td align=right>{8}</td></tr>";

        var sbStat = new StringBuilder();
        var statsTable = document.getElementById("tblStats");

        var sort = form.hdnSort.value;
        var sortDir = form.hdnSortDir.value;

        //var colFormat = "<td><table><tr><td>{0}</td><td><table><tr><td><img height=5 width=9 style='cursor:pointer;' src='/images/sort_up{1}.gif' onclick=\"sortIt({2},0);\"/></td><td><img height=5 width=9 style='cursor:pointer;' src=\"/images/sort_down{3}.gif\"/ onclick=\"sortIt({2},1);\"></td></tr></table></td></tr></table></td>";
        var colFormat = "<td style='right'><div style='float:left'>{0}</div><div style='float:left;height:15px'><div style='float:left'><img height=5 width=9 style='cursor:pointer;' src='" + ICON_PATH + "sort_up{1}.gif' onclick=\"sortIt({2},0);\"/></div><div style='float:left'><img height=5 width=9 style='cursor:pointer;' src='" + ICON_PATH + "sort_down{3}.gif\' onclick=\"sortIt({2},1);\"></div></div><div style='clear:both'></div></td>";
        var header = "<table width='750' align=center border=0 cellpadding=2 cellspacing=0 class='rowData'><tr class='header' height=27 >";

        sbStat.append(header);

        sbStat.appendFormat(colFormat, MKW.Message.messages["League"], (sort == "0" && sortDir == "0") ? "_s" : "", 0, (sort == "0" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, MKW.Message.messages["Statistics.Matches"], (sort == "1" && sortDir == "0") ? "_s" : "", 1, (sort == "1" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, MKW.Message.messages["GoalAverage"], (sort == "2" && sortDir == "0") ? "_s" : "", 2, (sort == "2" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "+2,5", (sort == "3" && sortDir == "0") ? "_s" : "", 3, (sort == "3" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "-2,5", (sort == "4" && sortDir == "0") ? "_s" : "", 4, (sort == "4" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "1", (sort == "5" && sortDir == "0") ? "_s" : "", 5, (sort == "5" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "0", (sort == "6" && sortDir == "0") ? "_s" : "", 6, (sort == "6" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "2", (sort == "7" && sortDir == "0") ? "_s" : "", 7, (sort == "7" && sortDir == "1") ? "_s" : "")

        sbStat.append("</tr>");

        for (var i = 0; i < statsArray.length; i++) {
            var stats = statsArray[i];
            sbStat.appendFormat(rowFormat, stats[0], stats[1], stats[2], (stats[3] / stats[2]).toFixed(2),
                '% ' + (100 * stats[8] / stats[2]).toFixed(2), '% ' + (100 * stats[7] / stats[2]).toFixed(2),
                '% ' + (100 * stats[4] / stats[2]).toFixed(2), '% ' + (100 * stats[5] / stats[2]).toFixed(2),
                '% ' + (100 * stats[6] / stats[2]).toFixed(2), i % 2 == 0 ? '1' : '2');
        }

        statsTable.innerHTML = sbStat.toString();

        //fadeIn(statsTable);
    },
    getStats: function(type) {
        //fadeOut(document.getElementById('dvStats'));

        if (!this.matchStats[type].data) {
            var url = APP_ROOT + '/AjaxHandlers/StatsData.ashx?command=stat&type=' + this.matchStats[type].type + '&seasonId=' + this.SEASONID;
            var callback = new AjaxCallback(function(response) { MKW.Statistics.getStatsCompleted(response, type) });
            var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
        } else {
            this.writeStats(this.matchStats[type]);
        }
    },
    getStatsCompleted: function(response, type) {
        var statsArray = eval(response.responseText);
        this.matchStats[type].data = statsArray;

        this.writeStats(this.matchStats[type]);
    },
    writeStats: function(stats) {
        var headerFormat = '<table cellspacing="0" cellpadding="2" border="0" width="100%" class="rowData"><tr class="header"><td height="17" background="/images/ligadi_bg.gif" style="border-top: 1px solid rgb(210, 210, 210);" class="Content_tahoma bld" colspan="4">{0}</td></tr>';
        var rowFormat = '<tr><td height="19" bgcolor="#f6f6f6" align="center" width="25%" class="Content_tahoma bld">{0}</td><td width="30%" style="padding-left: 3px;"><table cellspacing="0" cellpadding="0" border="0" width="151"><tr><td height="21" bgcolor="#ffd200" width="{1}" style="border: 1px solid rgb(244, 138, 0); height: 5px;"><img height="8" width="1" src="/images/spacer.gif"/></td><td width="{2}" style="border: medium none ;"><img height="8" width="1" src="/images/spacer.gif"/></td></tr></table></td><td width="19%" class="Content_tahoma" align=right style="padding-right: 3px;">% {3}</td><td width="25%" class="Content_tahoma" align=right style="padding-right: 3px;">{4} {5}</td></tr>';
        var sbStat = new StringBuilder();
        var data = stats.data;

        sbStat.appendFormat(headerFormat, stats.header);
        for (var i = 0; i < data.length; i++) {
            var percent = parseFloat(data[i][1]);
            sbStat.appendFormat(rowFormat, data[i][0], parseInt(percent * 1.51), 151 - parseInt(percent * 1.51), data[i][1], data[i][2], stats.column);
        }
        sbStat.append("</table>");

        document.getElementById("dvStats").innerHTML = sbStat.toString();
        //fadeIn(document.getElementById('dvStats'));
    },
    changeSeason: function(seasonId) {
        //fadeOut(document.getElementById('dvLeagueStats'));
        document.getElementById('dvStats').innerHTML = '';

        this.SEASONID = seasonId;

        for (var i = 0; i < this.matchStats.length; i++) {
            this.matchStats[i].data = null;
        }
        for (var i = 0; i < this.playerStats.length; i++) {
            this.playerStats[i].data = null;
        }
        for (var i = 0; i < this.teamStats.length; i++) {
            this.teamStats[i].data = null;
        }
        for (var i = 0; i < this.refereeStats.length; i++) {
            this.refereeStats[i].data = null;
        }

        //fadeIn(document.getElementById('dvLeagueStats'));
    },
    getPlayerStats: function(type) {
        //fadeOut(document.getElementById('dvStats'));

        if (!this.playerStats[type].data) {
            var url = APP_ROOT + '/AjaxHandlers/StatsData.ashx?command=player&type=' + this.playerStats[type].type + '&seasonId=' + this.SEASONID;
            var callback = new AjaxCallback(function(response) { MKW.Statistics.getPlayerStatsCompleted(response, type) });
            var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
        } else {
            this.writePlayerStats(this.playerStats[type]);
        }
    },
    getPlayerStatsCompleted: function(response, type) {
        var statsArray = eval(response.responseText);
        this.playerStats[type].data = statsArray;
        this.writePlayerStats(this.playerStats[type]);
    },
    getTeamStats: function(type) {
        //fadeOut(document.getElementById('dvStats'));

        if (!this.teamStats[type].data) {
            var url = APP_ROOT + '/AjaxHandlers/StatsData.ashx?command=team&type=' + this.teamStats[type].type + '&seasonId=' + this.SEASONID;
            var callback = new AjaxCallback(function(response) { MKW.Statistics.getTeamStatsCompleted(response, type) });
            var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
        } else {
            this.writeTeamStats(this.teamStats[type]);
        }
    },
    getTeamStatsCompleted: function(response, type) {
        var statsArray = eval(response.responseText);
        this.teamStats[type].data = statsArray;
        this.writeTeamStats(this.teamStats[type]);
    },
    writeTeamStats: function(stats) {
        var headerFormat = '<table cellspacing="0" cellpadding="2" border="0" width="100%" class="table-1"><tr><td height="17" background="/images/ligadi_bg.gif" style="border-top: 1px solid rgb(210, 210, 210);" class="Content_tahoma bld" colspan="4">{0}</td></tr>';
        var rowFormat = '<tr><td height="19" bgcolor="#f6f6f6" width="50%" class="Content_tahoma bld"><a href="javascript:popTeam({0})">{1}</a></td><td width="15%" class="Content_tahoma" align=right style="padding-right: 3px;">{2} {3}</td></tr>';
        var sbStat = new StringBuilder();
        var data = stats.data;

        sbStat.appendFormat(headerFormat, stats.header);

        for (var i = 0; i < data.length; i++) {
            sbStat.appendFormat(rowFormat, data[i][0], data[i][1], data[i][2], stats.column);
        }
        sbStat.append("</table>");

        document.getElementById("dvStats").innerHTML = sbStat.toString();
        //fadeIn(document.getElementById('dvStats'));
    },
    writePlayerStats: function(stats) {
        var headerFormat = '<table cellspacing="0" cellpadding="2" border="0" width="100%" class="table-1"><tr><td height="17" background="/images/ligadi_bg.gif" style="border-top: 1px solid rgb(210, 210, 210);" class="Content_tahoma bld" colspan="4">{0}</td></tr>';
        var rowFormat = '<tr><td height="19" bgcolor="#f6f6f6" width="50%" class="Content_tahoma bld"><a href="javascript:popPlayer({0});">{1}</a></td><td width="35%" style="padding-left: 3px;"><a href="javascript:popTeam({2})">{3}</a></td><td width="15%" class="Content_tahoma" align=right style="padding-right: 3px;">{4} {5}</td></tr>';
        var sbStat = new StringBuilder();
        var data = stats.data;

        sbStat.appendFormat(headerFormat, stats.header);

        for (var i = 0; i < data.length; i++) {
            sbStat.appendFormat(rowFormat, data[i][0], data[i][1], data[i][2], data[i][3], data[i][4], stats.column);
        }
        sbStat.append("</table>");

        document.getElementById("dvStats").innerHTML = sbStat.toString();
        //fadeIn(document.getElementById('dvStats'));
    },
    getRefereeStats: function(type) {
        if (!this.refereeStats[type].data) {
            var url = APP_ROOT + '/AjaxHandlers/StatsData.ashx?command=referee&type=' + this.refereeStats[type].type + '&seasonId=' + this.SEASONID;
            var callback = new AjaxCallback(function(response) { MKW.Statistics.getRefereeStatsCompleted(response, type) });
            var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
        } else {
            this.writeRefereeStats(this.refereeStats[type]);
        }
    },
    getRefereeStatsCompleted: function(response, type) {
        var statsArray = eval(response.responseText);
        this.refereeStats[type].data = statsArray;
        this.writeRefereeStats(this.refereeStats[type]);
    },
    writeRefereeStats: function(stats) {
        var headerFormat = '<table cellspacing="0" cellpadding="2" border="0" width="100%" class="table-1"><tr><td height="17" background="/images/ligadi_bg.gif" style="border-top: 1px solid rgb(210, 210, 210);" class="Content_tahoma bld" colspan="4">{0}</td></tr>';
        var headerRow1 = '<tr class="Content_tahoma bld" align=center><td>Hakem</td><td>Maç</td></tr>';
        var headerRow2 = '<tr class="Content_tahoma bld" align=center><td>Hakem</td><td>Kart</td><td>Kart/Maç</td></tr>';
        var rowFormat1 = '<tr><td height="19" bgcolor="#f6f6f6" width="50%" class="Content_tahoma bld"><a href="javascript:popReferee({0});">{1}</a></td><td width="15%" class="Content_tahoma" align=right style="padding-right: 3px;">{2}</td></tr>';
        var rowFormat2 = '<tr><td height="19" bgcolor="#f6f6f6" width="50%" class="Content_tahoma bld"><a href="javascript:popReferee({0});">{1}</a></td><td width="15%" class="Content_tahoma" align=right style="padding-right: 3px;">{2}</td><td width="25%" class="Content_tahoma" align=right style="padding-right: 3px;">{3}</td></tr>';
        var sbStat = new StringBuilder();
        var data = stats.data;
        var rowFormat, headerRow;

        if (data.length > 0) {
            if (data[0].length == 3) {
                rowFormat = rowFormat1;
                headerRow = headerRow1;
            } else {
                rowFormat = rowFormat2;
                headerRow = headerRow2;
            }
        }

        sbStat.appendFormat(headerFormat, stats.header);
        sbStat.append(headerRow);

        for (var i = 0; i < data.length; i++) {
            sbStat.appendFormat(rowFormat, data[i][0], data[i][1], data[i][2], data[i][3]);
        }
        sbStat.append("</table>");

        document.getElementById("dvStats").innerHTML = sbStat.toString();
    }
}