// 検索結果画面用定義
var ie = document.all;			// primitive browser-check
var cnt = 0;
var timerCnt;
var cntWait = ie ? 30 : 50;		// wait: msec

/* setting */
var loadingWinWidth  = 200;	// px
var loadingWinHeight = 200;	// px

Event.observe(window, 'load', function(){
	// get result count
	cnt = $('find_rev_cnt').innerHTML;
	cnt -= 0;
});



function changeArea(obj)
{
	var url = '_j01_pd';
	var pars = 'type=' + obj.options[obj.selectedIndex].value;

	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: showResponse
		});
	
}

function showResponse(orgReq)
{
	// responseXMLでレスポンスを取得
	var res = orgReq.responseXML;
	var list = res.getElementsByTagName("area");

	var i = document.j01.area2.options.length;
	for (n=i-1;n>=0;n--){
		document.j01.area2.options[n] = null;
	}

	var key,value;
	for(i=0;i<list.length;i++){
		key = list[i].getElementsByTagName("area-name")[0].firstChild.nodeValue;
		value = list[i].getElementsByTagName("area-id")[0].firstChild.nodeValue;
		document.j01.area2.options[i] = new Option(key,value);
	}

	if(list.length == 0) {
		document.j01.area2.style.visibility = "hidden";
		document.j01.area2.value = "0";
	} else {
		document.j01.area2.style.visibility = "visible";
	}
}

function type_submit(fObj, type)
{
	if(fObj["search_type"][2].checked) {
		fObj.action = '_revSearch';
		fObj.query.value = fObj.free_name.value;
		fObj.sort_type.value = "att_point";
	} else {
		fObj.submit_type.value = type;
	}
	fObj.submit();
}

function enter_submit(fObj, type, code)
{
	if (code == 13) {
		if(fObj["search_type"][2].checked) {
			fObj.action = '_revSearch';
			fObj.query.value = fObj.free_name.value;
			fObj.sort_type.value = "att_point";
		} else {
			fObj.submit_type.value = type;
		}
		fObj.submit();
	}
}

function sort_submit(type, base)
{
	sort_submit_with_form(document.j01,type,base);
}
function sort_submit_with_form(f,type, base)
{
	if(type == 0) {
		if(type == base) {
			if(f.sort_direction1.value == 0) {
				f.sort_direction1.value = 1;
			} else {
				f.sort_direction1.value = 0;
			}
		} else {
			f.sort_direction1.value = 1;
		}
	} else if(type == 1) {
		if(type == base) {
			if(f.sort_direction2.value == 0) {
				f.sort_direction2.value = 1;
			} else {
				f.sort_direction2.value = 0;
			}
		} else {
			f.sort_direction2.value = 1;
		}
	} else if(type == 2) {
		if(type == base) {
			if(f.sort_direction3.value == 0) {
				f.sort_direction3.value = 1;
			} else {
				f.sort_direction3.value = 0;
			}
		} else {
			f.sort_direction3.value = 1;
		}
	} else if(type == 3) {
		if(type == base) {
			if(f.sort_direction4.value == 0) {
				f.sort_direction4.value = 1;
			} else {
				f.sort_direction4.value = 0;
			}
		} else {
			f.sort_direction4.value = 0;
		}
	} else if(type == 4) {
		if(type == base) {
			if(f.sort_direction5.value == 0) {
				f.sort_direction5.value = 1;
			} else {
				f.sort_direction5.value = 0;
			}
		} else {
			f.sort_direction5.value = 1;
		}
	}

	f.sort_type.value = type;
	f.submit();
}

function rev_cnt_submit(rev_cnt)
{
	document.j01.rev_cnt.value = rev_cnt;
	document.j01.submit();
}

function eval_submit(eval_type)
{
	document.j01.sort_eval.value = eval_type;
	document.j01.submit();
}

function contact_submit()
{
	if(document.j02.contact_type.checked) {
		document.j01.contact_type.value = 1;
	} else {
		document.j01.contact_type.value = 0;
	}
	rev_cnt_disp();
}


function changeBlock(obj)
{
	var url = '_getPref';
	var pars = 'type=' + obj.options[obj.selectedIndex].value;
	
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'post', 
			parameters: pars, 
			onComplete: showResponsePref
		});
	
}

function showResponsePref(orgReq)
{
	// responseXMLでレスポンスを取得
	var res = orgReq.responseXML;
	var list = res.getElementsByTagName("pref");

	var i = $("pref_id").options.length;
	for (n=i-1;n>=0;n--){
		$("pref_id").options[n] = null;
	}

	var pos = 0;
	if(list.length == 0) {
		$("pref_id").style.visibility = "hidden";
		$("pref_id").value = "0";
	} else {
		if(list.length > 1) {
			$("pref_id").options[0] = new Option('全て','');
			pos = 1;
		}
		$("pref_id").style.visibility = "visible";
	}
	
	var key,value;
	for(i=0;i<list.length;i++){
		key = list[i].getElementsByTagName("pref-name")[0].firstChild.nodeValue;
		value = list[i].getElementsByTagName("pref-id")[0].firstChild.nodeValue;
		$("pref_id").options[i+pos] = new Option(key,value);
	}

}

function rev_cnt_disp(){

	// ローディングイメージ表示
	determinePos();
	showWin('loadingWin');

	// AJAX呼び出し
	var url = '_j02_rc';
	var str = Form.serialize('j01');
	new Ajax.Request(url,
		{
			method: "post",
			parameters: str,
//			onComplete: rev_cnt_disp_comp
			onSuccess: function(request){
//alert(request.responseText);

				// レスポンスデータ取得
				var data = eval("("+request.responseText+")");

//alert("かうんと前");

				// 件数カウント
				cntTo(Math.floor(data.find_rev_cnt));

//alert("かうんと後");

				// 検索結果描画
				document.getElementById('find_rev_cnt').innerHTML=data.find_rev_cnt;
				document.getElementById('start_point').innerHTML=data.start_point;
				document.getElementById('end_point').innerHTML=data.end_point;
				document.getElementById('search_list').innerHTML=data.search_list;
			}
		});

}

