var pretty_dict = {
    'imob':'iMob',
    'epw':'Epic Pet Wars',
    'mafiawars':'Mafia Wars',
    'kingdomslive':'Kingdoms Live',
    'ivampires':'iVampires',
    'iknights':'iKnights',
    'girlwars':'Girl Wars',
    'mafialive':'Mafia Live',
    'vampireslive':'Vampires Live',
    'undeadlive':'Undead Live',
    'dquest':'Dungeon Quest',
    'mafiarr':'Mafia R/R',
    'imobsters':'iMobsters'
}

var t = $.template(
// '<div style="background:${color}">' +
  '<strong>${count}:</strong>' +
  '<span class="num">${friend_code}</span>' +
  '<span class="name">${username}</span>' +
  '${breaker}' +
  '<span class="msg">${msg}</span>' +
  '<div class="clear"></div>'
// '</div>'
);

var t_top = $.template(
'<li class="top10">' +
  '<strong>Top ${pretty_game_name} Player #${count}:</strong><br />' +
  '<span class="top-num">${friend_code}</span>' +
  ' - <a class="top-name" href="/player/${username}">${username}</a>' +
  '${breaker}' +
  '<span class="top-msg">${msg}</span>' +
  '<div class="clear"></div>' +
'</li>'
);

var loading = {
    0: false,
    1:false,
    2:false
}

$('#fclists select').change(function(){
  var game = $(this).val();
  update_list(game, this);
});
$('#fclists .appicon').click(function(){
  var game = $(this).next().val();
  update_list(game, $(this).next());
});

function update_list(game, that){
  var count = $('#perpage').val();
  var list_index = $(that).attr('list-index');
  var list = $(that).next();
  
  // check for loading status
  if(loading[list_index]) return;
  loading[list_index] = true;
  var lag = setTimeout(function(){
    loading[list_index] = false;
    update_list(game, that);
  }, 3000);
  
  // change icon
  $(that).prev().attr('class', 'appicon ai_'+game);
  
  // empty codes div, show ajax loader
  list.empty().next().show();

  $.post('/callback/get_codes', {game:game, count:count}, function(data){
    clearTimeout(lag);
    list.next().hide();
    
    // top 10
    var codes = data.top10;
    for(var i=0; i < codes.length; i++){
      // console.log(codes[i].code);
      code_data = codes[i];
      
      list.append(t_top, {
        // className: className,
        count: i+1,
        friend_code: code_data.code,
        username: code_data.user,
        pretty_game_name: pretty_dict[game]
        // breaker:breaker,
        // username: username,
        // msg: code[game_msg]
      });
    }
    // rest
    var codes = data.codes;
    for(var i=0; i < codes.length; i++){
      // console.log(codes[i].code);
      code_data = codes[i];
      
      var entry = $('<li>').html(t, {
        // className: className,
        count: i+1,
        friend_code: code_data.code,
        username: (code_data.user ? ' - ' + code_data.user : '')
        // breaker:breaker,
        // username: username,
        // msg: code[game_msg]
      }).addClass('c-' + (code_data.color || ''));
      // set class name
      
      entry.addClass("friend_code");
      list.append(entry);
    }
    loading[list_index] = false;
  }, 'json');
};

