var window1_clickid;
var window2_clickid;
var window3_clickid;
var map;

//windowの間隔
var window_interval = 10;

//デフォルトのZOOMランク
var zoom_rank = 16;

//イメージの場所
var img_path = "/mansion/js/googlemap/window/themes/default/";

//表示開始座標
/*
var start_top;
var start_left;
*/
function onLoad() {

	map = new GMap2(document.getElementById("map"));
	map.setCenter(new GLatLng(33.2367851167488,131.606876850128),zoom_rank);
	p = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20, 30))
	map.addControl(new GSmallMapControl(),p);
	map.addControl(new GOverviewMapControl());
	map.setMapType(G_NORMAL_MAP);
/*
	var ret = Position.cumulativeOffset($('map'));
	
	start_left = ret[0];
	start_top  = ret[1];
*/
	//建物、物件情報の取得
	getPlotList();

	openMenu();

}


//プロットリスト取得
function getPlotList() {

	var parameter = 'mode=bld'; 
	var post_php = "/mansion/map.php";

	// Ajax.Requestオブジェクトを作成
	var myAjax = new Ajax.Request(
		post_php,	// 呼び出し先のURL
		{
			method: 'post',					// メソッド
			postBody: parameter,			// ポストされるボディ部
			onComplete: load_buildSuccess,	// 呼び出しが成功した時に呼び出されるメソッド
			onFailure:	AjaxFailed,			// 呼び出しが失敗した時に呼び出されるメソッド
			onException: AjaxException		// 例外が発生した時に呼び出されるメソッド
		}
	);		
}

function AjaxException(xmlobj, e)
{
	// 例外が発生した時の処理
	alert('例外です：' + e.message);

	
}

function AjaxFailed(xmlobj, json)
{
	// 呼び出しが失敗した時の処理
	alert('エラーです：');
}


//建物情報を地図上にプロット
function load_buildSuccess(xmlhttp) {

	var list = eval(xmlhttp.responseText);

	for(var i=0; i<list.length; i++){
		var marker = makeIcon(i);
		map.addOverlay(marker);
	}
	
	var honsyaMarker = makeHonsyaIcon();
	map.addOverlay(honsyaMarker);
	
	function makeIcon(i){

		var icon_name;
		var icon = new GIcon();
		
		icon.shadow = '';
		icon.iconSize = new GSize(40, 32); /* icon10.gif - 50x60 */
		icon.shadowSize = new GSize(0, 0);
		icon.iconAnchor = new GPoint(20,32);
		icon.infoWindowAnchor = new GPoint(30, 10);

		var opt = map.getInfoWindow();
		opt.maxWidth = 200;

		//物件の件数により表示する画像を変更
		icon_name = "icon_map.gif"; 
//		if (list[i]["cnt"] >= 10) {
//			icon_name = "icon10.gif";
//		} else {
//			icon_name = "icon" + list[i]["cnt"] + ".gif";
//		}	
		
		icon.image = img_path + icon_name;

		//建物情報を表示
		var strHtml = "<div style=\"font-size: small; text-align: left;\">";
		strHtml += "<b>"+list[i]["name"]+"</b><br />";
		strHtml += "<br />";
		strHtml += list[i]["address"]+"<br />";
		strHtml += "<br />";
		strHtml += "<a href=\"/mansion/move_detail/build/"+list[i]["id"]+"\" target=\"_blank\">●この物件の詳細情報を見る</a><br />";
//		strHtml += "<a href=\"/mansion/move_detail/build/"+list[i]["id"]+"\">●この物件の詳細情報を見る</a><br />";
		strHtml += "</div>";

		var marker = new GMarker(new GLatLng(list[i]["latitude"], list[i]["longitude"]),icon);
		GEvent.addListener(marker,"click",function(){ marker.openInfoWindowHtml(strHtml,opt); });

		return marker;
	}

	//本社ビルの情報
	function makeHonsyaIcon(){

		var honsyaIcon = new GIcon();
		honsyaIcon.image = "/mansion/js/googlemap/window/themes/default/icon_kubota.gif";
		honsyaIcon.iconSize = new GSize(265, 77);
		honsyaIcon.iconAnchor = new GPoint(32,77);
		honsyaIcon.infoWindowAnchor = new GPoint(49, 34);

/*
		honsyaIcon.iconSize = new GSize(55, 48);
		honsyaIcon.iconAnchor = new GPoint(28,48);
		honsyaIcon.infoWindowAnchor = new GPoint(40, 15);
*/
//		var honsyaOpt = map.getInfoWindow();

		//クリック時に表示するウインドウのHTML
		var strHonsyaHTML = "<p style=\"float: left; margin-right: 10px;\"><img src=\"/mansion/js/googlemap/window/themes/default/kubota_honsya.jpg\" width=\"166\" height=\"133\" alt=\"クボタ不動産建設株式会社　本社ビル外観\" /></p>";
		strHonsyaHTML += "<p style=\"font-size:small; text-align: left; float:left; line-height:1.5em;\">";
		strHonsyaHTML += "<strong style=\"font-size:130%;\">クボタ不動産建設株式会社<br />本社ビル</strong><br /><br />〒870-0034　大分県大分市都町1-1-3<br />097-538-2225（代表：受付時間/9:00-18:00）</p>";

		var honsyaMarker = new GMarker(new GLatLng(33.2393045, 131.6066225),honsyaIcon);
		GEvent.addListener(honsyaMarker,"click",function(){ honsyaMarker.openInfoWindowHtml(strHonsyaHTML); });

		return honsyaMarker;

	}

}

