function twitterCallback2(twitters) {
	var statusHTML = [];

	// 各種DEFAULT
	if(typeof twitpic_size == 'undefined'){ twitpic_size = 'mini'; }
	if(typeof plog_size == 'undefined'){ plog_size = 'thumb1'; }
	if(typeof twitvid_width == 'undefined'){ twitvid_width = '100'; }
	if(typeof img_prefix == 'undefined'){ img_prefix = ''; }
	if(typeof img_suffix == 'undefined'){ img_suffix = ''; }

	for (var i=0; i<twitters.length; i++){
		var username = twitters[i].user.screen_name;
		var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,function(url) {
			// TWITPIC の場合
			if(url.match(/\/twitpic.com\/([0-9a-zA-Z])/)){
				var img_url = url.replace(/http\:\/\/twitpic\.com\//, function(img_url){
					return 'http://twitpic.com/show/' + twitpic_size + '/';
				})
				return img_prefix + '<a href="'+url+'" target=_blank alt="twitpic"><img border=0 class="twitpic" src="'+img_url+'"></a>' + img_suffix;

			// PHOTO ROBOX の場合
			}else if(url.match(/\/photo.robox.org\/([_a-z0-9])/i)){
				var img_url = url.replace(/home\/([_a-z0-9]+)/ig, function(img_url){
					return 'photo/' + plog_size;
				});
				img_url = img_url + '.jpg';
				return img_prefix + '<a href="'+url+'" target=_blank alt="PHOTO ROBOX"><img border=0 class="twitpic" src="'+img_url+ '"></a>' + img_suffix;

			// TWITVID の場合
			}else if(url.match(/\/twitvid.com\/([_a-z0-9])/i)){
				var img_url = url.replace(/twitvid.com/ig, 'images.twitvid.com');
				img_url = img_url + '.jpg';
			
			
			// Yfrog の場合
			}else if(url.match(/\/yfrog.com\/([0-9a-zA-Z])/)){
				var img_url = url.replace(/http:\/(\w+)/, function(img_url){
					return 'http://yfrog.com/' + img_url ;
				})
				img_url = img_url + ".th.jpg";
				return img_prefix + '<a href="'+url+'" target=_blank alt="Yfrog"><img border=0 class="twitpic" src="'+img_url+'"></a>' + img_suffix;
			
			// Twipple の場合
			//}else if(url.match(/\/p.twipple.jp\/([0-9a-zA-Z])/)){
			//	var img_url = url.replace(/http\:\/\/p\.twipple\.jp\//, function(img_url){
			//		return 'http://p.twipple.jp/data/'+r1+"/"+r2+"/"+r3+"/"+r4+"/"+r5+"_s.jpg" ;
			//	})
			//	img_url = img_url + "_s.jpg";
			//	return img_prefix + '<a href="'+url+'" target=_blank alt="Twipple"><img border=0 class="twitpic" src="'+img_url+'"></a>' + img_suffix;
			

			
			//  "twipple":{
            //    reg: /p.twipple.jp\/([0-9a-zA-Z]+)([0-9a-zA-Z]+)([0-9a-zA-Z]+)([0-9a-zA-Z]+)([0-9a-zA-Z]+)/gi,
            //    handler: function(r1,r2,r3,r4,r5){
            //        return ['http://p.twipple.jp/'+r1+r2+r3+r4+r5 ,'http://p.twipple.jp/data/'+r1+"/"+r2+"/"+r3+"/"+r4+"/"+r5+".jpg"];
            //    }
            //}     
			
			
			
			
			
			// twitvideo の場合
			}else if(url.match(/\/twitvideo.jp\/([_a-z0-9])/i)){
				var img_url = url.replace(/http\:\/\/twitvideo\.jp\//, function(img_url){
					return 'http://twitvideo.jp/img/' + plog_size + '/';
				});
				//img_url = img_url + '.jpg';
				return img_prefix + '<a href="'+url+'" target=_blank alt="PHOTO ROBOX"><img border=0 class="twitpic" src="'+img_url+ '"></a>' + img_suffix;
			
			// twitvideo の場合
			//}else if(url.match(/\/twitvideo.jp\/([_a-z0-9])/i)){
			//	var img_url = url.replace(/twitvideo.jp/ig, 'images.twitvideo.com');
			//	img_url = img_url + '.jpg';



				return img_prefix + '<a href="'+url+'" target=_blank><img border=0 class="twitpic" src="'+img_url+'" width=' + twitvid_width + '></a>' + img_suffix;
			}else{
				return '<a href="'+url+'" target=_blank alt="twitvid">'+url+'</a>';
			}
		}).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
			return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
		}).replace(/\B#([_a-z0-9]+)/ig, function(reply) {
			return  reply.charAt(0)+'<a href="http://twitter.com/#search?q=%23'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
		}
	);
    statusHTML.push('<li><span class="test">'+status+'</span><div class="date-fmt">'+relative_time(twitters[i].created_at)+'</div></li>');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return 'less than a minute ago';
  } else if(delta < 120) {
    return 'about a minute ago';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (120*60)) {
    return 'about an hour ago';
  } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}

function relative_time2(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  var dt = new Date();
  dt.setTime(dt.getTime() - (delta*1000));
  yy = dt.getYear();
  mm = dt.getMonth() + 1;
  dd = dt.getDate();
  dy = dt.getDay();
  hh = dt.getHours();
  mi = dt.getMinutes();
  ss = dt.getSeconds();
//  if (yy < 2000) { yy += 1900; }
  if (yy < 2000) { yy -= 100; }
  if (yy < 10) { yy = "0" + yy; }
  if (mm < 10) { mm = "0" + mm; }
  if (dd < 10) { dd = "0" + dd; }
  dy = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")[dy];
  if (hh < 10) { hh = "0" + hh; }
  if (mi < 10) { mi = "0" + mi; }
  if (ss < 10) { ss = "0" + ss; }
//  return yy+"/"+mm+"/"+dd+"("+dy+") "+hh+":"+mi+":"+ss;
  return mm+"/"+dd+" "+hh+":"+mi;
}

function load_twit(account, count) {
	if(typeof count == 'undefined'){ count = 10; }
	var ele = document.createElement("script");
	ele.type = "text/javascript";
	ele.src = "http://twitter.com/statuses/user_timeline/" + account + ".json?callback=twitterCallback2&count=" + count;
	document.body.appendChild(ele);
}

