/////////////////////////////////////////////////////////////// 
// 環境変数
/////////////////////////////////////////////////////////////// 

/** 非検索対象のコーパスリスト */
var NO_SEARCH_CORPUS = ["topic-words", "db-list"];
/////////////////////////////////////////////////////////////// 
// init
///////////////////////////////////////////////////////////////

/**
 * ページ表示時の初期化
 */
function init() {
	window.focus();
	sortableInit();
	
	// wrapperの幅を調節 (各デザインで定義 style/[styleID]/js/default.js)
	setInnerWidth();
	
	// 検索実行
	searchAll();
	
	// 背景がウィンドウ下部まで伸びるよう調整する
	/*
	var height;
	var h1 = $("wrapper").getHeight();
	var h2 = document.documentElement.clientHeight;
	if (navigator.appVersion.toUpperCase().indexOf('SAFARI') != -1) {
		h2 = window.innerHeight - 8;
	}
	if (h1 < h2) {
		height = $("col_wrapper").getHeight() + (h2-h1) - 50;
	}
	$("col_wrapper").style.height = height +"px";
	*/
	if (QUERY == null || QUERY == "") {
		var height;
		var h1 = $("wrapper").getHeight();
		var h2 = document.documentElement.clientHeight;
		if (navigator.appVersion.toUpperCase().indexOf('SAFARI') != -1) {
			h2 = window.innerHeight;
		}
		
		if (h1 < h2) {
			height = h2 - $("header").getHeight() - 50 + TOP_HEIGHT_ADJUSTMENT;
		} else {
			height = h1;
		}
		
		$("col_wrapper").style.height = height +"px";
	}
	
}

/////////////////////////////////////////////////////////////// 
// 検索関係 メソッド
/////////////////////////////////////////////////////////////// 
	
/**
 * サーバからデータ受信時の処理（連想検索）
 */
function callbackSearch(res, dbId) {
	// 受信した部分HTMLを対応dbIdのタグの中に埋め込む
	var data = eval("("+ res.responseText +")");

	/*
	 * ヘッダーの色を変える
	 */
	$(dbId + "_col").className =  "col col_" + data.styleIndex;
	
	/*
	 * スムーズスクロール
	 */
	var articleDiv = document.createElement("div");
	articleDiv.innerHTML=data.articles;
	$(dbId + "_contents").appendChild(articleDiv);

	/*
	 * 各軸のヘッダ
	 */
	$(dbId + "_header").innerHTML=data.articlesHeader;
	
	/*
	 * 特徴語
	 */
	if (data.keywords != null && data.keywords != "") {
		// 既に検索済みの場合は書き換えない
		if ($(dbId + "_words_txt").innerHTML == null || $(dbId + "_words_txt").innerHTML == "") {
			$(dbId + "_words_txt").innerHTML=data.keywords;
		}
	} else {
		//$(dbId + "_words_txt").innerHTML="";
	}
	
	/*
	 * more
	 */
	if (data.more != null) {
		$(dbId + "_more").innerHTML=data.more;
	} else {
		$(dbId + "_more").innerHTML="";
	}
	
	/*
	 * copyright
	 */
	if (data.copyright != null) {
		$(dbId + "_copyright").innerHTML=data.copyright;
	} else {
		$(dbId + "_copyright").innerHTML="";
	}

	searchEnd(dbId);
}

/**
 * Ajax非同期によるサーバに問い合わせ（連想検索）
 */
function search(dbId) {
	
	// 検索要求が無い場合は検索しない
	if (QUERY == null || QUERY == "") {
		return;
	}
	
	// 既に検索済みの場合は検索しない
	if ($(dbId + "_contents").innerHTML != null && $(dbId + "_contents").innerHTML != "") {
		return;
	}
	
	// ローディング中の処理
	searchBegin(dbId);
	// 検索クエリーにターゲットを追加してサーバに問い合わせる
	var data = "&dbId=" + dbId + QUERY;
	ajaxRequest(callbackSearch, data, ASSOC_SERVER_URL, dbId);
}

/**
 * Ajax非同期によるサーバに問い合わせ[more検索]（連想検索）
 */
