// ライブラリに依存しない書き方でやってみる
function $(ele){
	return document.getElementById(ele);
}

window.onload = atLoad;
window.onresize = atResize;
window.onunload = GUnload;

var d=document;
var map,center,bounds,size,map_ctrl=[],type_ctrl=[],scale_ctrl=[],overview_ctrl=[],map_type,map_types;

//マーカークラス作ってみる
//マーク追加ボタンでウィンドウ開くと、タイトルなどの情報がどこにも保持されない
//マーカーオブジェクトに情報持たせる
function cgomaMarker(latlng, opt) {
	var isNew = true;
	
	
	
}

/*よく使う関数定義って
var atLoad = function() {...}
と同じことなんだな。だから window.onload = atLoad って書き方でいけるわけだ*/
function atLoad() {
d=document;
if (GBrowserIsCompatible()) {
	elmap=$('map');
	map=new GMap2(elmap);
	GEvent.addListener(map, 'load', function() {
		center = map.getCenter();
		//中央マーカー
		var mo1=d.createElement('div'),mo2=d.createElement('div');
		mo1.id='map_center_marker_w';
		mo2.id='map_center_marker_h';
		ms1=mo1.style;
		ms2=mo2.style;
		ms1.position=ms2.position='absolute';
		gomaMoveCenterMarker2(mo1,mo2);
		ms1.backgroundImage = "url(center_1.gif)";
		ms2.backgroundImage = "url(center_2.gif)";
		ms1.backgroundRepeat=ms2.backgroundRepeat="no-repeat";
		ms1.fontSize="0px";
		ms1.opacity=ms2.opacity = 0.5;
		elmap.appendChild(mo1);
		elmap.appendChild(mo2);
	});
//	GEvent.addListener(map, "movestart", function() {
//		$('#center_x_y_movestart').html(map.getCenter().toString());
//	});
	GEvent.addListener(map, "move", function() {
		center = map.getCenter();
		$('nowLat').innerHTML=(center.lat());
		$('nowLng').innerHTML=(center.lng());
	});
//	GEvent.addListener(map, "moveend", function() {
//		gomaSetCenterVal();
//		$('#center_x_y_moveend').html(center.toString());
//		gomaSetBoundsVal();
//	});
//	GEvent.addListener(map, "dragstart", function() {
//		//地図上でワンクリックでも呼ばれるッぽい
//		$('#center_x_y_dragstart').html(map.getCenter().toString());
//	});
//	GEvent.addListener(map, "drag", function() {
//		$('#center_x_y_drag').html(map.getCenter().toString());
//	});
//	GEvent.addListener(map, "dragend", function() {
//		$('#center_x_y_dragend').html(map.getCenter().toString());
//	});
//	GEvent.addListener(map, "click", function() {
//		$('#center_x_y_dragstart').html(map.getCenter().toString());
//	});
//	GEvent.addListener(map, "maptypechanged", function() {
//		//read時にも呼ばれるっぽい
//		map_type = map.getCurrentMapType();
//		var s=map_type.getName();
//		d.getElementById("CurrentMapType_name").innerHTML=s;
//		$('#MapTypeName').html(s);
//		$('#MapTypeTileSize').html(map_type.getTileSize()+'');
//		$('#MapTypeMinimumResolution').html(map_type.getMinimumResolution()+'');
//		$('#MapTypeMaximumResolution').html(map_type.getMaximumResolution()+'');
//		$('#MapTypeTextColor').html(map_type.getTextColor());
//		$('#MapTypeErrorMessage').html(map_type.getErrorMessage());
//		$('#MapTypeUrlArg').html(map_type.getUrlArg());
//		
//	});
	GEvent.addListener(map, "zoomend", function(oldLv, newLv) {
		$('nowZoom').innerHTML=(newLv+'');
	});
//	GEvent.addListener(map, "clearoverlays", function() {
//	});
//	GEvent.addListener(map, "click", goma_click);
//	GEvent.addListener(map, "mousemove", goma_mousemove);
	map.setCenter(new GLatLng(34.65, 135), 13); /* 中心座標とズーム 未設定だとエラーになる */
	map_ctrl.push(new GLargeMapControl());
	type_ctrl.push(new GMapTypeControl());
	map.addControl(map_ctrl[0]);
	map.addControl(type_ctrl[0]);
}
/*** load()ここまで ***/
}

