/*
	植木不動産様向け賃貸物件検索プログラム
*/
/* 変数一覧 ============================
	汎用					i,j,cnt
	検索語					sword
	検索ヒットフラグ		check(0以上なら対象データ、0未満は非対象)
	[配列]データ			db
	[配列]個別データ		result
 */

	var db = new Array();	/* PG内データベース配列 */

	var rsStatus = 0;	/* 制御項目０１（状態） */
	var rsDate   = 1;	/* 制御項目０２（更新日） */
	var rsLat    = 2;	/* 制御項目０３（緯度） */
	var rsLng    = 3;	/* 制御項目０４（経度） */
	var rsArea   = 4;	/* 制御項目０５（地区） */
	var rsClass  = 5;	/* 制御項目０６（種別） */
	var rsType   = 6;	/* 制御項目０７（部屋タイプ） */
	var rsDetail = 7;	/* 制御項目０８（フォルダ名） */
	var rsItem01 = 8;	/* 出力項目０１（所在地など） */
	var rsItem02 = 9;	/* 出力項目０２（物件名など） */
	var rsItem03 = 10;	/* 出力項目０３（賃　料など） */
	var rsItem04 = 11;	/* 出力項目０４（共益費など） */
	var rsItem05 = 12;	/* 出力項目０５（間取りなど） */
	var rsItem06 = 13;	/* 出力項目０６（駐車場など） */
	var rsItem07 = 14;	/* 出力項目０７（築年数など） */
	var rsItem08 = 15;	/* 出力項目０８（備　考など） */


//ラジオボタンの値を取得
function getRadioValue(element){
  var i;
  for (i = 0; i < element.length; i++) {
    if (element[i].checked) {
      return element[i].value;
    }
  }
}

