function MyShowsHelper () {
    this.deletedEpisodes = new Array();
};

MyShowsHelper.prototype.getNextShows = function ( shows, episodes ){
    var result = new Array();
    for ( var key in shows ) {
        shows[key].unwatchedEpisodes = 0; 
    }
    for ( var key in episodes ) {
        result[episodes[key].showId] = shows[episodes[key].showId];
        result[episodes[key].showId].unwatchedEpisodes ++;
    }
    return result;
}

MyShowsHelper.prototype.getUnwatchedShows = function ( shows ){
    var show;
    var result = new Array();
    for ( var showId in shows ) {
        show = shows[showId];
        if ( show.watchStatus == 'watching' && (show.totalEpisodes - show.watchedEpisodes > 0 ) ) {
            show.unwatchedEpisodes = show.totalEpisodes - show.watchedEpisodes;
            result[showId] = show;
        }
    }
    return result;
};

MyShowsHelper.prototype.getNextEpisodes = function( showId, episodes ) {
    var result = new Array ();
    for ( var episodeId in episodes ) {
        if ( showId == episodes[episodeId].showId ) {
            result.push(episodes[episodeId]);
        }
    }
    return result;
}

MyShowsHelper.prototype.getUnwatchedEpisodes = function( showId, episodes ) {
    var result = new Array ();
    for ( var episodeId in episodes ) {
        if ( showId == episodes[episodeId].showId ) {
            result.push(episodes[episodeId]);
        }
    }
    return result;
}

MyShowsHelper.prototype.getUnwatchedEpisodesCount = function ( episodes ) {
    var count = 0;
    for ( var key in episodes ) {
        count ++;
    }
    return count;
}

MyShowsHelper.prototype.checkEpisode = function ( episodeId, episodes, shows ) {
    var result = new Array();
    var showId;
    for ( var key in episodes ) {
        if ( episodes[key].episodeId != episodeId ) {
            result.push( episodes[key] );
        }
        else {
            showId = episodes[key].showId;
            this.deletedEpisodes.push(episodes[key]);
        }
    }

    for (key in shows) {
        if ( shows[key].showId == showId ) {
            shows[key].watchedEpisodes ++;
        }
    }
    return result;
}

MyShowsHelper.prototype.uncheckEpisode = function ( episodeId, episodes, shows ) {
    var result = new Array();
    var showId;
    for ( var key in this.deletedEpisodes ) {
        if ( this.deletedEpisodes[key].episodeId == episodeId ) {
            episodes.push( this.deletedEpisodes[key] );
            showId = this.deletedEpisodes[key].showId;
            this.deletedEpisodes.splice(key, 1);

        }
    }

    for (key in shows) {
        if ( shows[key].showId == showId ) {
            shows[key].watchedEpisodes --;
        }
    }
    return episodes;
}
