﻿//<![CDATA[

var geocoder;
var map;
var baseIcon = new GIcon();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);
baseIcon.infoShadowAnchor = new GPoint(18, 25);

function loadMap()
{
  map = new GMap2(document.getElementById(mapObjName));
  geocoder = new GClientGeocoder();
}

function mapLocations() 
{
    if (GBrowserIsCompatible() && map!=null) 
    {
        var foundOne = false;
        var lat;
        var lng;
        var point;
        var bounds = new GLatLngBounds; 

        for (var index = 0; index < title.length; index++)
        {
            
            lat = parseFloat(coords[index].split(',')[0]);
            lng = parseFloat(coords[index].split(',')[1]);
            
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());

        	if (lat != 0 && lng != 0)
        	{
        	    point = new GLatLng(lat,lng);
        	    bounds.extend(point);
                if (foundOne == false)
        	    {
                    map.setCenter(point, 13);
                    foundOne = true;
                }
                map.addOverlay(createMarker(point, index, title[index]));
            }
        }
        map.setZoom(map.getBoundsZoomLevel(bounds));
        map.setCenter(bounds.getCenter());
    }
}

function createMarker(point, index, description) 
{
    var letter = String.fromCharCode("A".charCodeAt(0) + index);
    var icon = new GIcon(baseIcon);
    icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
    var marker = new GMarker(point, icon);
    
    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(""+description +"");
        });  
    return marker;
}

   function getDistance(p1, p2)
   {
       var lat1 = p1.lat();
       var lon1 = p1.lng();
       var lat2 = p2.lat();
       var lon2 = p2.lng();   
       var R = 6371; // earth's mean radius in km
       var dLat = (lat2-lat1).toRad();
       var dLon = (lon2-lon1).toRad();
       lat1 = lat1.toRad(), lat2 = lat2.toRad();

       var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
               Math.cos(lat1) * Math.cos(lat2) * 
               Math.sin(dLon/2) * Math.sin(dLon/2);
       var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
       var d = R * c;

       //var polyline = new GPolyline([p1, p2], "#ff0000", 5);
       //map.addOverlay(polyline);
      
       return d.toFixed(2);
   }
//]]>
