﻿MKW = MKW || {};

MKW.Season = function(sComboName)
{
    this.sSeasonCombo = sComboName;
    this.iSeasonId = 0;
}

MKW.Season.prototype.init = function(id, onChangeHandler, dataUrl) {
    this.iSeasonId = id;
    var url = APP_ROOT + '/AjaxHandlers/SeasonHandler.ashx?op=seasons&id=' + id;
    var obj = this;
    if (dataUrl) {
        url = dataUrl;
    }
    YAHOO.util.Event.addListener(this.sSeasonCombo, "change", onChangeHandler);
    var transaction = YAHOO.util.Connect.asyncRequest( 'GET', url, this.callback() ); 
};

MKW.Season.prototype.callback = function () {
    var oSeason = this;
    return new AjaxCallback( 
        function(response) { 
            oSeason.initCompleted(response);
        });
}        

MKW.Season.prototype.initByLeague = function(leagueId, onComplete, obj) {
    var url = APP_ROOT + '/AjaxHandlers/SeasonHandler.ashx?op=seasons&league=' + leagueId;
    var oSeason = this;
    this.onComplete = onComplete;
    this.callerObject = obj;
    var transaction = YAHOO.util.Connect.asyncRequest( 'GET', url, this.callback() ); 
};

MKW.Season.prototype.initCompleted = function(response) {
    var oData = eval("(" + response.responseText+ ")");
    this.writeSeason(oData);
};

MKW.Season.prototype.writeSeason = function(data) {
    var sTemplate = "<option value=\"{0}\">{1}</option>";
    var oWrapper = document.getElementById(this.sSeasonCombo);
    var sbSeason = new StringBuilder();
    oWrapper.innerHTML = "";
    for (var i=0;i<data.length; i++) {
        var option = document.createElement("option");
        option.value = data[i][0];
        option.innerHTML = data[i][1];
        oWrapper.appendChild(option);
    }
    
    if (this.iSeasonId) {
        oWrapper.value = this.iSeasonId;
    } else {
        oWrapper.selectedIndex = 0;
        this.iSeasonId = oWrapper.value;
    }
            
    if(this.onComplete) {
        this.onComplete.call(this.callerObject);
    }
};


