  var side_bar_html = "";
  var ZoomLevel = 14;
  var ZLevel;
  var gmarkers = [];
  var teddypoints = [];
  var htmls = [];
  var i = 0;
  var map = null;
    var geocoder = null;
    var icon = new GIcon();
    icon.image = "http://www.wheresmyteddy.com/live/files/site_images/WMT_mapicon_color.png";
    // icon.image = "http://www.wheresmyteddy.com/wmt1/files/site_images/bear.png";
    icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
    icon.iconSize = new GSize(26 , 26);
    icon.iconAnchor = new GPoint(26, 26);
    icon.shadowSize = new GSize(26, 26);
    icon.iconAnchor = new GPoint(10, 20);
    icon.infoWindowAnchor = new GPoint(5, 2);
  
    
 function createMarker(point,html) {
        var marker = new GMarker(point,icon);

        GEvent.addListener(marker, "mouseover", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }
      
function createPoint (glat,glng,town,i) {
            var point = new GLatLng(parseFloat(glat),parseFloat(glng));
            var html = town;
            var label = town;
            // create the marker
            var marker = createMarker(point,label,html);
            map.setCenter(point);
            //map.addOverlay(marker);
          } 
  
  
    function loadmap() {

      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        var bounds = new GLatLngBounds();
         for (var k=0; k<teddypoints.length ; k++) {
          bounds.extend(teddypoints[k]);
          }
        
        if (map.getBoundsZoomLevel(bounds)<ZoomLevel) {ZLevel=map.getBoundsZoomLevel(bounds);}

        if (k==1) {ZLevel=10;}
        if (ZLevel==1) {ZLevel=2; }        
        map.setCenter(bounds.getCenter(),ZLevel); 

        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        var mt = map.getMapTypes();
        // Overwrite the getMinimumResolution() and getMaximumResolution() methods
        for (var j=0; j<mt.length; j++) {
         // mt[i].getMinimumResolution = function() {return 7;}
          mt[j].getMaximumResolution = function() {return ZoomLevel;}
            }
            
            
        geocoder = new GClientGeocoder();
        var polyOptions = {geodesic:false};
        for ( var j=0; j<teddypoints.length;  ++j ){
        var marker = createMarker(teddypoints[j],htmls[j])
        map.addOverlay(marker,{draggable: false});
            }

            
       for (   var j=0; j<teddypoints.length-1;  ++j ){
        var   polyline = new GPolyline([teddypoints[j],teddypoints[j+1]], "#000000", 2, 1, polyOptions);
            map.addOverlay(polyline);
        }
       
        
        if (editable == 1) {
         GEvent.addListener(map, "click", function(marker, point) {
            if (marker) {
              map.removeOverlay(marker);
              document.getElementById('edit-map-loc-lat').value=0;
              document.getElementById('edit-map-loc-lng').value=0;  
            } else {
              map.clearOverlays();
              map.addOverlay(new GMarker(point,{draggable: false}));
              //map.setCenter(point);
              document.getElementById('edit-map-loc-lat').value=point.lat();
              document.getElementById('edit-map-loc-lng').value=point.lng();  
            }
          });
       }
        
      }
    }

function loadmap2() {
      if (GBrowserIsCompatible()) {
             map = new GMap2(document.getElementById("map"));
        map.setCenter(new  GLatLng(50,-1),5); 
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
 //       map.enableScrollWheelZoom();
        var mt = map.getMapTypes();
        // Overwrite the getMinimumResolution() and getMaximumResolution() methods
        for (var j=0; j<mt.length; j++) {
         // mt[i].getMinimumResolution = function() {return 7;}
          mt[j].getMaximumResolution = function() {return ZoomLevel;}
            }
        geocoder = new GClientGeocoder();
                
         if (editable == 1) {
         GEvent.addListener(map, "click", function(marker, point) {
            if (marker) {
              map.removeOverlay(marker);
              document.getElementById('edit-map-loc-lat').value=0;
              document.getElementById('edit-map-loc-lng').value=0;  
            } else {
              map.clearOverlays();
              map.addOverlay(new GMarker(point,{draggable: false}));
             // map.setCenter(point);
              document.getElementById('edit-map-loc-lat').value=point.lat();
              document.getElementById('edit-map-loc-lng').value=point.lng();  
            }
          });
       }
        
      }
    }
   function loadmap3() {

      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new  GLatLng(50,-1),2); 
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        var mt = map.getMapTypes();
        // Overwrite the getMinimumResolution() and getMaximumResolution() methods
        for (var j=0; j<mt.length; j++) {
         // mt[i].getMinimumResolution = function() {return 7;}
          mt[j].getMaximumResolution = function() {return ZoomLevel;}
            }
          
        geocoder = new GClientGeocoder();
        for ( var j=0; j<teddypoints.length;  ++j ){
        var marker = createMarker(teddypoints[j],htmls[j])
        map.addOverlay(marker,{draggable: false});
            }

      }
    }
 
    function showAddressC(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point,5);
             if (address.indexOf(',') ==-1) { map.setCenter(point,5); }
             if (address.indexOf('USA') !=-1 || address.indexOf('United States') !=-1 ) { map.setCenter(point,4); }                             
              if (teddypoints.length==0) {
              map.addOverlay(new GMarker(point,{draggable: false}));}
              document.getElementById('edit-map-loc-lat').value=point.lat();
              document.getElementById('edit-map-loc-lng').value=point.lng();  
             }
          }
        );
      }
    }

 

    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
             var addressC = address.split(",");
             showAddressC(addressC[1]);
            } else { 
                map.setCenter(point,12);
              if (address.indexOf(',') ==-1) { 
                map.setCenter(point,5); 
                 if (address.indexOf('USA') !=-1 || address.indexOf('United States') !=-1 ) { 
                   map.setCenter(point,4); 
                   }   
                }            
                      if (teddypoints.length==0) {
              map.addOverlay(new GMarker(point,{draggable: false}));}
              document.getElementById('edit-map-loc-lat').value=point.lat();
              document.getElementById('edit-map-loc-lng').value=point.lng();  
             }
          }
        );
      }
    }

