var latInitial="51.49292721420451";
var longInitial="-0.1435089111328125";
var map;
var marker;
var	manyMapBit=0;
var showManyPlace=1;

function showPlacesNearBy(latLongValues, zoom4rmPg){
		map= new GMap2(document.getElementById("map_canvas"));
		var explodeLatLong=latLongValues.split("^");
		for (var i = 0; i < explodeLatLong.length; i++) {
			arraExpl=explodeLatLong[i].split(",");			
			var latVar=arraExpl[0];
			var longVar=arraExpl[1];
			var center=new GLatLng(latVar, longVar);
			//map.setCenter(center,parseInt(zoom4rmPg));			
			if(i==0){
				showManyPlace=1;				
				map.addOverlay(createSingleMarker(center,zoom4rmPg));
				}
			else{				
				map.addOverlay(createGreenMarker(center,i-1));
				}
		}
		
	}

function showMapToAdd(address,zoom) {
      if (GBrowserIsCompatible()) {  
	  	map= new GMap2(document.getElementById("map_canvas"));	
        var center=new GLatLng(latInitial, longInitial);			
		map.setCenter(center, parseInt(zoom));		
		map.enableDoubleClickZoom();		
		map.enableScrollWheelZoom();		
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());						
		geocoder = new GClientGeocoder();	
		geocoder.getLocations(address,addToMap);
      }
    }
function addToMap(response){     
      place = response.Placemark[0];	 
	  point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
      var point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);	 
	  map.setCenter(point, 12);		  
	  showManyPlace=0;
	  map.addOverlay(createSingleMarker(point,12));
	  var point=marker.getPoint();      
	  document.getElementById('txtHiddenlatitude').value=point.lat();
	  document.getElementById('txtHiddenlongitude').value=point.lng();
	  clickEvents();
   }
   
function createGreenMarker(point, index) {	
	//alert(point+"\n\n"+index);
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	  // Create a lettered icon for this point using our icon class
	var letter = String.fromCharCode("A".charCodeAt(0) + index);
	var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + "g.png";
	markerOptions = { icon:letteredIcon, draggable:false };
	marker = new GMarker(point, markerOptions);
	return marker;

	}

function showSinglePlaces(latLongValues, zoom4rmPg){
		map= new GMap2(document.getElementById("map_canvas"));
		var explodeLatLong=latLongValues.split("^");
		for (var i = 0; i < explodeLatLong.length; i++) {
			arraExpl=explodeLatLong[i].split(",");			
			var latVar=arraExpl[0];
			var longVar=arraExpl[1];
			var center=new GLatLng(latVar, latVar);
			map.setCenter(center,parseInt(zoom4rmPg));
			map.enableDragging();
			map.enableDoubleClickZoom();
			map.enableScrollWheelZoom();
			map.addControl(new GSmallMapControl ());
			map.addControl(new GMapTypeControl ());
			map.disableGoogleBar();		
			if(i==0){
				showManyPlace=1;
				map.addOverlay(createSingleMarker(center,zoom4rmPg));
				}
			else{
				manyMapBit=1;
				map.addOverlay(createMarker(center,i-1));
				}
		}
	}

function createSingleMarker(point,zoom4rmPg){		
	map.setCenter(point,parseInt(zoom4rmPg));
	map.enableDragging();
	map.enableDoubleClickZoom();
	map.enableScrollWheelZoom();
	map.disableGoogleBar();
	map.addControl(new GSmallMapControl ());
	map.addControl(new GMapTypeControl ());
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://www.google.com/mapfiles/marker.png";	
	if(showManyPlace==1)
		markerOptionsSingle = { icon:letteredIcon, draggable:false };	
	else
		markerOptionsSingle = { icon:letteredIcon, draggable:true };	
	
	marker = new GMarker(point, markerOptionsSingle);
	return marker;	
	}
	
function showManyPlaces(latLongValues, zoom4rmPg){
		var insideLoop=0;				
		var explodeLatLong=latLongValues.split("^");
		
		for (var i = 0; i < explodeLatLong.length; i++) {
			arraExpl=explodeLatLong[i].split(",");			
			var latVar=arraExpl[0];
			var longVar=arraExpl[1];									
			if(insideLoop==0){				
				showMapOfAddedPlace(latVar, longVar, zoom4rmPg);
				manyMapBit=1;
				insideLoop=1;
				}						
			var center=new GLatLng(latVar, longVar);	
			map.addOverlay(createMarker(center,i));	
			}
		}

function showPlaceInGMap(idofPlace){	
	location.href="index.php?page=googleMap&idofPlace="+idofPlace;
	}
	
function showMapOfAddedPlace(latInitial,longInitial,zoom4rmPg){	
  	 if (GBrowserIsCompatible()) { 
		map= new GMap2(document.getElementById("map_canvas"));	        
		var center=new GLatLng(latInitial, longInitial);		
		map.setCenter(center,parseInt(zoom4rmPg));
		map.enableDragging();
		map.enableDoubleClickZoom();
		map.enableScrollWheelZoom();		
		map.disableGoogleBar();
		map.addControl(new GSmallMapControl ());
		map.addControl(new GMapTypeControl ());
		map.addOverlay(createMarker(center,0));	
	 }
	}


function getBoundings(){
	// Add 10 markers to the map at random locations		
		var bounds = map.getBounds();
		var southWest = bounds.getSouthWest();
		var northEast = bounds.getNorthEast();
		var lngSpan = northEast.lng() - southWest.lng();
		var latSpan = northEast.lat() - southWest.lat();
		var point=latSpan+","+lngSpan;		
		return point;
		/*
		var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
		southWest.lng() + lngSpan * Math.random());
		map.addOverlay(createMarker(point,1));
		for (var i = 0; i < 10; i++) {
		  var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
				southWest.lng() + lngSpan * Math.random());
		map.addOverlay(createMarker(point,i));
		}*/
	}
   
function createMarker(point, index) {
	//alert(point+"\n\n"+index);
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);
	  // Create a lettered icon for this point using our icon class
	var letter = String.fromCharCode("A".charCodeAt(0) + index);
	var letteredIcon = new GIcon(baseIcon);
	letteredIcon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
	
	// Set up our GMarkerOptions object
	if(manyMapBit!=1){
		markerOptions = { icon:letteredIcon, draggable:true };
	}
	else
		markerOptions = { icon:letteredIcon, draggable:false };
	marker = new GMarker(point, markerOptions);
	return marker;
}

function clickEvents(){	
	GEvent.addListener(marker, "dragstart", function() {
		marker.closeInfoWindow();
	});
	
	GEvent.addListener(marker, "dragend", function() {		  
		var point=marker.getPoint();		  	  
		document.getElementById('txtHiddenlatitude').value=point.lat();
		document.getElementById('txtHiddenlongitude').value=point.lng();
		//marker.openInfoWindowHtml("lat\t"+ point.lat()+"<BR>long\t"+point.lng());
	});
	}