var map;


// JavaScript Document
jQuery(document).ready(function() 
{
  jQuery(".nov-map").each(function() { daGoogleMapInit(this); return false; }); 

  //   initialize(this);

});


function show_city(lat, lng, zoom) 
{   
	 map.setCenter(new GLatLng(lat, lng), zoom);
}


function initialize(element) {//вызывается при загрузке документа
    
    if (GBrowserIsCompatible()) 
    {
        var map = new GMap2(jQuery(element).find("div.map-container").get(0));//обращение к div-у
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
                
        // Add 10 markers to the map at random locations
        var bounds = map.getBounds();
        var southWest = bounds.getSouthWest();
        var northEast = bounds.getNorthEast();
        var lngSpan = northEast.lng() - southWest.lng();
        var latSpan = northEast.lat() - southWest.lat();
        
        for (var i = 0; i < 10; i++) {
            var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
            southWest.lng() + lngSpan * Math.random());
            map.addOverlay(new GMarker(point));
        }
    }
} 


// Creates GoogleMap
function daInitGMap(map_element, lat, lon, zoom)
{
    zoom = zoom || 13;
    try {     
        //var map = new google.maps.Map2(map_element);
        var map = new GMap2(map_element);
        map.setCenter(new GLatLng(lat, lon), zoom);
        map.setUIToDefault();
        
        return map;
    }
    catch(e) {
      alert(e);
      return false;
    }
}

// Set markers
function daSetMarker(map, parameters) 
{
    // parameters[0] = Lat
    // parameters[1] = Lon
    // parameters[2] = Title
    // parameters[3] = Description
    
    var marker = new GMarker(new google.maps.LatLng(parameters[0], parameters[1]));
    
    var html = '<div style="width:210px; padding-right:10px;" class="marker-popup">' +
      '<span>' + parameters[2] + '<br />' + parameters[3] + '</span>' + '</div>';
    
    marker.bindInfoWindowHtml(html);
    
    map.addOverlay(marker);
}


// Init google map and ads markers
function daGoogleMapInit(element)
{
    var txtLat = jQuery(element).find("ul.viewport .lat").text();
    var txtLon = jQuery(element).find("ul.viewport .lon").text();
    
    var err_message = jQuery(element).find("ul.viewport .error-message").text();
    
    
    
    if (txtLat=='' || txtLon=='') {
      jQuery(element).html('<p>' + err_message + '</p>');    
    }
        
    var viewport_lat = parseFloat(txtLat);
    var viewport_lon = parseFloat(txtLon);
    var viewport_zoom = parseInt(jQuery(element).find("ul.viewport .zoom").text());
    
           
    // init map
    map = daInitGMap(              
              jQuery(element).find("div.map-container").get(0),
              viewport_lat,
              viewport_lon,
              viewport_zoom);
              
    if (!map) return false;
    
    //alert("works");
    
    
    var markers = jQuery(element).find("ul.markers li");
    view = new GLatLngBounds();
    
    markers.each(function() {
        var marker_lon = parseFloat(jQuery(this).find(".lon").text());
        var marker_lat = parseFloat(jQuery(this).find(".lat").text());
        var marker_title = jQuery(this).find(".title").text();
        var marker_description = jQuery(this).find(".description").text();
        
        var parameters = [
          marker_lat,
          marker_lon,
          marker_title,
          marker_description
        ];
           
        daSetMarker(map, parameters);
        
        
        
        //view.extend(new GLatLng(marker_lat, marker_lon));
        
        // center map by all markers
        if (!view.isEmpty()) {
            zoom = map.getBoundsZoomLevel(view);
            center = view.getCenter();
            
            map.setZoom(zoom);
            map.panTo(center);
        }
    });

}
