var type_checkbox = new Array('estate_type[]', 'room_layout[]', 'adcomon_flg');
function searchRoom(elm) {
	
	showLoading();
	
	var url      = "./";
	
	// 検索条件の連結
	var pars = Form.serialize("roomSearchForm");
	
	
	
	for(var i=0; i<type_checkbox.length; i++){
		
		var name = type_checkbox[i];
		
		
		//チェックボックスの場合
		//すべてのチェックがない場合false
		var flg = false;
		
		var checkboxes = document.roomSearchForm[name];
		
		if(checkboxes.length){
			
			for(var s=0; s<checkboxes.length; s++){
				if(checkboxes[s].checked){
					flg = true;
				}
			}
			
		}else{
			if(checkboxes.checked){
				flg = true;
			}
			
		}
		
		if(flg == false){
			pars += "&"+escape(name.replace("[]",""))+"=false";
		}
		
	}
	//alert(pars);
	
	
	//駅
	if($('stationList')){
		var station = $F('stationList');
		if(station){
			pars += "&station[]="+station;
		}else{
			pars += "&station=false";
		}
	}
	
	pars += "&mode=searchApi";
	
	if(elm){
		pars += "&p=0";
	}
	
	
	var myAjax = new Ajax.Updater(
		'results', 
		url, 
		{
			method: 'get', 
			parameters: pars,
			evalScripts: true
		});
		
	
	if(lttd != 0){
		getEstateForMap();
	}
	
	trackingAnalytics('/search');
}

function changeDispCount(elm){
	
	
	var disp_count_id = $F(elm);
		
	var pars = "n="+disp_count_id+"&p=0";
	
	var url      = "./";

	pars += "&mode=searchApi";

	var myAjax = new Ajax.Updater(
		'results', 
		url, 
		{
			method: 'get', 
			parameters: pars,
			evalScripts: true
		});
	//now loading
	showLoading();
	
	trackingAnalytics('/count/'+disp_count_id);

}

function changePage(page){
	
	//now loading
	showLoading();
	
	var url      = "./";
	
	var pars = "p="+page;

	pars += "&mode=searchApi";
	
	var myAjax = new Ajax.Updater(
		'results', 
		url, 
		{
			method: 'get', 
			parameters: pars,
			evalScripts: true
		});
	
	trackingAnalytics('/page/'+page);
}


function changeCheck(room_id, elm){

	var flg = $F(elm);
	
	if(!flg) flg = 0;
	
	var url = "./";
	
	var pars = "check_id="+room_id+"&flg="+flg;
	pars += "&mode=checkRoom";

	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars
		});
}

function clickAll(all){
	var checkElements = document.getElementsByName("room_check");
	
	for(var i=0; i<checkElements.length; i++){
		var elm = checkElements[i];
		elm.checked =all.checked;
		elm.onchange();
	}
	
	var checkAllElements = document.getElementsByName("checkAll");
	
	for(var i=0; i<checkAllElements.length; i++){
		var elm = checkAllElements[i];
		elm.checked = all.checked;
	}
	
}


function checkAllRoom(){
	var checkElements = document.getElementsByName("room_check");
	
	for(var i=0; i<checkElements.length; i++){
		var elm = checkElements[i];
		elm.checked = true;
		elm.onchange();
	}
}

function clearAllRoom(){
	var checkElements = document.getElementsByName("room_check");
	
	for(var i=0; i<checkElements.length; i++){
		var elm = checkElements[i];
		elm.checked = false;
		elm.onchange();
	}

}

function changeKodawari(){
	
	//now loading
	showLoading();

	var pars = "mode=searchApi";
	pars += getCheckBoxParam("kodawari[]");
	pars += "&p=0";
	var url      = "./";
	var myAjax = new Ajax.Updater(
		'results', 
		url, 
		{
			method: 'get', 
			parameters: pars,
			evalScripts: true
		});
	getEstateForMap();
	
	trackingAnalytics('/search');
}

function load() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById('MapArea_left_in'));
		
		map.setCenter(new GLatLng(33.591616, 130.399409), 14);
		
		ctrlObj = new GLargeMapControl();		map.addControl(ctrlObj);		
		GEvent.addListener(map, "moveend", getEstateForMap);
	}
	
	//getEstateForMap();
	
	ctrlObj = new GMapTypeControl();
	map.addControl(ctrlObj);
	
	
	//ローディング
	var markObj = document.createElement("div");
	markObj.id = "mapLoading";
	var mapW = 625;
	var mapH = 535;
	//var mapW = parseInt(map.getContainer().style.width);
	//var mapH = parseInt(map.getContainer().style.height);
	var markW = 80; // センターマークの横幅（ピクセル数）
	var markH = 71; // センターマークの縦幅（ピクセル数）
	var x = (mapW - markW) / 2; // センターマークの中心位置（X座標）
	var y = (mapH - markH) / 2; // センターマークの中心位置（Y座標）
	markObj.style.position = "absolute";
	markObj.style.top = y+"px";
	markObj.style.left = x+"px";
	markObj.style.backgroundImage = "url(/img/search/nowloading.gif)";
	markObj.style.width = markW+"px";
	markObj.style.height = markH+"px";
	/*markObj.style.opacity = 0.5;*/
	map.getContainer().appendChild(markObj);

	
};