function searchMore(dbId, narticles) {
	// 検索要求が無い場合は検索しない
	if (QUERY == null || QUERY == "") {
		return;
	}
	
	// ローディング中の処理
	searchMoreBegin(dbId);
	// 検索クエリーにターゲットを追加してサーバに問い合わせる
	var data = "&dbId=" + dbId + "&narticles=" + narticles + QUERY;
	ajaxRequest(callbackSearch, data, ASSOC_SERVER_URL, dbId);
}

/**
 * チェックされているコーパス全て検索
 */
function searchAll() {
	var elements = document.getElementsByName("corpus");
	for(var i=0;i<elements.length;i++){
	
		var element=elements[i];

		// 検索可能なコーパスかチェック
		if (checkSearchCorpus(element) == false) {
			continue;
		}
		
		// 検索
		search(element.value);
	}
}

/**
 * 検索開始時の処理
 */
function searchBegin(value) {
	
	var loading = 'Loading...';

	$(value + "_header").innerHTML = loading;
	$(value + "_contents").innerHTML = "";
}

/**
 * 検索開始時の処理
 */
function searchMoreBegin(value) {
	
//	var loading = 'Loading...';
//	$(value + "_more").innerHTML = loading;
}

/**
 * 検索完了時の表示
 */
function searchEnd(value) {
//alert($("db-list_col").getHeight() + ":" +  $("topic-words_col").getHeight() + ":" + $(value + "_col").getHeight());
	// 背景がウィンドウ下部まで伸びるよう調整する
	/*
	var height;
	height = $(value + "_col").getHeight();
	if (height < $("db-list_col").getHeight()) {
		height = $("db-list_col").getHeight();
	}
	if (height < $("topic-words_col").getHeight()) {
		height = $("topic-words_col").getHeight();
	}

	var h1 = $("wrapper").getHeight();
	var h2 = document.documentElement.clientHeight;
	if (navigator.appVersion.toUpperCase().indexOf('SAFARI') != -1) {
		h2 = window.innerHeight - 8;
	}
	if (h1 < h2) {
		height = $("col_wrapper").getHeight() + (h2-h1) - 50;
	}

	if ($("col_wrapper").getHeight() < height) {
		$("col_wrapper").style.height = height +"px";
	}
		*/

/*
	$("sun44.shinshomap_theme_col").style.backgroundColor = "black";
	$("wrapper").style.backgroundColor = "yellow";
	$("col_wrapper").style.backgroundColor = "blue";
	$("content").style.backgroundColor = "red";
*/
	//Effect.Appear(value,{duration : 0.2});
}

///////////////////////////////////////////////////////////////
// 記事ベクトル取得 メソッド
///////////////////////////////////////////////////////////////

/**
 * サーバからデータ受信時の処理（記事ベクトル取得）
 */
function callbackGetVector(res, data) {
	// 受信したベクトルデータを hidden要素に追加
	var hidden = document.createElement("input");
	hidden.type = "hidden";
	hidden.name = "article_vector";
	hidden.value = res.responseText;
	hidden.id = data + "_article_vector";
	document.searchForm.appendChild(hidden);
	
	// データ取得時のアクション (getVectorの最後ではだめ)
	actionGetVectorEnd(data);
	
	//alert(res.responseText);
}

/**
 * Ajax非同期によるサーバに問い合わせ（記事ベクトル取得）
 */
function getVector(checkBoxData) {

	var data = checkBoxData.value;
	if (checkBoxData.checked == true) {
		/* チェックが付けられた時の処理 */
		// 選択開始時のアクション
		actionGetVectorBegin(data);	
		// 単語ベクトルデータを取得
		ajaxRequest(callbackGetVector, data, ARTICLE_VECTORS_SERVER_URL, data);
	} else {
		/* チェックが外された時の処理 */
		// 選択解除時のアクション
		actionGetVectorReset(data);
		// チェックが外された記事のベクトルデータの hidden要素を削除
		var hidden = $(data + "_article_vector");
		document.searchForm.removeChild(hidden);
	}
}

/**
 * 記事ベクトル取得開始時の処理
 */
function actionGetVectorBegin(value) {
	$(value + "_inner").style.backgroundColor  = GETVECTOR_HIGHLIGHT_COLOR;
}
/**
 * 記事ベクトル取得完了時の表示
 */
function actionGetVectorEnd(value) {
	new Effect.Highlight(value + "_inner",{endcolor:GETVECTOR_CHECKED_COLOR, restorecolor:GETVECTOR_CHECKED_COLOR, startcolor:GETVECTOR_HIGHLIGHT_COLOR, duration:0.3});
	$(value).className = "item_content active";
}

