//<![CDATA[			
// many thanks to this guy --> Bernard Vatant
var map;
var geocoder;
var marker;
var first = true;
var linktosearch = true;
var forpost = 0;

function loadGMap( lat, lng, zoom ){
	// lat = ( typeof lat == "undefined" && !isNaN( lat ) ) ? 12.425848 : lat;
	if(
		typeof lat == "undefined"
		|| typeof lng == "undefined"
		|| typeof zoom == "undefined"
	){
		// philippine coordinates
		lat = 12.425848;
		lng = 122.67334;
		zoom = 5;
	}
	
	map = new GMap2( document.getElementById( "map" ) );
	var customUI = map.getDefaultUI();
	customUI.maptypes.hybrid = true;
    	map.setUI(customUI);
	var center = new GLatLng( lat, lng );
	map.setCenter( center, zoom );
	geocoder = new GClientGeocoder();
	marker = new GMarker(center, {draggable: true});  
	map.addOverlay(marker);
	document.getElementById("getlatlong").value = '?latitude=' + center.lat().toFixed(5) + '&longitude=' + center.lng().toFixed(5) + '&zoom=' + map.getZoom();

	GEvent.addListener(marker, "dragend", function() {
		var point = marker.getPoint();
		map.panTo(point);
		// alert( point );
		first = false;
		clicked( marker, point );
		document.getElementById("getlatlong").value = '?latitude=' + point.lat().toFixed(5) + '&longitude=' + point.lng().toFixed(5) + '&zoom=' + map.getZoom();
	});

	GEvent.addListener( map, "click", function( overlay, latlng ){
		if (latlng != null) {
			address = latlng;
			geocoder.getLocations(latlng, showAddress);
		}
	});
	// GEvent.addListener( map, "click", clicked );
	clicked( marker, new GLatLng( lat, lng ) );
}

function showAddress(response) {
	map.clearOverlays();
	if (!response || response.Status.code != 200) {
		alert("Status Code:" + response.Status.code);
	} else {
		place = response.Placemark[0];
		point = new GLatLng( place.Point.coordinates[1], place.Point.coordinates[0] );
		marker = new GMarker( point, {draggable: true});
		map.addOverlay( marker );
		GEvent.addListener(marker, "dragend", function() {
			var point = marker.getPoint();
			map.panTo(point);
			clicked( marker, point );
			first = false;
			document.getElementById("getlatlong").value = '?latitude=' + point.lat().toFixed(5) + '&longitude=' + point.lng().toFixed(5) + '&zoom=' + map.getZoom();
		});
		document.getElementById("getlatlong").value = '?latitude=' + point.lat().toFixed(5) + '&longitude=' + point.lng().toFixed(5) + '&zoom=' + map.getZoom();
		first = false;
		clicked( marker, point );
	}
}

function loadGMapInfo( lat, lng, zoom ){
	map = new GMap2(document.getElementById("map"));
	var customUI = map.getDefaultUI();
	customUI.maptypes.hybrid = false;
    	map.setUI(customUI);
	map.setCenter(new GLatLng( lat, lng ), zoom );
	marker = new GMarker(new GLatLng( lat, lng ) );
	map.addOverlay(marker);
	geocoder = new GClientGeocoder();
	// GEvent.addListener( map, "click", clicked );
	clicked( marker, new GLatLng( lat, lng ) );
}

function clicked(overlay, latlng) {
  if (latlng) {
	geocoder.getLocations(latlng, function(addresses) {
	  if(addresses.Status.code != 200) {
		// alert("reverse geocoder failed to find an address for " + latlng.toUrlValue());
			// document.getElementById( 'maptext' ).innerHTML = "reverse geocoder failed to find an address for " + latlng.toUrlValue();
			marker.openInfoWindow( "<div style=\"color: #ababab;font-size: 11px;padding-top: 5px;\"><strong>Latitude, Longitude</strong> : " + marker.getPoint() + "</div>" );
	  }
	  else {
		address = addresses.Placemark[0];
		var html = '';
		html += ( first ) ? "<strong style=\"color: red; font-size: 11px;\">Welcome to PhilippinePropertyFinder.com</strong><br /><br /><span style=\"color: #ababab;font-size: 11px;color: blue;\">Click on the Map to search for property in that area. <br />Use the controls on the left side of the map to <br />navigate or press the left mouse button and move <br />the mouse to pan around and use your mouse <br />scroller to zoom in or out.</span>" : "<div style=\"color: #ababab;font-size: 11px;padding-top: 5px;\"><strong>Latitude, Longitude</strong> : " + marker.getPoint() + "<br /><strong>Address</strong> : " + address.address + "<br /><a href=\"http://www.philippinepropertyfinder.com/" + escape( address.address ) + "/s/1\">Search this Address</a><br /></div>";
		
		if( forpost === 1 ){
			html = "<div style=\"color: #ababab;font-size: 11px;\">Place Marker on Property Location</div><div style=\"color: #ababab;font-size: 11px;padding-top: 5px;\"><strong>Latitude, Longitude</strong> : " + marker.getPoint() + "<br /><strong>Address</strong> : " + address.address + "</div>";
		}
		
		marker.openInfoWindow(html);
		if(
			document.getElementById( 'search-input' )
			&& !first
			&& linktosearch
		){
			document.getElementById( 'search-input' ).value = address.address;
		}
		document.getElementById( 'maptext' ).innerHTML = html;
	  }
	});
  }
}
//]]>
