	// JavaScript Document
var lats ="";
var lngs ="";

var geocoder;
var place;
var address1
var address_2;

function load(lat,long) {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));

//map.addControl(new GSmallMapControl());
//map.addControl(new GMapTypeControl());
map.setUIToDefault();
geocoder = new GClientGeocoder();


if(lat!='' && long!='')
{

point=new GPoint(long,lat);
var center1 = new GLatLng(lat,long);
map.setCenter(center1, 16);
map.addOverlay(new GMarker(point));
map.panTo(point);
point="";
}
else
{
var center = new GLatLng(48.89364, 2.33739);
map.setCenter(center, 16);
}



GEvent.addListener(map, "click", function(overlay, point){

map.clearOverlays()
if (point) {
//alert(point);
map.addOverlay(new GMarker(point));
map.panTo(point);
msg = "Latitude: "+point.lat()+"<br />"+"Longitude: "+point.lng();
document.getElementById("txt_lati").value = point.lng();
document.getElementById("txt_long").value = point.lat();
getCity();
//alert("hi");

//document.getElementById("mypoint").value = msg;
}
else
{
document.getElementById("txt_lati").value = "";
document.getElementById("txt_long").value = "";
}
});

var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("txt_lati").value = center.lng().toFixed(5);
document.getElementById("txt_long").value = center.lat().toFixed(5);
getCity();

GEvent.addListener(marker, "dragend", function() {
var point = marker.getPoint();
map.panTo(point);
document.getElementById("txt_lati").value = point.lng().toFixed(5);
document.getElementById("txt_long").value = point.lat().toFixed(5);
getCity();


});


GEvent.addListener(map, "moveend", function() {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("txt_lati").value = center.lng().toFixed(5);
document.getElementById("txt_long").value = center.lat().toFixed(5);
getCity();


GEvent.addListener(marker, "dragend", function() {
var point =marker.getPoint();
map.panTo(point);
document.getElementById("txt_lati").value = point.lng().toFixed(5);
document.getElementById("txt_long").value = point.lat().toFixed(5);
getCity();

});

});

}
}

function showAddress(address) {
	//alert(address);
var map = new GMap2(document.getElementById("map"));
//map.addControl(new GSmallMapControl());
//map.addControl(new GMapTypeControl());
map.setUIToDefault();
if (geocoder) {
	//alert('hi');
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
	//alert(point.lng().toFixed(5));
document.getElementById("txt_lati").value = point.lng().toFixed(5);
document.getElementById("txt_long").value = point.lat().toFixed(5);
getCity();

var geocoder = new google.maps.Geocoder();
//alert("hi");
lats = point.lat().toFixed(5);
lngs = point.lng().toFixed(5);
geocoder.geocode({'latLng': new google.maps.LatLng(lats, lngs)}, function (results, status) {
//alert(status);
if (status == google.maps.GeocoderStatus.OK)
{
//alert(results[0]);
if (results[0])
{
address2=results[0].address_components[3].long_name;
//document.getElementById('sel_city').value=address2;
//alert(address2);
}
}

});

//alert(document.getElementById('sel_city').value);
map.clearOverlays()
map.setCenter(point, 16);
var marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);

GEvent.addListener(marker, "dragend", function() {
var pt = marker.getPoint();

map.panTo(pt);
document.getElementById("txt_lati").value = pt.lng().toFixed(5);
document.getElementById("txt_long").value = pt.lat().toFixed(5);
getCity();
});


GEvent.addListener(map, "click", function(overlay, point){

map.clearOverlays()
if (point) {
map.addOverlay(new GMarker(point));
map.panTo(point);
msg = "Latitude: "+point.lat()+"<br />"+"Longitude: "+point.lng();
document.getElementById("txt_lati").value = point.lng();
document.getElementById("txt_long").value = point.lat();
getCity();
//document.getElementById("mypoint").value = msg;
}
else
{
document.getElementById("txt_lati").value = "";
document.getElementById("txt_long").value = "";
}
});


GEvent.addListener(map, "moveend", function() {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("txt_lati").value =center.lng().toFixed(5);
document.getElementById("txt_long").value = center.lat().toFixed(5);
getCity();

GEvent.addListener(marker, "dragend", function() {
var pt = marker.getPoint();
map.panTo(pt);
document.getElementById("txt_lati").value = pt.lng().toFixed(5);
document.getElementById("txt_long").value = pt.lat().toFixed(5);
getCity();
});

});

}
}
);
}
}

function load_map()
{
	document.getElementById('map').style.display='block';
var address = document.getElementById('txt_maploc').value;
//alert(address);
load('','');
showAddress(address);
}
function searchKeyPress(e)
{
// look for window.event in case event isn't passed in
if (window.event) { e = window.event; }
if (e.keyCode == 13)
{
document.getElementById('btn_map').click();
return false;
}
}
function searchKeyPress(e)
{

if (e.keyCode == 13)
{
document.getElementById('btn_map').click();
//alert('hi');
return false;
}
else
{
return false;
}
}





function getCity()
{
var clientlat=new GLatLng(parseFloat(document.getElementById('txt_long').value),parseFloat(document.getElementById('txt_lati').value));
geocoder = new GClientGeocoder();
//alert(clientlat);
geocoder.getLocations(clientlat, function(response)
{
//alert(response.Status.code);
if (!response || response.Status.code != 200)
{
//alert("Status Code:" + response.Status.code);
}
else
{
place = response.Placemark[0];
//alert(place);
address1=response.name;
//alert(address1)
address2=address1.split(",",1);

if(address1!="" && isNaN(address2))
{
address1=response.name;

}
else
{
address=place.address;
address_2=address.split(",",2);
address1=address_2.splice(1,1);
//alert(address1);

}
//alert(address1);
//alert(place.address);
//document.getElementById('sel_city').value=address1;
}
});
}

