/**
* Copyright(C) 2007. feedtailor.jp
*
*/


// blogal
var _gid = 1;



// 最近の検索結果数比較を取得
function _recently(num){
	$.getJSON('proxy.php', {m:'recently', n:num}, function(json){
		// indicator の非表示
		$('#recently_indicator').slideUp('slow');
		$('#recently_indicator').html('');
		$('#recently_keywords').hide();
		
		// ハッシュ展開
		var ret = json;
		for(tag in ret){
			var arr = new Array();
			for(i in ret[tag]){
				arr.push(decodeURIComponent(ret[tag][i]));
			}
			$('#recently_keywords').html($('#recently_keywords').html() + '<div><a href="#" onClick="_init();_fillout(\'' + arr.join('_') + '\');">' + arr.join('&nbsp;&nbsp;') + "</a></div>");
		}
		$('#recently_keywords').slideDown(1500);
	});
	
	// recently 表示ついでに focus を合わせる
	$('#k0').focus();
}


// fill out
function _fillout(arr){
	var keywords = arr.split('_');
	for(i in keywords){
		if(Number(i) + 1 > $('tr.result').length) {
			_add(keywords[i]);
		}
		$('#k' + i).attr('value', keywords[i]);
	}
	
}


// 追加されているkeyword入力欄を初期化
function _init()
{
	$.each($('div.dk'), function(i){
		if(i >= 2){
			this.parentNode.removeChild(this);
		}
	});

	$.each($('tr.result'), function(j){
		if(j >= 2){
			this.parentNode.removeChild(this);
		}
	});
}


// keywordのチェック
function _check(){
	// keywordに関するチェック
	var cnt = 0;
	for(i = 0; i < $('input.k').length; i++){
		if($('input.k')[i].value != null && $('input.k')[i].value != ''){
			cnt++;
		}
	}

	// keywordの数が0の時はエラーメッセージを出す
	if(cnt == 0){
		alert('キーワードが入力されていません。\n最低1つのキーワードを入力して下さい。');
		return false;
	}
	
	return true;
}




// サブミット
function _submit(arr){
	// どの検索エンジンを使うか
	var engines = new Array();
	for(i in arr){
		engines[arr[i].substr(0, 1)] = true;
	}
	// 入力欄のチェック
	if(!_check()){
		return false;
	}

	// tag set 用
	var _date = new Date();
	var tag = _date.getTime();

	// indicator の表示
	$('#display').html('<img src="img/indicator.gif" />');
	
	// keywordごとにリクエストを投げる
	var ks = new Array();
	var results = $('tr.result');
	for(i = 0; i < results.length; i++){
		var id = results[i].getAttribute('id').substr(1);
		$('#r' + id).html('');

		// keywordを取得して評価(nullだったり空文字列の場合は無視)
		var keyword = $('#k' + id).attr('value');
		if(keyword == null || keyword == ''){
			continue;
		}
			
		ks.push(keyword);
		
		// parameter
		var params = {k:keyword, i:id, t:tag};
		for(e in engines){
			params[e] = 'on';
		}
		
		$.getJSON('proxy.php', params, function(json){
			$('#display').html('');
			var html = '<td class="keyword">' + decodeURIComponent(json.keyword) + '</td>';
			for(i in json.results){
				html += '<td class="' + i + '"><a href="' + decodeURIComponent(json.results[i]['query']) + '" target="_blank">' + json.results[i]['num'] +'</a></td>';
			}

			$('#r' + json.id).html(html);
		});
	}

	/*
	// recently 欄の追加
	var a = $('<a />').attr({href:'#', onClick:'_init();_fillout(\'' + ks.join('_') + '\');'}).html(ks.join('&nbsp;&nbsp;'));
	var div = $('<div />').attr('id', 'recently_last').append(a).insertBefore($('#recently_keywords').children()[0]);
	*/
	return true;
}



// 追加
function _add(keyword){
	_gid++;

	// input要素を作る
	var kid = 'k' + _gid;
	var dkid = 'd' + kid;

	// inputを作成
	var input = $('<input />').attr({'type':'text', 'size':20, 'name':'keywords[]', 'id':kid, 'class':'k', 'value':keyword});
	
	// delボタンを作成
	var del = $('<a />').attr({href:'#', onClick:'_del('+_gid+')'}).append($('<img />').attr({'src':'img/delete.png', 'border':0, 'class':'del'}));

	// #keywords配下に input, del を追加する
	$('#keywords').append($('<div />').attr('id', dkid).attr('class', 'dk').append(input).append(del));

	// focusを新しいinputに当てる
	$('#'+kid).focus();

	// 対応する result も作る
	$('#results_table').append('<tr id="r' + _gid + '" name="r" class="result"></tr>');
}




// input formを削除する
function _del(id){
	$('#dk' + id).remove();
	$('#r' + id).remove();
}
