var Smartfm = function() {
};

Smartfm.prototype = {
  lang: 'ja',
  base_url: 'http://smart.fm',
  api_base_url: 'http://api.smart.fm',
  displayLists: function(lists) {
    var loader = this;
    $.each(lists, function() {
      loader.displayList(this);
    });
  },
  displayList: function(list) {
    // setup list information
    var icon_src = list.square_icon || this.base_url + '/images/icon_free_list.gif';
    var icon_img = $('<img />').attr('src', icon_src).attr('alt', list.title).attr('title', list.title);
    var icon_link = $('<a />').attr('href', this.base_url + '/lists/' + list.id).append(icon_img);
    var icon = $('<div class="icon" />').append(icon_link);
    var title = $('<div class="title" />').append(list.title);

    // setup launchers
    var iknow = this.launcher('iknow', list.id, list.iknow);
    var dictation = this.launcher('dictation', list.id, list.dictation);
    var brainspeed = this.launcher('brainspeed', list.id, list.brainspeed);
    var launchers = $('<div class="launchers clearfix" />').append(iknow).append(dictation).append(brainspeed);

    // display
    var clearfix = $('<div class="clearfix" />');
    $('<div class="list">')
      .append(clearfix.append(icon).append(title).append(launchers))
      .appendTo('#smartfm');
  },
  launcher: function(application, list_id, launcher) {
    if (launcher.available) {
      var icon = '<div class="' + application + '_launcher launch_button"></div>';
      if (application=='brainspeed') {
        var onclick = 'return startSWF(\'' + this.base_url + '\', \'' + application + '\', \'&lang=' + this.lang + '&course_id=' + list_id +'\', \'980\', \'600\');';
      } else {
        var onclick = 'return startSWF(\'' + this.base_url + '\', \'' + application + '\', \'&lang=' + this.lang + '&course_id=' + list_id + '\', \'980\', \'720\');';
      }
      return $('<a href="#" onclick="' + onclick + '"/>').attr('alt', 'launch ' + application).attr('title', 'launch ' + application).append(icon);
    } else {
      return $('<div class="launch_button_disable"></div>');
    }
  }
}

var smartfm = new Smartfm();
