var sss = new Date();
var stime = sss.getTime();

var icok = [];
icok[1] = [0,3,4,4,4];
icok[2] = [0,4,4,4,4,4,4,4,4,4,3,4];
var httpRequest = [];
var myt = [];
var sarray = ['',''];
var nows = ['','',''];
var nowo = ['',''];
var json = ['','','',''];
var map, map2;
var mapc;
var ico = [];
var icot = [];
var soc;
var asy = '<img src="/_i/async.gif" width="16" height="16" alt="now loading" />';
var mapww = [350,870,1];

for (i = 1; i <= 6; i++) { 
	httpRequest[i] = false; 
	if (window.XMLHttpRequest) { 
		httpRequest[i] = new XMLHttpRequest(); 
	} else if (window.ActiveXObject) { 
		try { 
			httpRequest[i] = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (e) { 
			httpRequest[i] = new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
	} 
}

function getmysql(num,chk,dat) { 
	httpRequest[num].abort(); 
	httpRequest[num].open("GET", "/get/" + num + "-" + chk + (dat ? "/dat=" + dat : "") , true); 
	httpRequest[num].onreadystatechange = function() { 
		if ((httpRequest[num].readyState == 4) && (httpRequest[num].status == 200) && httpRequest[num].responseText) { 
			var a = httpRequest[num].responseText; 
			switch (num) { 
				case 1 : 
					switch (chk) { 
						case 1 : opensearch(a); break;
						case 2 : cngpref(a,'',''); break;
						case 3 : setlist(a); break;
					} break; 
				case 2 : 
					switch (chk) { 
						case 1 : viewinq(a,'',''); break;
					} break; 
				case 4 : 
					switch (chk) { 
						case 1 : setdata(a); break;
					} break; 
				case 5 : 
					switch (chk) { 
						case 1 : ocdd(a,''); break;
					} break; 
				case 6 : 
					switch (chk) { 
						case 1 : fzipchk(a); break;
					} break; 
			} 
		} 
	}; 
	httpRequest[num].send(null); 
}

function $(tagId) { return document.getElementById(tagId); }

function number_format(a) { 
	if (a) { 
		var b = String(Math.floor(a)); 
		var c = ""; 
		while (b != (c = b.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2"))) { b = c; } 
		return b; 
	} 
	return ''; 
}

function cngmapw(a) {
	var z = [$("map").style , $("mapw").style];
	mapww[2] = (a ? 0 : ((mapww[2] == 1) ? 0 : 1));
	z[0].width = mapww[mapww[2]] + "px";
	z[1].left = (mapww[mapww[2]] + 5) + "px";
	z[1].backgroundPosition = (mapww[2] ? "-13px" : "0") + " 0";
	map.checkResize();
}

function setmapicon() {
	for (i = 1; i <= 4; i++) { buildmapicon(i); }
	for (i = 11; i <= 19; i++) { buildmapicon(i); }
	return 1;
}

function setmapicon2() {
	for (i = 23; i <= 24; i++) { buildmapicon(i); }
	return 2;
}

function buildmapicon(a) {
	ico[a] = new GIcon();
	ico[a].image = '/_i/ico/ico' + ((a < 10) ? '0' : '') + i + '.png';
	ico[a].iconSize = new GSize(32, 37);
	ico[a].iconAnchor = new GPoint(15, 17);
}

function setsearch(a) {
	sarray[0] = a;
	opensearch('');
}

function opensearch(a) {
	var z = [$("schm").style , $("scheme")];
	if (a) { 
		json[0] = eval("(" + a + ")");
		myt[1] = setTimeout('drawsearch(1)',(json[0].err ? 2000 : 100));
	} else {
		if ($("kids")) {
			$("kids").innerHTML = asy;
		} else {
			z[1].innerHTML = asy;
		}
		z[0].display = 'block';
		getmysql(1,1,sarray[0]);
	}
}

function drawsearch(a) {
	var z = $("scheme");
	if (a) {
		clearTimeout(myt[a]);
	}
	if (json[0].err) {
		z.innerHTML = '<div id="nowload">もうしわけありません。現在、ご紹介できる物件がありません。 #' + json[0].err + '</div>';
	} else {
		if (soc == 1) { 
			drawsearch3();
		} else {
			soc = 0;
			$("scheme").innerHTML = '';
			myt[1] = setInterval("drawsearch2()",10);
		}
	}
}

function drawsearch2() {
	var z = 544;
	soc += 50;
	if (soc >= z) {
		soc = z;
		clearInterval(myt[1]);
	}
	$("scheme").style.height = soc + "px";
	if (soc >= z) {
		soc = '';
		$("scheme").style.height = "";
		drawsearch3();
	}
}

function drawsearch3() {
	if ($("scheme").innerHTML.substr(0,5) !== '<form') {
		$("scheme").innerHTML = '<form id="sform" name="sform"><div id="kids"></div><div id="s_pref"><ol id="prefs"></ol></div><div id="s_addr"><ol id="addrs">' + asy + '</ol></div><div id="s_kind"><ol id="kinds">' + asy + '</ol></div><div id="s_rout"><ol id="routs">' + asy + '</ol></div><br clear="left" /><div id="s_map"><div id="map">' + asy + '</div><div id="mapw" onclick="cngmapw(\'\')">マップの大きさを変える</div></div><div id="s_list"></div><br clear="left" /></form>';
	}
	if (!mapc) { mapc = setmapicon(); }
	map = new GMap2($("map"));
	map.addControl(new GLargeMapControl());
	map.enableDoubleClickZoom();
	map.enableContinuousZoom(); 
	var x = (json[0].a[3] ? [json[0].b[0].c, json[0].b[0].d, 7] : [37.702367, 138.183838, 5]);
	map.setCenter(new GLatLng(x[0],x[1]),x[2]);
	$("kids").innerHTML = $("prefs").innerHTML = $("s_list").innerHTML = '';
	$("kids").innerHTML += setkid(1) + '　｜　' + setkid(2);
	for (i = 0; i < json[0].b.length; i++) { $("prefs").innerHTML += setul('pref',json[0].b[i].a,json[0].b[i].b,json[0].b[i].e,json[0].a[3],0); }
	setpreficon();
	if (!sarray[1] && json[0].a[3]) { sarray[1] = json[0].a[3]; }
	if (sarray[1]) { cngpref('',sarray[1],''); } 
}

function setkid(a) {
	var z = ((a == 1) ? '売買' : '賃貸') + '物件';
	return 	'<label><input type="radio" name="kid" value="' + a +  '" onclick="setsearch(' + a + ')"' + (json[0].a[a] ? ((json[0].a[0] == a) ? ' checked="checked"' : '') + ' /> ' + z + ' 〔' + number_format(json[0].a[a]) + '〕' : 'disabled="disabled" /> <span class="opt">' + z + '</span>' ) + '</label>';
}

function setul(a,b,c,d,e,f) {
	var z = [' checked="checked"', ' /> ' + c + ' 〔', number_format(d) + '〕', '<span id="', e + '_' + b + '"></span>'];
	return 	'<li><label id="c_' + e + '_' + b + '"><input type="' + ((a === 'pref') ? 'radio' : 'checkbox') + '" name="' + a + '" value="' + b + '"' + 
		(	(a === 'pref') 
		? 	((e == b) ? z[0] : '') + ' onclick="cngpref(\'\',' + b + ',\'\')"' + z[1] + z[2]
		: 	((f == 1) ? z[0] : '') + ' onclick="setdata(\'' + a + '\',this.checked,' + b + ',' + e + ')"' + z[1] + z[3] + 'n_' + z[4] + z[3] + 's_' + z[4] + z[2]
		) + '</label></li>';
}

function setpreficon() { 
	for (i = 0; i < json[0].b.length; i++) { 
		setpointmarker1(json[0].b[i].c, json[0].b[i].d , i , (sarray[0] + 2) , json[0].b[i].b + ' 〔' + number_format(json[0].b[i].e) + '〕' , json[0].b[i].a);
	}
}

function clsicot(a,b) {
	a.clearOverlays();
	b = [];
}

function setpointmarker1(a,b,c,d,e,f) {
	var z = new GLatLng(a, b);
	var y = {title:e, icon:ico[d]};
	icot[c] = new GMarker(z, y);
	map.addOverlay(icot[c]);
	GEvent.addListener(icot[c], 'click', function() { 
		cngpref('',f,1);
	});
}

function setinit() {
	var z = [document.sform.pref , $("addrs") , $("kinds") , $("routs")];
	z[1].innerHTML = z[2].innerHTML = z[3].innerHTML = '';
	var x = [json[1].length, json[2].length, json[3].length];
	for (i = 0; i < x[0]; i++) { z[1].innerHTML += setul('addr',json[1][i].a,json[1][i].b,json[1][i].c,0,0); }
	for (i = 0; i < x[1]; i++) { z[2].innerHTML += setul('kind',json[2][i].a,json[2][i].b,json[2][i].c,1,0); }
	for (i = 0; i < x[2]; i++) { z[3].innerHTML += setul('rout',json[3][i].a,json[3][i].b,json[3][i].c,2,0); }
}

function cngpref(a,b,c) {
	var z = [document.sform.pref , $("addrs") , $("routs") , $("kinds")];
	if (a) { 
		var y = eval("(" + a + ")");
		if (y.err) {
			z[1].innerHTML = '<div id="nowload">もうしわけありません。現在、ご紹介できる物件がありません。 #' + y.err + '</div>';
		} else {
			json[1] = y.a; json[2] = y.b; json[3] = y.c; setinit();
		}
	} else {
		if (c) {
			var y = z[0].length;
			if (y > 1) { for (i = 0; i < y; i++) {
				z[0][i].checked = ((parseInt(z[0][i].value) == a) ? true : false);
			} }
		}
		z[1].innerHTML = z[2].innerHTML = z[3].innerHTML = asy;
		sarray[1] = b;
		json = ['','','','',''];
		nows = ['','',''];
		getmysql(1,2,sarray[0] + '_' + sarray[1]);
	}
}

function setdata(a,b,c,d) {
	if (b == true) {
		nows[d] += (nows[d] ? ':' : '') + c;
	} else {
		var z = '';
		var y = nows[d].split(":");
		var x = y.length;
		for (i = 0; i < x; i++) { if (y[i] && (y[i] != c)) {
			z += ':' + y[i];
		} }
		nows[d] = z;
	}
	nowo = [d,c];
	clsicot(map,icot);
	if (nows[0] || nows[1] || nows[2]) {
		$("s_list").innerHTML = '<div id="slas">' + asy + '</div>';
		getmysql(1,3,sarray[0] + '_' + sarray[1] + '_' + nows[0] + '_' + nows[1] + '_' + nows[2]);
	} else {
		$("s_list").innerHTML = '';
		setinit();
	}
}

function setlist(a) {
	cngmapw(1);
	var z = eval("(" + a + ")");
	if (z.err) {
		switch (z.err) {
			case 3 : 
				$("s_list").innerHTML = '<blockquote>上の組み合わせでは何もヒットしません。別の組み合わせを試して下さい。</blockquote>';
				$("c_" + nowo[0] + "_" + nowo[1]).style.background = "#FFDDDD";
				break;
			case 2 : alert("データが存在しない都道府県を選択しました。これは行えない筈です。"); break;
			case 1 : alert("売買物件か賃貸物件か指定されていません。これは行えない筈です。"); break;
		}
	} else {
		$("c_" + nowo[0] + "_" + nowo[1]).style.background = "transparent";
		var y = document.sform;
		var x = [y.addr, y.kind, y.rout];
		resetsnum(z.b,x,0);
		resetsnum(z.c,x,1);
		resetsnum(z.d,x,2);
		json[4] = z.a;
		var y = json[4].length;
		var x = '';
		for (i = 0; i < y; i++) {
			setpointmarker2(z.a[i], i, icok[sarray[0]][z.a[i].b]);
			x += 	'<tr class="bgc' + (i % 2) + '">' + 
				'<td class="sltdbi' + icok[sarray[0]][z.a[i].b] + '">' + 
					'<img src="/_i/blank.gif" class="sltdbi0" alt="クリックすると地図が移動します" onclick="openwintrigger(' + i + ')" />' + 
					z.a[i].h + (z.a[i].i ? '他' : '') +  
				'<td class="c">' + 
					z.a[i].d + '</td>' + 
				'</td>' + 
				'<td class="r">' + z.a[i].j + ((sarray[0] == 1) ? '㎡' : '') + '</td>' + 
				'<td class="r">' + z.a[i].g + ((sarray[0] == 1) ? '万円' : '円') + '</td>' + 
				'<td class="c"><a href="/article/' + z.a[i].a + '" title="この物件「' + z.a[i].c + '」の詳細を見る" class="detail">詳細</a></td>' + 
				'</tr>';
		}
		$("s_list").innerHTML = 
			'<div><table summary="tbl" cellpadding="0" cellspacing="1" border="0"><tr class="bgc0"><td colspan="5" class="c">上記の組み合わせで ' + number_format(y) + ' 件がヒットしました。</td></tr><tr class="bgc2">' +
			'<td class="c">種類</td>' + 
			'<td class="c">所在地</td>' + 
			'<td class="c">' + ((sarray[0] == 1) ? '敷地面積' : '間取り') + '</td>' + 
			'<td class="c">' + ((sarray[0] == 1) ? '価格' : '賃料') + '</td>' + 
			'<td class="c" width="36">詳細</td>' + 
			'</tr>' + x + '</table></div>';
	}
}

function resetsnum(a,b,c) {
	var z;
	if (b[c].length) { 
		for (i = 0; i < b[c].length; i++) { if (z = b[c][i]) {
			shotsnum(a,z,c);
		} }
	} else {
		shotsnum(a,b[c],c);
	}
}

function shotsnum(a,b,c) {
	var z = [];
	if ((z[0] = b.value) && (z[1] = $("n_" + c + "_" + z[0])) && (z[2] = $("s_" + c + "_" + z[0]))) { 
		z[3] = a[z[0]];
		z[2].innerHTML = '&nbsp;/&nbsp;';
		z[1].innerHTML = (z[3] ? '<span class="att">' + z[3] + '</span>' : '0');
	}
}

function setpointmarker2(a,b,c) {
	var z = new GLatLng(a.e, a.f);
	var y = {title:a.c, icon:ico[c]};
	var x = (a.k ? a.k.split("^") : []);
	var w = '<a href="/article/' + a.a + '" title="' + a.c + '"';
	var v = '<p class="stp2h">' + w + '>' + a.c + '</a>' + (x[0] ? '<br />' + w + '><img src="' + x[0] + '" width="' + x[1] + '" height="' + x[2] + '" alt="' + a.c + '" /></a>' : '') + '</p>所在 ' + a.d + '<br />' + ((sarray[0] == 1) ? '価格' : '月額賃料') + ' ' + a.g + ((sarray[0] == 1) ? '万円' : '円') + '　' + w + ' class="more">もっと詳しく</a>';
	icot[b] = new GMarker(z, y);
	map.addOverlay(icot[b]);
	GEvent.addListener(icot[b], 'click', function() { 
		map.openInfoWindowHtml(z, v);
	});
	if (!b) { 
		map.setZoom(12);
		map.panTo(z);
	}
}

function openwintrigger(a) {
	map.panTo(new GLatLng(json[4][a].e, json[4][a].f));
	GEvent.trigger(icot[a], "click", null); 
}


function nmore() {
	var z = $("nmore").style;
	$("nmore").style.display = (($("nmore").style.display === "block") ? "none" : "block");
}

function setpd() { if (stime) { var eee = new Date(); var etime = eee.getTime(); $("pd").innerHTML = (etime - stime) / 1000; } }window.onload = function() { 
	sarray[1] = 20;
	opensearch('');
	setpd(); 
}