// ver 1.0 - HTMLからURLを取得して表示。WebOS Goodiesのサンプルを参考に。感謝。
// ver 1.1 - urlの&amp;を&に、url先頭の2文字でfeedの表示長を設定,該当するデータがないときの表示
// ver 1.2 - capture/capture-rightを追加 -->廃止
// ver 1.3 - captureに幅設定機能を追加
// ver 2.0 - インクリメンタルサーチ機能を統合
// var 2.1 - インクリメンタルサーチの表示件数上限を追加
// ver 2.3 - インクリメンタルサーチ中の表示位置機能を追加・改良
// ver 2.4 - インクリメンタルサーチをタグにも有効に
// ver 2.5 - Lightbox-light追加
// ver 2.6 - divのsrc属性に対応
// var 2.7 - widthの計算結果を四捨五入
// var 3.0 - インクリメンタルサーチ機能を作り直し
// by jniino 2009/8/14

// このJavaScriptは「Publickey」からの移植実装ファイルです。
// 転用の際はPublickey http://www.publickey.jp/ 新野淳一さんまでご確認ください。

//インクリメンタルサーチ--------------------

var LoadFlag = 0; //0→1→2
var WaitTime = 5;
var jsonDataLength = 0;
var MaxResult = 25;
var SearchResult;

function incremantalsearch() {
	document.sForm.search.style.color="#888";
	document.sForm.search.value="記事タイトルで高速検索";
	document.sForm.x.style.cursor="pointer";
}

function isearch() {

	var pattern = document.sForm.search.value;

	var i;
	var c = 0;
	var s = "";
	
	if (LoadFlag == 0) {
		SearchResult = document.getElementById("searchresult");
		loadjsonfile();
		LoadFlag = 1;
	}
	
	if (LoadFlag == 1) {
		waitForLoadToComplete();
	}
	
	if (LoadFlag == 2) {

		for (i = 0; i < jsonDataLength; i++) {
			if (jsonData.articles[i].t.toLowerCase()
				.indexOf(pattern.toLowerCase())>-1){
				if (pattern.length == 0) {
					SearchResult.innerHTML = "";
					break;
				}
				if (c > MaxResult) break;
				c = c + 1;
				s = s + "<li><a href="
					+jsonData.articles[i].u
					+">"
					+jsonData.articles[i].t
					+"</a><br /><span class=\"json-data-blog-name-date\">"
					+jsonData.articles[i].d
					+"</span></li>";
			}
		}
		SearchResult.innerHTML = "<ul>"+s+"</ul>";
	}
}

function waitForLoadToComplete() {
	
	try {
		//エラーだったらCatchへ。成功したら次の行へ
		jsonDataLength = jsonData.articles.length; 
		LoadFlag = 2;
		isearch();
	}
	
	catch(e) {
		if (WaitTime < 3000) {
			WaitTime = WaitTime +50 ;
			setTimeout("waitForLoadToComplete()",WaitTime);
			var s = "";
			for (var i = 0; i < (WaitTime/150); i++) {
				s = s + ".";
			}
			SearchResult.innerHTML = "Loading" + s;
		} else {
			SearchResult.innerHTML = "timeout.";
		}
	}
}

function loadjsonfile() {
		var e     = document.createElement('SCRIPT');
		e.type    = 'text/javascript';
		e.src     = "http://iuser.jp/webjin/articledata.json";
		e.charset = 'UTF-8';
		document.body.appendChild(e);
}

function on_focus() {
	if (document.sForm.search.value=="記事タイトルで高速検索") {
	document.sForm.search.value="";
	}
	document.sForm.search.style.color="#000";
}

function clearinput() {
	document.sForm.search.value="";
	document.sForm.search.style.color="#000";
	document.sForm.search.focus();
	SearchResult.innerHTML = "";
}