var Mackolik = Mackolik || {};
Mackolik.Basketball = Mackolik.Basketball || {};

Mackolik.Basketball.Fixture = function (sModuleName) {
    this.oContainer = sModuleName;
};

Mackolik.Basketball.Fixture.prototype.init = function (id) {
    this.iLeagueId = id;
    this.oSeason = new Mackolik.Basketball.Season('fixtureSeasonCombo');
    this.oSeason.initByLeague(id, this.getWeeks, this);
    var obj = this;
    YAHOO.util.Event.addListener('fixtureSeasonCombo', "change", 
        function(){
            obj.oSeason.iSeasonId = this.value;
            obj.getWeeks();
        });
    YAHOO.util.Event.addListener('cboWeek', "change", function () {
        obj.iWeek = this.value;
        obj.getMatches();
        }); 
};

Mackolik.Basketball.Fixture.prototype.getWeeks = function () {
    var url = APP_ROOT + '/AjaxHandlers/BasketballHandler.aspx?command=getWeeks&id=' + this.oSeason.iSeasonId;
    var obj = this;
    var callback = new AjaxCallback(
        function(response) { 
            obj.writeWeeks(response.responseText);
            obj.getMatches();
        }
    );
    var transaction = YAHOO.util.Connect.asyncRequest( 'GET', url, callback ); 
};

Mackolik.Basketball.Fixture.prototype.writeWeeks = function(data) {
    var oData = eval("(" + data+ ")");
    var sTemplate = "<option value=\"{0}\">{1}</option>";
    var oWrapper = document.getElementById('cboWeek');
    var bNotSelected = true;
    oWrapper.innerHTML = "";
    for (var i=0;i<oData.length; i++) {
        var option = document.createElement("option");
        option.value = oData[i][0];
        if (oData[i][3] == 0 && bNotSelected) {
            option.selected = true;
            bNotSelected = false;
        }
        if (bNotSelected && i==oData.length-1) {
            option.selected = true;
            bNotSelected = false;
        }
        option.innerHTML = oData[i][0] + " (" +  oData[i][1] + " - " + oData[i][2] + ")";
        oWrapper.appendChild(option);
    }
    this.iWeek = oWrapper.value;
};

Mackolik.Basketball.Fixture.prototype.getMatches = function () {
    var url = APP_ROOT +'/AjaxHandlers/BasketballHandler.aspx?command=getMatches&id=' + this.oSeason.iSeasonId + '&week=' + this.iWeek;
    var obj = this;
    var callback = new AjaxCallback(
        function(response) { 
            obj.writeFixture(eval("(" + response.responseText + ")"));
        }
    );
    var transaction = YAHOO.util.Connect.asyncRequest( 'GET', url, callback ); 
};

Mackolik.Basketball.Fixture.prototype.writeFixture = 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=5>SONUÇLAR</td><td>&nbsp;</td><td>IY</td><td>IYH</td><td>MS</td><td>MSH</td><td>UZ</td></tr>';
    //var columns = '<colgroup><col width=40 /><col width=30 /><col width=140 /><col width=20 /><col width=140 /><col width=20 /><col width=40 /><col width=30 span=8 /></colgroup>';
    var rowFormat = '<tr height=15 class="alt{0}"><td>{1}</td><td>{13}</td><td align=right><a href="javascript:popBasketTeam({2});">{3}</a></td><td align=center><b><a href="javascript:popBasketMatch({4});">{5}</a></b></td><td><a href="javascript:popBasketTeam({6});">{7}</a></td><td><a href="javascript:popBasketComparison({4});"><img src="' + ICON_PATH + 'compare.gif"/></a></td><td align=center>{8}</td><td align=center>{9}</td><td align=center>{10}</td><td align=center>{11}</td><td align=center>{12}</td></tr>';
    var sbFixture= new StringBuilder();
    sbFixture.append(header);
    //sbFixture.append(columns);
    sbFixture.append(headerRow);
    
    for(var i=0;i<data.length;i++) {
        var matches = data[i];
        sbFixture.appendFormat(rowFormat, i % 2 + 1, matches[1], matches[2], matches[3], matches[0],
            matches[6] == 12 ? "v" : matches[7], matches[4], matches[5], Mackolik.Basketball.Fixture.prototype.writeScore(matches[8]),
            Mackolik.Basketball.Fixture.prototype.writeBasketballScore(matches[9]), Mackolik.Basketball.Fixture.prototype.writeScore(matches[10]), 
            Mackolik.Basketball.Fixture.prototype.writeBasketballScore(matches[11]), 
            Mackolik.Basketball.Fixture.prototype.writeScore(matches[12]), matches[13]);
    }
    sbFixture.append('</table>');
    document.getElementById(this.oContainer).innerHTML = sbFixture;
    var rows = document.getElementById(this.oContainer).firstChild.rows;
    
    for(var i=0;i<data.length;i++) {
        var matches = data[i];
        rows[i+1].team1 = matches[3];
        rows[i+1].team2 = matches[4];
        YAHOO.util.Event.addListener(matches[i+1], "mouseover", Mackolik.Basketball.Standing.rowOver);
        YAHOO.util.Event.addListener(matches[i+1], "mouseout", Mackolik.Basketball.Standing.rowOut);
    }
};
 Mackolik.Basketball.Fixture.prototype.writeScore = function(score) {
        if (score != '0 - 0') {
            return score;
        }
        return '&nbsp;';
    };
 Mackolik.Basketball.Fixture.prototype.writeBasketballScore= function(score) {
        if (score != '0') {
            return score;
        }
        return '&nbsp;';
};