// JavaScript Document

	var map;
	var mgr;

	var gtclient;
	var marker;
	var gsv;
	var mymarker;
	var lng;
	var lastMarkerLocation;
	var overlayInstance = null;


//-----------------------------------------------------------------------------

	function setMarkers(blts,pLength){

		mgr = new GMarkerManager(map);
		var markers = [];
//		map.clearOverlays();
		for(var i=0; i < pLength; i++){

			var lat_p = parseFloat(blts[i].getElementsByTagName("lat")[0].firstChild.nodeValue);
			var lon_p = parseFloat(blts[i].getElementsByTagName("lon")[0].firstChild.nodeValue);

			var cp_count  = blts[i].getElementsByTagName("count")[0].firstChild.nodeValue;
			var cp_id  = blts[i].getElementsByTagName("id")[0].firstChild.nodeValue;
			var cp_name  = blts[i].getElementsByTagName("name")[0].firstChild.nodeValue;
			var cp_address  = blts[i].getElementsByTagName("address")[0].firstChild.nodeValue;
			var cp_pref_code  = blts[i].getElementsByTagName("pref_code")[0].firstChild.nodeValue;
			var cp_price  = blts[i].getElementsByTagName("price")[0].firstChild.nodeValue;
			var cp_facility  = blts[i].getElementsByTagName("facility")[0].firstChild.nodeValue;
			var cp_roof_type  = blts[i].getElementsByTagName("roof_type")[0].firstChild.nodeValue;
			var cp_corp_limited  = blts[i].getElementsByTagName("corp_limited")[0].firstChild.nodeValue;
			var cp_dist  = blts[i].getElementsByTagName("dist")[0].firstChild.nodeValue;
			var cp_url  = blts[i].getElementsByTagName("url")[0].firstChild.nodeValue;

			var point = new GLatLng(lat_p, lon_p);
			var icons = getIcon();
//			markers.push(new GMarker(point,{title : cp_address,icon : icon}));
			markers.push(creatMakers(i,point,lat_p,lon_p,cp_id,cp_name,cp_address,cp_price,cp_url));
		}
		mgr.addMarkers(markers, 13, 17);
		mgr.refresh();
		var aa = mgr.getMarkerCount(16);
		//alert(aa);
	
	}

	function creatMakers(i,point,lat_p,lon_p,cp_id,cp_name,cp_address,cp_price,cp_url){
		var i = new GMarker(point,{title : '['+cp_name+'] '+cp_price+'', icon:icon});
		GEvent.addListener(i,'click',function(){

				//カーパーキング アイコンクリック後の処理
				$("#carparking").hide();
				//$("#carparking").fadeIn("slow");
				$("#carparking").show();

				document.getElementById("carparking").innerHTML = 
						'<strong><a href="'+cp_url+'" target="_blank">'+cp_name+'</a></strong><br />'+cp_address+'<br />賃料：'+cp_price+'<br /><a href="'+cp_url+'" target="_blank"><img src="../../../result/images/btn_carparking.gif" /></a>'

		});
		return i;
		
	}

	function getIcon(){
				icon = new GIcon();
				icon.image = "../../../result/images/parking_pin.png";
				icon.iconSize = new GSize(20, 26);
				icon.iconAnchor = new GPoint(10, 26);
				icon.infoWindowAnchor = new GPoint(9, 2);
				icon.infoShadowAnchor = new GPoint(18, 25);
		return icon;
	}

//-----------------------------------------------------------------------------

function onLoad() {

			$("#carparking").hide();//カーパーキング詳細ウィンドウ・・・デフォルトは非表示

      map = new GMap2(document.getElementById("google_map"));
      map.addControl(new GSmallMapControl());
      map.setCenter(new GLatLng(setlat, setlon), 15);
			var build = new GLatLng( setlat, setlon);

			var marker = new GMarker(new GLatLng(setlat, setlon));
			map.addOverlay(marker);

			GEvent.addListener(map, "click", function(){
				step1();
			});

      var request = GXmlHttp.create();

      var url = "../../../data_carparking_xml.php"+'?setlon='+setlon+'&setlat='+setlat;

      request.open("GET", url, true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
					var res = request.responseXML;
					var xmlDoc = res.documentElement
					var blts = xmlDoc.getElementsByTagName("Data");
					var pLength = blts.length;
//					alert(pLength);
					setMarkers(blts,pLength);
//					window.setTimeout(setMarkers,0);
        }
      }
      request.send(null);



			gtclient = new GStreetviewClient();
			var guyIcon = new GIcon(G_DEFAULT_ICON);
			guyIcon.image = "http://maps.google.co.jp/intl/ja_jp/mapfiles/cb/man-0.png";
			guyIcon.transparent = "http://maps.google.co.jp/intl/ja_jp/mapfiles/cb/man-pick.png";
			guyIcon.imageMap = [
				26,13, 30,14, 32,28, 27,28, 28,36, 18,35, 18,27, 16,26,
				16,20, 16,14, 19,13, 22,8
			];
			guyIcon.iconSize = new GSize(49, 52);
			guyIcon.iconAnchor = new GPoint(25, 35);
			guyIcon.shadow = null;
