/* 変数一覧 ============================
	汎用					i,j,cnt
	検索語					sword
	検索ヒットフラグ		check(0以上なら対象データ、0未満は非対象)
	[配列]データ			db
	[配列]個別データ		result
 */

	var db = new Array();	/* PG内データベース配列 */
	var db_title = new Array();	/* タイトル */

	var rsStatus = 0;	/* 状態 */
	var rsDate   = 1;	/* 更新日 */
	var rsLat    = 2;	/* 緯度 */
	var rsLng    = 3;	/* 経度 */
	var rsArea   = 4;	/* 地域 */
	var rsClass  = 5;	/* ジャンル */
	var rsIcon   = 6;	/* マーカーアイコン種別 */
	var rsDetail = 7;	/* フォルダ名 */
	var rsItem01 = 8;	/* 出力項目０１（名称） */
	var rsItem02 = 9;	/* 出力項目０２（所在地） */
	var rsItem03 = 10;	/* 出力項目０３（コメント） */
	var rsItem04 = 11;	/* 出力項目０４（備考） */
	
	var Lat_min = 0;	//表示緯度（最小値）
	var Lat_max = 0;	//表示緯度（最大値）
	var Lng_min = 0;	//表示経度（最小値）
	var Lng_max = 0;	//表示経度（最大値）