/* 検索用関数 ================================================================= */
function searchDisp(){
    var ResultFrame = document.getElementById('ResultFrame');
    var CounterFrame = document.getElementById('CounterFrame');

	/* 条件の取得 */
	var sword = document.getElementById('wordbox').value;
	var swordLength = sword.length;
	var scost = document.getElementById('cost').value;
	var sroomlayout = document.getElementById('roomlayout').value;
	var sarea01 = document.getElementById('area01').checked;
	var sarea02 = document.getElementById('area02').checked;
	var sarea03 = document.getElementById('area03').checked;
	var sarea04 = document.getElementById('area04').checked;
	var sclass01 = document.getElementById('class01').checked;
	var sclass02 = document.getElementById('class02').checked;
	var sclass03 = document.getElementById('class03').checked;
	var sclass04 = document.getElementById('class04').checked;
	var sclass05 = document.getElementById('class05').checked;
	//var ssort = getRadioValue(document.getElementsByName('sort01'));
	var ssort = document.getElementById("sortorder").value;
	
	/* データベース（配列）の代入 */
	db = db_r;
//	for(var i=0;i<db_r.length;i++){ db[i] = db_r[i] };

	/* データベース（配列）のソート */
	sortData(db,ssort);

	/* データベース（配列）のサイズ取得 */
	var dbLength = db.length;
	/* 配列の０番はタイトル用 */
	result = db[0].split('	');
	var resultLength = result.length;

	/* 表示領域の初期化 */
	ResultFrame.innerHTML = "<p>prease wait ...</p>";
	var resultstr ="";

    // 取り出した情報を格納する
    resultstr = '<table><thead>';
    resultstr += '<tr>';
    resultstr += '<th nowrap>' + result[rsItem01] + '</th>';
    resultstr += '<th nowrap></th>';                            /* エリア別カラー表示用 */
    resultstr += '<th nowrap>' + result[rsItem02] + '</th>';
    resultstr += '<th nowrap>' + result[rsItem03] + '</th>';
    resultstr += '<th nowrap>' + result[rsItem04] + '</th>';
    resultstr += '<th nowrap>' + result[rsItem05] + '</th>';
    resultstr += '<th nowrap>' + result[rsItem06] + '</th>';
    resultstr += '<th nowrap>' + result[rsItem07] + '</th>';
    resultstr += '<th nowrap>' + result[rsItem08] + '</th>';
    resultstr += '</tr>';
    resultstr += '</thead><tbody>';
	/* 各レコードの表示処理はここから========================================= */
	var cnt = 0;		/* 表示レコード件数 */
	var nocnt = 0;		/* 非表示レコード件数（表示区分=0） */

	/* 検索 */
	for (var i = 1; i < dbLength; i++){
		/* 個別データをタブ区切りで配列に */
		result = db[i].split('	');
		/* 個別データの個数をカウント */
		var resultLength = result.length;



		/* 検索する */
		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[rsItem08].indexOf(swordTbl[j],0) < 0) {			/* 備考 */
					        	check = -1;
					        }
					    }
					}
			    }
			}
		}

 		/* -- 表示区分(0:非表示、1:表示) -- */
		if (result[rsStatus] == 1){			/* 1=表示する */
		} else {
			nocnt += 1;
			check = -1;
		}

		/* -- 賃料範囲(scost) -- */
		var dcost = eval(result[rsItem03].replace(",", ""));			/* カンマを抜く */
		if (scost == 0){			/* 指定無し */
		} else if (scost == 1){		/* ～４万の個別指定なら同じ数かチェック */
			if (dcost <= 40000) {
			} else {
				check = -1
			}
		} else if (scost == 2){		/* ４～５万の個別指定なら同じ数かチェック */
			if (dcost >= 40000 && dcost <= 50000) {
			} else {
				check = -1
			}
		} else if (scost == 3){		/* ５～６万の個別指定なら同じ数かチェック */
			if (dcost >= 50000 && dcost <= 60000) {
			} else {
				check = -1
			}
		} else if (scost == 4){		/* ６～７万の個別指定なら同じ数かチェック */
			if (dcost >= 60000 && dcost <= 70000) {
			} else {
				check = -1
			}
		} else if (scost == 5){		/* ７～８万の個別指定なら同じ数かチェック */
			if (dcost >= 70000 && dcost <= 80000) {
			} else {
				check = -1
			}
		} else if (scost == 6){		/* ８～９万の個別指定なら同じ数かチェック */
			if (dcost >= 80000 && dcost <= 90000) {
			} else {
				check = -1
			}
		} else if (scost == 7){		/* ９～１０万の個別指定なら同じ数かチェック */
			if (dcost >= 90000 && dcost <= 100000) {
			} else {
				check = -1
			}
		} else if (scost == 99) {		/* １０万以上 */
			if (dcost >= 100000) {
			} else {
				check = -1
			}
		} else {						/* その他 */
		}
		
		/* -- 間取り(sroomlayout) -- */
		if (sroomlayout == 0){			/* 指定無し */
		} else if (sroomlayout >= 1 && sroomlayout <= 5){		/* １～５の個別指定なら同じ数かチェック */
			if (sroomlayout == result[rsType]) {
			} else {
				check = -1
			}
		} else if (sroomlayout == 99) {		/* ６以上 */
			if (result[rsType] >= 6) {
			} else {
				check = -1
			}
		} else {						/* その他地域 */
		}

 		/* -- 地区(sarea01,sarea02,sarea03,sarea04) -- */
		var areaStyle ="";
		if (result[rsArea] == 1){			/* 柏崎 */
			areaStyle = "styleArea1";
			if (sarea01) {
			} else {
				check = -1
			}
		} else if (result[rsArea] == 2){		/* 新潟 */
			areaStyle = "styleArea2";
			if (sarea02) {
			} else {
				check = -1
			}
		} else if (result[rsArea] == 3){		/* 東京 */
			areaStyle = "styleArea3";
			if (sarea03) {
			} else {
				check = -1
			}
		} else {						/* その他地域 */
			areaStyle = "styleArea4";
			if (sarea04) {
			} else {
				check = -1
			}
		}

 		/* -- 種別(sclass01,sclass02,sclass03,sclass04,sclass05) -- */
		if (result[rsClass] == "r01"){			/* アパート */
			if (sclass01) {
			} else {
				check = -1
			}
		} else if (result[rsClass] == "r02"){		/* マンション */
			if (sclass02) {
			} else {
				check = -1
			}
		} else if (result[rsClass] == "r03"){		/* 貸家 */
			if (sclass03) {
			} else {
				check = -1
			}
		} else if (result[rsClass] == "r04"){		/* 駐車場 */
			if (sclass04) {
			} else {
				check = -1
			}
		} else {						/* その他 */
			if (sclass05) {
			} else {
				check = -1
			}
		}



		if (check >=0 ){
		    cnt += 1;

			/* 行が奇数・偶数かを求める */
			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="../data/' + result[rsDetail] + '/index.html" target="_blank">' + result[rsItem01] + '</a></td>';
		    resultstr += '<td class="' + areaStyle + '"></td>';
		    resultstr += '<td class="rsItem02" nowrap>' + result[rsItem02] + '</td>';
		    resultstr += '<td class="rsItem03" nowrap>' + result[rsItem03] + '</td>';
		    resultstr += '<td class="rsItem04" nowrap>' + result[rsItem04] + '</td>';
		    resultstr += '<td class="rsItem05" nowrap>' + result[rsItem05] + '</td>';
		    resultstr += '<td class="rsItem06">' + result[rsItem06] + '</td>';
		    resultstr += '<td class="rsItem07">' + result[rsItem07] + '</td>';
		    resultstr += '<td class="rsItem08">' + result[rsItem08] + '</td>';
		    resultstr += '</tr>';
		}

	}
	resultstr += '</tbody></table>';
	ResultFrame.innerHTML = resultstr;
	
	/* 件数情報の取得＆HTML生成 */
	var strCounter = (cnt + "件 / " + (dbLength - 1 - nocnt) + "件中")
	resultstr = '<div id="rsCount">' + strCounter + '</div>';
	resultstr =  strCounter ;
	CounterFrame.innerHTML = resultstr;
}


