+}
+
+function showgroup(group_name)
+{
+ get_group(group_name, function(response, group_name) {
+ let teams = parse_teams_from_spreadsheet(response);
+ let games = parse_games_from_spreadsheet(response, group_name, false);
+ display_group_parsed(teams, games, group_name);
+ });
+ publish_group_rank(group_name); // Update the spreadsheet in the background.
+}
+
+
+function showgroup_from_state()
+{
+ showgroup(state['group_name']);
+}
+
+let carousel_timeout = null;
+
+function hidetable()
+{
+ fade_out_rows(document.getElementById('carousel'));
+};
+
+function showschedule(page)
+{
+ let teams = [];
+ let games = [];
+ let num_left = 3;
+
+ let cb = function(response, group_name) {
+ teams = teams.concat(parse_teams_from_spreadsheet(response));
+ games = games.concat(parse_games_from_spreadsheet(response, group_name, true));
+ if (--num_left == 0) {
+ display_stream_schedule_parsed(teams, games, 0);
+ }
+ };
+
+ get_group('Group A', cb);
+ get_group('Group B', cb);
+ get_group('Playoffs', cb);
+};
+
+function do_series(series)
+{
+ do_series_internal(series, 0);
+};
+
+function do_series_internal(series, idx)
+{
+ (series[idx][1])();
+ if (idx + 1 < series.length) {
+ carousel_timeout = setTimeout(function() { do_series_internal(series, idx + 1); }, series[idx][0]);
+ }
+};
+
+function showcarousel()
+{
+ let teams_per_group = [];
+ let games_per_group = [];
+ let combined_teams = [];
+ let combined_games = [];
+ let num_left = 3;
+
+ let cb = function(response, group_name) {
+ let teams = parse_teams_from_spreadsheet(response);
+ let games = parse_games_from_spreadsheet(response, group_name, true);
+ teams_per_group[group_name] = teams;
+ games_per_group[group_name] = games;
+
+ combined_teams = combined_teams.concat(teams);
+ combined_games = combined_games.concat(games);
+ if (--num_left == 0) {
+ let series = [
+ [ 13000, function() { display_group_parsed(teams_per_group['Group A'], games_per_group['Group A'], 'Group A'); } ],
+ [ 2000, function() { hidetable(); } ],
+ [ 13000, function() { display_group_parsed(teams_per_group['Group B'], games_per_group['Group B'], 'Group B'); } ],
+ [ 2000, function() { hidetable(); } ]
+ ];
+ let num_pages = find_num_pages(combined_games);
+ for (let page = 0; page < num_pages; ++page) {
+ series.push([ 13000, function() { display_stream_schedule_parsed(combined_teams, combined_games, page); } ]);
+ series.push([ 2000, function() { hidetable(); } ]);
+ }
+
+ do_series(series);
+ }
+ };
+
+ get_group('Group A', cb);
+ get_group('Group B', cb);
+ get_group('Playoffs', cb);
+};
+
+function stopcarousel()
+{
+ if (carousel_timeout !== null) {
+ hidetable();
+ clearTimeout(carousel_timeout);
+ carousel_timeout = null;
+ }
+};
+
+function hidescorebug()
+{
+ document.getElementById('entire-bug').style.display = 'none';
+}
+
+function showscorebug()
+{
+ document.getElementById('entire-bug').style.display = null;