function rev_cnt_disp_comp(orgReq){

	// レスポンスデータ取得
	var data = eval("("+request.responseText+")");

	// 件数カウント
	cntTo(Math.floor(data.find_rev_cnt));

	// 検索結果描画
	document.getElementById('find_rev_cnt').innerHTML=data.find_rev_cnt;
	document.getElementById('start_point').innerHTML=data.start_point;
	document.getElementById('end_point').innerHTML=data.end_point;
	document.getElementById('search_list').innerHTML=data.search_list;
}


function ShowChkMore(){
	$A(document.getElementsByClassName('sChkLess')).each(function(e){
		e.style.display = 'none';
	});
	$A(document.getElementsByClassName('sChkMore')).each(function(e){
		e.style.display = 'block';
	});
	document.j01.spec_disp.value = 1;
}

function ShowChkLess(){
	$A(document.getElementsByClassName('sChkLess')).each(function(e){
		e.style.display = 'block';
	});
	$A(document.getElementsByClassName('sChkMore')).each(function(e){
		e.style.display = 'none';
	});
	document.j01.spec_disp.value = 0;
}



function checkPrefAll(pref_id, cnt){
	for (i = 1; i <= cnt; i++) {
		if($('area_' + (pref_id * 1000)).checked) {
			$('area_' + (pref_id * 1000 + i)).disabled = true;
		} else {
			$('area_' + (pref_id * 1000 + i)).disabled = false;
		}
	}
}


function changeArea2(obj)
{
	obj.submit();
}

function showResponse2(orgReq)
{
	// responseXMLでレスポンスを取得
	var res = orgReq.responseXML;
	var list = res.getElementsByTagName("area");

	var i = document.j01.area2.options.length;
	for (n=i-1;n>=0;n--){
		document.j01.area2.options[n] = null;
	}

	var key,value;
	for(i=0;i<list.length;i++){
		key = list[i].getElementsByTagName("area-name")[0].firstChild.nodeValue;
		value = list[i].getElementsByTagName("area-id")[0].firstChild.nodeValue;
		document.j01.area2.options[i] = new Option(key,value);
	}

	if(list.length == 0) {
		document.j01.area2.style.visibility = "hidden";
		document.j01.area2.value = "0";
	} else {
		document.j01.area2.style.visibility = "visible";
	}

	rev_cnt_disp();
}

/* show 'loading..' window */
function showWin(obj){
	if(obj.prototype){
		obj.style.display = 'block';
	}else if($(obj)){
		$(obj).style.display = 'block';
	}else{
		return false;
	}
}

/* hide 'loading..' window */
function hideWin(obj){
	if(obj.prototype){
		obj.style.display = 'none';
	}else if($(obj)){
		$(obj).style.display = 'none';
	}
	return true;
}

/* count up, count down */
function cntTo(cntTo){
	clearTimeout(timerCnt);
	_cntChild(cntTo);
}

/* loop for count up, count down */
function _cntChild(cntTo){

	var cntBy = 1;
	if(Math.abs(cntTo - cnt) > 1000) {
		cntBy = 1000;
	} else if(Math.abs(cntTo - cnt) > 100) {
		cntBy = 100;
	} else if(Math.abs(cntTo - cnt) > 10) {
		cntBy = 10;
	} else {
		cntBy = 1;
	}

	if(cntTo==cnt){
		$('cnt').innerHTML = cnt;
		$('find_rev_cnt').innerHTML = cnt;
		setTimeout(function(){hideWin('loadingWin');},500);
		return true;	// end loop if finished
	}else if(cntTo > cnt){
		cnt+=cntBy;
		if(cnt>=cntTo){
			$('cnt').innerHTML = cnt;
			$('find_rev_cnt').innerHTML = cnt;
			setTimeout(function(){hideWin('loadingWin');},500);
			return true;	// end loop if finished
		}
	}else if(cntTo < cnt){
		cnt-=cntBy;
		if(cnt<=cntTo){
			$('cnt').innerHTML = cnt;
			$('find_rev_cnt').innerHTML = cnt;
			setTimeout(function(){hideWin('loadingWin');},500);
			return true;	// end loop if finished
		}
	}
	$('cnt').innerHTML = cnt;

	timerCnt = setTimeout(function(){_cntChild(cntTo)},cntWait);
}

/* determine 'loading..' window position */
function determinePos(){
	// top
	$('loadingWin').style.top =
		(
			document.scroll().y +
			document.body.clientHeight/2 -	// CAUTION! 'Quirk mode' only.
			loadingWinHeight
		) + 'px';
	// left
	$('loadingWin').style.left =
		(document.body.clientWidth/2 - loadingWinWidth/2) + 'px';
}

/* get scroll position */
document.scroll = function(){
	return {
		x: this.body.scrollLeft || this.documentElement.scrollLeft,
		y: this.body.scrollTop  || this.documentElement.scrollTop
	};
};

/* create shortcut to 'getElementsByClassName' */
function $C(className, from){
	if(!from){
		return $A(document.getElementsByClassName(className));
	}else if(from.prototype){
		return $A(from.getElementsByClassName(className));
	}else if($(from)){
		return $A($(from).getElementsByClassName(className));
	}else{
		return false;
	}
}

function n(a) { if(+a!=a) throw Error('invalid number'); return +a; }


