var Mackolik = Mackolik || {};

Mackolik.Basketball = Mackolik.Basketball || {};

Mackolik.Basketball.Scores = {
    SEQUENCE_NO: 0,
    SEQ_REQUEST_INTERVAL: 15000,
    groupId: 0,
    groupName: '',
    date: '',
    type: 0,
    iddaa: 0,
    live: 0,
    timeout: null,
    loadingMsg: "<div class='loading_div'><h3>Yükleniyor</h3><img src='" + ICON_PATH + "loading.gif' alt=''></div>",
    getGroupScores: function(id, name) {
        ID = id;
        this.groupId = id;
        this.groupName = name;
        this.date = '';
        var type = this.type
        if (id != 0) {
            type = 0;
        }
        this.writeLoading();
        var url = APP_ROOT + '/Basketball/LiveScores/LiveData.aspx?group=' + id + '&type=' + type;
        var callback = new AjaxCallback(function(response) { Mackolik.Basketball.Scores.getLiveScoresCompleted(response, id, type) }, null,
        function(response) { Mackolik.Basketball.Scores.errorHandler(); });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);

        if (this.timeout) {
            clearTimeout(this.timeout);
        }
        this.timeout = setTimeout(Mackolik.Basketball.Scores.getSequenceNo, this.SEQ_REQUEST_INTERVAL);
    },
    writeLoading: function() {
        this.copyBanner();
        document.getElementById('dvScores').innerHTML = this.loadingMsg;
    },
    getScores: function() {

        this.date = '';
        var url = APP_ROOT + '/Basketball/LiveScores/LiveData.aspx?group=' + this.groupId + '&type=' + this.type + '&live=' + this.live + '&iddaa=' + this.iddaa;
        var callback = new AjaxCallback(function(response) { Mackolik.Basketball.Scores.getLiveScoresCompleted(response) }, null,
        function(response) { Mackolik.Basketball.Scores.errorHandler(); });

        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
        if (this.timeout) {
            clearTimeout(this.timeout);
        }
        this.timeout = setTimeout(Mackolik.Basketball.Scores.getSequenceNo, this.SEQ_REQUEST_INTERVAL);
    },
    getScoresByLeague: function() {
        this.writeLoading();
        this.type = 0;
        if (this.date) {
            this.getDailyScores(this.date);
        } else {
            this.getScores();
        }
    },
    getScoresByDate: function() {
        this.writeLoading();
        this.type = 1;
        if (this.date) {
            this.getDailyScores(this.date);
        } else {
            this.getScores();
        }
    },
    writeScore: function(score) {
        if (score != '0 - 0') {
            return score;
        }
        return '&nbsp;';
    },
    writeBasketballScore: function(score) {
        if (score != '0') {
            return score;
        }
        return '&nbsp;';
    },
    writeBasketballScoreByDigit: function(score) {
        if (score.toString().length >= 3) {
            return score;
        }
        else if (score.toString().length == 2) {
            return '&nbsp;' + score;
        }
        else if (score.toString().length == 1 && score != '0') {
            return '&nbsp;&nbsp;' + score;
        }
        return '&nbsp;&nbsp;&nbsp;';    //score==0
    },
    getDailyScores: function(date) {

        if (!isDate(date)) {
            return false;
        }
        /*
        var curdate = new Date();

        var aDate = date.split("/");

        if ((curdate.getMonth() + 1) == aDate[1] && curdate.getFullYear() == aDate[2] && curdate.getDate() == aDate[0]) {
        return this.getGroupScores(0, 'BUGÃœN');
        }
        */
        this.writeLoading();
        this.groupId = 0;
        this.groupName = date;
        this.date = date;

        var url = APP_ROOT + '/Basketball/LiveScores/LiveData.aspx?group=' + this.groupId + '&type=' + this.type + '&live=' + this.live + '&iddaa=' + this.iddaa + '&date=' + date;
        var callback = new AjaxCallback(function(response) { Mackolik.Basketball.Scores.getLiveScoresCompleted(response) }, null,
        function(response) { Mackolik.Basketball.Scores.errorHandler(); });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);

        Mackolik.Basketball.Scores.clearMenu();
        if (this.timeout) {
            clearTimeout(this.timeout);
        }

        //setTimeout(LiveScores.getSequenceNo, 3000);
    },
    getLiveScores: function(type) {
        this.type = type;
        this.getGroupScores(0, 'BUGÜN');
    },
    getLiveScoresCompleted: function(response) {
        try {
            var data = eval("(" + response.responseText + ")");
            this.copyBanner();
            if (document.getElementById('dvScores')) {
                if (this.type == 0) {
                    this.writeLiveScoresByGroup(data);
                } else {
                    this.writeLiveScoresByDate(data);
                }
            }
            this.writeBanner();
        }
        catch (err) {
            this.errorHandler();
        }
    },
    getSequenceNo: function() {
        var url = APP_ROOT + '/Basketball/LiveScores/SequenceNo.aspx';
        var callback = new AjaxCallback(function(response) { Mackolik.Basketball.Scores.getSequenceNoCompleted(response) }, null,
        function(response) { Mackolik.Basketball.Scores.errorHandler(); });
        var transaction = YAHOO.util.Connect.asyncRequest('GET', url, callback);
    },
    getSequenceNoCompleted: function(response) {
        try {
            var data = eval("(" + response.responseText + ")");
            if (this.SEQUENCE_NO != data) {
                this.SEQUENCE_NO = data;
                Mackolik.Basketball.Scores.getScores();
                //LiveScores.getGroupScores(ID);
            } else {
                if (this.timeout) {
                    clearTimeout(this.timeout);
                }
                this.timeout = setTimeout(Mackolik.Basketball.Scores.getSequenceNo, this.SEQ_REQUEST_INTERVAL);
            }
        }
        catch (err) {
            this.errorHandler();
        }
    },
    clearOptions: function() {
        this.type = 0;
        this.iddaa = 0;
        this.live = 0;
        document.getElementById("chkLive").checked = false;
        document.getElementById("chkIddaa").checked = false;
        //document.getElementById("cboOption").value = 0;
        document.getElementById("txtCalendar").value = "";
    },
    writeBanner: function() {
        function cumulativeOffset(element) {
            var valueT = 0
            var valueL = 0;
            do {
                valueT += element.offsetTop || 0;
                valueL += element.offsetLeft || 0;
                element = element.offsetParent;
            }
            while (element);

            return [valueL, valueT];
        }

        var ph = document.getElementById('bannerPlaceHolder');
        if (ph) {
            var b = document.getElementById("bannerContainer");
            var offset = cumulativeOffset(ph);
            bTop = offset[1]; // - document.getElementById("dvScores").offsetTop)
            bLeft = offset[0]; // - document.getElementById("dvScores").offsetLeft)
            b.style.left = bLeft + 'px';
            b.style.top = bTop + 'px';
            b.style.display = 'block';
        }
    },
    copyBanner: function() {
        var b = document.getElementById("bannerContainer");
        b.style.display = 'none';
    },
    errorHandler: function() {
        if (this.timeout) {
            clearTimeout(this.timeout);
        }
        this.timeout = setTimeout(Mackolik.Basketball.Scores.getSequenceNo, this.SEQ_REQUEST_INTERVAL);
    },

    writeLiveScoresByGroup: function(data) {
        var header = '<table cellspacing=0 cellpadding=0 border=0 id="resultsList" >';
        header = header + '<colgroup><col width=40 /><col width=40 /><col width=40 /><col width=170 /><col width=90 /><col width=170 /> <col width=20 /><col width=10 /><col width=20 /> <col width=10 />  <col width=20 /><col width=10 /><col width=20 />';
        //var groupFormat = '<tr class="groupHeader competition dateHeader"><td colspan="4"><img src="' + BASKET_GROUP_PATH + '{3}.gif"><a href="javascript:popBasketLeague({2})"><strong>{0}</strong> - {1}</a></td><td align=center>MS</td><td align=center>1P</td><td align=center>2P</td><td align=center>IY</td><td align=center>3P</td><td align=center>4P</td><td align=center>MS</td><td align=center>UZ</td></tr>';
        var groupFormat = '<tr class="groupHeader competition dateHeader"><td colspan="15"><img src="' + BASKET_GROUP_PATH + '{3}.gif"><a href="javascript:popBasketLeague({2})"><strong>{0}</strong> - {1}</a></td></tr>';
        //var dateFormat = '<tr class="groupHeader dateHeader" align=center style="padding-left:1px !important;"><td colspan="20" align=left>{0}</td></tr>';
        var dateFormat = '<tr class="groupHeader dateHeader" align=center style="padding-left:1px !important;"><td colspan="3" align=left>{0}</td><td></td><td align=center></td><td></td> <td colspan=3 align=center>IY</td> <td align=center>&nbsp;</td> <td colspan=3 align=center>MS</td></tr>';

        var bannerRow = '<tr><td class="bannerPlaceHolderTd" align="center" colspan="15"><div id="bannerPlaceHolder"/></td></tr>';

        //var rowFormat = '<tr class="alt{0}"><td>{1}</td><td>{2}</td><td align=right><a href="javascript:popBasketTeam({3});">{4}</a> <br /> <a href="javascript:popBasketTeam({5});">{6}</a></td><td align=center><b>{7}</b> <br /> <b>{8}</b></td><td align=center>{9} <br /> {10}</td><td align=center>{11} <br /> {12}</td><td align=center>{13} <br /> {14}</td><td align=center>{15} <br /> {16}</td><td align=center>{17} <br /> {18}</td></tr>';
        //var rowFormat = '<tr bgcolor="#999999"><td height="1" colspan="20" style="padding:0;border:0;"></td></tr>';
        // var rowFormat = '<tr class="alt{0}"><td>{1}</td><td align=center>{2}</td><td>{19}</td><td align=center>{28}</td><td align=right><a href="javascript:popBasketTeam({3});">{4}</a></td><td align=center><b>{7}</b></td> <td align="right"><a href="javascript:popBasketTeam({5});">{6}</a></td>  <td align=center><b>{22}-{23}</b></td><td align=center>{26}</td></tr>';
        var rowFormat = '<tr class="alt{0}"><td height=20px>{1}</td><td align=center>{2}</td><td class=\"oldScore\"><b>{3}</b></td><td align=right><a href="javascript:popBasketTeam({5});">{6}</a>{14}</td><td align=center><b>{9}</b></td> <td align="left"><a href="javascript:popBasketTeam({7});">{8}</a>{15}</td>{10}<td align=center>&nbsp;</td>{12}</tr>';
        rowFormat = rowFormat + '<tr bgcolor="#DAE4E5"><td height="1" colspan="15" style="padding:0;border:0;"></td></tr>';
        //        rowFormat = rowFormat + '<tr class="alt{0}"><td colspan=4>&nbsp;</td><td align="right"> <a href="javascript:popBasketTeam({5});">{6}</a></td> <td align="center"><b>{8}</b></td><td align=center><span class=oldScore>{10}</span></td><td align=center><span class=oldScore>{12}</span></td><td align=center><b>{21}</b></td><td align=center>{25}</td><td align=center><span class=oldScore>{14}</span></td><td align=center><span class=oldScore>{16}</span></td><td align=center><b>{23}</b></td><td align=center>{27}</td><td align=center><span class=oldScore>{18}</span></td></tr>';
        //rowFormat = rowFormat + '<tr bgcolor="#DAE4E5"><td height="1" colspan="11" style="padding:0;border:0;"></td></tr>';
        //      rowFormat = rowFormat + '<tr bgcolor="#999999"><td height="1" colspan="20" style="padding:0;border:0;"></td></tr>';

        var sbScores = new StringBuilder();
        sbScores.append(header);
        document.getElementById('dvNoMatches').style.display = "none";
        document.getElementById('dvScores').style.display = "block";
        for (var i = 0; i < data.length; i++) {
            if (i == 1) {
                sbScores.append(bannerRow);
            }
            var groupData = data[i];
            if (!groupData.g) {
                continue;
            }
            if (groupData.g.length == 0) {
                document.getElementById('dvNoMatches').style.display = "block";
                document.getElementById('dvScores').style.display = "none";
                break;
            }
            sbScores.appendFormat(groupFormat, groupData.g[1], groupData.g[3], groupData.g[2], groupData.g[0]);
            for (var j = 0; j < groupData.r.length; j++) {
                var dateData = groupData.r[j];
                sbScores.appendFormat(dateFormat, dateData.d);
                for (var k = 0; k < dateData.m.length; k++) {
                    var matchData = dateData.m[k];
                    var score = '';
                    var score2 = '';
                    var scoreold = '&nbsp;';
                    var HThandicap = '';
                    var FThandicap = '';
                    var handicapTeam1 = '';
                    var handicapTeam2 = '';
                    var IYscore = '';
                    var MSscore = '';
                    var match_status = '';
                    var stadium_status = '&nbsp;';
                    var matchDetail = matchData[18];
                    var redCard1 = '&nbsp;', redCard2 = '&nbsp;';

                    if (matchDetail.f2 || matchDetail.f2 == 0) {
                        scoreold = "<span class='oldScore'>(" + matchDetail.f2 + ")</span> ";
                        // score2 = "<span class='oldScore'>(" + matchDetail.f2 + ")</span> ";
                    }
                    if (matchData[5] == 12) {
                        score = score + '&nbsp;v&nbsp;';
                        // score2 = score2 + '&nbsp;&nbsp;&nbsp;';
                        IYscore = '<td colspan=3>&nbsp;</td>';
                        MSscore = '<td colspan=3>&nbsp;</td>';
                    } else {
                        if (matchData[5] == 14 || matchData[5] == 15 || matchData[5] == 16 || matchData[5] == 17 || matchData[5] == 18 || matchData[5] == 19) {
                            //score = score + '<a href="javascript:popMatch(' + matchData[0] + ')" style="color:#dd0000;">' + matchData[11] + '</a>';
                            score = score + '<span style="color:#dd0000;">' + this.writeBasketballScoreByDigit(matchData[16]) + ' - ' + this.writeBasketballScoreByDigit(matchData[17]) + '</span>';
                            // score2 = score2 + '<span style="color:#dd0000;">' + matchData[17] + '</span>';
                        } else if (matchData[5] == 21) {
                            score = score + 'P';
                            //score2 = score2 + 'P';
                        } else {
                            score = score + this.writeBasketballScoreByDigit(matchData[16]) + ' - ' + this.writeBasketballScoreByDigit(matchData[17]);
                            // score2 = score2 + matchData[17];
                        }
                        IYscore = '<td align=right>' + matchData[22] + '</td><td align=right> - </td><td align=right>' + matchData[23] + '</td>';
                        MSscore = '<td align=right>' + matchData[24] + '</td><td align=right> - </td><td align=right>' + matchData[25] + '</td>';
                        // score2 = "<a href='javascript:popBasketMatch(" + matchData[0] + ");'>" + score2 + "</a>";
                    }
                    score = "<a href='javascript:popBasketMatch(" + matchData[0] + ");'>" + score + "</a>";

                    if (matchDetail.f1 || matchDetail.f1 == 0) {
                        scoreold = scoreold +" - "+ " <span class='oldScore'>(" + matchDetail.f1 + ")</span> ";
                        //score2 = score2 + " <span class='oldScore'>(" + matchDetail.f1 + ")</span> ";
                    }

                    var team1 = matchData[2];
                    var team2 = matchData[4];

                    if (matchData[28] != '0' && matchData[28] != '&nbsp;') {
                        handicapTeam1 = "<br><font style=\"font-size:9px;color:#666666;\"> IY Hnd: <b>" + matchData[26] + "</b> MS Hnd: <b>" + matchData[28] + "</b></font> ";
                        handicapTeam2 = "<br>&nbsp;";
                        score = score + "<br>&nbsp;" // + scoreold;
                    } else if (matchData[29] != '0' && matchData[29] != '&nbsp;') {
                        handicapTeam2 = "<br><font style=\"font-size:9px;color:#666666;\"> IY Hnd: <b>" + matchData[27] + "</b> MS Hnd: <b>" + matchData[29] + "</b></font> ";
                        handicapTeam1 = "<br>&nbsp;";
                        score = score + "<br>" + scoreold;
                    } else if (scoreold != '&nbsp;') {
                        handicapTeam1 = "<br>&nbsp;";
                        handicapTeam2 = "<br>&nbsp;";
                        score = score + "<br>" + scoreold;
                    }

                    if (matchDetail.e == 1) {
                        team1 = "<b>" + team1 + "</b>";
                    }

                    if (matchDetail.e == 2) {
                        team2 = "<b>" + team2 + "</b>";
                    }


                    if (matchData[26] > 0) {
                        HThandicap = matchData[26];
                    } else {
                        HThandicap = this.writeBasketballScore(matchData[27]);
                    }

                    if (matchData[28] > 0) {
                        FThandicap = matchData[28];
                    } else {
                        FThandicap = this.writeBasketballScore(matchData[29]);
                    }
                    HThandicap = "<b>" + HThandicap + "</b>"
                    FThandicap = "<b>" + FThandicap + "</b>"

                    if (matchData[5] == 14 || matchData[5] == 15 || matchData[5] == 16 || matchData[5] == 17 || matchData[5] == 18 || matchData[5] == 19) {
                        match_status = "<span class='red_score'>" + matchData[20] + "</span>";
                    }
                    else if (matchData[5] == 12) {
                        match_status = "&nbsp;";
                    } else {
                        match_status = "<span class='bold_score'>" + matchData[20] + "</span>";
                    }


                    var rowType = (k % 2) + 1;

                    if (!match_status) {
                        match_status = "&nbsp;";
                    }

                    var iddaaCode = "<a href='javascript:popBasketComparison(" + matchData[0] + ");'>" + matchData[21] + "</a>";
                    if (matchData[21] == 0) {
                        iddaaCode = "&nbsp;";
                    }
                    //                    sbScores.appendFormat(rowFormat, rowType, matchData[19], match_status, matchData[1], team1, matchData[3], team2, score, score2,//8
                    //                                            this.writeBasketballScore(matchData[6]), this.writeBasketballScore(matchData[7]),//10
                    //                                            this.writeBasketballScore(matchData[8]), this.writeBasketballScore(matchData[9]),//12
                    //                                            this.writeBasketballScore(matchData[10]), this.writeBasketballScore(matchData[11]),//14
                    //                                            this.writeBasketballScore(matchData[12]), this.writeBasketballScore(matchData[13]),//16
                    //                                            this.writeBasketballScore(matchData[14]), this.writeBasketballScore(matchData[15]), iddaaCode,//19
                    //                                            this.writeBasketballScore(matchData[22]), this.writeBasketballScore(matchData[23]),//21
                    //                                            this.writeBasketballScore(matchData[24]), this.writeBasketballScore(matchData[25]),//23
                    //                                            this.writeBasketballScore(matchData[26]), this.writeBasketballScore(matchData[27]),//25
                    //                                            this.writeBasketballScore(matchData[28]), this.writeBasketballScore(matchData[29]),//27
                    //                                            this.writeBasketballScore(matchData[30])//28
                    //                                            );

                    sbScores.appendFormat(rowFormat, rowType, matchData[19], match_status, iddaaCode, this.writeBasketballScore(matchData[30]), //4
                                            matchData[1], team1, matchData[3], team2, score, IYscore, HThandicap, MSscore, FThandicap, handicapTeam1, handicapTeam2);



                }
            }

        }

        document.getElementById('dvScores').innerHTML = sbScores;
        //var sTab = this.writeTabRow(0);
        //document.getElementById('dvScores').innerHTML = sTab + "<div style='float:left'>" + sbScores + "</div>";

    },

    writeTabRow: function(type) {
        var sbTab = new StringBuilder();
        sbTab.append('<div class="hd tabs" id="scores-tab"><ul id="todaytabs" style="width:620px;">');
        sbTab.appendFormat('<li class="{0} first" id="leagueOrder" style="width:140px;"><em><a hidefocus="true" id="league-order" href="#" onclick="orderByLeague();">Lige gÃ¶re sÄ±ralÄ±</a></em><span class="pipe"></span></li>', type == 0 ? "on" : "off");
        sbTab.appendFormat('<li class="{0} tab2" id="dateOrder" style="width:140px;"><em><a hidefocus="true" id="date-order" href="#" onclick="orderByDate();">Tarihe gÃ¶re sÄ±ralÄ±</a></em><span class="pipe"></span></li>', type == 1 ? "on" : "");
        sbTab.appendFormat('<li class="last" style="text-align:right;padding-right:10px;"><em><b>{0}</b></em><span class="pipe"></span></li>', this.groupName);
        sbTab.append('</ul></div>');
        return sbTab.toString();
    },

    clearMenu: function() {
        var aRoots = YAHOO.util.Dom.getElementsByClassName("root", "li", "liveMenu");
        YAHOO.util.Dom.removeClass(aRoots, 'selected');
    }
}


