function loadmap() {
      if (GBrowserIsCompatible()) {
        	mymap = new GMap2(document.getElementById("mapcontainer"));
        	var center = new GLatLng(0, 0);
        	nopos = new GLatLng();
        	mymap.addControl(new GLargeMapControl());
        	mymap.addControl(new GMapTypeControl());
        	mymap.setCenter(center, 0);
        	mymap.enableScrollWheelZoom();			
			var baseicon = new GIcon(G_DEFAULT_ICON);
			baseicon.image = "http://bg.dev.textor.com/images/gmappins/redpushpin.png";
			baseicon.shadow = "http://bg.dev.textor.com/images/gmappins/redpushpinshadow.png";
			baseicon.iconSize = new GSize(32,32);
			baseicon.shadowSize = new GSize(59,32);
			baseicon.iconAnchor=new GPoint(16,32);
	      baseicon.infoWindowAnchor=new GPoint(16,0);
	      baseicon.maxHeight = 0;
	      

			locmarker = new GMarker(nopos, {draggable: true});

			GEvent.addListener(locmarker, "dragstart", function() {
  				mymap.closeInfoWindow()
  			});

			GEvent.addListener(locmarker, "dragend", function() {
  				//locmarker.openInfoWindowHtml("here");
 			});	
			
      }
      
}

function loadMapCoordsHtml(lat,lng,htmlstring) {
      
      
      if (GBrowserIsCompatible()) {
      	loadmap();        	
        	
        	var center = new GLatLng(lat, lng);
			mymap.clearOverlays();
			mymap.setZoom(14);
			mymap.panTo(center);
	    	locmarker.setPoint(center);
	    	locmarker.disableDragging();
	    	mymap.addOverlay(locmarker);
			locmarker.openInfoWindowHtml(htmlstring);
			
			function MapPrintControl ()
			{
				
			}
					
			MapPrintControl.prototype = new GControl();
			MapPrintControl.prototype.initialize = function(map) {
				
			  var container = document.createElement("div");
			
			  var printMapDiv = document.createElement("div");
			  this.setButtonStyle_(printMapDiv);
			  container.appendChild(printMapDiv);
			  printMapDiv.appendChild(document.createTextNode("Print Map"));
			  GEvent.addDomListener(printMapDiv, "click", function() {
			    window.print();
			  });
				
			  map.getContainer().appendChild(container);
  			  return container;
			}
			
			MapPrintControl.prototype.getDefaultPosition = function() {
			  return new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(3, 15));
			}
			
			MapPrintControl.prototype.setButtonStyle_ = function(button) {
			  button.style.textDecoration = "none";
			  button.style.color = "#000000";
			  button.style.backgroundColor = "white";
			  button.style.font = "small Arial";
			  button.style.fontWeight = 'bold';
			  button.style.border = "1px solid black";
			  button.style.padding = "2px";
			  button.style.marginBottom = "3px";
			  button.style.textAlign = "center";
			  button.style.width = "6em";
			  button.style.cursor = "pointer";
			}
        	
			
			mymap.addControl (new MapPrintControl());
			
			GEvent.addListener(locmarker, "click", function() {
				locmarker.openInfoWindowHtml(htmlstring);
			});
			
      }  
}

function loadMapCoords(lat,lng) {
      
      
      if (GBrowserIsCompatible()) {
			loadmap();
        	
			var point = new GLatLng(lat, lng);
			mymap.clearOverlays();
			mymap.setZoom(14);
			mymap.panTo(point);
	    	locmarker.setPoint(point);
	    	mymap.addOverlay(locmarker);
	    
	    	GEvent.addListener(locmarker, "dblclick", function() {
				mymap.clearOverlays();
				locmarker.setPoint(nopos);
			});
	    
      }  
}


function findAddress() {
			var address = document.getElementById("addressinput").value;
			var geocode = new GClientGeocoder();
		   geocode.getLocations(address,
	    		function(response)
	    		{
	    			if (!response.Placemark)
	    			{
	    				alert(address + " not found!");
	    			}
	    			else
	    				mymap.clearOverlays();
	    				// Retrieve the object
      				place = response.Placemark[0];

				      // Retrieve the latitude and longitude
				      point = new GLatLng(place.Point.coordinates[1],
				                          place.Point.coordinates[0]);
				
				      
				      mymap.setCenter(point, 14);
				
				      
				      locmarker.setPoint(point);
				
				      // Add the marker to map
				      mymap.addOverlay(locmarker);
						
						var streetAddress = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
						var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;
						var state = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
						var zip = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
						
				      // Add address information to marker
				      locmarker.openInfoWindowHtml(streetAddress + '<br />' + city + ', ' + state + ' ' + zip);
				      
				      GEvent.addListener(locmarker, "dblclick", function() {
							//locmarker.openInfoWindowHtml("here");
							mymap.clearOverlays();
							locmarker.setPoint(nopos);
						});
						
						GEvent.addListener(mymap, "click", 
        	
			        		function(marker,point) {
								if (marker)
								{	
									
								}
								else
								{
									mymap.clearOverlays();
									mymap.panTo(point);
				    				locmarker.setPoint(point);
				    				mymap.addOverlay(locmarker);
				  				}
				  			}
						
						);
	    				
	    				
	    			}
	    	);
}

