		function showAddress(address, elemId) {
			var map = new GMap2(document.getElementById(elemId));
			var geocoder = new GClientGeocoder();
		  geocoder.getLatLng(
		    address,
		    function(point) {
		      if (!point) {
		        //alert(address + " not found");
		      } else {
		        map.setCenter(point, 10);
		        var marker = new GMarker(point);
		        map.addControl(new GMapTypeControl());
		        map.addControl(new GLargeMapControl());
		        map.addOverlay(marker);
		      }
		    }
		  );
		}      
		function showAddressStreets(addr, elemId) {
			var geocoder = new GClientGeocoder();
			address = addr;
			elementId = elemId;
		  geocoder.getLatLng(
		    address,
		    function(point) {
		      if (!point) {
		        //alert(address + " not found");
		      } else {
		      	panoramaOptions = { latlng:point };
		      	var myPano = new GStreetviewPanorama(document.getElementById(elemId), panoramaOptions);
		      	GEvent.addListener(myPano, "error", handleNoFlash);
		      }
		    }
		  );
		}  
	
		function handleNoFlash(errorCode) {
				showAddress(address, elementId);
				document.getElementById("choices").removeChild(	document.getElementById("navi") );
	    	return;
		}
		function showAddressNew (address, elemId, navs)
		{
			var map = new GMap2(document.getElementById(elemId));
			var geocoder = new GClientGeocoder();
		  geocoder.getLatLng(
		    address,
		    function(point) {
		      if (!point) {
		        //alert(address + " not found");
		      } else {
		        map.setCenter(point, 10);
		        var marker = new GMarker(point);
		        map.addControl(new GMapTypeControl());
		        map.addControl(new GLargeMapControl());
		        map.addOverlay(marker);
		        var overlay = new GStreetviewClient();
		        overlay.getNearestPanoramaLatLng(point,  
		        	function(point)
		        	{ 
		        		if (!point)
			        	{
			        		document.getElementById(navs).style.visibility = 'hidden'; 
			        		streetViewPoint = null; 
			        	}
					      else 
					      {
					      	document.getElementById(navs).style.visibility = 'visible'; 
					      	streetViewPoint = point;
					      }			        	
			        }
		        );
		      }
		    }
		  );
		} 

		function showAddressesNoControls(addresses, struct) {
      struct.map.enableScrollWheelZoom();
      struct.map.enableDoubleClickZoom();
			for( var i = 0; i<addresses.length; i++){
				//alert(addresses[i].address);
				addAddress(addresses[i], struct);			
			}
		} 		

	
		function showAddresses(addresses, struct) {
      struct.map.addControl(new GMapTypeControl());
      struct.map.addControl(new GLargeMapControl());
      struct.map.enableScrollWheelZoom();
      struct.map.enableDoubleClickZoom();
      if(addresses.length <= 1 && !struct.zoomlevel)
      {
      	struct.zoomlevel = 9;
      }
			for( var i = 0; i<addresses.length; i++){
				//alert(addresses[i].address);
				addAddress(addresses[i], struct);				
			}
		} 	
	
		
		function addAddress(item, struct) {
			if(item.latitude && item.longitude )
			{
				marker = new GMarker(new GLatLng(item.latitude, item.longitude ));
				struct.bounds.extend(marker.getPoint());
				marker.content = item.content;
				addClickevent(marker);
				struct.map.addOverlay(marker);
				if(struct.zoomlevel)
				{
					struct.map.setCenter(struct.bounds.getCenter(), struct.zoomlevel);
				}
				else{
					struct.map.setCenter(struct.bounds.getCenter());
					struct.map.setZoom(struct.map.getBoundsZoomLevel(struct.bounds));			   				
				}
			}
			else
			{
			  struct.geo.getLatLng( item.address,
				    function(point) {
				      if (!point) {
				      	//alert( item.address +  " not found");
				      } else {
				      	struct.bounds.extend(point);
				      	marker = new GMarker(point);
				      	marker.content = item.content;
				      	addClickevent(marker);
				      	struct.map.addOverlay(marker);
								if(struct.zoomlevel)
								{
									struct.map.setCenter(struct.bounds.getCenter(), struct.zoomlevel);
								}
								else{
									struct.map.setCenter(struct.bounds.getCenter());
									struct.map.setZoom(struct.map.getBoundsZoomLevel(struct.bounds));			   				
								}				      	
				      }
				    }
				  );
			}
		}
			
			
		function addClickevent(marker) { // Add a click listener to the markers
		 GEvent.addListener(marker, "click", 
		 	function() {
  			marker.openInfoWindowHtml(marker.content);
 			});
 			return marker;
 		}
 		
 		function ShowHideAdditional(data)
 		{
 			var flag = 0;
 			for(var i = 0; i < 6; i++)
 			{
 				var elem = document.getElementById("additional"+i);
 				if(elem)
 				{
 					st = elem.style;
 					if(st && st.display=='block')
 					{
 						flag = 1;
 					}
					st.display = (st.display==''||st.display=='block')?'none':'block';
 				}
 			}
 			var strings = data.split("|");
 			if(flag)
 			{
 				document.getElementById("link").innerHTML = strings[0];
 			}
 			else
 			{
 				document.getElementById("link").innerHTML = strings[1];
 			}
 		}
    
