/* --------------------------------
	Twitter
-------------------------------- */

var twitterAjax={
	// 設定
	requestFile: 'gettwitter.php',
	officialAccount: 'LTLS_Sports',
	hashTag: '2010wc',

	// 初期化
	init: function() {
		var self = this;
		var root = this.getRoot();
		// オフィシャル
		$.ajax({
			type:'post',
			url: root + this.requestFile,
			data:{
				type:'timeline',
				timeLine:this.officialAccount
			},
			dataType :'json',
			success: function(json){
				$(function() {
					self.officialTwitter(json,'#twitterArea .section:nth-child(1)');
				});
			}
		});
		// ハッシュ
		$.ajax({
			type:'post',
			url: root + this.requestFile,
			data:{
				type:'search',
				tag:this.hashTag
			},
			dataType :'json',
			success: function(json){
				$(function() {
					self.searchHash(json.results,'#twitterArea .section:nth-child(2)');
				});
			}
		});
	},
	// オフィシャル
	officialTwitter: function(json,target){
		var self=this;
		var src = [
			'<ul class="timeline">'
		];
		$(json).each(function(i){
			var name = this.user.screen_name;
			var text = self.checkLink(this.text);
			var icon = self.getIcon(this.user.profile_image_url);
			var rt = self.relative_time(this.created_at.replace(/^([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+) ([^\s]+)$/, '$1, $3 $2 $6 $4 $5'));
			var id = this.id;
			src = src.concat([
				'<li>',
				'<p class="icon"><a href="http://twitter.com/'+name+'" target="_blank"><img src="'+icon+'" alt="" width="48" height="48" border="0" /></a></p>',
				'<div class="content txt12">',
				'<p class="account">@<a href="http://twitter.com/'+name+'" target="_blank">'+name+'</a></p>',
				'<p class="tweet">'+text+'<span class="date">（<a href="http://twitter.com/'+name+'/status/'+id+'" target="_blank">'+rt+'</a>）</span></p>',
				'</div>',
				'</li>'
			]);
		});
		src.push('</ul>');
		$(target).html(src.join('')).find('li:first-child').addClass('first-child');
	},
	// ハッシュ
	searchHash: function(json,target){
		var self=this;
		var src = [
			'<ul class="timeline">'
		];
		$(json).each(function(i){
			var name = this.from_user;
			var text = self.checkLink(this.text);
			var icon = self.getIcon(this.profile_image_url);
			var rt = self.relative_time(this.created_at);
			var id = this.id;
			src = src.concat([
				'<li>',
				'<p class="icon"><a href="http://twitter.com/'+name+'" target="_blank"><img src="'+icon+'" alt="" width="48" height="48" border="0" /></a></p>',
				'<div class="content txt12">',
				'<p class="account">@<a href="http://twitter.com/'+name+'" target="_blank">'+name+'</a></p>',
				'<p class="tweet">'+text+'<span class="date">（<a href="http://twitter.com/'+name+'/status/'+id+'" target="_blank">'+rt+'</a>）</span></p>',
				'</div>',
				'</li>'
			]);
		});
		src.push('</ul>');
		$(target).html(src.join('')).find('li:first-child').addClass('first-child');
	},
	// 相対時間
	relative_time: function(time_value) {
		var time = new Date().getTime() - new Date(time_value).getTime();
		return (time < 1000 * 60) ? Math.floor(time / 1000) + '秒前'
			: (time < 1000 * 60 * 60) ? Math.floor(time / (1000 * 60)) + '分前'
			: (time < 1000 * 60 * 60 * 24) ? Math.floor(time / (1000 * 60 * 60)) + '時間前'
			: Math.floor(time / (1000 * 60 * 60 * 24)) + '日前';
	},
	// リンク
	checkLink: function(txt){
		var tweet = txt.replace(/((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/g,'<a href="$1" target="_blank">$1</a>');
		tweet = tweet.replace(/(@|＠)(\w+)/g,'$1<a href="http://twitter.com/$2" target="_blank">$2</a>');
		return tweet.replace(/(#|＃)(\w+)/g,'<a href="http://twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	},
	// アイコンサイズ取得
	getIcon: function(imgSrc){
		var icoSize='normal';
		var newIco=imgSrc;
		imgSrc.match('(\.gif|\.jpg|\.png)([\?].*|$)');
		var ext = RegExp.$1;
		var normal = '_normal' + ext;
		var mini = '_mini'+ ext;
		if(icoSize=='mini'){
			newIco = imgSrc.replace(normal, mini);
		}else{
			newIco = imgSrc.replace(mini, normal);
		}
		return newIco;
	},
	// ルートを取得
	getRoot: function() {
		var scripts = document.getElementsByTagName('script');
		return scripts[scripts.length - 1].src.replace(/[^\/]+\.js([\?].*)*$/, '');
	}
}

twitterAjax.init();