//			mymarker = new GMarker(build, {icon: guyIcon, draggable: true});
			mymarker = new GMarker(build);
//			map.addOverlay(mymarker);
			lastMarkerLocation = build;
			startStreetview();
	//	bluelineOverlay();
	//	GEvent.addListener(mymarker, "click", refreshStreetview);
			GEvent.addListener(mymarker, "drag", onDragStart);
			GEvent.addListener(mymarker, "dragend", onDragEnd);
	//		GEvent.addListener(map, 'click', onTeleport)

		//---------------------------------------------------------
		// STREETVIEW AREA - BLUE LINE
			function bluelineOverlay() {
			  if (!overlayInstance) {
			    overlayInstance = new GStreetviewOverlay();
			    map.addOverlay(overlayInstance);
			  } else {
			    map.removeOverlay(overlayInstance);
			    overlayInstance = null;
			  }
			}
		//---------------------------------------------------------
			function startStreetview(lat, lng) {
				//ユーザーの写真を非表示(2010.5.24)
				var panoOpts = {features: {userPhotos: false}};
				gsv = new GStreetviewPanorama(document.getElementById('google_map_sv'), panoOpts);
				GEvent.addListener(gsv, "error", onError);
				gsv.setLocationAndPOV(build, {yaw:0, pitch:10});
			  var latlng = new GLatLng(lat, lng);
			  mymarker.setLatLng(build);
				GEvent.addListener(gsv, "yawchanged", onYawChange);
				GEvent.addListener(gsv, "initialized", onMove);
				GEvent.addListener(marker, 'click', function(){	map.setCenter(build)})
				//GEvent.addListener(map, 'dblclick', onTeleport)
			}
			function refreshStreetview(lat, lng) {
				gsv = new GStreetviewPanorama(document.getElementById('google_map_sv'));
				GEvent.addListener(gsv, "error", onError);
				gsv.setLocationAndPOV(mymarker.getLatLng(), {yaw:0, pitch:10});
				GEvent.addListener(gsv, "yawchanged", onYawChange);
				GEvent.addListener(gsv, "initialized", onMove);
				GEvent.addListener(mymarker, 'click', function(){	map.setCenter(mymarker.getLatLng())})
			}
		//---------------------------------------------------------
			function onYawChange(newYaw) {
				var GUY_NUM_ICONS = 16;
				var GUY_ANGULAR_RES = 360/GUY_NUM_ICONS;
				if (newYaw < 0) {
				  newYaw += 360;
				}
				guyImageNum = Math.round(newYaw/GUY_ANGULAR_RES) % GUY_NUM_ICONS;
				guyImageUrl = "http://maps.google.co.jp/intl/ja_jp/mapfiles/cb/man_arrow-" + guyImageNum + ".png";
				mymarker.setImage(guyImageUrl);
			}
		//---------------------------------------------------------
			function onMove(location) {
				var newPoint = location.latlng;
				map.setCenter(newPoint)
				mymarker.setLatLng(newPoint);
			}
		//---------------------------------------------------------
			function onDragStart() {
				if (!lng || lng < mymarker.getLatLng().lng()) {
					mymarker.setImage("http://www.google.co.jp/intl/ja_jp/mapfiles/cb/man_fly_right.png");
				} else if (lng > mymarker.getLatLng().lng()) {
					mymarker.setImage("http://www.google.co.jp/intl/ja_jp/mapfiles/cb/man_fly_left.png");
				}
				lng = mymarker.getLatLng().lng();
				if(gsv){	gsv.remove();	}
			}
			function onDragEnd() {
				mymarker.setImage(mymarker.getIcon().image);
				var latlng = mymarker.getLatLng();
				gtclient.getNearestPanorama(latlng, onResponse);
			}
			function onTeleport(overlay,point) {
					var newPoint = point;
					mymarker.setLatLng(newPoint);
					onDragEnd();
			}
		//---------------------------------------------------------
			function onResponse(response) {
			  if (response.code != 200) {
			    mymarker.setLatLng(lastMarkerLocation);
			  } else {
			    var latlng = new GLatLng(response.Location.lat, response.Location.lng);
			    mymarker.setLatLng(latlng);
			    lastMarkerLocation = latlng;
			    refreshStreetview();
			  }
			}

			function onError(errorCode) {
				if (errorCode == 600) {
					document.getElementById("google_map_sv").innerHTML = 'ストリートビュー未対応エリアです。';
					return;
				}else if (errorCode == 603) {
					document.getElementById("google_map_sv").innerHTML = 'ブラウザがFlash未対応です。';
					return;
				}
			}

			//google.setOnLoadCallback(initialize);


}

//-----------------------------------------------------------------------------

var timeID;
function step1() {
	//alert('step1');
	clearTimeout(timeID)
	timeID = setTimeout("step2();", 5000);
}
function step2() {
	//alert('step2');
	$("#carparking").hide();
	//$("#carparking").fadeOut("slow");
}