/**
 * 記事のチェックボックスが外された時の表示
 */
function actionGetVectorReset(value) {
	$(value).className = "item_content";
	$(value + "_inner").style.backgroundColor  = GETVECTOR_UNCHECKED_COLOR;
}


/////////////////////////////////////////////////////////////// 
// フォーム検証
///////////////////////////////////////////////////////////////

/**
 * IMAGINEボタン押下時
 * フリーワード、記事、topicwordsのいずれかが選択されていればtrue
 * フォーム検証
 */
function checkImagineEmpty() {
	var form = document.searchForm;
	var textFlag = true;

	if (checkTextEmpty(form) == false) {
		textFlag = false;
	} 
	if (checkAssocEmpty(form) == false && textFlag == false) {
		alert("気に入った項目にチェックしてから、もう一度押してください");
		return false;
	}
	
	return true;
}

/**
 * Web Sarchボタン押下時
 * topic words が一つでも押されていれば true
 * フォーム検証
 */
function checkWebSarchEmpty() {
	var form = document.searchForm;
	for(var i = 0; i < form.elements.length; i++) {
		var element = form.elements[i];
		if (element.type == "checkbox" && element.name == "keyword" && element.checked == true) {
			return true;
		}
	}
	alert("選択されたキーワードでウェブ検索を起動します。\n気に入った項目にチェックしてから、もう一度押してください。");
	return false;
}

/**
 * 連想検索用
 * 検索要求が空でないか検証
 */
function checkAssocEmpty(form) {
	for(var i = 0; i < form.elements.length; i++) {
		var element = form.elements[i];
		if (element.type == "hidden" && element.name == "article_vector") {
			return true;
		}
		if (element.type == "checkbox" && element.name == "keyword" && element.checked == true) {
			return true;
		}
	}
	return false;
}

/**
 * フレーズ検索用
 * テキストエリアが空でないか検証
 */
function checkTextEmpty(form) {
	if (form.freetext.value != null && form.freetext.value != "") {
		return true;
	}
	return false;
}

/////////////////////////////////////////////////////////////// 
// Utilメソッド
///////////////////////////////////////////////////////////////
/**
 * チェックボックスのチェック数を返す
 */
function countCheckd(checkboxs) {
	var count = 0;
	for(var i = 0; i < checkboxs.length; i++){
		if (checkboxs[i].checked == true) {
			count++;
		}
	}
	return count;
}

/**
 * 検索可能なコーパスかをチェック
 */
function checkSearchCorpus(elemnet) {
	// チェックボックスにチェックが無ければスキップ
	if (elemnet.type != "checkbox" || elemnet.checked == false) {
		return false;
	}

	// 検索しないコーパスはスキップ
	for (var i = 0; i < NO_SEARCH_CORPUS.length; i++) {
		if (NO_SEARCH_CORPUS[i] == elemnet.value) {
			return false;
		}
	}
	return true;
}

/////////////////////////////////////////////////////////////// 
// 並び替え
///////////////////////////////////////////////////////////////
// 前回の並び順
var previousSelectedDbs;

// 移動が生じたdbId
var dragedId;
/**
 * 並び替え可能にする
 * from init
 */
function sortableInit() {
	// 並び替えの初期化
	Sortable.create('dbList-selected',{containment:['dbList-selected','dbList-unselected'], dropOnEmpty:false, tag:'li', onUpdate:function(){changeDbDragAndDrop();}, onChange:function(dragedElement){dragedId = dragedElement.id;}});
 	Sortable.create('dbList-unselected',{containment:['dbList-selected','dbList-unselected'], dropOnEmpty:false, tag:'li'});
	
	previousSelectedDbs =  Sortable.sequence('dbList-selected');
	
	//Sortable.create('col_wrapper',{dropOnEmpty:true, tag:'div', constraint:'horizontal', overlap:'horizontal', handle:'ttl_wrapper'});
}

/////////////////////////////////////////////////////////////// 
// 並び替え処理Start
///////////////////////////////////////////////////////////////

/**
 * 並び替え処理Start
 * DBのチェックボックスをチェック時
 * from DBのチェックボックス押下時
 */
