var isNgAccount = false;
var tweets = [];
var channels = new Array("nhk_twtv","etv_twtv","ntv_twtv","tv_asahi_twtv","tbs_twtv","tv_tokyo_twtv","fujitv_twtv");
var ngWords = new Array();



$(function(){
	var url = 'http://twitter.com/statuses/user_timeline/twtv_info.json?callback=?';

	$.getJSON(url, function(json){
		var info = "";
		var i,m,created_at;
		var created = new Date();

		// ツイテレ最新情報
		for(i in json){
			created_at = json[i].created_at.replace(/^(\w+) (\w+) (\w+) (.*?)( .{4})$/,"$1, $3 $2$5 $4");
			created.setTime(getTweetTimestamp(created_at));
			var year = created.getYear();
			year = (year < 2000) ? year + 1900: year;
			created_at = year +'/'+ (created.getMonth()+1) +'/'+ created.getDate();

			if(! json[i].text.match(/^@/)){
				info += "<dd>\n";
				info += '<p class="tweetText">'+json[i].text+'</p>';
				info += '<p class="date">'+created_at+'</p>';
				info += "</dd>\n";
			}
		}
		$('#latestInformation dl dt').append(info);

		$.get('system/data/ng_word.txt',function(data){
			data = decodeURIComponent(data);
			data = $.trim(data);
			ngWords = data.split("\n");

			$.timer(1000, function (timer) {
		    	timer.stop();
				var i= 1;
				for(i=1;i<=channels.length;i++){
					more_show_status(i);
				}
			});
		});
	});
});


function getTweetTimestamp(created_at){
	var twtime = created_at; //'Tue, 10 Nov 2009 03:25:47 +0000';
	twtime = twtime.replace(/^(.*?), /,"");
	twtime = twtime.replace(/ \+(.*?)$/,"");
	twtime = twtime.replace(/^(.*?) (.*?) /,"$1 $2 ");

	var created = new Date(twtime);
	return created.getTime() + 32400000;
}



function more_show_status(ch){
	tweets[ch-1] = [];
	var searchKeyword;

	switch(channels[ch-1]){
	case 'nhk_twtv':
		searchKeyword='%40nhk_twtv+OR+%23nhk'; // '@nhk_twtv+OR+#nhk'
		break;
	case 'etv_twtv':
		searchKeyword='%40etv_twtv+OR+%23etv';
		break;
	case 'ntv_twtv':
		searchKeyword='%40ntv_twtv+OR+%23ntv';
		break;
	case 'tbs_twtv':
		searchKeyword='%40tbs_twtv+OR+%23tbs';
		break;
	case 'tv_asahi_twtv':
		searchKeyword='%40tv_asahi_twtv+OR+%23tvasahi';
		break;
	case 'tv_tokyo_twtv':
		searchKeyword='%40tv_tokyo_twtv+OR+%23tvtokyo';
		break;
	case 'fujitv_twtv':
		searchKeyword='%40fujitv_twtv+OR+%23fujitv';
		break;
	}

	var rpp = 50;
	var url="http://search.twitter.com/search.json?q="+searchKeyword+"&lang=ja&page=1&rpp="+rpp+"&callback=?";

	$.getJSON(url, function(obj) {
		var i,j;
		var cnt = 0;
		var eCnt = 0;

        for(i in obj["results"]){
			for(j=0;j<ngWords.length;j++){
				var re = new RegExp('('+ngWords[j]+')',"");
				obj['results'][i].text = obj['results'][i].text.replace(re,"****");
			}

			cnt++;
			tweets[ch-1].push(obj['results'][i]);
        }

		tweets[ch-1].reverse();

		if(tweets[ch-1].length){
			add_list(ch,0);
		}
    });
}


function add_list(ch,cnt){
	var i = cnt;
	if(tweets[ch-1].length <=i){
		i = 0;
	}

	var ddTag = document.createElement('dd');
	ddTag.id = 'list_'+i;
	ddTag.style.display = 'none';
	ddTag.style.fontSize = '10px';
	ddTag.style.paddingLeft = '0px';

	var toolSrc = tweets[ch-1][i].source.replace(/&lt;/g,"<");
	toolSrc = toolSrc.replace(/&gt;/g,">");
	toolSrc = toolSrc.replace(/&quot;/g,'"');

	var text = tweets[ch-1][i].text;
	text = text.replace(/^&quot;/g,'');
	text = text.replace(/ㄠ/g,'　');
	//text = text.replace(/@(.*?)(:| |$)/g,'');
	//text = text.replace(/#(.*?)(:| |$)/g,'');
	//text = text.replace(/RT:? /g,'');
	text = text.substr(0,20) + "...";

	var profile_mini_image_url = tweets[ch-1][i].profile_image_url.replace(/_normal\./,"_mini.");

	s = '';
	s += '<p class="icon"><a href="http://twitter.com/'+tweets[ch-1][i].from_user+'" target="_blank">';
	s += '<img src="'+tweets[ch-1][i].profile_image_url+'" alt="" title="" width="48" height="48" /></a></p>';
	s += '<div class="textArea">';
	s += '<p class="author"><a href="http://twitter.com/'+tweets[ch-1][i].from_user+'" target="_blank">'+tweets[ch-1][i].from_user+'</a></p>';
	s += '<p class="tweetText">'+text+'</p>';
	s += '</div>';

	ddTag.innerHTML = s;
	$('#ch'+ch+" dt").after(ddTag);

	$(ddTag).show("slow",function(){
		var lastddTagPosY = $("#ch"+ch+" dd:last").offset()["top"] - $("#ch"+ch).offset()["top"];
		lastddTagPosY = Math.floor(lastddTagPosY);
		if(lastddTagPosY > 290){ $("#ch"+ch+" dd:last").remove(); }
		lastddTagPosY = $("#ch"+ch+" dd:last").offset()["top"] - $("#ch"+ch).offset()["top"];
		lastddTagPosY = Math.floor(lastddTagPosY);
		if(lastddTagPosY > 290){ $("#ch"+ch+" dd:last").remove(); }

		var second = Math.floor(Math.random() * 1000);
		second += 2000;

		$.timer(second, function (timer) {
    		timer.stop();
			i++;

			// 5件未満のチャンネルはループしない。
			if(tweets[ch-1].length < 5){
				if(tweets[ch-1].length == i){
					return;
				}
			}

			add_list(ch,i);
		});
	});
}

