﻿var 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 + '/Statistics/StatsData.aspx?command=list', 
        new AjaxCallback( function(response) { 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, "Lig", (sort=="0" && sortDir == "0") ? "_s" : "", 0, (sort=="0" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "Maç Sayısı", (sort=="1" && sortDir == "0") ? "_s" : "", 1, (sort=="1" && sortDir == "1") ? "_s" : "")
        sbStat.appendFormat(colFormat, "Gol Ort", (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 + '/Statistics/StatsData.aspx?command=stat&type=' + this.matchStats[type].type + '&seasonId=' + Statistics.SEASONID;
            var callback = new AjaxCallback(function(response) { 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 + '/Statistics/StatsData.aspx?command=player&type=' + this.playerStats[type].type + '&seasonId=' + this.SEASONID;
            var callback = new AjaxCallback(function(response) { 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 + '/Statistics/StatsData.aspx?command=team&type=' + this.teamStats[type].type + '&seasonId=' + this.SEASONID;
            var callback = new AjaxCallback(function(response) { 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 + '/Statistics/StatsData.aspx?command=referee&type=' + this.refereeStats[type].type + '&seasonId=' + Statistics.SEASONID;
            var callback = new AjaxCallback(function(response) { 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();
    }
}