function changeDbCheckBox(dbId) {
	if ($(dbId + "_input").checked == true) {
		var dbListNode = $('dbList-selected');
		dbListNode.insertBefore($("dbList-selected_" + dbId), null);
	} else {
		var dbListNode = $('dbList-unselected');
		dbListNode.insertBefore($("dbList-selected_" + dbId), dbListNode.firstChild);
	}
	
	updateList(dbId);
}

/**
 * 並び替え処理Start
 * DB LISTのD&D
 */
function changeDbDragAndDrop() {
	var dbId = dragedId.replace(/^dbList-selected_/, "");
	updateList(dbId);
}

/**
 * 並び替え処理Start
 * 軸右上の閉じるボタンを押した時にその軸を消す 各DB
 */
function closeButtonDb(dbId) {
	var dbListNode = $('dbList-unselected');
	dbListNode.insertBefore($("dbList-selected_" + dbId), dbListNode.firstChild);
	updateList(dbId);
}
/**
 * 並び替え処理Start
 * 軸右上の閉じるボタンを押した時にその軸を消す　「DB list」 or 「Topic words」
 */
function closeButtonMisc(dbId) {
	$(dbId).checked = false
	// チェックされたDBを追加して軸を表示する
	changeMicsCheckBox(dbId);
}
/**
 * 並び替え処理Start
 *「DB list」 or 「Topic words」のチェックボックスをチェック時
 */
function changeMicsCheckBox(dbId) {
	if (dbId == "db-list") {
		// db-listとtopicWordのチェック状況によってクラス名を変更 (id: content_inner_1, content_inner_2)
		var dbListCheckBox = document.getElementById("db-list");
		if (dbListCheckBox.type == "checkbox" && dbListCheckBox.checked == true) {
			//$("content_inner_1").className = "content_inner_1";
			$("db-list_col").style.display="";
		} else {
			$("content_inner_1").className = "content_inner_1 no_db_list";
			$("db-list_col").style.display="none";
		}
	} else if (dbId == "topic-words") {
		var topicWordsCheckBox = document.getElementById("topic-words");
		if (topicWordsCheckBox.type == "checkbox" && topicWordsCheckBox.checked == true) {
			$("content_inner_2").className = "content_inner_2";
			$("topic-words_col").style.display="";
		} else {
			$("content_inner_2").className = "content_inner_2 no_web_search";
			$("topic-words_col").style.display="none";
		}
	} else {
		
	}
	
	// wrapperの幅を調節 (各デザインで定義 style/[styleID]/js/default.js)
	setInnerWidth();
	// 選択されているDBをCookieに保存する
	setCookie();
}

/////////////////////////////////////////////////////////////// 
// 並び替え処理 Process
///////////////////////////////////////////////////////////////

/**
 * 並び替えを更新する
 */
function updateList(dbId) {

	var nowSelectedDbs = Sortable.sequence('dbList-selected');
	
	if (nowSelectedDbs.length - previousSelectedDbs.length > 0) {
		/*
		 * 軸が追加された
		 */
		
		// 新しい軸の追加の場合 Ajaxで軸を追加する
		if ($(dbId + "_col") == null) {
			//Sortable.destroy('col_wrapper');
			addColumn(dbId);
			//Sortable.create('col_wrapper',{dropOnEmpty:true, tag:'div', constraint:'horizontal', overlap:'horizontal', handle:'clearfix'});
		}
		
		// チェックボックスをONにする
		var dbInputNode = $(dbId + "_input");
		dbInputNode.checked = true;

		// 軸の並び替え処理
		var previousSiblingId = null;	// 挿入する隣（前）のdbId
		for (var i = 0; i < nowSelectedDbs.length; i++) {
			var nowDbId = decodeURIComponent(nowSelectedDbs[i]);
			if (nowDbId == dbId) {
				previousSiblingId = nowSelectedDbs[i + 1];
				break;
			}
		}
		// 記事列
		$('col_wrapper').insertBefore($(dbId + "_col"), $(previousSiblingId + "_col"));
		// TopicWord
		$('topic-words_list').insertBefore($(dbId + "_words"), $(previousSiblingId + "_words"));
		
		$(dbId + "_col").style.display="";
		$(dbId + "_words").style.display="";
		
		// 検索
		search(dbId);
		
	} else if (nowSelectedDbs.length - previousSelectedDbs.length < 0) {
		/*
		 * 軸が削除された
		 */
		
		// チェックボックスをOFFにする
		var dbInputNode = $(dbId + "_input");
		dbInputNode.checked = false;
		
		// 外されたDBの項目の中に、getvector済みがあればそれを外す
		// 軸内の記事のチェックボックスを取得
		var articleCheckBoxList = document.getElementsByName(dbId + "_article");
		for (var j = 0; j < articleCheckBoxList.length; j++) {
			var articleCheckBox = articleCheckBoxList[j];
			if (articleCheckBox.checked == true) {
				articleCheckBox.checked = false;
				getVector(articleCheckBox);
			}
		}
		$(dbId + "_col").style.display="none";
		$(dbId + "_words").style.display="none";
	} else {
		/*
		 * 並び替えのみされた
		 */
		
		// 軸の並び替え処理
		var previousSiblingId = null;	// 挿入する隣（前）のdbId
		for (var i = 0; i < nowSelectedDbs.length; i++) {
			var nowDbId = decodeURIComponent(nowSelectedDbs[i]);
			if (nowDbId == dbId) {
				previousSiblingId = nowSelectedDbs[i + 1];
				break;
			}
		}
		// 記事列
		$('col_wrapper').insertBefore($(dbId + "_col"), $(previousSiblingId + "_col"));
		// TopicWord
		$('topic-words_list').insertBefore($(dbId + "_words"), $(previousSiblingId + "_words"));
		
		$(dbId + "_input").checked = true;
	}
			

	previousSelectedDbs = Sortable.sequence('dbList-selected');
	
	// wrapperの幅を調節 (各デザインで定義 style/[styleID]/js/default.js)
	setInnerWidth();
	
	// 選択されているDBをCookieに保存する
	setCookie();
}

