
//	新規登録用のマーカー
var gInsertMarker;

function insert_onload(f){

	//	新規登録用マーカーの初期化
	point = GMap.getCenter();
	gInsertMarker = new GMarker( point, { draggable:true, bouncy:true, bouncyGravity:2 });

	//	表示
	GMap.addOverlay(gInsertMarker);

	//	ヘルプ
	html = '<div class="ballon_insert"><img src="images/help_map.png" style="margin-bottom:7px;"><br>このマーカーをマウスで掴んで登録したいポイントまで移動して下さい<br /></div>';
	gInsertMarker.openInfoWindowHtml(html);

	//	移動マーカーのドラッグイベント
	GEvent.addListener(gInsertMarker, 'dragend', function(){
		var point = gInsertMarker.getPoint();
		var lat = point.lat();
		var lng = point.lng();
		f.lat.value = lat;
		f.lng.value = lng;
	});
}

function insert_unload(){
	//	新規登録用マーカーを削除
	GMap.removeOverlay(gInsertMarker);
	delete gInsertMarker;
}

function insert_marker(f){
	//	マーカーを移動
	point = GMap.getCenter();
	gInsertMarker.setPoint(point);
	
	f.lat.value = point.lat();
	f.lng.value = point.lng();	
}

function insert_execute(f){
	
	//	フォーム入力値
	var pref	 = f.pref.value;
	var city	 = f.city.value;
	var route	 = f.route.value;
	var station	 = f.station.value;
	var title	 = f.title.value;
	var memo	 = f.memo.value;
	var lat		 = f.lat.value;
	var lng		 = f.lng.value;
	var api_key	 = f.api_key.value;

	//	POSTデータの作成
	var qu = new Array();
	qu[0] = 'order='	+'insert';
	qu[1] = 'pref='		+pref;
	qu[2] = 'city='		+city;
	qu[3] = 'route='	+route;
	qu[4] = 'station='	+station;
	qu[5] = 'title='	+title;
	qu[6] = 'memo='		+memo;
	qu[7] = 'lat='		+lat;
	qu[8] = 'lng='		+lng;
	qu[9] = 'api_key='	+api_key;
	
	var post = qu.join('&');
	
	//	非同期通信
	gXmlhttp = GXmlHttp.create();
	gXmlhttp.onreadystatechange = function (){
		if(gXmlhttp.readyState == 0){
			f.readyStatus.value = 'STAND BY';
		}else if(gXmlhttp.readyState == 1){
			f.readyStatus.value = 'Loading...';
		}else if(gXmlhttp.readyState == 2){
			f.readyStatus.value = 'Loaded!';
		}else if(gXmlhttp.readyState == 3){
			f.readyStatus.value = 'Interactive...';
		}else if(gXmlhttp.readyState == 4){
			f.readyStatus.value = 'Complete!';
			var xml = gXmlhttp.responseXML;
			var status = xml.getElementsByTagName('status');
			var result = status[0].getAttribute('result');
			var markers	 = xml.getElementsByTagName('marker');

			if(result == 'NG'){
				var error = xml.getElementsByTagName('error');
				var message = error[0].firstChild.nodeValue;
				alert(message);
				//	STAND BYに戻す
				f.readyStatus.value = 'STAND BY';
				return;
			}
			
			//	insertマーカーをリムーブ
			GMap.removeOverlay(gInsertMarker);
			
			//	1つしか返ってこない
			marker = markers[0];
			
			//	マーカーの作成
			id = create_marker(marker);
			
			//	吹き出しの表示
			GEvent.trigger(gMarkers[id],'click');
			
			//	フォームを初期化
			f.pref.value	 = '';
			f.city.value	 = '';
			f.route.value	 = '';
			f.station.value	 = '';
			f.title.value	 = '';
			f.memo.value	 = '';
			f.lat.value		 = '';
			f.lng.value		 = '';
		}
		//	STAND BYに戻す
		f.readyStatus.value = 'STAND BY';
	}
	
	//	ここでsend
	gXmlhttp.open('post', 'api.php', true);
	gXmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	gXmlhttp.send(post);
}