// ブラウザ リサイズ時
function atResize() {
	if (GBrowserIsCompatible()) {
		map.checkResize();
//		gomaSetCenterVal();
//		gomaSetBoundsVal();
//		gomaSetMapSizeVal();
		gomaMoveCenterMarker2($('map_center_marker_w'),$('map_center_marker_h'));
//		gomaMoveCenterMarker(d.getElementById('map_center_marker'));
	}
}
//センターマークの位置
function gomaMoveCenterMarker(markObj){
	var size=map.getSize();
	var mapW = parseInt(size.width);
	var mapH = parseInt(size.height);
	var markW = 21; // センターマークの横幅（ピクセル数）
	var markH = 21; // センターマークの縦幅（ピクセル数）
	var x = (mapW - markW) / 2; // センターマークの中心位置（X座標）
	var y = (mapH - markH) / 2; // センターマークの中心位置（Y座標）
	markObj.style.top = y+"px";
	markObj.style.left = x+"px";
	markObj.style.width = markW+"px";
	markObj.style.height = markH+"px";
}
function gomaMoveCenterMarker2(mo1,mo2){
//	var mo1=d.getElementById('map_center_marker_w'),mo2=d.getElementById('map_center_marker_h');
	var size=map.getSize();
	var mapW=parseInt(size.width),mapH=parseInt(size.height);
	var markW = 21; // センターマークの横幅（ピクセル数）
	var markH = 21; // センターマークの縦幅（ピクセル数）
	var x = (mapW - markW) / 2; // センターマークの中心位置（X座標）
	var y = (mapH - markH) / 2; // センターマークの中心位置（Y座標）
	//横
	mo1.style.left = x+"px";
	mo1.style.top = ((mapH-1)/2)+"px";
	mo1.style.width = markW+"px";
	mo1.style.height = 1+"px";
	//縦
	mo2.style.left = ((mapW-1)/2)+"px";
	mo2.style.top = y+"px";
	mo2.style.width = 1+"px";
	mo2.style.height = markH+"px";
}

//クリック
function goma_click(overlay,point) {
}

//マーカー追加
function gomaAddMarker(){
//	var tl=$F('marker_title'),txt=$F('marker_text').escapeHTML();
	var tl=$F('marker_title'),txt=$F('marker_text');
	alert(tl);alert(txt);
	var marker = new GMarker(center,{title:tl})
	map.addOverlay(marker);
	marker.openInfoWindowHtml('title:<b>'+tl+'</b><div style="border:1px solid #666666;">'+txt+'</div>');
	GEvent.addListener(marker, "click", function() {
//		marker.openInfoWindowHtml('title:<b>'+tl+'</b><div style="border:1px solid #666666;">'+txt+'</div>');
		marker.openInfoWindowHtml('title:');
	});
	
	GEvent.addListener(marker, "remove", function() {
//		marker_counter--;
		map.closeInfoWindow();
	});
	GEvent.addListener(marker, "dblclick", function() {
		map.removeOverlay(marker);
	});
}

//画面を覆うウィンドウ
var overwall;
function showWall() {
	if(overwall){
//		Element.show(overwall);
		overwall.style.display='block';
	}else{
		overwall=d.createElement('div');
		overwall.id='overwall';
		var ws=overwall.style;
		ws.position=ms2.position='absolute';
		ws.top='0px';
		ws.left='0px';
		ws.width='100%';
//		ws.height=Element.getHeight('jacket')+'px';
		ws.height=$('jacket').clientHeight+'px';
		ws.margin='0px';
		ws.padding='10em 0px';
		ws.backgroundColor='#666666';
		ws.zIndex='65534';
		ws.color='#FF0000';
		ws.fontSize='xx-large';
		ws.textAlign='center';
		overwall.innerHTML='クリックすれば壁は消えるよ';
		//透明化
		ws['-moz-opacity']=ws.opacity=0.8;
		ws.filter='alpha(opacity=80)';
		//クリックで消す
		overwall.onclick = function(){
			alert("Click 壁!!");
			overwall.style.display='none';
		};
/*
		Event.observe(overwall, 'click', function(){
//			alert("Click wall!!");
			overwall.style.display='none';
		});
*/
//		$$('body').appendChild(overwall);
		$('jacket').appendChild(overwall);
	}
}