/**
 * 選択されているDBをCookieに保存する
 */
function setCookie() {
	// 選択されているDBを Cookieをセットする
	var dbList = new Array;
	
	var selectedDbNodes = Sortable.sequence('dbList-selected');
	for (var i = 0; i < selectedDbNodes.length; i++) {
		var selectedDbNode = selectedDbNodes[i];
		dbList.push(selectedDbNode);
	}
	
	// db-listとtopicWordを入れる
	for (var i = 0; i < NO_SEARCH_CORPUS.length; i++) {
		var noSearchElement = document.getElementById(NO_SEARCH_CORPUS[i]);
		if (noSearchElement.type == "checkbox" && noSearchElement.checked == true) {
			dbList.push(NO_SEARCH_CORPUS[i]);
		}
	}
	var dbListJson = toJSONString(dbList);
	document.cookie = "pref=" + encodeURIComponent(dbListJson) + ";path=" + CONTEXT_PATH + ";expires=Tue, 1-Jan-2030 00:00:00 GMT;";
}


/////////////////////////////////////////////////////////////// 
// エフェクト
///////////////////////////////////////////////////////////////
/**
 * チェックボックスをクリックした時のアクション
 * 文字をボールドにする
 * from topic wordsのチェックボックス
 */
function setBold(checkBoxData) {
	
	if (checkBoxData.checked == true) {
		/* チェックが付けられた時の処理 */
		checkBoxData.parentNode.parentNode.style.fontWeight = "bold";
	} else {
		/* チェックが外された時の処理 */
		checkBoxData.parentNode.parentNode.style.fontWeight = "normal";
	}
}

/**
 * スムーズスクロール
 * from Topへボタン押下時
 */
var scrj = 1;
function smoothScrollBack() {
   var scdist  = document.body.scrollTop  || document.documentElement.scrollTop;

   if(scrj<50 && scdist) {
      scdist = (scdist>2) ? Math.ceil(scdist * 0.2) : 1;
      scrj++;
      scrollBy(0,-scdist);
      setTimeout("smoothScrollBack()",20);
   } else {
      scrollTo(0,0);
      scrj = 1;
   }
}

/**
 * 移動用画像の表示
 * from 項目マウスオーバー時
 */
function showPointer(data) {
	$(data).style.display="";
	//Effect.Appear($(data));
}
/**
 * 移動用画像の非表示
 * from 項目マウスアウト時
 */
function hidePointer(data) {
	$(data).style.display="none";
	//Effect.Fade($(data));
}



/////////////////////////////////////////////////////////////// 
// Fromアクション
///////////////////////////////////////////////////////////////
/**
 * IMAGINE実行時にDBの並びをhidden要素に追加する
 * from IMAGINEボタン押下時
 */