function findAddressFrm(myaddress) {
			var geocode = new GClientGeocoder();
		   geocode.getLocations(myaddress,
	    		function(response)
	    		{
	    			if (!response.Placemark)
	    			{
	    				alert(myaddress + " not found!");
	    				loadmap();
	    				document.getElementById("addressinput").value = myaddress;
	    				
	    			}
	    			else
	    				loadmap();
	    				document.getElementById("addressinput").value = myaddress;
	    				mymap.clearOverlays();
	    				// Retrieve the object
      				place = response.Placemark[0];

				      // Retrieve the latitude and longitude
				      point = new GLatLng(place.Point.coordinates[1],
				                          place.Point.coordinates[0]);
				
				      
				      mymap.setCenter(point, 14);
				
				      
				      locmarker.setPoint(point);
				
				      // Add the marker to map
				      mymap.addOverlay(locmarker);
						
						var streetAddress = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;
						var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;
						var state = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
						var zip = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;
						
				      // Add address information to marker
				      locmarker.openInfoWindowHtml(streetAddress + '<br />' + city + ', ' + state + ' ' + zip);
				      
				      GEvent.addListener(locmarker, "dblclick", function() {
							//locmarker.openInfoWindowHtml("here");
							mymap.clearOverlays();
							locmarker.setPoint(nopos);
						});
	    				
	    				GEvent.addListener(mymap, "click", 
        	
		        		function(marker,point) {
							if (marker)
							{	
								
							}
							else
							{
								mymap.clearOverlays();
								mymap.panTo(point);
			    				locmarker.setPoint(point);
			    				mymap.addOverlay(locmarker);
			  				}
			  			}
			
			);	
	    			}
	    	);
}

function savePoint(latidtarget,lngidtarget) {
	if (locmarker.getLatLng().lat() && locmarker.getLatLng().lng())
	{
		window.opener.document.getElementById(latidtarget).value = locmarker.getLatLng().lat();
		window.opener.document.getElementById(lngidtarget).value = locmarker.getLatLng().lng();
		window.close();
	}
	else
	{
		window.opener.document.getElementById(latidtarget).value = "";
		window.opener.document.getElementById(lngidtarget).value = "";
		window.close();
	}
}


function noenter() {
  return !(window.event && window.event.keyCode == 13);
}

function openGetLocationWindow(lat,lng,latidtarget,lngidtarget)
{
	var popwinw = 520;
	var popwinh = 400;
	
	if(screen.width)
	{
		var winl = (screen.width-popwinw)/2;
		var wint = (screen.height-popwinh)/2;
	}
	else
	{
		winl = 0;
		wint =0;
	}
	if (winl < 0) winl = 0;
	if (wint < 0) wint = 0;
	
	if (!lat && !lng && !latidtarget && !lngidtarget)
	{
		alert('Error: openGetLocationWindow target parameters undefined');
	}
	else
	{ 
		window.open('/cgi-bin/guide/getglocation.pl?action=getlocation&lat=' + lat + '&lng=' + lng + '&latidtarget=' + latidtarget + '&lngidtarget=' + lngidtarget,'getloctionwindow','top='+ wint +',left=' + winl + ',width='+popwinw+',height='+popwinh+',menubar=0,toolbar=0,location=0,status=0,statusbar=0');	
	}
}

function openGetLocationWindowAddress(lat,lng,latidtarget,lngidtarget,alocation,acity,acountry)
{
	var popwinw = 520;
	var popwinh = 420;
	
	if (!alocation)
	{
		alert('Please specify a Location first');
		document.getElementById('ev_location').focus();		
	}
	else
	{
		alocation = alocation.replace(/\r?\n|\r/g,',');
		var locaddress = alocation + ',' + acity + ',' + acountry;
		
		
		if(screen.width)
		{
			var winl = (screen.width-popwinw)/2;
			var wint = (screen.height-popwinh)/2;
		}
		else
		{
			winl = 0;
			wint =0;
		}
		if (winl < 0) winl = 0;
		if (wint < 0) wint = 0;
		
		if (!lat && !lng && !latidtarget && !lngidtarget && !locaddress)
		{
			alert('Error: openGetLocationWindowAddress target parameters undefined');
		}
		else
		{ 
			window.open('/cgi-bin/guide/getglocation.pl?action=getlocation&lat=' + lat + '&lng=' + lng + '&latidtarget=' + latidtarget + '&lngidtarget=' + lngidtarget + '&locaddress=' + locaddress,'getloctionwindow','top='+ wint +',left=' + winl + ',width='+popwinw+',height='+popwinh+',menubar=0,toolbar=0,location=0,status=0,statusbar=0');	
		}
	}
}

function openShowLocationWindow(lat,lng,html)
{
	var popwinw = 800;
	var popwinh = 540;
	
	if(screen.width)
	{
		var winl = (screen.width-popwinw)/2;
		var wint = (screen.height-popwinh)/2;
	}
	else
	{
		winl = 0;
		wint =0;
	}
	if (winl < 0) winl = 0;
	if (wint < 0) wint = 0;
	
	if (!lat && !lng)
	{
		alert('No Location entered');	
	}
	else 
	{
		window.open('/cgi-bin/guide/getglocation.pl?action=showlocation&lat=' + lat + '&lng=' + lng + '&html=' + html,'showloctionwindow','top='+ wint +',left=' + winl + ','+'width='+popwinw+',height='+popwinh+',menubar=0,toolbar=0,location=0,status=0,statusbar=0');
	}
}