function searchSubmit(){
	searchRoom(this);
	
	return false;
}
function getEstateForMap(){
	$("mapLoading").show();
	
	map.clearOverlays();
	
	var url = "/search/";
	
	var cObj = map.getBounds();
	
	var NorthEast = cObj.getNorthEast();
	var SouthWest = cObj.getSouthWest();
	
	
	var pars ="?mode=mapApi&min_lttd="+SouthWest.y+"&min_lgtd="+SouthWest.x+"&max_lttd="+NorthEast.y+"&max_lgtd="+NorthEast.x;
	
	
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: addIcon
		});
	trackingAnalytics('/search');
}

function addIcon(originalRequest){
	
	$("mapLoading").hide();
	
	var results = eval(originalRequest.responseText);
	
	customMarkerObj = new GIcon();
	customMarkerObj.iconSize = new GSize(30, 38);
	customMarkerObj.iconAnchor = new GPoint(15, 25);
	
	for(i = 0; i < results.data.length; i++){
		
		var estate = results.data[i];
		//customMarkerObj.image = "icon_map.php?count="+estate.count;
		customMarkerObj.image = "img/icon"+estate.count+".gif";
		var marker = new GMarker(new GLatLng(estate.lttd,estate.lgtd), customMarkerObj);
		marker.estate_id = estate.id;
		map.addOverlay(marker);
		GEvent.addListener(marker, "click", function(){
			var url = "/search/";
			var pars = "?mode=popUpApi&estate_id="+this.estate_id;
			
			var myAjax = new Ajax.Updater(
				'pop', 
				url, 
				{
					method: 'get', 
					parameters: pars,
					onComplete: showPopUp
				});
		} );
		
	}
}

function showPopUp(){
	var elm = $("pop");
	elm.style.display = "block";
}

function clearPopUp(){
	var elm = $("pop");
	elm.style.display = "none";

}

function clearKodawari(){
	
	var checks = document.getElementsByName("kodawari[]");
	
	for(var i=0; i<checks.length; i++){
		var elm = checks[i];
		elm.checked = false;

	}
	changeKodawari();
}

function clearKihon(){
	
	param = "";
	
	var kihon = new Array('build_year', 'room_layout', 'area_max', 'area_min', 'distance', 'estate_type', 'station','adcomon_flg', 'rental_fee_max', 'rental_fee_min');
	
	var form = document.roomSearchForm;
	
	//キーワード
	form.kwd.value = "";
	
	//賃料
	form.rental_fee_min.selectedIndex = 0;
	form.rental_fee_max.selectedIndex = 0;
	form.adcomon_flg.checked = false;
	
	//物件種別
	var estate_type = form['estate_type[]'];
	clearCheckBox(estate_type);
	
	//路線
	$('lineList').selectedIndex = 0;
	$('stationList').selectedIndex = 0;
	
	//距離
	clearRadio(form.distance);
	
	//面積
	form.area_min.selectedIndex = 0;
	form.area_max.selectedIndex = 0;
	
	//間取り
	var room_layout = form['room_layout[]'];
	clearCheckBox(room_layout);
	
	//築年数
	clearRadio(form.build_year);

}

function clearRadio(list){
	for(var i=0; i<list.length; i++){
		var elm = list[i];
		if(elm.value == 0){
			elm.checked = true;
		}
	}

}

function clearCheckBox(list){
	
	for(var i=0; i<list.length; i++){
		var elm = list[i];
		elm.checked = false;
	}
}

function showKodawari(){
	
	$("kihon").style.display = "none";
	$("kihon_flow").style.display = "none";
	
	$("kodawari").style.display = "";
	$("kodawari_flow").style.display = "";
	
	trackingAnalytics('');
}

function showKihon(){

	$("kihon").style.display = "";
	$("kihon_flow").style.display = "";
	
	$("kodawari").style.display = "none";
	$("kodawari_flow").style.display = "none";
	
	trackingAnalytics('');

}

function getStationByLineId(lineId, targetId) {

	var url = "/api/";
	
	var pars = 'mode=station' + '&line_id=' + lineId + '&target_id=' + targetId;

	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onComplete: replaceSelectOption
		});
}

// 指定された配列の要素をSelect内のOptionとして追加

function replaceSelectOption(originalRequest){

	var data     = eval(originalRequest.responseText);
	var targetId = data.target_id;
	
	document.getElementById(targetId).innerHTML="";
	
	//指定なし
	var option = document.createElement('option');
	option.setAttribute("value", "");
	option.innerHTML = "指定なし";
	document.getElementById(targetId).appendChild(option);


	for(i = 0; i < data.data.length; i++) {
		var option = document.createElement('option');
		option.setAttribute("value", data.data[i].id);
		option.innerHTML = data.data[i].title;
		document.getElementById(targetId).appendChild(option);
	}

}


function changeLine(elm, targetId) {
	var lineId = $F(elm);
	getStationByLineId(lineId, targetId);
}


function showLoading(){

	$('results').innerHTML = '<div class="nowloading02"><img src="../img/search/nowloading.gif" /></div>';
	$('condition').innerHTML = '<img src="../img/search/kensakucyu.gif" alt="検索中">';

}

function showMapLoading(){
	
}


function apiRollOver(){
	
	var aPreLoad = new Array();
	var sTempSrc;

	var aImages = $('results').getElementsByTagName('img');
	
	
	for (var i = 0; i < aImages.length; i++) {		
		if (aImages[i].className == 'imgover') {
			
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_o'+ftype);
			
			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}	
			
			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_o'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}

		}
	}

}

function trackingAnalytics(str){
	
	var param = "/search/ajax/";
	
	if($("kihon").style.display == "none"){
		param += "kodawari";
	}else{
		param += "kihon";
	}
	param += str;
	
	//alert(param);
	
	pageTracker._trackPageview(param);
}

var lttd = 0;
var lgtd = 0;