function setHiddenSelectedDb() {

	var dbList = new Array;
	var selectedDbNodes = Sortable.sequence('dbList-selected');
	for (var i = 0; i < selectedDbNodes.length; i++) {
		var selectedDbNode = selectedDbNodes[i];
		dbList.push(selectedDbNode);
	}
	
	// db-listとtopicWordを入れる
	for (var i = 0; i < NO_SEARCH_CORPUS.length; i++) {
		var noSearchElement = $(NO_SEARCH_CORPUS[i]);
		if (noSearchElement.type == "checkbox" && noSearchElement.checked == true) {
			dbList.push(NO_SEARCH_CORPUS[i]);
		}
	}
	var dbListJson = toJSONString(dbList);
	
	// 受信したベクトルデータを hidden要素に追加
	var hidden = document.createElement("input");
	hidden.type = "hidden";
	hidden.name = "corpus_order";
	hidden.value = dbListJson;
	document.searchForm.appendChild(hidden);
}

/**
 * テキストボックス、チェックしたボタン全てをクリアー
 * from クリアーボタン押下時
 */
function clearControl() {

	// テキストボックス クリアー
	document.searchForm.freetext.value='';
	
	// 記事のチェックボックス クリアー
	var articleVectors = Form.getInputs(document.searchForm, "hidden", "article_vector");
	for(var i = 0; i < articleVectors.length; i++){
		var articleVector =articleVectors[i];
		
		// チェックが外された記事のベクトルデータの hidden要素を削除
		document.searchForm.removeChild(articleVector);
		
		// 選択解除時のアクション
		var articleId = articleVector.id.replace("_article_vector", "");
		if ($(articleId) != null) {
			actionGetVectorReset(articleId);
			$(articleId + "_checkbox").checked = false;
		}
	}
	
	// クリアーボタン押下以降に検索してもチェック済みの検索結果が帰らないようにするフラグを立てる
	QUERY = QUERY + "&checkedResultArticle=false";
	
	// Topicwordsのチェックボックス クリアー
	var keywordCheckBoxList = document.getElementsByName("keyword");
	for (var j = 0; j < keywordCheckBoxList.length; j++) {
		var keywordCheckBox = keywordCheckBoxList[j];
		if (keywordCheckBox.checked == true) {
			keywordCheckBox.checked = false;
			setBold(keywordCheckBox);
		}
	}
}

/**
 * Web Search
 * 選択したキーワードでウェブ検索を行う
 * WebSearchのボタン押下時
 */
function webSearch(webSearchId) {
	document.searchForm.target='imagine_detail';
	document.searchForm.action=WEB_SEARCH_SERVER_URL;
	var checkFlag =  checkWebSarchEmpty();
	if (checkFlag == false) {
		return;
	}
	var hidden = document.createElement("input");
	hidden.type = "hidden";
	hidden.name = "web_search_id";
	hidden.value = webSearchId;
	document.searchForm.appendChild(hidden);
	
	document.searchForm.submit(); 
	
	document.searchForm.removeChild(hidden);

}

/**
 * HELPの吹き出しの表示・非表示
 * from ヘルプボタン押下時
 */
function helpControl() {




	if ($('help_1').style.visibility != "visible" && $('help_2').style.visibility != "visible" && $('help_3').style.visibility != "visible" ) {
		if ($('db-list').checked == true) {
			$('help_3').style.visibility='visible';
		}
		$('help_1').style.visibility='visible';
		$('help_2').style.visibility='visible';
	} else {
		$('help_1').style.visibility='hidden';
		$('help_2').style.visibility='hidden';
		$('help_3').style.visibility='hidden';
	}
}

/**
 * IMAGINEを起動させるかtrueを返してリンク先に飛ばす
 * from 各記事の詳細へボタン押下時
 */
function actionImagine(articleId) {
	if ($(articleId + "_article_vector") == null) {
		return true;
	} else {
		document.searchForm.target='_self';
		document.searchForm.action=IMAGINE_SERVER_URL;
		document.searchForm.submit();
		return false;
	}
}


/////////////////////////////////////////////////////////////// 
// AJAX
///////////////////////////////////////////////////////////////
function ajaxRequest(callback, data, url, dbId) {
	new Ajax.Request(
		url,
		{
			"method": "post",
			"parameters": data,
			onSuccess: function(request) {
				callback(request, dbId);
			},
			onFailure: function(request) {
				alert('読み込みに失敗しました');
			},
			onException: function (request) {
				alert('読み込み中にエラーが発生しました');
			}
		}
	);
}

