var TEAM_DATA = {
    "AL East" : {
  'nyy': ['Yankees', 'New York Yankees', 'America/New_York'],
  'tor': ['Blue Jays', 'Toronto Blue Jays', 'America/New_York'],
  'bos': ['Red Sox', 'Boston Red Sox', 'America/New_York'],
  'bal': ['Orioles', 'Baltimore Orioles', 'America/New_York'],
  'tb':  ['Devil Rays', 'Tampa Bay Devil Rays', 'America/New_York']
    },
    "AL Central" : {
  'min': ['Twins', 'Minnesota Twins', 'America/Chicago'],
  'det': ['Tigers', 'Detroit Tigers', 'America/Chicago'],
  'cws': ['White Sox', 'Chicago White Sox', 'America/Chicago'],
  'cle': ['Indians', 'Cleveland Indians', 'America/Chicago'],
  'kc':  ['Royals', 'Kansas City Royals', 'America/Chicago']
    },
    "AL West" : {
  'oak': ['Athletics', 'Oakland Athletics', 'America/Los_Angeles'],
  'ana': ['Angels', 'Los Angeles Angels of Anaheim', 'America/Los_Angeles'],
  'tex': ['Rangers', 'Texas Rangers', 'America/Los_Angeles'],
  'sea': ['Mariners', 'Seattle Mariners', 'America/Los_Angeles']
    },
    "NL East" : {
  'nym': ['Mets', 'New York Mets', 'America/New_York'],
  'phi': ['Phillies', 'Philadelphia Phillies', 'America/New_York'],
  'atl': ['Braves', 'Atlanta Braves', 'America/New_York'],
  'fla': ['Marlins', 'Florida Marlins', 'America/New_York'],
  'was': ['Nationals', 'Washington Nationals', 'America/New_York']
    },
    "NL Central" : {
  'stl': ['Cardinals', 'St. Louis Cardinals', 'America/Chicago'],
  'hou': ['Astros', 'Houston Astros', 'America/Chicago'],
  'cin': ['Reds', 'Cincinnati Reds', 'America/Chicago'],
  'mil': ['Brewers', 'Milwaukee Brewers', 'America/Chicago'],
  'pit': ['Pirates', 'Pittsburgh Pirates', 'America/New_York'],
  'chc': ['Cubs', 'Chicago Cubs', 'America/Chicago']
    },
    "NL West" : {
  'sd':  ['Padres', 'San Diego Padres', 'America/Los_Angeles'],
  'la':  ['Dodgers', 'Los Angeles Dodgers', 'America/Los_Angeles'],
  'sf':  ['Giants', 'San Francisco Giants', 'America/Los_Angeles'],
  'ari': ['Diamondbacks', 'Arizona Diamondbacks', 'America/Denver'],
  'col': ['Rockies', 'Colorado Rockies', 'America/Denver']
    }
};

function $(id) {
  return document.getElementById(id);
}

function apps() {
  var isChecked = $('apps').checked;
  $('domain-container').style.display = isChecked ? 'inline' : 'none';
  if (isChecked) {
    $('domain').focus();
  }
}


function createCell(division, league) {
  var divisionData = TEAM_DATA[league + ' ' + division];
  var output = '';
  for (var code in divisionData) {
    var data = divisionData[code];
    output += '<span class="team" id="' + code + '" onclick="add(this)">' +
        divisionData[code][1] + '</span><br>';
  }
  return output;
}

function add(el) {
  var apps = $('apps');
  var domain = $('domain').value;
  domain = domain.replace(/^\s+/, '').replace(/\s+$/, '');
  var code = el.id;
  var url = 'http://www.google.com/calendar/';
  if (apps.checked && domain) {
    url += 'hosted/' + domain + '/';
  }
  var cid = 'http://mlb.bolinfest.com/ics/' + (new Date).getFullYear() +
      '-' + code + '.ics';
  url += 'render?cid=' + encodeURIComponent(cid);
  window.open(url, '_blank');
}

function getLeagueName(league) {
  var name = league == 'AL' ? 'American' : 'National';
  return '<span class="league">' + name + ' League</span>';
}

function main() {
  $('apps').checked = false;
  var html = [];

  var leagues = ['AL', 'NL'];
  var divisions = ['West', 'Central', 'East'];

  for (var i = 0; i < leagues.length; ++i) {
    html.push('<table class="teams">');
    html.push('<tr><th class="league" colspan="3">',
        getLeagueName(leagues[i]), '</td></tr>');
    html.push('<tr>');
    for (var j = 0; j < divisions.length; ++j) {
      html.push('<th>', divisions[j], '</th>');
    }
    html.push('</tr><tr>');
    for (var j = 0; j < divisions.length; ++j) {
      html.push('<td>', createCell(divisions[j], leagues[i]), '</td>');
    }
    html.push('</tr></table>');
  }

  $('teams').innerHTML = html.join('');
}
