
function getTweets() {
	getJsonp('http://api.twitter.com/1/balancers/lists/list/statuses.json?callback=funcSearchTweets&page=1&per_page=50');
	//getJsonp('http://api.twitter.com/1/balancers/lists/cast/statuses.json?callback=funcSearchTweets&page=1&per_page=50');
}

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

  for (var i=0; i<arr.length; i++) {
    var obj = new dataSearch(arr[i]);
    if(checkNG(obj.screen_name, obj.description)){
      if(j == 0) lastTweet = obj;
      j++;
      //only #balancers
      if(obj.description.match('#balancers')){
      	str += viewTweetAsset(obj, (j%2 ? ' gray' : ''), (i == arr.length - 1 ? ' last' : ''), ' ts');
      	con++;
      	if(con == 5){
      		break;
      	}
      }
    }
  }
  j$('#tweet2').append(str);
}
function funcSearchTweets2(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');
    }
  }
  j$('.api_search_tweets2').append(str);
}

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

  for (var i=0; i<arr.length; 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');
    }
  }
  j$('.api_search_tweets3').append(str);
}

function viewTweetAsset(obj, gray, last, t_logo) {
  var str = '';
  str +=  '<p class="photo"><img src="' + obj.profile_image_url + '" alt="" /></p>';
  if(obj.screen_name.match('balancers')){
  	str +=  '<p class="name"><a href=http://www.ntv.co.jp/ad/cnt/balancers_tw01.html target="_blank">'+obj.name+'</a></p>';
  }else{
  	str +=  '<p class="name"><a href=\'http://twitter.com/' + obj.screen_name + '\' target=\'_blank\'>' + obj.name+'</a></p>';
  }
  str +=  '<p class="text">' + urlActivate(obj.description , obj.screen_name) + '</p>';
  str += '<p class="time">' + sinceTime(obj.updated) + '</p>';
  str += '<p class="border"><img src="images/top/border.gif" /></p>';
  return 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.name = obj.user.name;
  this.updated = (new Date(t[1] + ' ' + t[2] + ',' + t[5] + ' ' + t[3] + ' ' + t[4])).getTime();
}

/******************************************************************
General logics
******************************************************************/
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;
  var str =  "";
  
  var min = Math.floor(difmilsec/(60 * 1000));
  var hour = Math.floor(difmilsec/(3600 * 1000));
  var day = Math.floor(difmilsec/(86400 * 1000));
  
  if(min < 60){
  	if(min == 1){
  		str = "1 minute ago";
  	}else{
  		str = min + " minutes ago";
  	}
  }else if(hour < 24){
  	if(hour == 1){
  		str = "1 hour ago";
  	}else{
  		str = hour + " hours ago";
  	}
  }else{
  	if(day == 1){
  		str = "1 day ago";
  	}else{
  		str = day + " days ago";
  	}
  }
  return str;
}

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(typeof(link[i]) == 'string'){
		  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){
        if(typeof(link[i]) == 'string'){
  			if(link[i].match('@balancers')){
    	 	 	str = str.replace(link[i], '<a href=http://www.ntv.co.jp/ad/cnt/balancers_tw01.html target="_blank">' + link[i] + '</a> ');
    	 	 }else{
	 		 	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){
  j$('.' + className).fadeOut('slow',function() {
    j$('.' + className).val(str);
    j$('.' + 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;
}
