function get_login_user(){
  $.ajax({
    url      : '/json/get_login_user.php',
    type     : 'GET',
    data     : {},
    cache    : false,
    dataType : 'json',
    success : callback_get_login_user,
  });
}

function fav_auth(){
  var fav_id    = $(this).attr('id');
  var status_id = fav_id.substr(4);
  var star = $("#"+fav_id);
  if( 'non-fav' == $(this).attr('class')){
    isDestroy = "false";
  }else{
    isDestroy = "true";
  }
  $.ajax({
    url      : '/json/create_favorite.php',
    type     : 'POST',
    data     : { 
      'id': status_id,
      'destroy': isDestroy,
      'st': window.s_token,
    },
    cache    : false,
    dataType : 'json',
    success : function(data){
      if(true == data['destroy']){
        if(true == data['result'])
        star.removeClass('fav-throb').addClass('non-fav');
        else
        star.removeClass('fav-throb').addClass('fav');
      }else{
        if(true == data['result'])
          star.removeClass('fav-throb').addClass('fav');
        else
          star.removeClass('fav-throb').addClass('non-fav');
      }
    },
    beforeSend: function(){
      star.removeClass('fav').removeClass('non-fav').addClass('fav-throb');
    }
  });
  return false;
}

function callback_get_login_user(data){

  var login_status = $("<div>").attr('id',"login-status");
  if(data['login'] == true){
    window.login = true;
    //ログイン時処理
    var image = $("<a>").attr('href','/my.php').append( $("<img>").attr('src', data['user']['profile_image_url'].replace('_normal.','_mini.') ) );
    login_status.append(image);

    var screen_name = $("<a>").attr('href','/my.php').text(data['user']['screen_name']);
    login_status.append(screen_name);

/*
    if(undefined != data['rate_limit_remaining']){
      var api = $("<span>").text(' API:'+data['rate_limit_remaining']+' ');
      login_status.append(api);
    }
*/
    window.s_token = data['st'];

    $(".non-fav").unbind("click",fav);
    $(".non-fav").click(fav_auth);

    var logout = '(<a href="/logout.php">logout</a>)';
    login_status.append(logout);
  }else{
    var login_uri = '/login.php?callback='+escape(location.pathname+location.search);
    var login = $("<a>").attr('href',login_uri).append($("<img>").attr('src','/img/twitter_favicon.png'));
    var login2 = $("<a>").attr('href',login_uri).text("Log in");
    login_status.append(login).append(login2);
  }

  $("#headline").append(login_status);
}

function callback_get_user_lists(data){
  $(".list-menu").empty();

  for(var i=0; i< data['user_lists'].length; i++){
    var thisList = data['user_lists'][i];
    var user = thisList['uri'].split('/')[1];
    var memberCount = " ("+thisList['member_count']+")";
    var anchor = $("<a>").attr('href','/list.php?user=' + user + '&list=' + thisList['slug']).text( thisList['full_name'] +memberCount );
    var list_item = $("<li>").addClass('list-item').append(anchor);
    $(".list-menu").append(list_item);
  }

  if( data['user_lists'].length > 0 && data['user_subscriptions'].length > 0)
    $(".list-menu").append($("<hr>"));

  for(var i=0; i< data['user_subscriptions'].length; i++){
    var thisList = data['user_subscriptions'][i];
    var user = thisList['uri'].split('/')[1];
    var memberCount = " ("+thisList['member_count']+")";
    var anchor = $("<a>").attr('href','/list.php?user=' + user + '&list=' + thisList['slug']).text( thisList['full_name'] +memberCount );
    var list_item = $("<li>").addClass('list-item').addClass('following-list').append(anchor);
    $(".list-menu").append(list_item);
  }
  
  $(".list-menu").css("background","white");
  $(".following-list").css("background","#ebebeb");

  if( data['user_lists'].length + data['user_subscriptions'].length > 0){
    window.listStatus = 'success';
    $(".list-menu").show();
  }else{
    window.listStatus = 'empty';
    $(".list-menu").hide();
  }
}

function open_list_tab(){
  if(window.listStatus == null){
    if(window.login){
      //ログイン済み時処理
      $.ajax({
        url : '/json/get_user_lists.php',
        data : {
          'user':screen_name,
        },
        dataType : 'json',
        success : callback_get_user_lists,
        beforeSend : function(){
          var panel = $("<div align=\"center\"><img src=\"/img/icon_throbber.gif\">LOADING...</div>"); 
          $(".list-menu").empty();
          $(".list-menu").append(panel);
          //通信開始時の処理
        },
      });
    }else{
      //未ログイン時処理
      var panel = $("<div align=\"center\"><a href=\"/login.php?callback="+escape(location.pathname+location.search)+"\" class=\"grad-button\">Log in »</a></div>"); 
      $(".list-menu").empty();
      $(".list-menu").append(panel);
    }
    $(".list-menu").toggle(); 
  }
  else if(window.listStatus == 'success'){
    $(".list-menu").toggle(); 
  }
  return false;
}

listStatus = null;
login = false;


//get_login_user();
