$(function(){

  for(var c=0; c<tweetUsers.length; c++){
    //ユーザー、検索タイプ、取得件数、表示するIDの格納
    var user = tweetUsers[c].user;
    var search = tweetUsers[c].search;
    var rpp = tweetUsers[c].rpp;
    var idx = tweetUsers[c].id;

    //ツイートデータの取得と表示
    getTweet(user, search, rpp, idx);

  }
});

/**
 * tweet取得関数
 * @param user
 * @param search
 */
function getTweet(user, search, rpp, idx)
{
  //検索タイプの変更
  switch(search){
    case 'from':
      var query = 'from%3A'+user;
      break;
    case 'hash':	//OR検索　検索ワード+#検索ワード
      //ブラウザの判別(IEの時はキーワードをエンコード)
      var ua = $.browser;
      if(!$.support.noCloneEvent){
        var hash = encodeURI(user);
      } else {
        var hash = user;
      }
      var query = '%23'+hash;
      break;
    default:
      var query = user;
      break;
  }

  //ajaxでツイート取得
  $.ajax({
      type:"GET",
      url:"http://search.twitter.com/search.json?q="+query+"&locale=ja&rpp="+rpp,
      cache:false,
      dataType:"jsonp",
      error:function(xhr, status, errorThrown){	//エラー時の処理
      },
      success:function(json){	//成功時の処理
        var tweetList = '';
        var cnt =1;
        for(var j = 0; j < json.results.length; j++){
          //リンクがあるときはaタグに置換
          var text = json.results[j].text;
          text = text.replace(/(s?https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:@&=+$,%#]+)/gi,'<a href="$1" target="_blank">$1</a>');
          text = text.replace(/#(\w+)/gi,'<a href="http://twitter.com/search?q=%23$1" target="_blank">#$1</a>');
          text = text.replace(/@(\w+)/gi,'<a href="http://twitter.com/$1" target="_blank">@$1</a>');

          //奇数偶数計算
          if(cnt % 2 == 1){
            var cls = 'odd';
          } else {
            var cls = 'even';
          }
          cnt++;

          //ツイート内容の整形
          tweetList += '<li class="'+cls+'"><div class="tweetContent">';

          if(search === 'from'){
            tweetList += text;
          } else if(search === 'hash'){
            tweetList += '<div class="tweetIcon"><img src="'+json.results[j].profile_image_url+ '" width="48" height="48"  alt="'+user+'" /></div>';
            tweetList += '<div class="tweetText">'+text+'</div>';
          }

          tweetList += '</div>';

          tweetList += '<div class="tweetInfo"><a href="http://twitter.com/'+user+'/status/'+json.results[j].id_str+'" target="_blank">'+relativeTime(json.results[j].created_at)+'</a>\
            ･<a href="http://twitter.com/intent/tweet?in_reply_to='+json.results[j].id_str+'" target="_blank">返信</a>\
            ･<a href="http://twitter.com/intent/retweet?tweet_id='+json.results[j].id_str+'" target="_blank">リツイート</a>\
            ･<a href="http://twitter.com/intent/favorite?tweet_id='+json.results[j].id_str+'" target="_blank">お気に入り</a>\
            </div>\
            </li>';

        }

        //取得したツイートを表示
        if(tweetList != ''){
          $(idx).html('<ol>'+tweetList+'</ol>');
        } else {
          $(idx).html('<ol><li class="noTweet">最近のツイートが見つかりませんでした</li></ol>');
        }
     },
     complete:function(){		//完了時の処理
       //スクロールバーの有効化
       $('.scroll-pane').jScrollPane({showArrows:true,arrowScrollOnHover:true});
     }
  });
}

/**
 * 投稿時間の日本語化
 * @param pastTime
 * @return 時間or日数
 */
function relativeTime(pastTime)
{
  var origStamp = Date.parse(pastTime);
  var curDate = new Date();
  var currentStamp = curDate.getTime();

  var difference = parseInt((currentStamp - origStamp)/1000);

  if(difference < 0) return false;

  if(difference <= 5)				return "現在";
  if(difference <= 20)			return "秒前";
  if(difference <= 60)			return "1分前";
  if(difference < 3600)			return parseInt(difference/60)+"分前";
  if(difference <= 1.5*3600) 		return "1時間前";
  if(difference < 23.5*3600)		return Math.round(difference/3600)+"時間前";
  if(difference < 1.5*24*3600)	return "1日前";
  if(difference >= 1.5*24*3600) return Math.round(difference/86400)+"日前";
}