//エリアが押された場合の表示位置の移動（大分県中心部・・・）
function moveAreaMap(area_id){

	var parameter = 'mode=area&area_id='+area_id; 
	var post_php = "/mansion/map.php";
	
	if (area_id == 6) {
		parameter += '&zoom_rank=15';
	}
	
	// Ajax.Requestオブジェクトを作成
	var myAjax = new Ajax.Updater(
		'', 	// 差し込む要素
		post_php,	// 呼び出し先のURL
		{
			method: 'post',					// メソッド
			postBody: parameter,			// ポストされるボディ部
			onSuccess: load_LatLongSuccess,	// 呼び出しが成功した時に呼び出されるメソッド
			onFailure:	AjaxFailed,			// 呼び出しが失敗した時に呼び出されるメソッド
			onException: AjaxException		// 例外が発生した時に呼び出されるメソッド
		}
	);				
	
}

//緯度、経度を中心に設定
function load_LatLongSuccess(xmlhttp, list) {

	var map_zoom_rank;
	if (list.length > 0) {
		if (list[0]["latitude"] != null && list[0]["longitude"] != null){
			if (list[0]["zoom_rank"] != null) {
				map_zoom_rank = list[0]["zoom_rank"];
			} else {
				map_zoom_rank = zoom_rank;
			}
			map.setCenter(new GLatLng(list[0]["latitude"],list[0]["longitude"]),parseInt(map_zoom_rank));
		}
	}
}

// ウィンドウプロパティクラス
function windowProperty() {

	this.className 			= "dialog"; 		// class名
	this.minWidth			= 30;				// minWidth
	this.minHeight			= 30;				// minWidth
//	this.maxWidth			= 300;				// minWidth
//	this.maxHeight			= 700;				// minWidth
	this.title				= ""; 				// タイトル
	this.left				= 10;	// 表示位置（左）
	this.top				= 40;	// 表示位置（上）
	this.width				= 130; 				// 幅
	this.height				= 280; 				// 高さ
	this.zIndex				= 200; 				// 重なり
	this.draggable			= false; 			// ドラッグ不可避
	this.opacity			= 0.9; 				// 透明度（0-1)
	this.showEffectOptions	= {duration:0.5}; 	// 表示時エフェクト設定（duration：表示速度）
	this.hideEffectOptions	= {duration:0.5}; 	// 削除時エフェクト設定（duration：表示速度）
	this.destroyOnClose		= true; 			// 削除時にウインドウ破棄
	this.scrollHeight 		= 900;
	this.menuWidth			= 60;
}

function openMenu() {
	var wp = new windowProperty();

	wp.width = 59;
	wp.height = 58;
	closeWindow();
	mwin = new Window ("", wp);
	mwin.getContent().innerHTML = '<div id="main_window1" class="main_window" onClick="openWin1()"></div>';
	mwin.show();
}