/* 検索用関数 ================================================================= */
function searchDisp(){
    var ResultFrame = document.getElementById('ResultFrame');
    var CounterFrame = document.getElementById('CounterFrame');

	/* 条件の取得 */
	var sword = document.getElementById('wordbox').value;
	var swordLength = sword.length;
	var sarea = document.getElementById('area').value;
	var sclass = document.getElementById('class').value;
	
	Lat_min = homeLat;	//緯度（初期値セット）
	Lat_max = homeLat;	//緯度（初期値セット）
	Lng_min = homeLng;	//経度（初期値セット）
	Lng_max = homeLng;	//経度（初期値セット）
	

	/* データベース（配列）の代入 */
//	db = db_r;
	j=0;
	for(var i=1; i < (db_data.length  );i++){ db[j] = db_data[i]; j += 1; };

	db_title = db_data[0].split('	');		/* タイトル格納 */


	/* データベース（配列）のサイズ取得 */
	var dbLength = db.length;

	/* 表示領域の初期化 */
	map.clearOverlays();
	ResultFrame.innerHTML = "<p>prease wait ...</p>";
	var resultstr ="";

    // 取り出したタイトル情報を格納する
    resultstr = '<table><thead>';
    resultstr += '<tr>';
    resultstr += '<th nowrap>' + db_title[rsItem01] + '</th>';
    resultstr += '<th nowrap>' + db_title[rsItem02] + '</th>';
    resultstr += '<th nowrap>' + db_title[rsItem03] + '</th>';
    resultstr += '<th nowrap>' + db_title[rsItem04] + '</th>';
    resultstr += '</tr>';
    resultstr += '</thead><tbody>';
	
	/* 各レコードの表示処理はここから========================================= */
	var cnt = 0;		/* 表示レコード件数 */
	var nocnt = 0;		/* 非表示レコード件数（表示区分=0） */

	/* 検索 */
	for (var i = 0; i < dbLength; i++){
		/* 個別データをタブ区切りで配列に */
		result = db[i].split('	');
		/* 個別データの個数をカウント */
		var resultLength = result.length;

		/* 検索する */
	    var check = 0;


		/* -- キーワード -- */
		var swordTbl = new Array();
		sword = sword.replace("　", " ");			/* 全角スペースを半角スペースに置き換え */
		swordTbl = sword.split(' ');				/* 半角スペース毎に切り分け */
		
		if (swordLength == 0){
		    //検索文字列の指定がなければ全件対象の為チェック不要
		} else {
			for (var j = 0; j < swordTbl.length; j++){
				if (swordTbl[j].length == 0){
				    //検索文字列の指定がなければ全件対象の為チェック不要
				} else {
					if (result[rsItem01].indexOf(swordTbl[j],0) < 0) {					/* 名称*/
						if (result[rsItem02].indexOf(swordTbl[j],0) < 0) {				/* 所在地 */
					        if (result[rsItem03].indexOf(swordTbl[j],0) < 0) {			/* コメント */
					            if (result[rsItem04].indexOf(swordTbl[j],0) < 0) {		/* 備考 */
					        	    check = -1;
								}
					        }
					    }
					}
			    }
			}
		}

 		/* -- 表示区分(0:非表示、1:表示) -- */
		if (result[rsStatus] == 1){			/* 1=表示する */
		} else {
			check = -1;
		}

 		/* -- 地区(sarea) -- */
		if (sarea.length == 0){
			//検索文字列の指定がなければ全件対象の為チェック不要
		} else if (sarea == 0){
			//検索文字列の指定がなければ全件対象の為チェック不要
		} else {
			var checkStr = result[rsArea];			
			if (checkStr.indexOf(sarea,0) < 0) {
				check = -1;
			}
		}


 		/* -- ジャンル(sclass) -- */
		if (sclass.length == 0){
			//検索文字列の指定がなければ全件対象の為チェック不要
		} else if (sclass == 0){
			//検索文字列の指定がなければ全件対象の為チェック不要
		} else {
			var checkStr = result[rsClass];			
			if (checkStr.indexOf(sclass,0) < 0) {
				check = -1;
			}
		}




		if (check >=0 ){
		    cnt += 1;
			
            //マーカー表示
            ys_createMarker(db[i]);
			
			if (cnt <= 1) {
				//一件目は初期値としてセット
				Lat_min = eval(result[rsLat]);	//表示緯度（最小値）
				Lat_max = eval(result[rsLat]);	//表示緯度（最大値）
				Lng_min = eval(result[rsLng]);	//表示経度（最小値）
				Lng_max = eval(result[rsLng]);	//表示経度（最大値）
			} else {
				if (Lat_min > eval(result[rsLat])) {Lat_min = eval(result[rsLat])};	//表示緯度（最小値）
				if (Lat_max < eval(result[rsLat])) {Lat_max = eval(result[rsLat])};	//表示緯度（最大値）
				if (Lng_min > eval(result[rsLng])) {Lng_min = eval(result[rsLng])};	//表示経度（最小値）
				if (Lng_max < eval(result[rsLng])) {Lng_max = eval(result[rsLng])};	//表示経度（最大値）
			}


            //一覧表作成
			/* 行が奇数・偶数かを求める */
			if ((cnt % 2) == 0) {
				var resultstrrow = 'class="rsEvenRow"';		/* 偶数行 */
			} else {
				var resultstrrow = 'class="rsOddRow"';		/* 奇数行 */
			}

		    resultstr += '<tr ' + resultstrrow + ' style="margin-top:3px; margin-bottom:3px;">';
		    resultstr += '<td class=""><a href="../pano_data/' + result[rsDetail] + '/index.html" target="_self">' + result[rsItem01] + '</a></td>';
		    resultstr += '<td class="rsItem02" nowrap>' + result[rsItem02] + '</td>';
		    resultstr += '<td class="rsItem03">' + result[rsItem03] + '</td>';
		    resultstr += '<td class="rsItem04">' + result[rsItem04] + '</td>';
		    resultstr += '</tr>';
		}
	}
	resultstr += '</tbody></table>';
	ResultFrame.innerHTML = resultstr;
	
	/* 件数情報の取得＆HTML生成 */
	var strCounter = (cnt + "件 / " + (dbLength - nocnt) + "件中")
	resultstr = '<div id="rsCount">' + strCounter + '</div>';
	resultstr =  strCounter ;
	CounterFrame.innerHTML = resultstr;
	
	//マップ表示中央座標算出（全マーカーの平均値）
	Lat_avg = (Lat_min + Lat_max) / 2;
	Lng_avg = (Lng_min + Lng_max) / 2;
	
	var Lat_sub = Lat_max - Lat_min;
	var Lng_sub = Lng_max - Lng_min;
	var zm = 16;
	
	do {
		zm--;
		map.setCenter(new GLatLng(Lat_avg,Lng_avg), zm);
	
		var rect = map.getBounds();
		var Lat_span = rect.toSpan().lat();
		var Lng_span = rect.toSpan().lng();
		
	} while ((Lat_sub > Lat_span) || (Lng_sub > Lng_span))
	
}

// 地域チェックボックス操作時
function areaChange(areaNo) {
	/* センター座標を変更する */
	map.setCenter(new GLatLng(homeLat,homeLng), 13);
}

// フォーカスの初期設置
function focusdef(e) {
    // キーワード入力エリアにフォーカスをセット
    var wordbox = document.getElementById('wordbox');
    wordbox.focus();
}

// load時の処理
function setListeners(e) {
    // ボタン要素にclickイベントリスナーをセット
    //var goSearch = document.getElementById('goSearch');
    //addListener(goSearch, 'click', searchDisp, false);
}

// イベントリスナー登録
function addListener(elem, eventType, func, cap) {
    if(elem.addEventListener) {
        elem.addEventListener(eventType, func, cap);
    } else if(elem.attachEvent) {
        elem.attachEvent('on' + eventType, func);
    } else {
        alert('ご利用のブラウザーはサポートされていません。');
        return false;
    }
}

// load時のイベントリスナーをセットする
//addListener(window, 'load', setListeners, false);
//addListener(window, 'load', searchDisp, false);