// データ配列のソート
function sortData(db_data, ssort_data) {
	var i = 0;
	var j = 0;
	/* 個別データをタブ区切りで配列に */

	for (i=1; i<=db_data.length-2; i++)
	{
		var result_i = db_data[i].split('	');

		for (j=i+1; j<=db_data.length-1; j++)
		{
			var sort_flg = false;                      //入れ替え対象データかどうかチェック結果フラグ(true:対象、false:対象外)
			var result_j = db_data[j].split('	');    //タブ文字で分解

			if (ssort_data == "s01") {
				//間取りマスター順・賃料昇順
				if (get_MadoriNo(result_j[rsItem05]) > get_MadoriNo(result_i[rsItem05])) {          //間取りマスター順
					sort_flg = true;
				} else if (db_madori[result_j[rsItem05]] == db_madori[result_i[rsItem05]]) {  //間取りが同一の場合
					var icost = eval(result_i[rsItem03].replace(",", ""));			/* カンマを抜く */
					var jcost = eval(result_j[rsItem03].replace(",", ""));			/* カンマを抜く */
					if (jcost < icost) {          //賃料昇順
						sort_flg = true;
					}
				}
			} else if (ssort_data == "s02") {
				//更新日降順・賃料昇順
				if (result_j[rsDate] > result_i[rsDate]) {          //更新日降順
					sort_flg = true;
				} else if (db_madori[result_j[rsItem05]] == db_madori[result_i[rsItem05]]) {  //更新日が同一の場合
					var icost = eval(result_i[rsItem03].replace(",", ""));			/* カンマを抜く */
					var jcost = eval(result_j[rsItem03].replace(",", ""));			/* カンマを抜く */
					if (jcost < icost) {          //賃料昇順
						sort_flg = true;
					}
				}
			} else if (ssort_data == "s03") {
				//賃料昇順
				var icost = eval(result_i[rsItem03].replace(",", ""));			/* カンマを抜く */
				var jcost = eval(result_j[rsItem03].replace(",", ""));			/* カンマを抜く */
				if (jcost < icost) {          //賃料昇順
					sort_flg = true;
				}
			}

			if (sort_flg == true) {          //入れ替え対象データの場合
				var n = db_data[j];
				db_data[j] = db_data[i];
				db_data[i] = n;
				result_i = db_data[i].split('	');
			}
		}
	}
	
	return db_data;
}

//間取りマスターから表示順番の値を取得する
function get_MadoriNo(madori_data) {

//	if (isNaN(db_madori[madori_data])) {       //isNaN:変数が数値に変換できない場合trueを返す。（undefinedチェックに代用）
	if (db_madori[madori_data] == undefined) {
		//未設定値の場合は”-999”を返す
		return -999;
	} else {
		return db_madori[madori_data];
	}
}

//ソート順指定項目クリック時処理
function set_Sort_Order(order_data) {
	document.getElementById("sortorder").value = order_data;
	searchDisp();
}

// フォーカスの初期設置
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);
addListener(window, 'load', focusdef, false);