function openWin1() {

	var wp = new windowProperty();
	wp.left = wp.left + wp.menuWidth + window_interval;

	closeWindow();
	subwin1 = new Window ("", wp);
	getContents(1,subwin1);
	subwin1.show();
}

function openWin2(id) {

	var wp = new windowProperty();
	wp.left = wp.left + wp.menuWidth + window_interval + wp.width + window_interval;

	if (typeof(subwin2) == "object") {	subwin2.close();}
	if (typeof(subwin3) == "object") {	subwin3.close();}
	subwin2 = new Window ("", wp);
	getContents(2,subwin2,id);

	// クリック処理
	if (window1_clickid && window1_clickid != id) {
		// 選択されていた市の背景を初期化
		crearClass(1,window1_clickid);	
	}
	window1_clickid = id;
	mouseOver(1,id);
	
	// ウィンドウ２表示
	subwin2.show();
}
function openWin3(id) {

	var wp = new windowProperty();
	wp.left = wp.left + wp.menuWidth + window_interval + wp.width + window_interval + wp.width + window_interval;

	if (typeof(subwin3) == "object") { subwin3.close();}
	subwin3 = new Window ("", wp);
	getContents(3,subwin3,id);

// クリック処理
	if (window2_clickid && window2_clickid != id) {
		// 選択されていた市の背景を初期化
		crearClass(2,window2_clickid);	
	}
	window2_clickid = id;
	mouseOver(2,id);

	subwin3.show();
}
function closeWindow() {
	if (typeof(subwin1) == "object") {	subwin1.close(); }
	if (typeof(subwin2) == "object") {	subwin2.close(); }
	if (typeof(subwin3) == "object") { subwin3.close(); }
}
function mouseOver(win,id) {
	document.getElementById("sub_window" + win +"_"+ id).className = "mouseover" + win;
}

//Img用マウスオーバー
function mouseOverImg(win,id) {
	document.getElementById("sub_window" + win +"_"+ id).className = "mouseover" + win + "_" + id;
}

//Img用マウスアウト
function mouseOutImg(win,id) {
	document.getElementById("sub_window" + win +"_"+ id).className = "sub_window" + win + "_" + id;
}

function mouseOut(win,id) {

	if (!((win == 1 && window1_clickid == id) || (win == 2 && window2_clickid == id))) {
		crearClass(win,id);
	}
}
function crearClass(win,id) {
	if(document.getElementById("sub_window" + win +"_"+ id)){
		document.getElementById("sub_window" + win +"_"+ id).className = "sub_window" + win;
	}
}
function getContents(mode,win,id)	{
	// パラメータを作成
	var parameter = "mode=" + mode + "&id=" + id;
	// Ajax.Requestオブジェクトを作成
	var myAjax = new Ajax.Request(
		'/mansion/map_window.php',	// 呼び出し先のURL
		{
			method: 'post',				// メソッド
			postBody: parameter,		// ポストされるボディ部
			onComplete: function(res) {
				win.getContent().innerHTML = res.responseText;
			}
		}
	);
}
function submitForm(mode,id) {
	
	if (mode == "plot") {

		var parameter = 'mode=bund&bnd_id='+id; 
		var post_php = "/mansion/map.php";
	
		// Ajax.Requestオブジェクトを作成
		var myAjax = new Ajax.Updater(
			'', 	// 差し込む要素
			post_php,	// 呼び出し先のURL
			{
				method: 'post',					// メソッド
				postBody: parameter,			// ポストされるボディ部
				onSuccess: load_LatLongSuccess,	// 呼び出しが成功した時に呼び出されるメソッド
				onFailure:	AjaxFailed,			// 呼び出しが失敗した時に呼び出されるメソッド
				onException: AjaxException		// 例外が発生した時に呼び出されるメソッド
			}
		);				
		
		//windowを全て閉じる
		closeWindow();
		
	} else if (mode == "sch") {

		document.location.href="/mansion/move_search.html?id="+id;
		
	} else if (mode == "res") {

		document.location.href="/mansion/move_search_res.html?id="+id;

	}
}

function setZoom(zoom) {
	
	map.setZoom(zoom);
	
}

