var param = get_param();
var ptext="";
var picon="";
var arrid = new Array();
var arrkw = new Array();
function init(){
	document.forms[0].button.disabled =false;
	if(param["uid"]){
		document.forms[0].button.disabled =true;
		var uid = param["uid"];
		document.forms[0].uid.value = uid;
		checkInput();
	}
}
function checkInput(){
	if(!document.forms[0].uid.value | document.forms[0].uid.value=="Input Twitter userID"){
		alert("TwitterのIDを入力してください");
	}else{
		document.forms[0].button.disabled =true
		friendfinder();
	}
}
function friendfinder(){
	if($("#result"))$("#result").remove();
	$("#stdout").append('<div id="loading"><img src="./ajax-loader.gif" /><br />10〜30秒ほどお待ちください<br /><br />※1分待っても結果が表示されない場合は、API利用回数制限に達している可能性があります。<br />　その場合は１時間程度おいて再度お試しください。</div>');
	ptext = "";
	var uid = document.forms[0].uid.value;
	var twurl = "http://twitter.com/statuses/user_timeline/" + uid + ".json?count=200&callback=?";
	$.getJSON(twurl,function(data){
		
		if(data){
			$.each(data, function(i,item){
				ptext = ptext + item.text + " ";
			});
			picon = data[0].user.profile_image_url;
			postdata(ptext,picon,uid);
		}
	});
}

function postdata(ptext,picon,uid){
	$.post( "ff4u.php", {ptext:ptext,picon:picon,uid:uid} , function(result){
	
		if(result){
			arrkw = result.split("\t");
			$.each(arrkw, function(i){
				var url = "http://search.twitter.com/search.json?q=" + this + "&count=10&lang=ja&callback=?";
				$.getJSON(url,function(data){
					$.each(data.results, function(j,item){
						arrid.push(item.from_user);
					});	
					if(i==arrkw.length-1){	//kw配列ループ処理の最後だけ
						arrid = unique(arrid);
						arrid = shuffle(arrid);
						arrid = arrid.slice(0,40);
						var out = "※pointが高いほどおすすめです。<br />";
						$.each(arrid, function(k){
							var url = "http://twitter.com/users/show/" + this + ".json?callback=?";
							var ff;
							$.getJSON(url,function(data){
								if(data.followers_count!=0 && data.friends_count!=0){
									ff = (data.followers_count*data.followers_count)/data.friends_count;
								//	ff = ff*100;
									ff = Math.round(ff);
								//	ff = ff/100;
									if(ff>100){
										out = out + "<a href=\"http://twitter.com/" + data.screen_name + "\" target=\"_blank\">@" + data.screen_name + "</a> （" + ff.toString() + " point）<br/>";
									}
									if(k==arrid.length-1){
										out += "<a href=\"http://twitter.com/lisuke\" target=\"_blank\" >@lisuke</a> （このツールの作者です）<br/>";
										display(out);
									}
								}
							});
						});
					}
				});
			});
		}else{
			//キーワードを入力させる
		}
	});

}


function display(ptext){
	$("#stdout").append( ptext );
	if($("#loading"))$("#loading").remove();
	document.forms[0].button.disabled =false;
}
//////////////GETパラメータ取得関数////////////////
//sample param['lat'] //
function get_param(){
	q = location.search.slice(1).split('&');
	h = new Array();
	for (var i=0 , c=q.length ; i < c ; i++) {
		var s = q[i].split('=');
		h[s[0]] = s[1];
	}
	return h;
}

//////////////配列重複削除関数////////////////
function unique(array) {
　var storage = {};
　var uniqueArray = [];
　var i,value;
　for ( i=0; i<array.length; i++) {
   　value = array[i];
      if (!(value in storage)) {
      　storage[value] = true;
         uniqueArray.push(value);
       }
   }
   return uniqueArray;
}

//////////////shuffle////////////////
function shuffle(list) {
  var i = list.length;

  while (--i) {
    var j = Math.floor(Math.random() * (i + 1));
    if (i == j) continue;
    var k = list[i];
    list[i] = list[j];
    list[j] = k;
  }

  return list;
}

