
/******************************************************************
Output
******************************************************************/

function viewTweetAsset(obj, gray, last, t_logo) {
  var str = '';
  str += '<div class="entry">'; //エントリー1件分開始タグ
  str += '<p class="thumbnail"><a href="http://twitter.com/' + obj.screen_name + '" target="_blank"><img src="' + obj.profile_image_url + '"  width="40" /></a></p>'; //アイコン
  str += '<div class="message">'; //テキスト開始タグ
  str += '<p>';
  str += '<a href="http://twitter.com/' + obj.screen_name + '" target="_blank">' + obj.screen_name + '</a>&nbsp;'; //ユーザー名
  str += '<span class="tweetText">' + urlActivate(obj.description , obj.screen_name) + '</span>&nbsp;'; //本文
  str += '<span class="tweetTime">' + sinceTime(obj.updated) + '</span>'; //投稿時間
  str += '</p>';
  str += '<p class="tweetKanpeitter"><a href="http://twitter.com/' + obj.screen_name + '" target="_blank">寛平ったーのページへ移動</a></p>';
  str += '</div>'; //テキスト終了タグ
  str += '</div>'; //エントリー1件分終了タグ
  return str;
}

/******************************************************************
General logics
******************************************************************/

function getResults() {
	//getJsonp('http://www.ntv.co.jp/tsubuyaki/feed/feed.json');
	getJsonp('http://twitter.com/statuses/user_timeline/kanpeitter.json?callback=funcSearchTweets&count=3');
}

function funcSearchTweets(arr) {
  var str = '';
  var j = 0;

  for (var i=0; i<3; i++) {
    var obj = new dataSearch(arr[i]);
    if(checkNG(obj.screen_name, obj.description)){
      if(j == 0) lastTweet = obj;

      j++;
      str += viewTweetAsset(obj, (j%2 ? ' gray' : ''), (i == arr.length - 1 ? ' last' : ''), ' ts');
    }
  }
  $('.api_search_tweets').append(str);
}

function dataSearch(obj) {
  var t = obj.created_at.split(' ');
  this.screen_name = obj.user.screen_name;
  this.profile_image_url = obj.user.profile_image_url;
  this.description = obj.text;
  this.updated = (new Date(t[1] + ' ' + t[2] + ',' + t[5] + ' ' + t[3] + ' ' + t[4])).getTime();
}

function getJsonp(url){
  var s = document.createElement('script');
  var head = document.getElementsByTagName('head').item(0);

  s.setAttribute('type', 'text/javascript');
  s.setAttribute('src', url);
  s.setAttribute('charset', 'UTF-8');
  head.appendChild(s);
}

function sinceTime(date) {
  var now = (new Date()).getTime();
  var difmilsec = now - date;
  return '(' + (Math.floor(difmilsec/(60 * 1000)) < 60 ? Math.floor(difmilsec/(60 * 1000)) + '分前' : (Math.floor(difmilsec/(3600 * 1000)) < 24 ? Math.floor(difmilsec/(3600 * 1000)) + '時間前' : Math.floor(difmilsec/(86400 * 1000)) + '日前')) + ')';
}
function urlActivate(str , sname) {
  var rObj = new RegExp(/(http|https):\/\/([\w-]+\.)+[\w-]{2,4}(:\d+)?(\/[\w%=@&~,:+!{}`_\-\.\/\?\[\]]*)?/g);
  if(str.match(rObj)){
    var link = String(str.match(rObj)).split(",");
    link = array_unique(link);
    for(var i in link){
	  if (link[i].match('http://twitvideo.jp/')) {
		  imgurl = link[i].slice(20);
		  str = str.replace(link[i], '<div><a href="' + link[i] + '" target="_blank" ><img src="http://twitvideo.jp/img/thumb/' + imgurl + '" /></a></div>');
	  } else {
		  str = str.replace(link[i], '<a href="' + link[i] + '" target="_blank" >' + link[i] + '</a>');
	  }
    }
  }

  var rObj = new RegExp(/@([\w-]+)/g);
  if(str.match(rObj)){
    var link = String(str.match(rObj)).split(",");
    link = array_unique(link);
    for(var i in link){
	  str = str.replace(link[i], '<a href=\'http://twitter.com/' + link[i].slice(1) + '\' target=\'_blank\'>' + link[i] + '</a> ');
    }
  }

  return str;
}
function checkNG(from, text){
  var ret = true;
  return ret;
}
function clickcount(id, location){
  // to do http request to the counter
  getJsonp('/clickcounts/countup/i:' + id + '/l:' + location);
}
function reWriteText(className, str){
  $('.' + className).fadeOut('slow',function() {
    $('.' + className).val(str);
    $('.' + className).fadeIn('slow');
  });
}
function createHidden(name, value) {
  var h = this.document.createElement('input');
  h.type = 'hidden';
  h.name = name;
  h.value = value;
  return h;
}

function array_unique(Arr){
  var storeArr = new Array;
  var ret = new Array;
  i=0;
  f=0;
  while(Arr[i] != null){
    if(Arr[i] != ""){
      if(storeArr[String(Arr[i])]){
      }else{
        storeArr[String(Arr[i])] = 1;
        ret[f]=Arr[i];
        f++;
      }
    }
    i++;
  }
  return ret;
}
if(window.addEventListener) { window.addEventListener("load", getResults, false) };
if(window.attachEvent) { window.attachEvent("onload", getResults); }
