

  //<![CDATA[
   var map ;

   function LoadMap()
   {
    if (GBrowserIsCompatible()) 				// Do Map if Compatible Browser only
    {
     map = new GMap2(document.getElementById("map"),{draggableCursor: 'crosshair', draggingCursor: 'pointer'}) ;
     map.addControl(new GLargeMapControl());
     map.addControl(new GMapTypeControl());
     map.addControl(new GScaleControl()) ;
     map.addControl(new GOverviewMapControl()) ;
	 
	 geocoder = new GClientGeocoder() ;
	 icon = new GIcon();
	 icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	 icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	 icon.iconSize = new GSize(12, 20);
	 icon.shadowSize = new GSize(22, 20);
	 icon.iconAnchor = new GPoint(6, 20)
     //21.025426,105.840032
	 var point = new GLatLng(21.02466,105.858153) ;
	 var marker = new GMarker(point, {icon:icon, title: 'Kem Hamy số 1A Tràng Tiền'});
	 map.addOverlay(marker);
	 
	 var point = new GLatLng(20.999967,105.845504) ;
	 var marker = new GMarker(point, {icon:icon, title: 'Kem Hamy số 105 Trần Đại Nghĩa'});
	 map.addOverlay(marker);
	 
	 var point = new GLatLng(21.043476,105.83897) ;
	 var marker = new GMarker(point, {icon:icon, title: 'Kem Hamy số 60 Trấn Vũ'});
	 map.addOverlay(marker);
	 //var latlng = new GLatLng(35.036040,-89.977512) ; // Memphis Airport
	 var latlng = new GLatLng(21.046535,105.839367) ; // Memphis Airport  21.02839,105.8531
     map.setCenter(latlng,12);
	 
	/* 

     GEvent.addListener(map, 'click', function(overlay, point)	// Add a click listener
     {
      if (overlay)
      {
      } else if (point) 
      {
       addpoint( point ) ;
      }
     });*/
    } else
    {
     document.getElementById("map").innerHTML = "<h1>Browser not compatible with Google Maps. Sorry...</h1>" ;
    }
   }

// Add a point to the textarea tracedata...

   function addpoint( point ) 
   {
    document.data.tracedata.value += point.toUrlValue() + "\n" ;
   }

// Clear the work text area and overlays...

   function dataclear() 
   {
    document.data.tracedata.value = "" ;
    map.clearOverlays() ;
   }

// Close the polyline into a polygon with the first point as the last point...

   function dataclose() 
   {
    var wrkar = dataparse( document.data.tracedata.value ) ;

    if( ( wrkar[0].lat() + "," + wrkar[0].lng() ) == (wrkar[wrkar.length - 1].lat() + "," + wrkar[wrkar.length - 1].lng() ) )
    {
     alert( "Polyline is already closed!" ) ;
    } else
    {
     document.data.tracedata.value += wrkar[0].lat() + "," + wrkar[0].lng() + "\n" ;
    }
   }

// Draw the polylines associated with the points clicked...

   function datadraw() 
   {
    map.clearOverlays() ;
    var wrkar = [] ;
    if ( document.data.tracedata.value )			// Check for tracedata
    {
     wrkar = dataparse( document.data.tracedata.value ) ;
     map.addOverlay( new GPolyline(wrkar,"#ff0000", 3, .8) ) ;
    }
    if ( document.data.savedata.value )				// Check for saved data
    {
     wrkar = dataparse( document.data.savedata.value ) ;
     map.addOverlay( new GPolyline(wrkar,"#00ff00", 3, .8) ) ;
    }
   }

// Save the trace data into the savedata textarea...

   function datasave() 
   {
    document.data.savedata.value = document.data.tracedata.value ;
   }

// Parse the textarea data into a points array...

   function dataparse( points )
   {
    points = points.substr(0,points.length - 1) ;
    var linar = points.split("\n") ;				// Break each point by line break
    var wrkar = [] ;
    var pntar = [] ;
    for (var i = 0; i < linar.length; i++)
    {
     wrkar = linar[i].split(",",2) ;				// Break each point into x and y
     pntar.push( new GLatLng(parseFloat(wrkar[0]), parseFloat(wrkar[1])) ) ; 
    }
    return pntar ;
   }

// Center the map on the first marker found...

   function datacenter() 
   {
    var point ;
    var wrkar = [] ;
    if ( document.data.tracedata.value ) 
    {
     wrkar = dataparse( document.data.tracedata.value ) ;
    } else
    {
     wrkar = dataparse( document.data.savedata.value ) ;
    }    
    if ( wrkar[0] )
    {
     point = wrkar[0] ;
    }
    if ( point )
    {
     map.setCenter(point,8);

    } else
    {
     alert( "No points entered yet. Cannot center map." ) ;
    }
   }

  //]]>