/////////////////////////////////////////////////////////////// 
// 新しい軸追加の処理
///////////////////////////////////////////////////////////////
function addColumn(dbId) {
	var dbTitle = $(dbId + "_title").firstChild.nodeValue;
	if (QUERY != null && QUERY != "") {
		// 検索画面
		article = 
			"<!-- begin -->\n" + 
			"<div class=\"col\" id=\"" + dbId + "_col\">\n" + 
			"	<div class=\"ttl_wrapper clearfix\">\n" + 
			"		<h2>" + dbTitle + "</h2>\n" + 
			"		<a href=\"#\" class=\"btn_close\" onclick=\"closeButtonDb('" + dbId + "');return false;\"><img src=\"style/common/img/nil.gif\" alt=\"CLOSE\" width=\"1\" height=\"1\" /></a>\n" + 
			"	</div>\n" + 
			"	<div class=\"ttl_line\"><img src=\"style/common/img/nil.gif\" alt=\"\" width=\"1\" height=\"1\" /></div>\n" + 
			"	<div class=\"inner_tp\">\n" + 
			"		<p class=\"count\" id=\"" + dbId + "_header\"></p>\n" + 
			"		<div class=\"item\" id=\"" + dbId + "_contents\"></div>\n" + 
			"		<p class=\"copyright\" id=\"" + dbId + "_copyright\"></p>\n" + 
			"	</div>\n" + 
			"	<div class=\"inner_btm\" id=\"" + dbId + "_more\"></div>\n" + 
			"</div>\n" + 
			"<!-- end -->\n"

		var keywords = 			"			<li id=\"" + dbId + "_words\"><p>" + dbTitle + "</p>\n" + 
			"				<ul id=\"" + dbId + "_words_txt\"></ul>\n" + 
			"			</li>\n";
		
		
		//var articleDiv = document.createElement("div");
		//articleDiv.innerHTML = article;
		//$("col_wrapper").appendChild(articleDiv);
				$("col_wrapper").innerHTML += article;
		$("topic-words_list").innerHTML += keywords;
	} else {
		// 初期画面
		var article =
			"<!-- begin -->\n" + 
			"<div class=\"col col_top\" id=\"" + dbId + "_col\">\n" + 
			"	<div class=\"ttl_wrapper clearfix\">\n" + 
			"		<h2>" + dbTitle + "</h2>\n" + 
			"		<a href=\"#\" class=\"btn_close\" onclick=\"closeButtonDb('" + dbId + "');return false;\"><img src=\"style/common/img/nil.gif\" alt=\"CLOSE\" width=\"1\" height=\"1\" /></a>\n" + 
			"	</div>\n" + 
			"	<div class=\"ttl_line\"><img src=\"style/common/img/nil.gif\" alt=\"\" width=\"1\" height=\"1\" /></div>\n" + 
			"	<div class=\"inner_tp\" id=\"" + dbId  + "_top_info\">\n" + 
			"	</div>\n" + 
			"	<div class=\"inner_btm\"></div>\n" + 
			"</div>\n" + 
			"<!-- end -->\n";
	
		var keywords = 
			"			<li id=\"" + dbId + "_words\"><p>" + dbTitle + "</p>\n" + 
			"			</li>\n";
		
		$("col_wrapper").innerHTML += article;
		$("topic-words_list").innerHTML += keywords;

		var data = "&dbId=" + dbId;
		ajaxRequest(callbackDatabaseInfo, data, DATABASE_INFO_SERVER_URL, dbId);
	}
	
}
// 新しい軸追加の処理 callback トップページ用
function callbackDatabaseInfo(res, dbId) {
	// 受信した部分HTMLを対応dbIdのタグの中に埋め込む
	var data = eval("("+ res.responseText +")");

	var html = data.html;
	if (html == null) {
		html = "";
	}
	$(dbId + "_top_info").innerHTML += html;
	
	/*
	 * ヘッダーの色を変える
	 */
	$(dbId + "_col").className =  "col col_top col_" + data.styleIndex;

}

/////////////////////////////////////////////////////////////// 
// ウィンドウサイズが変更したときのイベントハンドラ
///////////////////////////////////////////////////////////////
window.onresize = setInnerWidth;


